Compare commits
3 Commits
781365ea4a
...
db436c4faa
| Author | SHA1 | Date | |
|---|---|---|---|
| db436c4faa | |||
| 900977dc28 | |||
| d99f948c2b |
@ -150,6 +150,9 @@ func (r *CaseUserDao) GetCaseUserPageSearch(req requests.GetStatsCaseUserPage, p
|
||||
// 用户
|
||||
query = query.Preload("User")
|
||||
|
||||
// 病例
|
||||
query = query.Preload("Case")
|
||||
|
||||
// 用户医院
|
||||
query = query.Preload("User.Hospital")
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ package dto
|
||||
|
||||
import (
|
||||
"case-admin-api/api/model"
|
||||
"case-admin-api/api/service"
|
||||
"case-admin-api/utils"
|
||||
"fmt"
|
||||
)
|
||||
@ -25,6 +26,7 @@ type CaseUserDto struct {
|
||||
DepartmentName string `json:"department_name"` // 科室
|
||||
Title string `json:"title"` // 职称
|
||||
UserName string `json:"user_name"` // 用户名称
|
||||
UserIsWhite int `json:"user_is_white"` // 用户是否白名单(0:否 1:是)
|
||||
}
|
||||
|
||||
// GetCaseUserListDto 列表
|
||||
@ -69,6 +71,9 @@ func GetCaseUserListDto(m []*model.CaseUser) []*CaseUserDto {
|
||||
|
||||
response = response.LoadHospitalName(v.User.Hospital)
|
||||
}
|
||||
|
||||
// 加载数据-用户白名单
|
||||
response = response.LoadUserIsWhite(v.User, v.Case, v.Platform)
|
||||
}
|
||||
|
||||
// 将转换后的结构体添加到新切片中
|
||||
@ -132,3 +137,16 @@ func (r *CaseUserDto) LoadHospitalName(m *model.BasicHospital) *CaseUserDto {
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
// LoadUserIsWhite 加载数据-用户白名单
|
||||
func (r *CaseUserDto) LoadUserIsWhite(m *model.User, c *model.Case, p *model.Platform) *CaseUserDto {
|
||||
if m != nil && c != nil && p != nil {
|
||||
projectPlatformWhiteService := service.ProjectPlatformWhiteService{}
|
||||
isWhite, _ := projectPlatformWhiteService.CheckProjectPlatformWhiteByUser(m, c.ProjectId, p.PlatformId)
|
||||
if isWhite {
|
||||
r.UserIsWhite = 1
|
||||
}
|
||||
}
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
@ -80,51 +80,52 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
||||
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
|
||||
superScoreTypeStr := "" // 积分发放原因-超级袋鼠
|
||||
nodeName := "" // 获取积分节点名称
|
||||
if scoreType == 1 {
|
||||
// 完成阅读
|
||||
reportScore = projectPlatform.CompleteRead
|
||||
score = projectPlatform.CompleteRead
|
||||
appScoreTypeStr = "互动病例-完成阅读"
|
||||
superScoreTypeStr = "调研奖励(完成阅读)"
|
||||
nodeName = "学习"
|
||||
} else if scoreType == 2 {
|
||||
// 阅读时间满足
|
||||
reportScore = projectPlatform.CompleteReadTime
|
||||
score = projectPlatform.CompleteReadTime
|
||||
appScoreTypeStr = "互动病例-阅读时间满足"
|
||||
superScoreTypeStr = "调研奖励(阅读质量)"
|
||||
nodeName = "阅读达标"
|
||||
} else if scoreType == 3 {
|
||||
// 优质留言
|
||||
reportScore = projectPlatform.FirstHighQuality
|
||||
score = projectPlatform.FirstHighQuality
|
||||
appScoreTypeStr = "互动病例-优质留言"
|
||||
superScoreTypeStr = "调研奖励(社区贡献)"
|
||||
nodeName = "优质留言"
|
||||
} else if scoreType == 4 {
|
||||
// 再次优质留言
|
||||
reportScore = projectPlatform.OnceMoreHighQuality
|
||||
score = projectPlatform.OnceMoreHighQuality
|
||||
appScoreTypeStr = "互动病例-优质留言"
|
||||
superScoreTypeStr = "调研奖励(社区贡献)"
|
||||
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{}
|
||||
|
||||
// 检测是否有相同手机号用户
|
||||
@ -191,7 +192,7 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
||||
UserName: user.UserName,
|
||||
Type: scoreType,
|
||||
NodeName: nodeName,
|
||||
Score: reportScore,
|
||||
Score: score,
|
||||
}
|
||||
|
||||
recordScore, err = recordScoreDao.AddRecordScore(tx, recordScore)
|
||||
@ -211,20 +212,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 {
|
||||
return err
|
||||
}
|
||||
|
||||
// 累计平台发放积分数据
|
||||
err = casePlatformDao.Inc(tx, casePlatform.CasePlatformId, "issued_score", reportScore)
|
||||
err = casePlatformDao.Inc(tx, casePlatform.CasePlatformId, "issued_score", score)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 累计发放积分数据
|
||||
caseDao := dao.CaseDao{}
|
||||
err = caseDao.Inc(tx, caseId, "issued_score", reportScore)
|
||||
err = caseDao.Inc(tx, caseId, "issued_score", score)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -235,8 +236,8 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
||||
}
|
||||
|
||||
// 肝胆相照
|
||||
if platformId == 1 {
|
||||
_, err = app.ReportUserScore(appScoreTypeStr, user.UserIden, reportScore)
|
||||
if platformId == 1 && score > 0 {
|
||||
_, err = app.ReportUserScore(appScoreTypeStr, user.UserIden, score)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user