修改优质留言发放积分逻辑

This commit is contained in:
haomingming 2025-10-10 14:08:06 +08:00
parent 30ab9f8fa0
commit b1605f025f

View File

@ -64,9 +64,96 @@ func (r *UserService) HandleUserImage(wxAvatar string) (ossPath string, err erro
// ReportUserScore 发放积分
// scoreType : 积分类型1:完成阅读 2:阅读时间满足 3:优质留言 4:再次优质留言
func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId int64, scoreType int, user *model.User) (err error) {
maps := make(map[string]interface{})
// // 获取项目关联平台
// projectPlatformDao := dao.ProjectPlatformDao{}
// maps["project_id"] = projectId
// maps["platform_id"] = platformId
// projectPlatform, err := projectPlatformDao.GetProjectPlatform(maps)
// if err != nil {
// return err
// }
// // 检测福利开关
// if projectPlatform.IsWelfare == 0 {
// // 福利未开
// return nil
// }
// // 获取需发放积分
// score := 0
// appScoreTypeStr := "" // 积分发放原因-app
// superScoreTypeStr := "" // 积分发放原因-超级袋鼠
// nodeName := "" // 获取积分节点名称
// if scoreType == 1 {
// // 完成阅读
// score = projectPlatform.CompleteRead
// appScoreTypeStr = "互动病例-完成阅读"
// superScoreTypeStr = "调研奖励(完成阅读)"
// nodeName = "学习"
// } else if scoreType == 2 {
// // 阅读时间满足
// score = projectPlatform.CompleteReadTime
// appScoreTypeStr = "互动病例-阅读时间满足"
// superScoreTypeStr = "调研奖励(阅读质量)"
// nodeName = "阅读达标"
// } else if scoreType == 3 {
// // 优质留言
// score = projectPlatform.FirstHighQuality
// appScoreTypeStr = "互动病例-优质留言"
// superScoreTypeStr = "调研奖励(社区贡献)"
// nodeName = "优质留言"
// } else if scoreType == 4 {
// // 再次优质留言
// score = projectPlatform.OnceMoreHighQuality
// appScoreTypeStr = "互动病例-优质留言"
// superScoreTypeStr = "调研奖励(社区贡献)"
// nodeName = "优质留言"
// }
recordScoreDao := dao.RecordScoreDao{}
// 检测是否有相同手机号用户
userDao := dao.UserDao{}
maps = make(map[string]interface{})
maps["mobile_encryption"] = user.MobileEncryption
users, err := userDao.GetUserList(maps)
if err != nil {
return nil
}
for _, m := range users {
// 检测积分是否已在其他平台发放过
maps = make(map[string]interface{})
maps["project_id"] = projectId
maps["case_id"] = caseId
maps["user_id"] = m.UserId
recordScore, _ := recordScoreDao.GetRecordScoreUseTx(tx, maps)
if recordScore != nil {
if recordScore.PlatformId != platformId {
// 由其他平台进行发放积分 修改平台id为其他平台id
platformId = recordScore.PlatformId
user = m
}
}
// 检测该类型积分是否已经发放(其他平台也算)
maps = make(map[string]interface{})
maps["project_id"] = projectId
maps["case_id"] = caseId
maps["platform_id"] = platformId
maps["user_id"] = m.UserId
maps["type"] = scoreType
recordScore, _ = recordScoreDao.GetRecordScore(maps)
if recordScore != nil {
// 积分已发放过
return nil
}
}
// 获取项目关联平台
projectPlatformDao := dao.ProjectPlatformDao{}
maps := make(map[string]interface{})
maps["project_id"] = projectId
maps["platform_id"] = platformId
projectPlatform, err := projectPlatformDao.GetProjectPlatform(maps)
@ -111,46 +198,7 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
nodeName = "优质留言"
}
recordScoreDao := dao.RecordScoreDao{}
// 检测是否有相同手机号用户
userDao := dao.UserDao{}
maps = make(map[string]interface{})
maps["mobile_encryption"] = user.MobileEncryption
users, err := userDao.GetUserList(maps)
if err != nil {
return nil
}
for _, m := range users {
// 检测积分是否已在其他平台发放过
maps = make(map[string]interface{})
maps["project_id"] = projectId
maps["case_id"] = caseId
maps["user_id"] = m.UserId
recordScore, _ := recordScoreDao.GetRecordScoreUseTx(tx, maps)
if recordScore != nil {
if recordScore.PlatformId != platformId {
// 由其他平台进行发放积分 修改平台id为其他平台id
platformId = recordScore.PlatformId
user = m
}
}
// 检测该类型积分是否已经发放(其他平台也算)
maps = make(map[string]interface{})
maps["project_id"] = projectId
maps["case_id"] = caseId
maps["platform_id"] = platformId
maps["user_id"] = m.UserId
maps["type"] = scoreType
recordScore, _ = recordScoreDao.GetRecordScore(maps)
if recordScore != nil {
// 积分已发放过
return nil
}
}
// 默认为白名单用户
isWhite := true
if projectPlatform.IsWhite == 1 {