Compare commits
10 Commits
8a1845ae52
...
1a2dcdd2be
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a2dcdd2be | ||
|
|
058ea3f8d6 | ||
|
|
e45d806d91 | ||
|
|
e261364482 | ||
|
|
48a5141054 | ||
|
|
410933e5b0 | ||
|
|
8fab74e064 | ||
|
|
54b66ed80a | ||
|
|
b1605f025f | ||
|
|
30ab9f8fa0 |
@ -269,17 +269,28 @@ func (b *CaseComment) AddCaseCommentHighQuality(c *gin.Context) {
|
||||
}
|
||||
}()
|
||||
|
||||
// 发放积分-优质留言
|
||||
// println(user)
|
||||
// str := fmt.Sprintf("%+v", user) // %+v 会带上字段名
|
||||
// fmt.Println(str)
|
||||
// fmt.Println(caseComment.PlatformId)
|
||||
// println("========")
|
||||
// 发放积分-优质留言-1010 修改
|
||||
userService := service.UserService{}
|
||||
err = userService.ReportUserScore(tx, result.ProjectId, caseComment.CaseId, caseComment.PlatformId, scoreType, user)
|
||||
reportPlatformId := caseComment.PlatformId
|
||||
reportPlatformId,user,err = userService.ReportUserScore(tx, result.ProjectId, caseComment.CaseId, caseComment.PlatformId, scoreType, user)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
responses.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
// println(user)
|
||||
// str2 := fmt.Sprintf("%+v", user) // %+v 会带上字段名
|
||||
// fmt.Println(str2)
|
||||
// fmt.Println(reportPlatformId)
|
||||
|
||||
// 上报用户参与情况-只上报优质留言-佳动力
|
||||
if caseComment.PlatformId == 2 {
|
||||
if reportPlatformId == 2 {
|
||||
err = userService.ReportCaseRecord(tx, result.ProjectId, caseComment.CaseId, user)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
|
||||
@ -63,21 +63,109 @@ 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) {
|
||||
func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId int64, scoreType int, user *model.User) (reportPlatformId int64, reportUser *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 platformId,user,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 platformId,user,nil
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 获取项目关联平台
|
||||
projectPlatformDao := dao.ProjectPlatformDao{}
|
||||
maps := make(map[string]interface{})
|
||||
maps = make(map[string]interface{})
|
||||
maps["project_id"] = projectId
|
||||
maps["platform_id"] = platformId
|
||||
projectPlatform, err := projectPlatformDao.GetProjectPlatform(maps)
|
||||
if err != nil {
|
||||
return err
|
||||
return platformId,user,err
|
||||
}
|
||||
|
||||
// 检测福利开关
|
||||
if projectPlatform.IsWelfare == 0 {
|
||||
// 福利未开
|
||||
return nil
|
||||
return platformId,user,nil
|
||||
}
|
||||
|
||||
// 获取需发放积分
|
||||
@ -111,53 +199,14 @@ 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 {
|
||||
projectPlatformWhiteService := ProjectPlatformWhiteService{}
|
||||
isWhite, err = projectPlatformWhiteService.CheckProjectPlatformWhiteByUser(user, projectId, platformId)
|
||||
if err != nil {
|
||||
return err
|
||||
return platformId,user,err
|
||||
}
|
||||
}
|
||||
|
||||
@ -174,14 +223,14 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
||||
maps["platform_id"] = platformId
|
||||
casePlatform, err := casePlatformDao.GetCasePlatform(maps)
|
||||
if err != nil {
|
||||
return err
|
||||
return platformId,user,err
|
||||
}
|
||||
|
||||
// 检测全部积分是否已发放完毕
|
||||
remainingScore := projectPlatform.SingleCaseScore - casePlatform.IssuedScore
|
||||
if remainingScore <= 0 {
|
||||
// 积分已发放完毕
|
||||
return nil
|
||||
return platformId,user,nil
|
||||
}
|
||||
|
||||
// 新增发放记录-每发一次记录一次
|
||||
@ -198,7 +247,7 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
||||
|
||||
recordScore, err = recordScoreDao.AddRecordScore(tx, recordScore)
|
||||
if err != nil {
|
||||
return err
|
||||
return platformId,user,err
|
||||
}
|
||||
|
||||
// 获取用户参与记录
|
||||
@ -209,38 +258,38 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
||||
maps["user_id"] = user.UserId
|
||||
caseUser, _ := caseUserDao.GetCaseUserUseTx(tx, maps)
|
||||
if caseUser == nil {
|
||||
return errors.New("用户还未完成该病例阅读,请稍后再试")
|
||||
return platformId,user,errors.New("用户还未完成该病例阅读,请稍后再试")
|
||||
}
|
||||
|
||||
// 累计用户领取积分数据
|
||||
err = caseUserDao.Inc(tx, caseUser.CaseUserId, "total_score", score)
|
||||
if err != nil {
|
||||
return err
|
||||
return platformId,user,err
|
||||
}
|
||||
|
||||
// 累计平台发放积分数据
|
||||
err = casePlatformDao.Inc(tx, casePlatform.CasePlatformId, "issued_score", score)
|
||||
if err != nil {
|
||||
return err
|
||||
return platformId,user,err
|
||||
}
|
||||
|
||||
// 累计发放积分数据
|
||||
caseDao := dao.CaseDao{}
|
||||
err = caseDao.Inc(tx, caseId, "issued_score", score)
|
||||
if err != nil {
|
||||
return err
|
||||
return platformId,user,err
|
||||
}
|
||||
|
||||
// 发放积分-
|
||||
if platformId != 1 && platformId != 2 {
|
||||
return errors.New("积分发放失败")
|
||||
return platformId,user,errors.New("积分发放失败")
|
||||
}
|
||||
|
||||
// 肝胆相照
|
||||
if platformId == 1 && score > 0 {
|
||||
_, err = app.ReportUserScore(appScoreTypeStr, user.UserIden, score)
|
||||
if err != nil {
|
||||
return err
|
||||
return platformId,user,err
|
||||
}
|
||||
}
|
||||
|
||||
@ -250,16 +299,16 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
||||
caseDao := dao.CaseDao{}
|
||||
result, err := caseDao.GetCaseById(caseId)
|
||||
if err != nil {
|
||||
return err
|
||||
return platformId,user,err
|
||||
}
|
||||
|
||||
_, err = superKangaroo.ReportUserScore(caseId, user.UserIden, superScoreTypeStr, recordScore, result)
|
||||
if err != nil {
|
||||
return err
|
||||
return platformId,user,err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
return platformId,user,nil
|
||||
}
|
||||
|
||||
// ReportCaseRecord 上报用户参与情况-只上报优质留言
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user