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("User")
|
||||||
|
|
||||||
|
// 病例
|
||||||
|
query = query.Preload("Case")
|
||||||
|
|
||||||
// 用户医院
|
// 用户医院
|
||||||
query = query.Preload("User.Hospital")
|
query = query.Preload("User.Hospital")
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package dto
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"case-admin-api/api/model"
|
"case-admin-api/api/model"
|
||||||
|
"case-admin-api/api/service"
|
||||||
"case-admin-api/utils"
|
"case-admin-api/utils"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
@ -25,6 +26,7 @@ type CaseUserDto struct {
|
|||||||
DepartmentName string `json:"department_name"` // 科室
|
DepartmentName string `json:"department_name"` // 科室
|
||||||
Title string `json:"title"` // 职称
|
Title string `json:"title"` // 职称
|
||||||
UserName string `json:"user_name"` // 用户名称
|
UserName string `json:"user_name"` // 用户名称
|
||||||
|
UserIsWhite int `json:"user_is_white"` // 用户是否白名单(0:否 1:是)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetCaseUserListDto 列表
|
// GetCaseUserListDto 列表
|
||||||
@ -69,6 +71,9 @@ func GetCaseUserListDto(m []*model.CaseUser) []*CaseUserDto {
|
|||||||
|
|
||||||
response = response.LoadHospitalName(v.User.Hospital)
|
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
|
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
|
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
|
appScoreTypeStr := "" // 积分发放原因-app
|
||||||
superScoreTypeStr := "" // 积分发放原因-超级袋鼠
|
superScoreTypeStr := "" // 积分发放原因-超级袋鼠
|
||||||
nodeName := "" // 获取积分节点名称
|
nodeName := "" // 获取积分节点名称
|
||||||
if scoreType == 1 {
|
if scoreType == 1 {
|
||||||
// 完成阅读
|
// 完成阅读
|
||||||
reportScore = projectPlatform.CompleteRead
|
score = projectPlatform.CompleteRead
|
||||||
appScoreTypeStr = "互动病例-完成阅读"
|
appScoreTypeStr = "互动病例-完成阅读"
|
||||||
superScoreTypeStr = "调研奖励(完成阅读)"
|
superScoreTypeStr = "调研奖励(完成阅读)"
|
||||||
nodeName = "学习"
|
nodeName = "学习"
|
||||||
} else if scoreType == 2 {
|
} else if scoreType == 2 {
|
||||||
// 阅读时间满足
|
// 阅读时间满足
|
||||||
reportScore = projectPlatform.CompleteReadTime
|
score = projectPlatform.CompleteReadTime
|
||||||
appScoreTypeStr = "互动病例-阅读时间满足"
|
appScoreTypeStr = "互动病例-阅读时间满足"
|
||||||
superScoreTypeStr = "调研奖励(阅读质量)"
|
superScoreTypeStr = "调研奖励(阅读质量)"
|
||||||
nodeName = "阅读达标"
|
nodeName = "阅读达标"
|
||||||
} else if scoreType == 3 {
|
} else if scoreType == 3 {
|
||||||
// 优质留言
|
// 优质留言
|
||||||
reportScore = projectPlatform.FirstHighQuality
|
score = projectPlatform.FirstHighQuality
|
||||||
appScoreTypeStr = "互动病例-优质留言"
|
appScoreTypeStr = "互动病例-优质留言"
|
||||||
superScoreTypeStr = "调研奖励(社区贡献)"
|
superScoreTypeStr = "调研奖励(社区贡献)"
|
||||||
nodeName = "优质留言"
|
nodeName = "优质留言"
|
||||||
} else if scoreType == 4 {
|
} else if scoreType == 4 {
|
||||||
// 再次优质留言
|
// 再次优质留言
|
||||||
reportScore = projectPlatform.OnceMoreHighQuality
|
score = projectPlatform.OnceMoreHighQuality
|
||||||
appScoreTypeStr = "互动病例-优质留言"
|
appScoreTypeStr = "互动病例-优质留言"
|
||||||
superScoreTypeStr = "调研奖励(社区贡献)"
|
superScoreTypeStr = "调研奖励(社区贡献)"
|
||||||
nodeName = "优质留言"
|
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{}
|
recordScoreDao := dao.RecordScoreDao{}
|
||||||
|
|
||||||
// 检测是否有相同手机号用户
|
// 检测是否有相同手机号用户
|
||||||
@ -191,7 +192,7 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
|||||||
UserName: user.UserName,
|
UserName: user.UserName,
|
||||||
Type: scoreType,
|
Type: scoreType,
|
||||||
NodeName: nodeName,
|
NodeName: nodeName,
|
||||||
Score: reportScore,
|
Score: score,
|
||||||
}
|
}
|
||||||
|
|
||||||
recordScore, err = recordScoreDao.AddRecordScore(tx, recordScore)
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 累计平台发放积分数据
|
// 累计平台发放积分数据
|
||||||
err = casePlatformDao.Inc(tx, casePlatform.CasePlatformId, "issued_score", reportScore)
|
err = casePlatformDao.Inc(tx, casePlatform.CasePlatformId, "issued_score", score)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 累计发放积分数据
|
// 累计发放积分数据
|
||||||
caseDao := dao.CaseDao{}
|
caseDao := dao.CaseDao{}
|
||||||
err = caseDao.Inc(tx, caseId, "issued_score", reportScore)
|
err = caseDao.Inc(tx, caseId, "issued_score", score)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -235,8 +236,8 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 肝胆相照
|
// 肝胆相照
|
||||||
if platformId == 1 {
|
if platformId == 1 && score > 0 {
|
||||||
_, err = app.ReportUserScore(appScoreTypeStr, user.UserIden, reportScore)
|
_, err = app.ReportUserScore(appScoreTypeStr, user.UserIden, score)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user