data.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package service
  2. import (
  3. "context"
  4. "strings"
  5. "youngee_m_api/db"
  6. "youngee_m_api/model/gorm_model"
  7. "youngee_m_api/model/http_model"
  8. "github.com/sirupsen/logrus"
  9. )
  10. var Data *data
  11. type data struct {
  12. }
  13. // DataOpinion 在上传脚本表上提交修改意见
  14. func (*data) DataOpinion(ctx context.Context, request http_model.DataOpinionRequest) (*http_model.DataOpinionData, error) {
  15. Data := gorm_model.YounggeeDataInfo{
  16. TaskID: request.TaskID,
  17. ReviseOpinion: request.DataOpinion,
  18. }
  19. err := db.DataOpinion(ctx, Data.TaskID, Data.ReviseOpinion)
  20. if err != nil {
  21. logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
  22. return nil, err
  23. }
  24. // 记录任务日志
  25. err = db.CreateTaskLog(ctx, Data.TaskID, "数据驳回")
  26. if err != nil {
  27. logrus.WithContext(ctx).Errorf("[Link service] call CreateTaskLog error,err:%+v", err)
  28. return nil, err
  29. }
  30. err = db.CreateMessageByTaskId(ctx, 19, 3, Data.TaskID)
  31. if err != nil {
  32. logrus.WithContext(ctx).Errorf("[Data service] call CreateMessageByTaskId error,err:%+v", err)
  33. return nil, err
  34. }
  35. res := &http_model.DataOpinionData{
  36. TaskID: Data.TaskID,
  37. }
  38. return res, nil
  39. }
  40. // 任务结案service
  41. func (*data) AcceptData(ctx context.Context, request http_model.AcceptDataRequest) (*http_model.AcceptDataData, error) {
  42. var TaskIDList []string
  43. TaskIDs := strings.Split(request.TaskIds, ",")
  44. for _, taskId := range TaskIDs {
  45. TaskIDList = append(TaskIDList, taskId)
  46. }
  47. // 1. 更新YounggeeDataInfo表,通过数据
  48. //fmt.Printf("acc request %+v", TaskIDList)
  49. err := db.AcceptData(ctx, TaskIDList)
  50. if err != nil {
  51. logrus.WithContext(ctx).Errorf("[Data service] call AcceptData error,err:%+v", err)
  52. return nil, err
  53. }
  54. // 记录任务日志
  55. for _, taskId := range TaskIDList {
  56. err = db.CreateTaskLog(ctx, taskId, "数据通过")
  57. if err != nil {
  58. logrus.WithContext(ctx).Errorf("[Data service] call CreateTaskLog error,err:%+v", err)
  59. return nil, err
  60. }
  61. err = db.CreateMessageByTaskId(ctx, 5, 1, taskId)
  62. if err != nil {
  63. logrus.WithContext(ctx).Errorf("[Script service] call CreateTaskLog error,err:%+v", err)
  64. return nil, err
  65. }
  66. }
  67. res := &http_model.AcceptDataData{
  68. TaskIds: TaskIDList,
  69. IsEnd: 0,
  70. }
  71. if request.IsSpecial == 1 {
  72. // 2. 更新YoungeeTaskInfo表,将任务结案
  73. err = db.SetSpecialTaskFinish(ctx, TaskIDList)
  74. if err != nil {
  75. logrus.WithContext(ctx).Errorf("[Data service] call SetTaskFinish error,err:%+v", err)
  76. return nil, err
  77. }
  78. // 3. 判断是否全部任务已结案,若已全部结案则触发项目结案
  79. // 查询task_stage<15的任务数量
  80. unFinishedTaskNumber, err1 := db.GetUnfinishedTaskNumber(ctx, request.ProjectId)
  81. if err1 != nil {
  82. logrus.WithContext(ctx).Errorf("[Data service] call GetUnfinishedTaskNumber error,err:%+v", err)
  83. return nil, err
  84. }
  85. if *unFinishedTaskNumber == 0 { // 若为0则触发项目结案
  86. err := db.SetSpecialProjectFinish(ctx, request.ProjectId)
  87. if err1 != nil {
  88. logrus.WithContext(ctx).Errorf("[Data service] call SetProjectFinish error,err:%+v", err)
  89. return nil, err
  90. }
  91. res.IsEnd = 1
  92. }
  93. } else {
  94. // 2. 更新YoungeeTaskInfo表,将任务结案
  95. //fmt.Printf("acc request %+v", TaskIDList)
  96. err = db.SetTaskFinish(ctx, TaskIDList)
  97. if err != nil {
  98. logrus.WithContext(ctx).Errorf("[Data service] call SetTaskFinish error,err:%+v", err)
  99. return nil, err
  100. }
  101. err = db.SetTalentIncome(ctx, TaskIDList)
  102. if err != nil {
  103. logrus.WithContext(ctx).Errorf("[Data service] call SetTalentIncome error,err:%+v", err)
  104. return nil, err
  105. }
  106. // 3. 判断是否全部任务已结案,若已全部结案则触发项目结案
  107. // 查询task_stage<15的任务数量
  108. unFinishedTaskNumber, err1 := db.GetUnfinishedTaskNumber(ctx, request.ProjectId)
  109. if err1 != nil {
  110. logrus.WithContext(ctx).Errorf("[Data service] call GetUnfinishedTaskNumber error,err:%+v", err)
  111. return nil, err
  112. }
  113. if *unFinishedTaskNumber == 0 { // 若为0则触发项目结案
  114. err := db.SetProjectFinish(ctx, request.ProjectId)
  115. if err1 != nil {
  116. logrus.WithContext(ctx).Errorf("[Data service] call SetProjectFinish error,err:%+v", err)
  117. return nil, err
  118. }
  119. res.IsEnd = 1
  120. }
  121. }
  122. return res, nil
  123. }