Compare commits
No commits in common. "07236fc1739adbe11afdc4113aff563a84f2a73b" and "90c2cf1ce0061fde273e115ee121ce557e95f63a" have entirely different histories.
07236fc173
...
90c2cf1ce0
@ -11,7 +11,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"math"
|
"math"
|
||||||
"strconv"
|
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -139,12 +138,6 @@ func (b *Res) GetResCaseRecordList(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
projectId, err := strconv.ParseInt(req.ProjectId, 10, 64)
|
|
||||||
if err != nil {
|
|
||||||
responses.Fail(c)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
req.PlatformId = platformId
|
req.PlatformId = platformId
|
||||||
|
|
||||||
if req.StartTime != "" {
|
if req.StartTime != "" {
|
||||||
@ -175,7 +168,7 @@ func (b *Res) GetResCaseRecordList(c *gin.Context) {
|
|||||||
if len(caseUsers) > 0 {
|
if len(caseUsers) > 0 {
|
||||||
recordScoreDao := dao.RecordScoreDao{}
|
recordScoreDao := dao.RecordScoreDao{}
|
||||||
caseCommentDao := dao.CaseCommentDao{}
|
caseCommentDao := dao.CaseCommentDao{}
|
||||||
caseUserAnswerDao := dao.CaseUserAnswerDao{}
|
userAnswerRecordDao := dao.UserAnswerRecordDao{}
|
||||||
userDao := dao.UserDao{}
|
userDao := dao.UserDao{}
|
||||||
projectPlatformWhiteService := service.ProjectPlatformWhiteService{}
|
projectPlatformWhiteService := service.ProjectPlatformWhiteService{}
|
||||||
|
|
||||||
@ -198,10 +191,10 @@ func (b *Res) GetResCaseRecordList(c *gin.Context) {
|
|||||||
|
|
||||||
// 获取用户答题记录
|
// 获取用户答题记录
|
||||||
maps = make(map[string]interface{})
|
maps = make(map[string]interface{})
|
||||||
maps["case_user_id"] = v.CaseUserId
|
maps["case_id"] = v.CaseId
|
||||||
maps["platform_id"] = v.PlatformId
|
maps["platform_id"] = v.PlatformId
|
||||||
maps["user_id"] = v.UserId
|
maps["user_id"] = v.UserId
|
||||||
caseUserAnswers, _ := caseUserAnswerDao.GetCaseUserAnswerPreloadList(maps)
|
userAnswerRecords, _ := userAnswerRecordDao.GetUserAnswerRecordPreloadList(maps)
|
||||||
|
|
||||||
// 用时
|
// 用时
|
||||||
minutes := v.ReadDuration / 60
|
minutes := v.ReadDuration / 60
|
||||||
@ -272,9 +265,9 @@ func (b *Res) GetResCaseRecordList(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 题目
|
// 题目
|
||||||
if len(caseUserAnswers) > 0 {
|
if len(userAnswerRecords) > 0 {
|
||||||
response.QuestionAnswer = make([]*dto.QuestionAnswerDto, len(caseUserAnswers))
|
response.QuestionAnswer = make([]*dto.QuestionAnswerDto, len(userAnswerRecords))
|
||||||
for i2, records := range caseUserAnswers {
|
for i2, records := range userAnswerRecords {
|
||||||
questionAnswerDto := &dto.QuestionAnswerDto{
|
questionAnswerDto := &dto.QuestionAnswerDto{
|
||||||
Question: records.CaseItemQuestion.QuestionName,
|
Question: records.CaseItemQuestion.QuestionName,
|
||||||
Answer: records.Answer,
|
Answer: records.Answer,
|
||||||
@ -294,7 +287,7 @@ func (b *Res) GetResCaseRecordList(c *gin.Context) {
|
|||||||
user, _ := userDao.GetUserById(v.UserId)
|
user, _ := userDao.GetUserById(v.UserId)
|
||||||
if user != nil {
|
if user != nil {
|
||||||
// 检测用户是否白名单
|
// 检测用户是否白名单
|
||||||
isWhite, _ := projectPlatformWhiteService.CheckProjectPlatformWhiteByUser(user, projectId, v.PlatformId)
|
isWhite, _ := projectPlatformWhiteService.CheckProjectPlatformWhiteByUser(user, v.PlatformId)
|
||||||
if isWhite {
|
if isWhite {
|
||||||
response.IsVip = 1
|
response.IsVip = 1
|
||||||
}
|
}
|
||||||
@ -335,6 +328,8 @@ func (b *Res) GetResCaseBehaviorList(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
req.PlatformId = platformId
|
||||||
|
|
||||||
if req.StartTime != "" {
|
if req.StartTime != "" {
|
||||||
if req.EndTime == "" {
|
if req.EndTime == "" {
|
||||||
responses.FailWithMessage("参数错误", c)
|
responses.FailWithMessage("参数错误", c)
|
||||||
|
|||||||
@ -189,12 +189,13 @@ func (r *CaseDao) GetResCaseList(req requests.GetResCaseList) (m []*model.Case,
|
|||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
query := global.Db.Model(&model.Case{})
|
query := global.Db.Model(&model.Case{})
|
||||||
|
|
||||||
projectPlatformSubQuery := global.Db.Model(&model.ProjectPlatform{}).
|
// 项目
|
||||||
|
projectSubQuery := global.Db.Model(&model.ProjectPlatform{}).
|
||||||
Where("project_platform.project_id = case.project_id").
|
Where("project_platform.project_id = case.project_id").
|
||||||
Where("project_platform.platform_id = ?", req.PlatformId).
|
Where("project_platform.platform_id = ?", req.PlatformId).
|
||||||
Where("project_platform.status = ?", 1)
|
Where("project_platform.status = ?", 1)
|
||||||
|
|
||||||
query = query.Where("EXISTS (?)", projectPlatformSubQuery)
|
query = query.Where("EXISTS (?)", projectSubQuery)
|
||||||
|
|
||||||
query = query.Where("case_status = ?", 1)
|
query = query.Where("case_status = ?", 1)
|
||||||
|
|
||||||
|
|||||||
@ -1,108 +0,0 @@
|
|||||||
package dao
|
|
||||||
|
|
||||||
import (
|
|
||||||
"case-open-api/api/model"
|
|
||||||
"case-open-api/global"
|
|
||||||
"gorm.io/gorm"
|
|
||||||
"gorm.io/gorm/clause"
|
|
||||||
)
|
|
||||||
|
|
||||||
type CaseItemModelDao struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseItemModelById 获取数据-id
|
|
||||||
func (r *CaseItemModelDao) GetCaseItemModelById(CaseItemModelId int64) (m *model.CaseItemModel, err error) {
|
|
||||||
err = global.Db.First(&m, CaseItemModelId).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseItemModelPreloadById 获取数据-加载全部关联-id
|
|
||||||
func (r *CaseItemModelDao) GetCaseItemModelPreloadById(CaseItemModelId int64) (m *model.CaseItemModel, err error) {
|
|
||||||
err = global.Db.Preload(clause.Associations).First(&m, CaseItemModelId).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCaseItemModel 删除
|
|
||||||
func (r *CaseItemModelDao) DeleteCaseItemModel(tx *gorm.DB, maps interface{}) error {
|
|
||||||
err := tx.Where(maps).Delete(&model.CaseItemModel{}).Error
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCaseItemModelById 删除-id
|
|
||||||
func (r *CaseItemModelDao) DeleteCaseItemModelById(tx *gorm.DB, CaseItemModelId int64) error {
|
|
||||||
if err := tx.Delete(&model.CaseItemModel{}, CaseItemModelId).Error; err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// EditCaseItemModel 修改
|
|
||||||
func (r *CaseItemModelDao) EditCaseItemModel(tx *gorm.DB, maps interface{}, data interface{}) error {
|
|
||||||
err := tx.Model(&model.CaseItemModel{}).Where(maps).Updates(data).Error
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// EditCaseItemModelById 修改-id
|
|
||||||
func (r *CaseItemModelDao) EditCaseItemModelById(tx *gorm.DB, CaseItemModelId int64, data interface{}) error {
|
|
||||||
err := tx.Model(&model.CaseItemModel{}).Where("case_item_model_id = ?", CaseItemModelId).Updates(data).Error
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseItemModelList 获取列表
|
|
||||||
func (r *CaseItemModelDao) GetCaseItemModelList(maps interface{}) (m []*model.CaseItemModel, err error) {
|
|
||||||
err = global.Db.Where(maps).Find(&m).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseItemModelCount 获取数量
|
|
||||||
func (r *CaseItemModelDao) GetCaseItemModelCount(maps interface{}) (total int64, err error) {
|
|
||||||
err = global.Db.Model(&model.CaseItemModel{}).Where(maps).Count(&total).Error
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
return total, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseItemModelListRand 获取列表-随机
|
|
||||||
func (r *CaseItemModelDao) GetCaseItemModelListRand(maps interface{}, limit int) (m []*model.CaseItemModel, err error) {
|
|
||||||
err = global.Db.Where(maps).Order("rand()").Limit(limit).Find(&m).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddCaseItemModel 新增
|
|
||||||
func (r *CaseItemModelDao) AddCaseItemModel(tx *gorm.DB, model *model.CaseItemModel) (*model.CaseItemModel, error) {
|
|
||||||
if err := tx.Create(model).Error; err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return model, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseItemModel 获取
|
|
||||||
func (r *CaseItemModelDao) GetCaseItemModel(maps interface{}) (m *model.CaseItemModel, err error) {
|
|
||||||
err = global.Db.Where(maps).First(&m).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
@ -153,7 +153,7 @@ func (r *CaseUserDao) GetResCaseBehaviorList(req requests.GetResCaseBehaviorList
|
|||||||
query = query.Preload("User")
|
query = query.Preload("User")
|
||||||
|
|
||||||
query = query.Where("case_id = ?", req.CaseId)
|
query = query.Where("case_id = ?", req.CaseId)
|
||||||
//query = query.Where("platform_id = ?", req.PlatformId)
|
query = query.Where("platform_id = ?", req.PlatformId)
|
||||||
|
|
||||||
// 时间
|
// 时间
|
||||||
if req.StartTime != "" && req.EndTime != "" {
|
if req.StartTime != "" && req.EndTime != "" {
|
||||||
|
|||||||
@ -1,144 +0,0 @@
|
|||||||
package dao
|
|
||||||
|
|
||||||
import (
|
|
||||||
"case-open-api/api/model"
|
|
||||||
"case-open-api/global"
|
|
||||||
"gorm.io/gorm"
|
|
||||||
"gorm.io/gorm/clause"
|
|
||||||
)
|
|
||||||
|
|
||||||
type CaseUserAnswerDao struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseUserAnswerById 获取数据-id
|
|
||||||
func (r *CaseUserAnswerDao) GetCaseUserAnswerById(answerId int64) (m *model.CaseUserAnswer, err error) {
|
|
||||||
err = global.Db.First(&m, answerId).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseUserAnswerPreloadById 获取数据-加载全部关联-id
|
|
||||||
func (r *CaseUserAnswerDao) GetCaseUserAnswerPreloadById(answerId int64) (m *model.CaseUserAnswer, err error) {
|
|
||||||
err = global.Db.Preload(clause.Associations).First(&m, answerId).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCaseUserAnswer 删除
|
|
||||||
func (r *CaseUserAnswerDao) DeleteCaseUserAnswer(tx *gorm.DB, maps interface{}) error {
|
|
||||||
err := tx.Where(maps).Delete(&model.CaseUserAnswer{}).Error
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCaseUserAnswerById 删除-id
|
|
||||||
func (r *CaseUserAnswerDao) DeleteCaseUserAnswerById(tx *gorm.DB, answerId int64) error {
|
|
||||||
if err := tx.Delete(&model.CaseUserAnswer{}, answerId).Error; err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// EditCaseUserAnswer 修改
|
|
||||||
func (r *CaseUserAnswerDao) EditCaseUserAnswer(tx *gorm.DB, maps interface{}, data interface{}) error {
|
|
||||||
err := tx.Model(&model.CaseUserAnswer{}).Where(maps).Updates(data).Error
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// EditCaseUserAnswerById 修改-id
|
|
||||||
func (r *CaseUserAnswerDao) EditCaseUserAnswerById(tx *gorm.DB, answerId int64, data interface{}) error {
|
|
||||||
err := tx.Model(&model.CaseUserAnswer{}).Where("answer_id = ?", answerId).Updates(data).Error
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseUserAnswerList 获取列表
|
|
||||||
func (r *CaseUserAnswerDao) GetCaseUserAnswerList(maps interface{}) (m []*model.CaseUserAnswer, err error) {
|
|
||||||
err = global.Db.Where(maps).Find(&m).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseUserAnswerPreloadList 获取列表-加载全部关联
|
|
||||||
func (r *CaseUserAnswerDao) GetCaseUserAnswerPreloadList(maps interface{}) (m []*model.CaseUserAnswer, err error) {
|
|
||||||
err = global.Db.Preload(clause.Associations).Where(maps).Find(&m).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseUserAnswerCount 获取数量
|
|
||||||
func (r *CaseUserAnswerDao) GetCaseUserAnswerCount(maps interface{}) (total int64, err error) {
|
|
||||||
err = global.Db.Model(&model.CaseUserAnswer{}).Where(maps).Count(&total).Error
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
return total, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseUserAnswerListRand 获取列表-随机
|
|
||||||
func (r *CaseUserAnswerDao) GetCaseUserAnswerListRand(maps interface{}, limit int) (m []*model.CaseUserAnswer, err error) {
|
|
||||||
err = global.Db.Where(maps).Order("rand()").Limit(limit).Find(&m).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddCaseUserAnswer 新增
|
|
||||||
func (r *CaseUserAnswerDao) AddCaseUserAnswer(tx *gorm.DB, model *model.CaseUserAnswer) (*model.CaseUserAnswer, error) {
|
|
||||||
if err := tx.Create(model).Error; err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return model, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseUserAnswer 获取
|
|
||||||
func (r *CaseUserAnswerDao) GetCaseUserAnswer(maps interface{}) (m *model.CaseUserAnswer, err error) {
|
|
||||||
err = global.Db.Where(maps).First(&m).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseUserAnswerUseTx 获取
|
|
||||||
func (r *CaseUserAnswerDao) GetCaseUserAnswerUseTx(tx *gorm.DB, maps interface{}) (m *model.CaseUserAnswer, err error) {
|
|
||||||
err = tx.Where(maps).First(&m).Error
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Inc 自增
|
|
||||||
func (r *CaseUserAnswerDao) Inc(tx *gorm.DB, answerId int64, field string, numeral int) error {
|
|
||||||
err := tx.Model(&model.CaseUserAnswer{}).Where("answer_id = ?", answerId).UpdateColumn(field, gorm.Expr(field+" + ?", numeral)).Error
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Dec 自减
|
|
||||||
func (r *CaseUserAnswerDao) Dec(tx *gorm.DB, answerId int64, field string, numeral int) error {
|
|
||||||
err := tx.Model(&model.CaseUserAnswer{}).Where("answer_id = ?", answerId).UpdateColumn(field, gorm.Expr(field+" - ?", numeral)).Error
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
@ -152,17 +152,7 @@ func (r *ProjectDao) GetResProjectListSearch(req requests.GetResProjectList) (m
|
|||||||
// 状态固定为1
|
// 状态固定为1
|
||||||
query = query.Where("project_status = ?", 1)
|
query = query.Where("project_status = ?", 1)
|
||||||
|
|
||||||
// 使用 Preload 关联 Case 表
|
query = query.Preload("Case")
|
||||||
query = query.Preload("Case", func(db *gorm.DB) *gorm.DB {
|
|
||||||
// 添加 case_status 过滤条件,排除掉 case_status 为 2 的记录
|
|
||||||
return db.Where("case_status != ?", 2)
|
|
||||||
})
|
|
||||||
|
|
||||||
caseSubQuery := global.Db.Model(&model.Case{}).
|
|
||||||
Where("case.project_id = project.project_id").
|
|
||||||
Where("case.case_status = ?", 1)
|
|
||||||
|
|
||||||
query = query.Where("EXISTS (?)", caseSubQuery)
|
|
||||||
|
|
||||||
if req.PlatformId != 0 {
|
if req.PlatformId != 0 {
|
||||||
subQuery := global.Db.Model(&model.ProjectPlatform{}).
|
subQuery := global.Db.Model(&model.ProjectPlatform{}).
|
||||||
|
|||||||
@ -10,10 +10,12 @@ type CaseItemDto struct {
|
|||||||
CaseItemId string `json:"case_item_id"` // 主键id
|
CaseItemId string `json:"case_item_id"` // 主键id
|
||||||
CaseId string `json:"case_id"` // 所属病例id
|
CaseId string `json:"case_id"` // 所属病例id
|
||||||
Page int `json:"page"` // 页码
|
Page int `json:"page"` // 页码
|
||||||
|
Content string `json:"content"` // 详情内容
|
||||||
|
IsRightNext int `json:"is_right_next"` // 是否答对后允许下一步(0:否 1:是)
|
||||||
|
ErrorTips string `json:"error_tips"` // 答错提示
|
||||||
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
||||||
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
||||||
CaseItemQuestion []*CaseItemQuestionDto `json:"case_item_question"` // 病例明细-题目
|
CaseItemQuestion []*CaseItemQuestionDto `json:"case_item_question"` // 病例明细-题目
|
||||||
CaseItemModel []*CaseItemModelDto `json:"case_item_model"` // 病例明细-模块
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetCaseItemListDto 列表
|
// GetCaseItemListDto 列表
|
||||||
@ -24,12 +26,14 @@ func GetCaseItemListDto(m []*model.CaseItem) []*CaseItemDto {
|
|||||||
if len(m) > 0 {
|
if len(m) > 0 {
|
||||||
for i, v := range m {
|
for i, v := range m {
|
||||||
response := &CaseItemDto{
|
response := &CaseItemDto{
|
||||||
CaseItemId: fmt.Sprintf("%d", v.CaseItemId),
|
CaseItemId: fmt.Sprintf("%d", v.CaseItemId),
|
||||||
CaseId: fmt.Sprintf("%d", v.CaseId),
|
CaseId: fmt.Sprintf("%d", v.CaseId),
|
||||||
Page: v.Page,
|
Page: v.Page,
|
||||||
CreatedAt: v.CreatedAt,
|
Content: v.Content,
|
||||||
UpdatedAt: v.UpdatedAt,
|
IsRightNext: v.IsRightNext,
|
||||||
CaseItemModel: []*CaseItemModelDto{},
|
ErrorTips: v.ErrorTips,
|
||||||
|
CreatedAt: v.CreatedAt,
|
||||||
|
UpdatedAt: v.UpdatedAt,
|
||||||
}
|
}
|
||||||
|
|
||||||
// 将转换后的结构体添加到新切片中
|
// 将转换后的结构体添加到新切片中
|
||||||
@ -48,12 +52,3 @@ func (r *CaseItemDto) LoadCaseItemQuestion(m []*model.CaseItemQuestion) *CaseIte
|
|||||||
|
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadCaseItemModel 加载数据-病例明细-模块
|
|
||||||
func (r *CaseItemDto) LoadCaseItemModel(m []*model.CaseItemModel) *CaseItemDto {
|
|
||||||
if len(m) > 0 {
|
|
||||||
r.CaseItemModel = GetCaseItemModelListDto(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|||||||
@ -1,40 +0,0 @@
|
|||||||
package dto
|
|
||||||
|
|
||||||
import (
|
|
||||||
"case-open-api/api/model"
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CaseItemModelDto 病历表-明细
|
|
||||||
type CaseItemModelDto struct {
|
|
||||||
CaseItemModelId string `json:"case_item_model_id"` // 主键id
|
|
||||||
CaseItemId string `json:"case_item_id"` // 明细id
|
|
||||||
ModelName string `json:"model_name"` // 模型名称
|
|
||||||
Content string `json:"content"` // 详情内容
|
|
||||||
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
|
||||||
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCaseItemModelListDto 列表
|
|
||||||
func GetCaseItemModelListDto(m []*model.CaseItemModel) []*CaseItemModelDto {
|
|
||||||
// 处理返回值
|
|
||||||
responses := make([]*CaseItemModelDto, len(m))
|
|
||||||
|
|
||||||
if len(m) > 0 {
|
|
||||||
for i, v := range m {
|
|
||||||
response := &CaseItemModelDto{
|
|
||||||
CaseItemModelId: fmt.Sprintf("%d", v.CaseItemModelId),
|
|
||||||
CaseItemId: fmt.Sprintf("%d", v.CaseItemId),
|
|
||||||
ModelName: v.ModelName,
|
|
||||||
Content: v.Content,
|
|
||||||
CreatedAt: v.CreatedAt,
|
|
||||||
UpdatedAt: v.UpdatedAt,
|
|
||||||
}
|
|
||||||
|
|
||||||
// 将转换后的结构体添加到新切片中
|
|
||||||
responses[i] = response
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return responses
|
|
||||||
}
|
|
||||||
@ -11,6 +11,8 @@ type ProjectDto struct {
|
|||||||
ProjectName string `json:"project_name"` // 项目名称
|
ProjectName string `json:"project_name"` // 项目名称
|
||||||
ProjectStatus int `json:"project_status"` // 项目状态(0:无效 1:正常)
|
ProjectStatus int `json:"project_status"` // 项目状态(0:无效 1:正常)
|
||||||
ProjectImage string `json:"project_image"` // 项目背景图
|
ProjectImage string `json:"project_image"` // 项目背景图
|
||||||
|
IsLimitNum int `json:"is_limit_num"` // 是否限制参加数量(0:否 1:是)
|
||||||
|
MaxJoinNum int `json:"max_join_num"` // 医生最多可参加数量
|
||||||
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
||||||
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
||||||
CaseCount int `json:"case_count"` // 关联病例数量
|
CaseCount int `json:"case_count"` // 关联病例数量
|
||||||
@ -29,6 +31,8 @@ func GetProjectListDto(m []*model.Project) []*ProjectDto {
|
|||||||
ProjectId: fmt.Sprintf("%d", v.ProjectId),
|
ProjectId: fmt.Sprintf("%d", v.ProjectId),
|
||||||
ProjectName: v.ProjectName,
|
ProjectName: v.ProjectName,
|
||||||
ProjectStatus: v.ProjectStatus,
|
ProjectStatus: v.ProjectStatus,
|
||||||
|
IsLimitNum: v.IsLimitNum,
|
||||||
|
MaxJoinNum: v.MaxJoinNum,
|
||||||
ProjectImage: utils.AddOssDomain(v.ProjectImage),
|
ProjectImage: utils.AddOssDomain(v.ProjectImage),
|
||||||
CreatedAt: v.CreatedAt,
|
CreatedAt: v.CreatedAt,
|
||||||
UpdatedAt: v.UpdatedAt,
|
UpdatedAt: v.UpdatedAt,
|
||||||
@ -52,6 +56,8 @@ func GetProjectDto(m *model.Project) *ProjectDto {
|
|||||||
ProjectName: m.ProjectName,
|
ProjectName: m.ProjectName,
|
||||||
ProjectStatus: m.ProjectStatus,
|
ProjectStatus: m.ProjectStatus,
|
||||||
ProjectImage: utils.AddOssDomain(m.ProjectImage),
|
ProjectImage: utils.AddOssDomain(m.ProjectImage),
|
||||||
|
IsLimitNum: m.IsLimitNum,
|
||||||
|
MaxJoinNum: m.MaxJoinNum,
|
||||||
CreatedAt: m.CreatedAt,
|
CreatedAt: m.CreatedAt,
|
||||||
UpdatedAt: m.UpdatedAt,
|
UpdatedAt: m.UpdatedAt,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -107,6 +107,8 @@ func GetResProjectListDto(m []*model.Project) []*ResProjectDto {
|
|||||||
ProjectId: fmt.Sprintf("%d", v.ProjectId),
|
ProjectId: fmt.Sprintf("%d", v.ProjectId),
|
||||||
ProjectName: v.ProjectName,
|
ProjectName: v.ProjectName,
|
||||||
ProjectStatus: v.ProjectStatus,
|
ProjectStatus: v.ProjectStatus,
|
||||||
|
IsLimitNum: v.IsLimitNum,
|
||||||
|
MaxJoinNum: v.MaxJoinNum,
|
||||||
ProjectImage: utils.AddOssDomain(v.ProjectImage),
|
ProjectImage: utils.AddOssDomain(v.ProjectImage),
|
||||||
CreatedAt: v.CreatedAt,
|
CreatedAt: v.CreatedAt,
|
||||||
UpdatedAt: v.UpdatedAt,
|
UpdatedAt: v.UpdatedAt,
|
||||||
@ -176,7 +178,7 @@ func (r *ResProjectDto) LoadIsRecentlyUpdate(m *model.Case) *ResProjectDto {
|
|||||||
// LoadLink 加载访问链接
|
// LoadLink 加载访问链接
|
||||||
func (r *ResCaseDto) LoadLink(m *model.Case) *ResCaseDto {
|
func (r *ResCaseDto) LoadLink(m *model.Case) *ResCaseDto {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
link := config.C.DomainName + "/caseIntro" + "?project_id=" + fmt.Sprintf("%d", m.ProjectId) + "&source=3" + "&platform_key=654321" + "&case_id=" + fmt.Sprintf("%d", m.CaseId)
|
link := config.C.DomainName + "?source=3" + "&platform_key=654321" + "&case_id=" + fmt.Sprintf("%d", m.CaseId)
|
||||||
r.Url = link
|
r.Url = link
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,6 @@ import (
|
|||||||
// BasicHospital 基础数据-医院
|
// BasicHospital 基础数据-医院
|
||||||
type BasicHospital struct {
|
type BasicHospital struct {
|
||||||
HospitalId int64 `gorm:"column:hospital_id;type:bigint(19);primary_key;comment:主键id" json:"hospital_id"`
|
HospitalId int64 `gorm:"column:hospital_id;type:bigint(19);primary_key;comment:主键id" json:"hospital_id"`
|
||||||
HospitalIden string `gorm:"column:hospital_iden;type:varchar(50);comment:app唯一标识" json:"hospital_iden"`
|
|
||||||
HospitalName string `gorm:"column:hospital_name;type:varchar(100);comment:医院名称" json:"hospital_name"`
|
HospitalName string `gorm:"column:hospital_name;type:varchar(100);comment:医院名称" json:"hospital_name"`
|
||||||
Source int `gorm:"column:source;type:tinyint(1);comment:来源(2:肝胆相照 3:佳动例);NOT NULL" json:"source"`
|
Source int `gorm:"column:source;type:tinyint(1);comment:来源(2:肝胆相照 3:佳动例);NOT NULL" json:"source"`
|
||||||
HospitalLevel string `gorm:"column:hospital_level;type:varchar(20);comment:医院等级" json:"hospital_level"`
|
HospitalLevel string `gorm:"column:hospital_level;type:varchar(20);comment:医院等级" json:"hospital_level"`
|
||||||
|
|||||||
@ -8,9 +8,12 @@ import (
|
|||||||
|
|
||||||
// CaseItem 病历表-明细
|
// CaseItem 病历表-明细
|
||||||
type CaseItem struct {
|
type CaseItem struct {
|
||||||
CaseItemId int64 `gorm:"column:case_item_id;type:bigint(19);primary_key;comment:主键id" json:"case_item_id"`
|
CaseItemId int64 `gorm:"column:case_item_id;type:bigint(19);primary_key;comment:主键id" json:"case_item_id"`
|
||||||
CaseId int64 `gorm:"column:case_id;type:bigint(19);comment:所属病例id;NOT NULL" json:"case_id"`
|
CaseId int64 `gorm:"column:case_id;type:bigint(19);comment:所属病例id;NOT NULL" json:"case_id"`
|
||||||
Page int `gorm:"column:page;type:int(1);default:1;comment:页码" json:"page"`
|
Page int `gorm:"column:page;type:int(1);default:1;comment:页码" json:"page"`
|
||||||
|
Content string `gorm:"column:content;type:text;comment:详情内容" json:"content"`
|
||||||
|
IsRightNext int `gorm:"column:is_right_next;type:tinyint(1);default:1;comment:是否答对后允许下一步(0:否 1:是)" json:"is_right_next"`
|
||||||
|
ErrorTips string `gorm:"column:error_tips;type:varchar(200);comment:答错提示" json:"error_tips"`
|
||||||
Model
|
Model
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,34 +0,0 @@
|
|||||||
package model
|
|
||||||
|
|
||||||
import (
|
|
||||||
"case-open-api/global"
|
|
||||||
"gorm.io/gorm"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CaseItemModel 病历表-明细
|
|
||||||
type CaseItemModel struct {
|
|
||||||
CaseItemModelId int64 `gorm:"column:case_item_model_id;type:bigint(19);primary_key;comment:主键id" json:"case_item_model_id"`
|
|
||||||
CaseItemId int64 `gorm:"column:case_item_id;type:bigint(19);comment:明细id;NOT NULL" json:"case_item_id"`
|
|
||||||
ModelName string `gorm:"column:model_name;type:varchar(200);comment:模型名称" json:"model_name"`
|
|
||||||
Content string `gorm:"column:content;type:text;comment:详情内容" json:"content"`
|
|
||||||
Model
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *CaseItemModel) TableName() string {
|
|
||||||
return "case_item_model"
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *CaseItemModel) BeforeCreate(tx *gorm.DB) error {
|
|
||||||
if m.CaseItemModelId == 0 {
|
|
||||||
m.CaseItemModelId = global.Snowflake.Generate().Int64()
|
|
||||||
}
|
|
||||||
|
|
||||||
m.CreatedAt = LocalTime(time.Now())
|
|
||||||
tx.Statement.SetColumn("CreatedAt", m.CreatedAt)
|
|
||||||
|
|
||||||
m.UpdatedAt = LocalTime(time.Now())
|
|
||||||
tx.Statement.SetColumn("UpdatedAt", m.UpdatedAt)
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
@ -16,7 +16,7 @@ type CasePlatform struct {
|
|||||||
JoinWhiteNum int `gorm:"column:join_white_num;type:int(5);default:0;comment:白名单参加人数" json:"join_white_num"`
|
JoinWhiteNum int `gorm:"column:join_white_num;type:int(5);default:0;comment:白名单参加人数" json:"join_white_num"`
|
||||||
MessageNum int `gorm:"column:message_num;type:int(5);default:0;comment:留言人数" json:"message_num"`
|
MessageNum int `gorm:"column:message_num;type:int(5);default:0;comment:留言人数" json:"message_num"`
|
||||||
Model
|
Model
|
||||||
Platform *Platform `gorm:"foreignKey:PlatformId;references:platform_id" json:"platform"`
|
ProjectPlatform *ProjectPlatform `gorm:"foreignKey:PlatformId;references:platform_id" json:"project_platform"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *CasePlatform) TableName() string {
|
func (m *CasePlatform) TableName() string {
|
||||||
|
|||||||
@ -1,38 +0,0 @@
|
|||||||
package model
|
|
||||||
|
|
||||||
import (
|
|
||||||
"case-open-api/global"
|
|
||||||
"gorm.io/gorm"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CaseUserAnswer 用户参与表-答题记录
|
|
||||||
type CaseUserAnswer struct {
|
|
||||||
AnswerId int64 `gorm:"column:answer_id;type:bigint(19);primary_key;comment:主键id" json:"answer_id"`
|
|
||||||
CaseUserId int64 `gorm:"column:case_user_id;type:bigint(19);comment:用户参与id;NOT NULL" json:"case_user_id"`
|
|
||||||
PlatformId int64 `gorm:"column:platform_id;type:bigint(19);comment:用户所属平台id;NOT NULL" json:"platform_id"`
|
|
||||||
QuestionId int64 `gorm:"column:question_id;type:bigint(19);comment:题目id;NOT NULL" json:"question_id"`
|
|
||||||
UserId int64 `gorm:"column:user_id;type:bigint(19);comment:用户id;NOT NULL" json:"user_id"`
|
|
||||||
Answer string `gorm:"column:answer;type:varchar(255);comment:答案" json:"answer"`
|
|
||||||
IsTrue int `gorm:"column:is_true;type:tinyint(1);default:0;comment:是否正确(0:否 1:是)" json:"is_true"`
|
|
||||||
Model
|
|
||||||
CaseItemQuestion *CaseItemQuestion `gorm:"foreignKey:QuestionId;references:question_id" json:"case_item_question"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *CaseUserAnswer) TableName() string {
|
|
||||||
return "case_user_answer"
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *CaseUserAnswer) BeforeCreate(tx *gorm.DB) error {
|
|
||||||
if m.AnswerId == 0 {
|
|
||||||
m.AnswerId = global.Snowflake.Generate().Int64()
|
|
||||||
}
|
|
||||||
|
|
||||||
m.CreatedAt = LocalTime(time.Now())
|
|
||||||
tx.Statement.SetColumn("CreatedAt", m.CreatedAt)
|
|
||||||
|
|
||||||
m.UpdatedAt = LocalTime(time.Now())
|
|
||||||
tx.Statement.SetColumn("UpdatedAt", m.UpdatedAt)
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
@ -12,6 +12,8 @@ type Project struct {
|
|||||||
ProjectName string `gorm:"column:project_name;type:varchar(255);comment:项目名称" json:"project_name"`
|
ProjectName string `gorm:"column:project_name;type:varchar(255);comment:项目名称" json:"project_name"`
|
||||||
ProjectStatus int `gorm:"column:project_status;type:tinyint(1);comment:项目状态(0:无效 1:正常)" json:"project_status"`
|
ProjectStatus int `gorm:"column:project_status;type:tinyint(1);comment:项目状态(0:无效 1:正常)" json:"project_status"`
|
||||||
ProjectImage string `gorm:"column:project_image;type:varchar(255);comment:项目背景图" json:"project_image"`
|
ProjectImage string `gorm:"column:project_image;type:varchar(255);comment:项目背景图" json:"project_image"`
|
||||||
|
IsLimitNum int `gorm:"column:is_limit_num;type:tinyint(1);default:0;comment:是否限制参加数量(0:否 1:是)" json:"is_limit_num"`
|
||||||
|
MaxJoinNum int `gorm:"column:max_join_num;type:int(5);default:0;comment:医生最多可参加数量" json:"max_join_num"`
|
||||||
Model
|
Model
|
||||||
Case []*Case `gorm:"foreignKey:ProjectId;references:project_id" json:"case"`
|
Case []*Case `gorm:"foreignKey:ProjectId;references:project_id" json:"case"`
|
||||||
ProjectPlatform []*ProjectPlatform `gorm:"foreignKey:ProjectId;references:project_id" json:"project_platform"`
|
ProjectPlatform []*ProjectPlatform `gorm:"foreignKey:ProjectId;references:project_id" json:"project_platform"`
|
||||||
|
|||||||
@ -11,21 +11,11 @@ type ProjectPlatformWhiteService struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CheckProjectPlatformWhiteByUser 检测用户是否属于白名单
|
// CheckProjectPlatformWhiteByUser 检测用户是否属于白名单
|
||||||
func (r *ProjectPlatformWhiteService) CheckProjectPlatformWhiteByUser(user *model.User, projectId, platformId int64) (b bool, err error) {
|
func (r *ProjectPlatformWhiteService) CheckProjectPlatformWhiteByUser(user *model.User, platformId int64) (b bool, err error) {
|
||||||
// 获取项目关联平台数据
|
|
||||||
projectPlatformDao := dao.ProjectPlatformDao{}
|
|
||||||
maps := make(map[string]interface{})
|
|
||||||
maps["project_id"] = projectId
|
|
||||||
maps["platform_id"] = platformId
|
|
||||||
projectPlatform, err := projectPlatformDao.GetProjectPlatform(maps)
|
|
||||||
if err != nil {
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// 白名单-医生
|
// 白名单-医生
|
||||||
projectPlatformDoctorDao := dao.ProjectPlatformDoctorDao{}
|
projectPlatformDoctorDao := dao.ProjectPlatformDoctorDao{}
|
||||||
maps = make(map[string]interface{})
|
maps := make(map[string]interface{})
|
||||||
maps["project_platform_id"] = projectPlatform.ProjectPlatformId
|
maps["platform_id"] = platformId
|
||||||
maps["user_id"] = user.UserId
|
maps["user_id"] = user.UserId
|
||||||
projectPlatformDoctor, _ := projectPlatformDoctorDao.GetProjectPlatformDoctor(maps)
|
projectPlatformDoctor, _ := projectPlatformDoctorDao.GetProjectPlatformDoctor(maps)
|
||||||
if projectPlatformDoctor != nil {
|
if projectPlatformDoctor != nil {
|
||||||
@ -44,7 +34,7 @@ func (r *ProjectPlatformWhiteService) CheckProjectPlatformWhiteByUser(user *mode
|
|||||||
// 白名单-医院
|
// 白名单-医院
|
||||||
projectPlatformHospitalDao := dao.ProjectPlatformHospitalDao{}
|
projectPlatformHospitalDao := dao.ProjectPlatformHospitalDao{}
|
||||||
maps = make(map[string]interface{})
|
maps = make(map[string]interface{})
|
||||||
maps["project_platform_id"] = projectPlatform.ProjectPlatformId
|
maps["platform_id"] = platformId
|
||||||
maps["hospital_id"] = user.HospitalId
|
maps["hospital_id"] = user.HospitalId
|
||||||
projectPlatformHospital, _ := projectPlatformHospitalDao.GetProjectPlatformHospital(maps)
|
projectPlatformHospital, _ := projectPlatformHospitalDao.GetProjectPlatformHospital(maps)
|
||||||
if projectPlatformHospital != nil {
|
if projectPlatformHospital != nil {
|
||||||
@ -56,7 +46,7 @@ func (r *ProjectPlatformWhiteService) CheckProjectPlatformWhiteByUser(user *mode
|
|||||||
// 白名单-动态
|
// 白名单-动态
|
||||||
projectPlatformDynamicDao := dao.ProjectPlatformDynamicDao{}
|
projectPlatformDynamicDao := dao.ProjectPlatformDynamicDao{}
|
||||||
maps = make(map[string]interface{})
|
maps = make(map[string]interface{})
|
||||||
maps["project_platform_id"] = projectPlatform.ProjectPlatformId
|
maps["platform_id"] = platformId
|
||||||
projectPlatformDynamics, _ := projectPlatformDynamicDao.GetProjectPlatformDynamicPreloadList(maps)
|
projectPlatformDynamics, _ := projectPlatformDynamicDao.GetProjectPlatformDynamicPreloadList(maps)
|
||||||
if len(projectPlatformDynamics) > 0 {
|
if len(projectPlatformDynamics) > 0 {
|
||||||
area := true
|
area := true
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user