From 2a3b45dca82d08b1a498e0cfd910b8e666ba1e76 Mon Sep 17 00:00:00 2001 From: chenyifan01 Date: Mon, 11 Jul 2022 11:42:51 +0800 Subject: [PATCH] #2225 fix bug --- models/reward_admin_log.go | 10 ++++++++++ models/reward_operate_record.go | 35 ++++++++++++++++++++++++++++++++--- 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/models/reward_admin_log.go b/models/reward_admin_log.go index fd79c3ed9..8ab4e823d 100644 --- a/models/reward_admin_log.go +++ b/models/reward_admin_log.go @@ -23,6 +23,16 @@ type RewardAdminLog struct { CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` } +func (r *RewardAdminLog) ToShow() *RewardAdminLogShow { + return &RewardAdminLogShow{ + CreatorName: r.CreatorName, + } +} + +type RewardAdminLogShow struct { + CreatorName string +} + type AdminLogAndUser struct { AdminRewardAdminLog RewardAdminLog `xorm:"extends"` User User `xorm:"extends"` diff --git a/models/reward_operate_record.go b/models/reward_operate_record.go index a4d198c5a..52d809ee6 100644 --- a/models/reward_operate_record.go +++ b/models/reward_operate_record.go @@ -117,9 +117,12 @@ const ( type RewardRecordList []*RewardOperateRecord type RewardRecordShowList []*RewardOperateRecordShow -func (l RewardRecordShowList) loadAttribute() { +func (l RewardRecordShowList) loadAttribute(isAdmin bool) { l.loadAction() l.loadCloudbrain() + if isAdmin { + l.loadAdminLog() + } } func (l RewardRecordShowList) loadAction() error { @@ -181,6 +184,31 @@ func (l RewardRecordShowList) loadCloudbrain() error { } +func (l RewardRecordShowList) loadAdminLog() error { + if len(l) == 0 { + return nil + } + logIds := make([]string, 0) + logMap := make(map[string]*RewardOperateRecordShow, 0) + for _, r := range l { + if r.SourceType != SourceTypeAdminOperate.Name() { + continue + } + logIds = append(logIds, r.SourceId) + logMap[r.SourceId] = r + } + adminLogs, err := GetRewardAdminLogByLogIds(logIds) + if err != nil { + return err + } + for _, v := range adminLogs { + logMap[v.LogId].AdminLog = v.ToShow() + } + + return nil + +} + type RewardOperateRecord struct { ID int64 `xorm:"pk autoincr"` SerialNo string `xorm:"INDEX NOT NULL"` @@ -225,6 +253,7 @@ type RewardOperateRecordShow struct { SuccessCount int Action *ActionShow Cloudbrain *CloudbrainShow + AdminLog *RewardAdminLogShow } func getPointOperateRecord(tl *RewardOperateRecord) (*RewardOperateRecord, error) { @@ -388,7 +417,7 @@ func GetRewardRecordShowList(opts *RewardRecordListOpts) (RewardRecordShowList, if err != nil { return nil, 0, err } - RewardRecordShowList(r).loadAttribute() + RewardRecordShowList(r).loadAttribute(false) return r, count, nil } @@ -423,6 +452,6 @@ func GetAdminRewardRecordShowList(opts *RewardRecordListOpts) (RewardRecordShowL if err != nil { return nil, 0, err } - RewardRecordShowList(r).loadAttribute() + RewardRecordShowList(r).loadAttribute(true) return r, count, nil }