diff --git a/models/reward_operate_record.go b/models/reward_operate_record.go index f201be646..d9114d166 100644 --- a/models/reward_operate_record.go +++ b/models/reward_operate_record.go @@ -249,22 +249,23 @@ type AdminRewardOperateReq struct { } type RewardOperateRecordShow struct { - SerialNo string - Status string - OperateType string - SourceId string - Amount int64 - LossAmount int64 - BalanceAfter int64 - Remark string - SourceType string - UserName string - LastOperateDate timeutil.TimeStamp - UnitPrice int64 - SuccessCount int - Action *ActionShow - Cloudbrain *CloudbrainShow - AdminLog *RewardAdminLogShow + SerialNo string + Status string + OperateType string + SourceId string + Amount int64 + LossAmount int64 + BalanceAfter int64 + Remark string + SourceType string + SourceTemplateId string + UserName string + LastOperateDate timeutil.TimeStamp + UnitPrice int64 + SuccessCount int + Action *ActionShow + Cloudbrain *CloudbrainShow + AdminLog *RewardAdminLogShow } func getPointOperateRecord(tl *RewardOperateRecord) (*RewardOperateRecord, error) { @@ -419,7 +420,7 @@ func GetRewardRecordShowList(opts *RewardRecordListOpts) (RewardRecordShowList, r := make([]*RewardOperateRecordShow, 0) err = x.Table("reward_operate_record").Cols("reward_operate_record.source_id", "reward_operate_record.serial_no", "reward_operate_record.status", "reward_operate_record.operate_type", "reward_operate_record.amount", - "reward_operate_record.loss_amount", "reward_operate_record.remark", "reward_operate_record.source_type", + "reward_operate_record.loss_amount", "reward_operate_record.remark", "reward_operate_record.source_type", "reward_operate_record.source_template_id", "reward_operate_record.last_operate_unix as last_operate_date"). Where(cond).Limit(opts.PageSize, (opts.Page-1)*opts.PageSize).OrderBy(string(opts.OrderBy)).Find(&r) @@ -441,7 +442,7 @@ func GetAdminRewardRecordShowList(opts *RewardRecordListOpts) (RewardRecordShowL case OperateTypeIncrease: err = x.Table("reward_operate_record").Cols("reward_operate_record.source_id", "reward_operate_record.serial_no", "reward_operate_record.status", "reward_operate_record.operate_type", "reward_operate_record.amount", - "reward_operate_record.loss_amount", "reward_operate_record.remark", "reward_operate_record.source_type", + "reward_operate_record.loss_amount", "reward_operate_record.remark", "reward_operate_record.source_type", "reward_operate_record.source_template_id", "reward_operate_record.last_operate_unix as last_operate_date", "public.user.name as user_name", "point_account_log.balance_after"). Join("LEFT", "public.user", "reward_operate_record.user_id = public.user.id"). @@ -450,7 +451,7 @@ func GetAdminRewardRecordShowList(opts *RewardRecordListOpts) (RewardRecordShowL case OperateTypeDecrease: err = x.Table("reward_operate_record").Cols("reward_operate_record.source_id", "reward_operate_record.serial_no", "reward_operate_record.status", "reward_operate_record.operate_type", "reward_operate_record.amount", - "reward_operate_record.loss_amount", "reward_operate_record.remark", "reward_operate_record.source_type", + "reward_operate_record.loss_amount", "reward_operate_record.remark", "reward_operate_record.source_type", "reward_operate_record.source_template_id", "reward_operate_record.last_operate_unix as last_operate_date", "public.user.name as user_name", "reward_periodic_task.amount as unit_price", "reward_periodic_task.success_count"). Join("LEFT", "public.user", "reward_operate_record.user_id = public.user.id"). diff --git a/web_src/vuepages/langs/config/en-US.js b/web_src/vuepages/langs/config/en-US.js index 9258d1656..bcd1cfe43 100644 --- a/web_src/vuepages/langs/config/en-US.js +++ b/web_src/vuepages/langs/config/en-US.js @@ -54,6 +54,7 @@ const en = { taskName: 'Task Name', createdRepository: 'created repository ', + repositoryWasDel: 'repository was deleted', openedIssue: 'opened issue ', createdPullRequest: 'created pull request ', commentedOnIssue: 'commented on issue ', diff --git a/web_src/vuepages/langs/config/zh-CN.js b/web_src/vuepages/langs/config/zh-CN.js index c9d9f7a8c..5b8e800d8 100644 --- a/web_src/vuepages/langs/config/zh-CN.js +++ b/web_src/vuepages/langs/config/zh-CN.js @@ -54,6 +54,7 @@ const zh = { taskName: '任务名称', createdRepository: '创建了项目', + repositoryWasDel: '项目已删除', openedIssue: '创建了任务', createdPullRequest: '创建了合并请求', commentedOnIssue: '评论了任务', diff --git a/web_src/vuepages/pages/reward/point/utils.js b/web_src/vuepages/pages/reward/point/utils.js index 4d0f359a3..800fd64e2 100644 --- a/web_src/vuepages/pages/reward/point/utils.js +++ b/web_src/vuepages/pages/reward/point/utils.js @@ -25,7 +25,7 @@ const getJobType = (key) => { }; const getJobTypeLink = (record, type) => { - let link = type === 'INCREASE' ? record.Action.RepoLink : '/' + record.Cloudbrain.RepoFullName; + let link = type === 'INCREASE' ? record.Action?.RepoLink : '/' + record.Cloudbrain?.RepoFullName; const cloudbrain = type === 'INCREASE' ? record.Action?.Cloudbrain : record.Cloudbrain; switch (cloudbrain?.JobType) { case 'DEBUG': @@ -61,7 +61,7 @@ const renderSpecStr = (spec, showPoint) => { var gpuMemStr = spec.GPUMemGiB != 0 ? `${i18n.t('resourcesManagement.gpuMem')}: ${spec.GPUMemGiB}GB, ` : ''; var sharedMemStr = spec.ShareMemGiB != 0 ? `, ${i18n.t('resourcesManagement.shareMem')}: ${spec.ShareMemGiB}GB` : ''; var workServerNum = spec.workServerNumber; - var workServerNumStr = showPoint && workServerNum != 1 && spec.UnitPrice != 0 ? '*' + workServerNum + i18n.t('resourcesManagement.node') : ''; + var workServerNumStr = showPoint && workServerNum != 1 && spec.UnitPrice != 0 ? '*' + workServerNum + i18n.t('resourcesManagement.node') : ''; var pointStr = showPoint ? `, ${spec.UnitPrice == 0 ? i18n.t('resourcesManagement.free') : spec.UnitPrice + i18n.t('resourcesManagement.point_hr') + workServerNumStr}` : ''; var specStr = `${ngpu}, CPU: ${spec.CpuCores}, ${gpuMemStr}${i18n.t('resourcesManagement.mem')}: ${spec.MemGiB}GB${sharedMemStr}${pointStr}`; return specStr; @@ -79,7 +79,7 @@ export const getRewardPointRecordInfo = (record) => { duration: record?.Cloudbrain?.Duration || '--', taskName: record?.Cloudbrain?.DisplayJobName || '--', taskId: record?.Cloudbrain?.ID, - action: record?.Action?.TaskType ? getPointAction(record.Action.TaskType) : '--', + action: record?.SourceTemplateId ? getPointAction(record.SourceTemplateId) : '--', remark: record.Remark, amount: record.Amount, }; @@ -91,33 +91,41 @@ export const getRewardPointRecordInfo = (record) => { record.Action.Cloudbrain.oJobType = 'MODELSAFETY'; record.Action.Cloudbrain.JobType = 'BENCHMARK'; } - switch (record?.Action?.TaskType) { + switch (record?.SourceTemplateId) { case 'CreatePublicRepo': // 创建公开项目 - 创建了项目OpenI/aiforge - out.remark = `${i18n.t('createdRepository')}${record.Action.ShortRepoFullDisplayName}`; + out.remark = record.Action ? `${i18n.t('createdRepository')}${record.Action.ShortRepoFullDisplayName}` + : `${getPointAction(record.SourceTemplateId)}(${i18n.t('repositoryWasDel')})`; break; case 'CreateIssue': // 每日提出任务 - 创建了任务PCL-Platform.Intelligence/AISynergy#19 - out.remark = `${i18n.t('openedIssue')}${record.Action.ShortRepoFullDisplayName}#${record.Action.IssueInfos[0]}`; + out.remark = record.Action ? `${i18n.t('openedIssue')}${record.Action.ShortRepoFullDisplayName}#${record.Action.IssueInfos[0]}` + : `${getPointAction(record.SourceTemplateId)}(${i18n.t('repositoryWasDel')})`; break; case 'CreatePullRequest': // 每日提出PR - 创建了合并请求OpenI/aiforge#1 - out.remark = `${i18n.t('createdPullRequest')}${record.Action.ShortRepoFullDisplayName}#${record.Action.IssueInfos[0]}`; + out.remark = record.Action ? `${i18n.t('createdPullRequest')}${record.Action.ShortRepoFullDisplayName}#${record.Action.IssueInfos[0]}` + : `${getPointAction(record.SourceTemplateId)}(${i18n.t('repositoryWasDel')})`; break; case 'CommentIssue': // 发表评论 - 评论了任务PCL-Platform.Intelligence/AISynergy#19 - out.remark = `${i18n.t('commentedOnIssue')}${record.Action.ShortRepoFullDisplayName}#${record.Action.IssueInfos[0]}`; + out.remark = record.Action ? `${i18n.t('commentedOnIssue')}${record.Action.ShortRepoFullDisplayName}#${record.Action.IssueInfos[0]}` + : `${getPointAction(record.SourceTemplateId)}(${i18n.t('repositoryWasDel')})`; break; case 'UploadAttachment': // 上传数据集文件 - 上传了数据集文件MMISTData.zip - out.remark = `${i18n.t('uploadDataset')}${record.Action.RefName}`; + out.remark = record.Action ? `${i18n.t('uploadDataset')}${record.Action?.RefName}` + : `${getPointAction(record.SourceTemplateId)}(${i18n.t('repositoryWasDel')})`; break; case 'CreateNewModelTask': // 导入新模型 - 导入了新模型resnet50_qx7l - out.remark = `${i18n.t('createdNewModel')}${record.Action.RefName}`; + out.remark = record.Action ? `${i18n.t('createdNewModel')}${record.Action?.RefName}` + : `${getPointAction(record.SourceTemplateId)}(${i18n.t('repositoryWasDel')})`; break; case 'BindWechat': // 完成微信扫码验证 - 首次绑定微信奖励 out.remark = `${i18n.t('firstBindingWechatRewards')}`; break; case 'CreateCloudbrainTask': // 每日运行云脑任务 - 创建了(CPU/GPU/NPU)类型(调试/训练/推理/评测)任务tangl202204131431995 - out.remark = `${i18n.t('created')}${record.Action?.Cloudbrain?.ComputeResource}${i18n.t('type')}${getJobType(record.Action?.Cloudbrain?.JobType)} ${record.Action.RefName}`; + out.remark = record.Action ? `${i18n.t('created')}${record.Action?.Cloudbrain?.ComputeResource}${i18n.t('type')}${getJobType(record.Action?.Cloudbrain?.JobType)} ${record.Action.RefName}` + : `${getPointAction(record.SourceTemplateId)}(${i18n.t('repositoryWasDel')})`; break; case 'DatasetRecommended': // 数据集被平台推荐 - 数据集XXX被设置为推荐数据集 - out.remark = `${i18n.t('dataset')}${record.Action.Content && record.Action.Content.split('|')[1]}${i18n.t('setAsRecommendedDataset')}`; + out.remark = record.Action ? `${i18n.t('dataset')}${record.Action.Content && record.Action.Content.split('|')[1]}${i18n.t('setAsRecommendedDataset')}` + : `${getPointAction(record.SourceTemplateId)}(${i18n.t('repositoryWasDel')})`; break; case 'CreateImage': // 提交新公开镜像 - 提交了镜像jiangxiang_ceshi_tang03 out.remark = `${i18n.t('committedImage')}${record.Action.Content && record.Action.Content.split('|')[1]}`; @@ -129,33 +137,37 @@ export const getRewardPointRecordInfo = (record) => { out.remark = `${i18n.t('updatedAvatar')}`; break; case 'PushCommits': // 每日commit - 推送了xxxx分支的代码到OpenI/aiforge - const opType = record.Action.OpType; - if (opType == 5) { - const words = record.Action.RefName.split('/'); - const branch = words[words.length - 1]; - out.remark = `${i18n.t('pushedBranch', { - branch: `${branch}` - })}${record.Action.ShortRepoFullDisplayName}`; - } else if (opType == 9) { - const words = record.Action.RefName.split('/'); - const tag = words[words.length - 1]; - out.remark = `${i18n.t('pushedTag', { - tag: `${tag}` - })}${record.Action.ShortRepoFullDisplayName}`; - } else if (opType == 16) { - const words = record.Action.RefName.split('/'); - const tag = words[words.length - 1]; - out.remark = `${i18n.t('deleteTag', { - repo: `${record.Action.ShortRepoFullDisplayName}`, - tag: tag, - })}`; - } else if (opType == 17) { - const words = record.Action.RefName.split('/'); - const branch = words[words.length - 1]; - out.remark = `${i18n.t('deleteBranch', { - repo: `${record.Action.ShortRepoFullDisplayName}`, - branch: branch, - })}`; + if (record?.Action) { + const opType = record.Action.OpType; + if (opType == 5) { + const words = record.Action.RefName.split('/'); + const branch = words[words.length - 1]; + out.remark = `${i18n.t('pushedBranch', { + branch: `${branch}` + })}${record.Action.ShortRepoFullDisplayName}`; + } else if (opType == 9) { + const words = record.Action.RefName.split('/'); + const tag = words[words.length - 1]; + out.remark = `${i18n.t('pushedTag', { + tag: `${tag}` + })}${record.Action.ShortRepoFullDisplayName}`; + } else if (opType == 16) { + const words = record.Action.RefName.split('/'); + const tag = words[words.length - 1]; + out.remark = `${i18n.t('deleteTag', { + repo: `${record.Action.ShortRepoFullDisplayName}`, + tag: tag, + })}`; + } else if (opType == 17) { + const words = record.Action.RefName.split('/'); + const branch = words[words.length - 1]; + out.remark = `${i18n.t('deleteBranch', { + repo: `${record.Action.ShortRepoFullDisplayName}`, + branch: branch, + })}`; + } + } else { + out.remark = `${getPointAction(record.SourceTemplateId)}(${i18n.t('repositoryWasDel')})`; } break; default: @@ -174,7 +186,11 @@ export const getRewardPointRecordInfo = (record) => { } else if (record.SourceType === 'ACCOMPLISH_TASK') { // } else if (record.SourceType === 'RUN_CLOUDBRAIN_TASK') { - out.taskName = `${record?.Cloudbrain?.DisplayJobName}`; + if (!record.Cloudbrain?.RepoFullName) { + out.taskName = `${record?.Cloudbrain?.DisplayJobName}(${i18n.t('repositoryWasDel')})`; + } else { + out.taskName = `${record?.Cloudbrain?.DisplayJobName}`; + } const resourceSpec = record?.Cloudbrain?.ResourceSpec; if (resourceSpec) { resourceSpec.workServerNumber = record?.Cloudbrain?.WorkServerNumber || 1;