data.go 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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/issue9/conv"
  10. "github.com/sirupsen/logrus"
  11. )
  12. var Data *data
  13. type data struct {
  14. }
  15. // DataOpinion 在上传脚本表上提交修改意见
  16. func (*data) DataOpinion(ctx context.Context, request http_model.DataOpinionRequest) (*http_model.DataOpinionData, error) {
  17. Data := gorm_model.YounggeeDataInfo{
  18. TaskID: conv.MustInt(request.TaskID),
  19. ReviseOpinion: request.DataOpinion,
  20. }
  21. err := db.DataOpinion(ctx, Data.TaskID, Data.ReviseOpinion)
  22. if err != nil {
  23. logrus.WithContext(ctx).Errorf("[Data service] call CreateData error,err:%+v", err)
  24. return nil, err
  25. }
  26. // 记录任务日志
  27. err = db.CreateTaskLog(ctx, int64(Data.TaskID), "数据驳回")
  28. if err != nil {
  29. logrus.WithContext(ctx).Errorf("[Link service] call CreateTaskLog error,err:%+v", err)
  30. return nil, err
  31. }
  32. res := &http_model.DataOpinionData{
  33. TaskID: int64(Data.TaskID),
  34. }
  35. return res, nil
  36. }
  37. // 任务结案service
  38. func (*data) AcceptData(ctx context.Context, request http_model.AcceptDataRequest) (*http_model.AcceptDataData, error) {
  39. var TaskIDList []int
  40. TaskIDs := strings.Split(request.TaskIds, ",")
  41. for _, taskId := range TaskIDs {
  42. TaskIDList = append(TaskIDList, conv.MustInt(taskId))
  43. }
  44. // 1. 更新YounggeeDataInfo表,通过数据
  45. fmt.Printf("acc request %+v", TaskIDList)
  46. err := db.AcceptData(ctx, TaskIDList)
  47. if err != nil {
  48. logrus.WithContext(ctx).Errorf("[Data service] call AcceptData error,err:%+v", err)
  49. return nil, err
  50. }
  51. // 记录任务日志
  52. for _, taskId := range TaskIDList {
  53. err = db.CreateTaskLog(ctx, int64(taskId), "数据通过")
  54. if err != nil {
  55. logrus.WithContext(ctx).Errorf("[Data service] call CreateTaskLog error,err:%+v", err)
  56. return nil, err
  57. }
  58. }
  59. // 2. 更新YoungeeTaskInfo表,将任务结案
  60. fmt.Printf("acc request %+v", TaskIDList)
  61. err = db.SetTaskFinish(ctx, TaskIDList)
  62. if err != nil {
  63. logrus.WithContext(ctx).Errorf("[Data service] call SetTaskFinish error,err:%+v", err)
  64. return nil, err
  65. }
  66. res := &http_model.AcceptDataData{
  67. TaskIds: TaskIDList,
  68. IsEnd: 0,
  69. }
  70. // 3. 判断是否全部任务已结案,若已全部结案则触发项目结案
  71. // 查询task_stage<15的任务数量
  72. unFinishedTaskNumber, err1 := db.GetUnfinishedTaskNumber(ctx, request.ProjectId)
  73. if err1 != nil {
  74. logrus.WithContext(ctx).Errorf("[Data service] call GetUnfinishedTaskNumber error,err:%+v", err)
  75. return nil, err
  76. }
  77. if *unFinishedTaskNumber == 0 { // 若为0则触发项目结案
  78. err := db.SetProjectFinish(ctx, request.ProjectId)
  79. if err1 != nil {
  80. logrus.WithContext(ctx).Errorf("[Data service] call SetProjectFinish error,err:%+v", err)
  81. return nil, err
  82. }
  83. res.IsEnd = 1
  84. }
  85. return res, nil
  86. }