修改优质留言发放积分逻辑
This commit is contained in:
parent
30ab9f8fa0
commit
b1605f025f
@ -64,9 +64,96 @@ func (r *UserService) HandleUserImage(wxAvatar string) (ossPath string, err erro
|
|||||||
// ReportUserScore 发放积分
|
// ReportUserScore 发放积分
|
||||||
// scoreType : 积分类型(1:完成阅读 2:阅读时间满足 3:优质留言 4:再次优质留言 )
|
// scoreType : 积分类型(1:完成阅读 2:阅读时间满足 3:优质留言 4:再次优质留言 )
|
||||||
func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId int64, scoreType int, user *model.User) (err error) {
|
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{}
|
projectPlatformDao := dao.ProjectPlatformDao{}
|
||||||
maps := make(map[string]interface{})
|
|
||||||
maps["project_id"] = projectId
|
maps["project_id"] = projectId
|
||||||
maps["platform_id"] = platformId
|
maps["platform_id"] = platformId
|
||||||
projectPlatform, err := projectPlatformDao.GetProjectPlatform(maps)
|
projectPlatform, err := projectPlatformDao.GetProjectPlatform(maps)
|
||||||
@ -111,45 +198,6 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
|||||||
nodeName = "优质留言"
|
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
|
isWhite := true
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user