|
|
|
@@ -22,185 +22,6 @@ const ( |
|
|
|
BATCH_INSERT_SIZE = 50 |
|
|
|
) |
|
|
|
|
|
|
|
type UserBusinessAnalysisAll struct { |
|
|
|
ID int64 `xorm:"pk"` |
|
|
|
|
|
|
|
CountDate int64 `xorm:"pk"` |
|
|
|
|
|
|
|
//action :ActionMergePullRequest // 11 |
|
|
|
CodeMergeCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//action :ActionCommitRepo // 5 |
|
|
|
CommitCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//action :ActionCreateIssue // 10 |
|
|
|
IssueCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//comment table current date |
|
|
|
CommentCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//watch table current date |
|
|
|
FocusRepoCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//star table current date |
|
|
|
StarRepoCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//follow table |
|
|
|
WatchedCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
// user table |
|
|
|
GiteaAgeMonth int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
// |
|
|
|
CommitCodeSize int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//attachement table |
|
|
|
CommitDatasetSize int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//0 |
|
|
|
CommitModelCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//issue, issueassignees |
|
|
|
SolveIssueCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//baike |
|
|
|
EncyclopediasCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//user |
|
|
|
RegistDate timeutil.TimeStamp `xorm:"NOT NULL"` |
|
|
|
|
|
|
|
//repo |
|
|
|
CreateRepoCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//login count, from elk |
|
|
|
LoginCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//openi index |
|
|
|
OpenIIndex float64 `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//user |
|
|
|
Email string `xorm:"NOT NULL"` |
|
|
|
|
|
|
|
//user |
|
|
|
Name string `xorm:"NOT NULL"` |
|
|
|
|
|
|
|
DataDate string `xorm:"NULL"` |
|
|
|
|
|
|
|
//cloudbraintask |
|
|
|
CloudBrainTaskNum int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
GpuDebugJob int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
NpuDebugJob int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
GpuTrainJob int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
NpuTrainJob int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
NpuInferenceJob int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
GpuBenchMarkJob int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
CloudBrainRunTime int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
CommitDatasetNum int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
UserIndex float64 `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
UserIndexPrimitive float64 `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
UserLocation string `xorm:"NULL"` |
|
|
|
|
|
|
|
FocusOtherUser int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
CollectDataset int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
CollectedDataset int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
RecommendDataset int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
CollectImage int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
CollectedImage int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
RecommendImage int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
Phone string `xorm:"NULL"` |
|
|
|
InvitationUserNum int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
} |
|
|
|
|
|
|
|
type UserBusinessAnalysis struct { |
|
|
|
ID int64 `xorm:"pk"` |
|
|
|
DataDate string `xorm:"pk"` |
|
|
|
CountDate int64 `xorm:"NULL"` |
|
|
|
|
|
|
|
//action :ActionMergePullRequest // 11 |
|
|
|
CodeMergeCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//action :ActionCommitRepo // 5 |
|
|
|
CommitCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//action :ActionCreateIssue // 6 |
|
|
|
IssueCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//comment table current date |
|
|
|
CommentCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//watch table current date |
|
|
|
FocusRepoCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//star table current date |
|
|
|
StarRepoCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//follow table |
|
|
|
WatchedCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
// user table |
|
|
|
GiteaAgeMonth int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
// |
|
|
|
CommitCodeSize int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//attachement table |
|
|
|
CommitDatasetSize int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//0 |
|
|
|
CommitModelCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//issue, issueassignees |
|
|
|
SolveIssueCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//baike |
|
|
|
EncyclopediasCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//user |
|
|
|
RegistDate timeutil.TimeStamp `xorm:"NOT NULL"` |
|
|
|
|
|
|
|
//repo |
|
|
|
CreateRepoCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//login count, from elk |
|
|
|
LoginCount int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//openi index |
|
|
|
OpenIIndex float64 `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
//user |
|
|
|
Email string `xorm:"NOT NULL"` |
|
|
|
|
|
|
|
//user |
|
|
|
Name string `xorm:"NOT NULL"` |
|
|
|
|
|
|
|
CloudBrainTaskNum int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
GpuDebugJob int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
NpuDebugJob int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
GpuTrainJob int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
NpuTrainJob int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
NpuInferenceJob int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
GpuBenchMarkJob int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
CloudBrainRunTime int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
CommitDatasetNum int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
UserIndex float64 `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
UserIndexPrimitive float64 `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
UserLocation string `xorm:"NULL"` |
|
|
|
|
|
|
|
FocusOtherUser int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
CollectDataset int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
CollectedDataset int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
RecommendDataset int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
CollectImage int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
CollectedImage int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
RecommendImage int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
|
|
|
|
Phone string `xorm:"NULL"` |
|
|
|
InvitationUserNum int `xorm:"NOT NULL DEFAULT 0"` |
|
|
|
} |
|
|
|
|
|
|
|
type UserBusinessAnalysisQueryOptions struct { |
|
|
|
ListOptions |
|
|
|
UserName string |
|
|
|
@@ -898,11 +719,14 @@ func refreshUserStaticTable(wikiCountMap map[string]int, tableName string, pageS |
|
|
|
if userInfo, ok := mostActiveMap[dateRecordAll.ID]; ok { |
|
|
|
mostActiveDay = getMostActiveJson(userInfo) |
|
|
|
} |
|
|
|
scoreMap := make(map[string]float64) |
|
|
|
repoInfo := getRepoDetailInfo(DetailInfoMap, dateRecordAll.ID, MostDownloadMap) |
|
|
|
dataSetInfo := getDataSetInfo(dateRecordAll.ID, CreatedDataset, dataSetDownloadMap, CommitDatasetNumMap, CollectedDataset) |
|
|
|
codeInfo := getCodeInfo(dateRecordAll) |
|
|
|
cloudBrainInfo := getCloudBrainInfo(dateRecordAll, CloudBrainTaskItemMap) |
|
|
|
playARoll := getPlayARoll(bonusMap, dateRecordAll.Name) |
|
|
|
dataSetInfo, datasetscore := getDataSetInfo(dateRecordAll.ID, CreatedDataset, dataSetDownloadMap, CommitDatasetNumMap, CollectedDataset) |
|
|
|
scoreMap["datasetscore"] = datasetscore |
|
|
|
codeInfo, codescore := getCodeInfo(dateRecordAll) |
|
|
|
scoreMap["codescore"] = codescore |
|
|
|
cloudBrainInfo := getCloudBrainInfo(dateRecordAll, CloudBrainTaskItemMap, scoreMap) |
|
|
|
playARoll := getPlayARoll(bonusMap, dateRecordAll.Name, scoreMap) |
|
|
|
re := &UserSummaryCurrentYear{ |
|
|
|
ID: dateRecordAll.ID, |
|
|
|
Name: dateRecordAll.Name, |
|
|
|
@@ -986,11 +810,16 @@ func getIntValue(val string) int { |
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
func getPlayARoll(bonusMap map[string]map[string]int, userName string) string { |
|
|
|
func getPlayARoll(bonusMap map[string]map[string]int, userName string, scoreMap map[string]float64) string { |
|
|
|
bonusInfo := make(map[string]string) |
|
|
|
record, ok := bonusMap[userName] |
|
|
|
if ok { |
|
|
|
rollscore := 0.0 |
|
|
|
bonusInfo["times"] = fmt.Sprint(record["times"]) |
|
|
|
if record["times"] >= 4 { |
|
|
|
rollscore = float64(record["times"]) / float64(4) |
|
|
|
} |
|
|
|
scoreMap["rollscore"] = rollscore |
|
|
|
bonusInfo["total_bonus"] = fmt.Sprint(record["total_bonus"]) |
|
|
|
bonusInfo["total_cardtime"] = fmt.Sprint(record["total_cardtime"]) |
|
|
|
bonusInfo["total_giveup"] = fmt.Sprint(record["total_giveup"]) |
|
|
|
@@ -1001,43 +830,69 @@ func getPlayARoll(bonusMap map[string]map[string]int, userName string) string { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func getCloudBrainInfo(dateRecordAll UserBusinessAnalysisAll, CloudBrainTaskItemMap map[string]int) string { |
|
|
|
func getCloudBrainInfo(dateRecordAll UserBusinessAnalysisAll, CloudBrainTaskItemMap map[string]int, scoreMap map[string]float64) string { |
|
|
|
trainscore := 0.0 |
|
|
|
debugscore := 0.0 |
|
|
|
runtime := 0.0 |
|
|
|
if dateRecordAll.CloudBrainTaskNum > 0 { |
|
|
|
cloudBrainInfo := make(map[string]string) |
|
|
|
cloudBrainInfo["create_task_num"] = fmt.Sprint(dateRecordAll.CloudBrainTaskNum) |
|
|
|
cloudBrainInfo["debug_task_num"] = fmt.Sprint(dateRecordAll.GpuDebugJob + dateRecordAll.NpuDebugJob) |
|
|
|
if dateRecordAll.GpuDebugJob+dateRecordAll.NpuDebugJob >= 50 { |
|
|
|
debugscore = float64(dateRecordAll.GpuDebugJob+dateRecordAll.NpuDebugJob) / float64(50) |
|
|
|
} |
|
|
|
cloudBrainInfo["train_task_num"] = fmt.Sprint(dateRecordAll.GpuTrainJob + dateRecordAll.NpuTrainJob) |
|
|
|
if dateRecordAll.GpuTrainJob+dateRecordAll.NpuTrainJob >= 50 { |
|
|
|
trainscore = float64(dateRecordAll.GpuTrainJob+dateRecordAll.NpuTrainJob) / float64(50) |
|
|
|
} |
|
|
|
cloudBrainInfo["inference_task_num"] = fmt.Sprint(dateRecordAll.NpuInferenceJob + CloudBrainTaskItemMap[fmt.Sprint(dateRecordAll.ID)+"_GpuInferenceJob"]) |
|
|
|
cloudBrainInfo["card_runtime"] = fmt.Sprint(dateRecordAll.CloudBrainRunTime) |
|
|
|
if dateRecordAll.CloudBrainRunTime >= 100 { |
|
|
|
runtime = float64(dateRecordAll.CloudBrainRunTime) / float64(100) |
|
|
|
} |
|
|
|
cloudBrainInfo["card_runtime_money"] = fmt.Sprint(dateRecordAll.CloudBrainRunTime * 5) |
|
|
|
cloudBrainInfo["CloudBrainOne"] = fmt.Sprint(CloudBrainTaskItemMap[fmt.Sprint(dateRecordAll.ID)+"_CloudBrainOne"]) |
|
|
|
cloudBrainInfo["CloudBrainTwo"] = fmt.Sprint(CloudBrainTaskItemMap[fmt.Sprint(dateRecordAll.ID)+"_CloudBrainTwo"]) |
|
|
|
cloudBrainInfo["C2Net"] = fmt.Sprint(CloudBrainTaskItemMap[fmt.Sprint(dateRecordAll.ID)+"_C2Net"]) |
|
|
|
|
|
|
|
cloudBrainInfoJson, _ := json.Marshal(cloudBrainInfo) |
|
|
|
scoreMap["trainscore"] = trainscore |
|
|
|
scoreMap["debugscore"] = debugscore |
|
|
|
scoreMap["runtime"] = runtime |
|
|
|
return string(cloudBrainInfoJson) |
|
|
|
} else { |
|
|
|
scoreMap["trainscore"] = trainscore |
|
|
|
scoreMap["debugscore"] = debugscore |
|
|
|
scoreMap["runtime"] = runtime |
|
|
|
return "" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func getCodeInfo(dateRecordAll UserBusinessAnalysisAll) string { |
|
|
|
func getCodeInfo(dateRecordAll UserBusinessAnalysisAll) (string, float64) { |
|
|
|
if dateRecordAll.CommitCount > 0 { |
|
|
|
codeInfo := make(map[string]string) |
|
|
|
codeInfo["commit_count"] = fmt.Sprint(dateRecordAll.CommitCount) |
|
|
|
codeInfo["commit_line"] = fmt.Sprint(dateRecordAll.CommitCodeSize) |
|
|
|
score := 0.0 |
|
|
|
score = float64(dateRecordAll.CommitCodeSize) / float64(dateRecordAll.CommitCount) / float64(20000) |
|
|
|
if score < (float64(dateRecordAll.CommitCount) / float64(100)) { |
|
|
|
score = float64(dateRecordAll.CommitCount) / float64(100) |
|
|
|
} |
|
|
|
codeInfo["score"] = fmt.Sprintf("%.2f", score) |
|
|
|
|
|
|
|
codeInfoJson, _ := json.Marshal(codeInfo) |
|
|
|
return string(codeInfoJson) |
|
|
|
return string(codeInfoJson), score |
|
|
|
} else { |
|
|
|
return "" |
|
|
|
return "", 0 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func getDataSetInfo(userId int64, CreatedDataset map[int64]int, dataSetDownloadMap map[int64]int, CommitDatasetNumMap map[int64]int, CollectedDataset map[int64]int) string { |
|
|
|
func getDataSetInfo(userId int64, CreatedDataset map[int64]int, dataSetDownloadMap map[int64]int, CommitDatasetNumMap map[int64]int, CollectedDataset map[int64]int) (string, float64) { |
|
|
|
datasetInfo := make(map[string]string) |
|
|
|
score := 0.0 |
|
|
|
if create_count, ok := CreatedDataset[userId]; ok { |
|
|
|
datasetInfo["create_count"] = fmt.Sprint(create_count) |
|
|
|
score = float64(create_count) / 10 |
|
|
|
} |
|
|
|
if upload_count, ok := CommitDatasetNumMap[userId]; ok { |
|
|
|
datasetInfo["upload_file_count"] = fmt.Sprint(upload_count) |
|
|
|
@@ -1048,11 +903,12 @@ func getDataSetInfo(userId int64, CreatedDataset map[int64]int, dataSetDownloadM |
|
|
|
if cllected_count, ok := CollectedDataset[userId]; ok { |
|
|
|
datasetInfo["cllected_count"] = fmt.Sprint(cllected_count) |
|
|
|
} |
|
|
|
|
|
|
|
if len(datasetInfo) > 0 { |
|
|
|
datasetInfoJson, _ := json.Marshal(datasetInfo) |
|
|
|
return string(datasetInfoJson) |
|
|
|
return string(datasetInfoJson), score |
|
|
|
} else { |
|
|
|
return "" |
|
|
|
return "", score |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|