number_info.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. package db
  2. import (
  3. "context"
  4. "fmt"
  5. "strconv"
  6. "time"
  7. "youngee_m_api/model/gorm_model"
  8. "youngee_m_api/model/http_model"
  9. "github.com/sirupsen/logrus"
  10. )
  11. func GetLogisticsNumberInfo(ctx context.Context, projectId int64, strategyIds []int64) (*http_model.GetLogisticsNumberInfoData, error) {
  12. var LogisticsNumberInfoDataList http_model.GetLogisticsNumberInfoData
  13. for _, strategyId := range strategyIds {
  14. var LogisticsNumberInfoData http_model.LogisticsNumberInfo
  15. LogisticsNumberInfoData.StrategyId = strategyId
  16. db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  17. err := db.Where("logistics_status = 1").Count(&LogisticsNumberInfoData.UndeliveredNumber).Error
  18. if err != nil {
  19. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  20. return nil, err
  21. }
  22. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  23. err = db.Where("logistics_status = 2").Count(&LogisticsNumberInfoData.DeliveredNumber).Error
  24. if err != nil {
  25. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  26. return nil, err
  27. }
  28. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  29. err = db.Where("logistics_status = 3").Count(&LogisticsNumberInfoData.SignedNumber).Error
  30. if err != nil {
  31. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  32. return nil, err
  33. }
  34. LogisticsNumberInfoDataList.LogisticsNumberInfoList = append(LogisticsNumberInfoDataList.LogisticsNumberInfoList, &LogisticsNumberInfoData)
  35. }
  36. return &LogisticsNumberInfoDataList, nil
  37. }
  38. func GetReviewNumberInfo(ctx context.Context, projectId int64, strategyIds []int64) (*http_model.GetReviewNumberInfoData, error) {
  39. var ReviewNumberInfoDataList http_model.GetReviewNumberInfoData
  40. for _, strategyId := range strategyIds {
  41. var ReviewNumberInfoData http_model.ReviewNumberInfo
  42. ReviewNumberInfoData.StrategyId = strategyId
  43. db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  44. err := db.Where("task_stage = 8").Count(&ReviewNumberInfoData.ScriptUnreviewNumber).Error
  45. if err != nil {
  46. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  47. return nil, err
  48. }
  49. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  50. err = db.Where("task_stage > 8").Count(&ReviewNumberInfoData.ScriptPassedNumber).Error
  51. if err != nil {
  52. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  53. return nil, err
  54. }
  55. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  56. err = db.Where("task_stage = 10").Count(&ReviewNumberInfoData.SketchUnreviewNumber).Error
  57. if err != nil {
  58. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  59. return nil, err
  60. }
  61. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  62. err = db.Where("task_stage > 10").Count(&ReviewNumberInfoData.SketchPassedNumber).Error
  63. if err != nil {
  64. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  65. return nil, err
  66. }
  67. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  68. err = db.Count(&ReviewNumberInfoData.ReviewNumber).Error
  69. if err != nil {
  70. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  71. return nil, err
  72. }
  73. ReviewNumberInfoDataList.ReviewNumberInfoList = append(ReviewNumberInfoDataList.ReviewNumberInfoList, &ReviewNumberInfoData)
  74. }
  75. return &ReviewNumberInfoDataList, nil
  76. }
  77. func GetLinkNumberInfo(ctx context.Context, projectId int64, strategyIds []int64) (*http_model.GetLinkNumberInfoData, error) {
  78. var LinkNumberInfoDataList http_model.GetLinkNumberInfoData
  79. for _, strategyId := range strategyIds {
  80. var LinkNumberInfoData http_model.LinkNumberInfo
  81. LinkNumberInfoData.StrategyId = strategyId
  82. db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  83. err := db.Where("task_stage = 12").Count(&LinkNumberInfoData.LinkUnreviewNumber).Error
  84. if err != nil {
  85. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  86. return nil, err
  87. }
  88. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  89. err = db.Where("task_stage > 12").Count(&LinkNumberInfoData.LinkPassedNumber).Error
  90. if err != nil {
  91. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  92. return nil, err
  93. }
  94. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  95. err = db.Count(&LinkNumberInfoData.LinkNumber).Error
  96. if err != nil {
  97. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  98. return nil, err
  99. }
  100. LinkNumberInfoDataList.LinkNumberInfoList = append(LinkNumberInfoDataList.LinkNumberInfoList, &LinkNumberInfoData)
  101. }
  102. return &LinkNumberInfoDataList, nil
  103. }
  104. func GetDataNumberInfo(ctx context.Context, projectId int64, strategyIds []int64) (*http_model.GetDataNumberInfoData, error) {
  105. var DataNumberInfoDataList http_model.GetDataNumberInfoData
  106. for _, strategyId := range strategyIds {
  107. var DataNumberInfoData http_model.DataNumberInfo
  108. DataNumberInfoData.StrategyId = strategyId
  109. db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  110. err := db.Where("task_stage = 14").Count(&DataNumberInfoData.DataUnreviewNumber).Error
  111. if err != nil {
  112. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  113. return nil, err
  114. }
  115. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  116. err = db.Where("task_stage > 14").Count(&DataNumberInfoData.DataPassedNumber).Error
  117. if err != nil {
  118. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  119. return nil, err
  120. }
  121. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  122. err = db.Count(&DataNumberInfoData.DataNumber).Error
  123. if err != nil {
  124. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  125. return nil, err
  126. }
  127. DataNumberInfoDataList.DataNumberInfoList = append(DataNumberInfoDataList.DataNumberInfoList, &DataNumberInfoData)
  128. }
  129. return &DataNumberInfoDataList, nil
  130. }
  131. func GetDefaultNumberInfo(ctx context.Context, projectId int64, strategyIds []int64) (*http_model.GetDefaultNumberInfoData, error) {
  132. var DefaultNumberInfoDataList http_model.GetDefaultNumberInfoData
  133. for _, strategyId := range strategyIds {
  134. var DefaultNumberInfoData http_model.DefaultNumberInfo
  135. DefaultNumberInfoData.StrategyId = strategyId
  136. db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  137. err := db.Where("complete_status <> 4").Count(&DefaultNumberInfoData.ShouldFinishNumber).Error
  138. if err != nil {
  139. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  140. return nil, err
  141. }
  142. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  143. err = db.Where("cur_default_type = 1").Count(&DefaultNumberInfoData.UnuploadScriptNumber).Error
  144. if err != nil {
  145. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  146. return nil, err
  147. }
  148. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  149. err = db.Where("cur_default_type = 3").Count(&DefaultNumberInfoData.UnuploadSketchNumber).Error
  150. if err != nil {
  151. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  152. return nil, err
  153. }
  154. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  155. err = db.Where("cur_default_type = 5").Count(&DefaultNumberInfoData.UnuploadLinkNumber).Error
  156. if err != nil {
  157. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  158. return nil, err
  159. }
  160. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  161. err = db.Where("cur_default_type = 7").Count(&DefaultNumberInfoData.UnuploadDataNumber).Error
  162. if err != nil {
  163. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  164. return nil, err
  165. }
  166. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  167. err = db.Where("complete_status = 4").Count(&DefaultNumberInfoData.TerminateNumber).Error
  168. if err != nil {
  169. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  170. return nil, err
  171. }
  172. DefaultNumberInfoDataList.DefaultNumberInfoList = append(DefaultNumberInfoDataList.DefaultNumberInfoList, &DefaultNumberInfoData)
  173. }
  174. return &DefaultNumberInfoDataList, nil
  175. }
  176. func GetFinishNumberInfo(ctx context.Context, projectId int64, strategyIds []int64) (*http_model.GetFinishNumberInfoData, error) {
  177. var FinishNumberInfoDataList http_model.GetFinishNumberInfoData
  178. for _, strategyId := range strategyIds {
  179. var FinishNumberInfoData http_model.FinishNumberInfo
  180. FinishNumberInfoData.StrategyId = strategyId
  181. db := GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  182. err := db.Where("task_stage = 15").Count(&FinishNumberInfoData.ShouldFinishNumber).Error
  183. if err != nil {
  184. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  185. return nil, err
  186. }
  187. db = GetReadDB(ctx).Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ? and strategy_id = ? and task_status = 2", projectId, strategyId)
  188. err = db.Where("task_stage = 16").Count(&FinishNumberInfoData.FinishedNumber).Error
  189. if err != nil {
  190. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  191. return nil, err
  192. }
  193. FinishNumberInfoDataList.FinishNumberInfoList = append(FinishNumberInfoDataList.FinishNumberInfoList, &FinishNumberInfoData)
  194. }
  195. return &FinishNumberInfoDataList, nil
  196. }
  197. func GetLogisticsNum() [][]string {
  198. var logisticNumsInfos [][]string
  199. db := GetReadDB(context.Background())
  200. var logisticInfos []*gorm_model.YoungeeTaskLogistics
  201. db.Model(gorm_model.YoungeeTaskLogistics{}).Where("things_type = 1 AND status = 0").Find(&logisticInfos)
  202. for _, logisticInfo := range logisticInfos {
  203. var logisticNumsInfo []string
  204. logisticNumsInfo = append(logisticNumsInfo, logisticInfo.CompanyName, logisticInfo.LogisticsNumber, strconv.FormatInt(logisticInfo.LogisticsID, 10))
  205. logisticNumsInfos = append(logisticNumsInfos, logisticNumsInfo)
  206. }
  207. fmt.Println("logisticNumsInfos:", logisticNumsInfos)
  208. return logisticNumsInfos
  209. }
  210. func SignLogistic(logisticId int64) {
  211. db := GetReadDB(context.Background())
  212. var taskId, projectId, contentType int64
  213. db.Model(gorm_model.YoungeeTaskLogistics{}).Select("task_id").Where("logistics_id = ?", logisticId).Find(&taskId)
  214. db.Model(gorm_model.YoungeeTaskInfo{}).Select("project_id").Where("task_id = ?", taskId).Find(&projectId)
  215. db.Model(gorm_model.ProjectInfo{}).Select("content_type").Where("project_id = ?", projectId).Find(&contentType)
  216. db.Model(gorm_model.YoungeeTaskLogistics{}).Where("logistics_id = ?", logisticId).Updates(&gorm_model.YoungeeTaskLogistics{SignedTime: time.Now(), Status: 1})
  217. if contentType == 1 {
  218. db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskId).Updates(&gorm_model.YoungeeTaskInfo{LogisticsStatus: 3, TaskStage: 9})
  219. fmt.Printf("任务 %v 物流状态为已签收,已更新任务状态为 待传初稿\n", taskId)
  220. } else {
  221. db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskId).Updates(&gorm_model.YoungeeTaskInfo{LogisticsStatus: 3, TaskStage: 7})
  222. fmt.Printf("任务 %v 物流状态为已签收,已更新任务状态为 待传脚本\n", taskId)
  223. }
  224. }