data.go 4.2 KB

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