修改优质留言发放积分逻辑
This commit is contained in:
parent
30ab9f8fa0
commit
b1605f025f
@ -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 {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user