Merge branch 'dev'

This commit is contained in:
wucongxing8150 2025-03-13 15:14:47 +08:00
commit 588abccb72
2 changed files with 30 additions and 25 deletions

View File

@ -117,6 +117,10 @@ func (b *User) GetUserScore(c *gin.Context) {
// 优质留言 // 优质留言
var describe []string var describe []string
for _, score := range recordScores { for _, score := range recordScores {
if score.Score == 0 {
continue
}
d := score.NodeName + ":" d := score.NodeName + ":"
if score.Type == 4 { if score.Type == 4 {

View File

@ -341,51 +341,52 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
return nil return nil
} }
// 检测白名单
if projectPlatform.IsWhite == 1 {
projectPlatformWhiteService := ProjectPlatformWhiteService{}
isWhite, err := projectPlatformWhiteService.CheckProjectPlatformWhiteByUser(user, projectId, platformId)
if err != nil {
return err
}
// 非白名单用户,无需发放积分
if isWhite == false {
return nil
}
}
// 获取需发放积分 // 获取需发放积分
reportScore := 0 score := 0
appScoreTypeStr := "" // 积分发放原因-app appScoreTypeStr := "" // 积分发放原因-app
superScoreTypeStr := "" // 积分发放原因-超级袋鼠 superScoreTypeStr := "" // 积分发放原因-超级袋鼠
nodeName := "" // 获取积分节点名称 nodeName := "" // 获取积分节点名称
if scoreType == 1 { if scoreType == 1 {
// 完成阅读 // 完成阅读
reportScore = projectPlatform.CompleteRead score = projectPlatform.CompleteRead
appScoreTypeStr = "互动病例-完成阅读" appScoreTypeStr = "互动病例-完成阅读"
superScoreTypeStr = "调研奖励(完成阅读)" superScoreTypeStr = "调研奖励(完成阅读)"
nodeName = "学习" nodeName = "学习"
} else if scoreType == 2 { } else if scoreType == 2 {
// 阅读时间满足 // 阅读时间满足
reportScore = projectPlatform.CompleteReadTime score = projectPlatform.CompleteReadTime
appScoreTypeStr = "互动病例-阅读时间满足" appScoreTypeStr = "互动病例-阅读时间满足"
superScoreTypeStr = "调研奖励(阅读质量)" superScoreTypeStr = "调研奖励(阅读质量)"
nodeName = "阅读达标" nodeName = "阅读达标"
} else if scoreType == 3 { } else if scoreType == 3 {
// 优质留言 // 优质留言
reportScore = projectPlatform.FirstHighQuality score = projectPlatform.FirstHighQuality
appScoreTypeStr = "互动病例-优质留言" appScoreTypeStr = "互动病例-优质留言"
superScoreTypeStr = "调研奖励(社区贡献)" superScoreTypeStr = "调研奖励(社区贡献)"
nodeName = "优质留言" nodeName = "优质留言"
} else if scoreType == 4 { } else if scoreType == 4 {
// 再次优质留言 // 再次优质留言
reportScore = projectPlatform.OnceMoreHighQuality score = projectPlatform.OnceMoreHighQuality
appScoreTypeStr = "互动病例-优质留言" appScoreTypeStr = "互动病例-优质留言"
superScoreTypeStr = "调研奖励(社区贡献)" superScoreTypeStr = "调研奖励(社区贡献)"
nodeName = "优质留言" nodeName = "优质留言"
} }
// 检测白名单-无需检测白名单
var isWhite bool
if projectPlatform.IsWhite == 1 {
projectPlatformWhiteService := ProjectPlatformWhiteService{}
isWhite, err = projectPlatformWhiteService.CheckProjectPlatformWhiteByUser(user, projectId, platformId)
if err != nil {
return err
}
}
// 当用户为非白名单时,重置积分数
if isWhite == false {
score = 0
}
recordScoreDao := dao.RecordScoreDao{} recordScoreDao := dao.RecordScoreDao{}
// 检测是否有相同手机号用户 // 检测是否有相同手机号用户
@ -437,7 +438,7 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
UserName: user.UserName, UserName: user.UserName,
Type: scoreType, Type: scoreType,
NodeName: nodeName, NodeName: nodeName,
Score: reportScore, Score: score,
} }
recordScore, err = recordScoreDao.AddRecordScore(tx, recordScore) recordScore, err = recordScoreDao.AddRecordScore(tx, recordScore)
@ -457,20 +458,20 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
} }
// 累计用户领取积分数据 // 累计用户领取积分数据
err = caseUserDao.Inc(tx, caseUser.CaseUserId, "total_score", reportScore) err = caseUserDao.Inc(tx, caseUser.CaseUserId, "total_score", score)
if err != nil { if err != nil {
return err return err
} }
// 累计平台发放积分数据 // 累计平台发放积分数据
err = casePlatformDao.Inc(tx, casePlatform.CasePlatformId, "issued_score", reportScore) err = casePlatformDao.Inc(tx, casePlatform.CasePlatformId, "issued_score", score)
if err != nil { if err != nil {
return err return err
} }
// 累计发放积分数据 // 累计发放积分数据
caseDao := dao.CaseDao{} caseDao := dao.CaseDao{}
err = caseDao.Inc(tx, caseId, "issued_score", reportScore) err = caseDao.Inc(tx, caseId, "issued_score", score)
if err != nil { if err != nil {
return err return err
} }
@ -481,8 +482,8 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
} }
// 肝胆相照 // 肝胆相照
if platformId == 1 { if platformId == 1 && score > 0 {
_, err = app.ReportUserScore(appScoreTypeStr, user.UserIden, reportScore) _, err = app.ReportUserScore(appScoreTypeStr, user.UserIden, score)
if err != nil { if err != nil {
return err return err
} }