local_life_task_info_dao.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package dao
  2. import (
  3. "youngee_b_api/app/entity"
  4. "youngee_b_api/app/vo"
  5. )
  6. type LocalLifeTaskInfoDao struct{}
  7. // 获取指定违约类型的本地生活子任务数量
  8. func (d LocalLifeTaskInfoDao) CountByDefaultType(localId string, defaultType int64) int64 {
  9. var total int64
  10. Db.Model(&entity.LocalLifeInfo{}).Where("local_id = ? AND cur_default_type = ?", localId, defaultType).Count(&total)
  11. return total
  12. }
  13. // 获取指定任务阶段的本地生活子任务数量
  14. func (d LocalLifeTaskInfoDao) CountByTaskStage(localId string, taskStage int64) int64 {
  15. var total int64
  16. Db.Model(&entity.LocalLifeInfo{}).Where("local_id = ? AND task_stage = ?", localId, taskStage).Count(&total)
  17. return total
  18. }
  19. // 获取指定任务阶段的本地生活子任务
  20. func (d LocalLifeTaskInfoDao) GetListByTaskStage(localId string, bookStatus int64, time string, page int, pageSize int) ([]*entity.LocalLifeTaskInfo, int64, error) {
  21. var taskInfos []*entity.LocalLifeTaskInfo
  22. var total int64
  23. query := Db.Model(&entity.LocalLifeTaskInfo{}).Where("local_id = ? AND book_status = ?", localId, bookStatus)
  24. // 计算偏移量
  25. offset := (page - 1) * pageSize
  26. var err error
  27. if bookStatus == 1 {
  28. query.Count(&total)
  29. err = query.Order("select_date asc").Offset(offset).Limit(pageSize).Find(&taskInfos).Error
  30. } else if bookStatus == 2 {
  31. if time != "" {
  32. query = query.Where("DATE(reserve_time) = ?", time)
  33. }
  34. query.Count(&total)
  35. err = query.Order("reserve_time desc").Offset(offset).Limit(pageSize).Find(&taskInfos).Error
  36. } else if bookStatus == 3 {
  37. if time != "" {
  38. query = query.Where("DATE(explore_time) = ?", time)
  39. }
  40. query.Count(&total)
  41. err = query.Order("explore_time desc").Offset(offset).Limit(pageSize).Find(&taskInfos).Error
  42. } else if bookStatus == 4 {
  43. if time != "" {
  44. query = query.Where("DATE(finish_explore_time) = ?", time)
  45. }
  46. query.Count(&total)
  47. err = query.Order("finish_explore_time desc").Offset(offset).Limit(pageSize).Find(&taskInfos).Error
  48. }
  49. if err != nil {
  50. return nil, 0, err
  51. }
  52. return taskInfos, total, nil
  53. }
  54. // 获取未传初稿的本地生活子任务数据
  55. func (d LocalLifeTaskInfoDao) GetListBySketchDefault(param *vo.DefaultSearchParam) ([]entity.LocalLifeInfo, int64, error) {
  56. projectTaskInfos := []entity.LocalLifeInfo{}
  57. var total int64
  58. query := Db.Model(&entity.LocalLifeInfo{}).Where("local_id = ? AND cur_default_type = ?", param.TaskId, 4)
  59. query.Count(&total)
  60. query = query.Select("task_id, talent_id, settle_amount, draft_fee, sketch_missing_time")
  61. offset := (param.Page - 1) * param.PageSize
  62. if err := query.Order("sketch_missing_time desc").Offset(offset).Limit(param.PageSize).Find(&projectTaskInfos).Error; err != nil {
  63. return nil, 0, err
  64. }
  65. return projectTaskInfos, total, nil
  66. }
  67. // 获取未发作品的本地生活子任务数据
  68. func (d LocalLifeTaskInfoDao) GetListByLinkDefault(param *vo.DefaultSearchParam) ([]entity.LocalLifeInfo, int64, error) {
  69. projectTaskInfos := []entity.LocalLifeInfo{}
  70. var total int64
  71. query := Db.Model(&entity.LocalLifeInfo{}).Where("local_id = ? AND cur_default_type = ?", param.TaskId, 6)
  72. query.Count(&total)
  73. query = query.Select("task_id, talent_id, settle_amount, draft_fee, link_missing_time")
  74. offset := (param.Page - 1) * param.PageSize
  75. if err := query.Order("link_missing_time desc").Offset(offset).Limit(param.PageSize).Find(&projectTaskInfos).Error; err != nil {
  76. return nil, 0, err
  77. }
  78. return projectTaskInfos, total, nil
  79. }
  80. // 获取未传数据的本地生活子任务数据
  81. func (d LocalLifeTaskInfoDao) GetListByDataDefault(param *vo.DefaultSearchParam) ([]entity.LocalLifeInfo, int64, error) {
  82. projectTaskInfos := []entity.LocalLifeInfo{}
  83. var total int64
  84. query := Db.Model(&entity.LocalLifeInfo{}).Where("local_id = ? AND cur_default_type = ?", param.TaskId, 8)
  85. query.Count(&total)
  86. query = query.Select("task_id, talent_id, settle_amount, draft_fee, data_missing_time")
  87. offset := (param.Page - 1) * param.PageSize
  88. if err := query.Order("data_missing_time desc").Offset(offset).Limit(param.PageSize).Find(&projectTaskInfos).Error; err != nil {
  89. return nil, 0, err
  90. }
  91. return projectTaskInfos, total, nil
  92. }
  93. // 获取终止合作的本地生活子任务数据
  94. func (d LocalLifeTaskInfoDao) GetListByTerminateDefault(param *vo.DefaultSearchParam) ([]entity.LocalLifeInfo, int64, error) {
  95. projectTaskInfos := []entity.LocalLifeInfo{}
  96. var total int64
  97. query := Db.Debug().Model(&entity.LocalLifeInfo{}).Where("local_id = ? AND task_stage = ?", param.TaskId, 17)
  98. query.Count(&total)
  99. query = query.Select("task_id, talent_id, settle_amount, draft_fee, terminate_time, terminate_reason, terminate_operator_type, terminate_operator")
  100. offset := (param.Page - 1) * param.PageSize
  101. if err := query.Order("terminate_time desc").Offset(offset).Limit(param.PageSize).Find(&projectTaskInfos).Error; err != nil {
  102. return nil, 0, err
  103. }
  104. return projectTaskInfos, total, nil
  105. }
  106. // 获取已解约的本地生活子任务数据
  107. func (d LocalLifeTaskInfoDao) GetListByCancelDefault(param *vo.DefaultSearchParam) ([]entity.LocalLifeInfo, int64, error) {
  108. projectTaskInfos := []entity.LocalLifeInfo{}
  109. var total int64
  110. query := Db.Debug().Model(&entity.LocalLifeInfo{}).Where("local_id = ? AND task_stage = ?", param.TaskId, 16)
  111. query.Count(&total)
  112. query = query.Select("task_id, talent_id, settle_amount, draft_fee, cancel_time, cancel_reason, cancel_operator_type, cancel_operator")
  113. offset := (param.Page - 1) * param.PageSize
  114. if err := query.Order("cancel_time desc").Offset(offset).Limit(param.PageSize).Find(&projectTaskInfos).Error; err != nil {
  115. return nil, 0, err
  116. }
  117. return projectTaskInfos, total, nil
  118. }
  119. // 更新字段
  120. func (d LocalLifeTaskInfoDao) UpdateField(taskId string, updateData map[string]interface{}) error {
  121. err := Db.Model(&entity.LocalLifeInfo{}).Where("task_id = ?", taskId).Updates(updateData).Error
  122. if err != nil {
  123. return err
  124. }
  125. return nil
  126. }
  127. // 批量更新字段
  128. func (d LocalLifeTaskInfoDao) UpdateFieldBatch(taskIds []string, updateData map[string]interface{}) error {
  129. err := Db.Model(&entity.LocalLifeInfo{}).Where("task_id IN ?", taskIds).Updates(updateData).Error
  130. if err != nil {
  131. return err
  132. }
  133. return nil
  134. }
  135. // 批量更新字段
  136. func (d LocalLifeTaskInfoDao) UpdateLocalStatus(taskIds []string, localLifeTaskInfo entity.LocalLifeTaskInfo) error {
  137. err := Db.Debug().Model(&entity.LocalLifeTaskInfo{}).Where("task_id IN ?", taskIds).Updates(localLifeTaskInfo).Error
  138. if err != nil {
  139. return err
  140. }
  141. return nil
  142. }