task.go 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package db
  2. import (
  3. "context"
  4. "strconv"
  5. "time"
  6. "youngee_b_api/model/gorm_model"
  7. "github.com/sirupsen/logrus"
  8. )
  9. func GetTaskList(ctx context.Context, projectID int64) ([]gorm_model.YoungeeTaskInfo, error) {
  10. db := GetReadDB(ctx)
  11. tasks := []gorm_model.YoungeeTaskInfo{}
  12. err := db.Where("project_id=?", projectID).Find(&tasks).Error
  13. if err != nil {
  14. return nil, err
  15. }
  16. return tasks, nil
  17. }
  18. func UpdateLogisticsStatus(ctx context.Context, taskID int64, status int64) error {
  19. db := GetReadDB(ctx)
  20. err := db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskID).Update("logistics_status", status).Error
  21. if err != nil {
  22. logrus.WithContext(ctx).Errorf("[task db] call UpdateLogisticsStatus error,err:%+v", err)
  23. return err
  24. }
  25. return nil
  26. }
  27. func UpdateLogisticsDate(ctx context.Context, taskID int64) error {
  28. db := GetReadDB(ctx)
  29. err := db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskID).Update("delivery_date", time.Now()).Error
  30. if err != nil {
  31. logrus.WithContext(ctx).Errorf("[task db] call UpdateLogisticsDate error,err:%+v", err)
  32. return err
  33. }
  34. return nil
  35. }
  36. func GetProjectIdByTaskId(ctx context.Context, taskID int64) (*int, error) {
  37. db := GetReadDB(ctx)
  38. task := &gorm_model.YoungeeTaskInfo{}
  39. err := db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskID).Scan(task).Error
  40. if err != nil {
  41. logrus.WithContext(ctx).Errorf("[task db] call UpdateLogisticsStatus error,err:%+v", err)
  42. return nil, err
  43. }
  44. return &task.ProjectID, nil
  45. }
  46. func ChangeTaskStatus(ctx context.Context, taskIds []string, taskStatus string) ([]int64, error) {
  47. db := GetReadDB(ctx)
  48. taskSta, err := strconv.Atoi(taskStatus)
  49. if err != nil {
  50. logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]1 error query mysql total, err:%+v", err)
  51. return nil, err
  52. }
  53. if err := db.Debug().Model(&gorm_model.YoungeeTaskInfo{}).Where("task_id IN ?", taskIds).
  54. Updates(gorm_model.YoungeeTaskInfo{TaskStatus: taskSta}).Error; err != nil {
  55. logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]2 error query mysql total, err:%+v", err)
  56. return nil, err
  57. }
  58. var taskInfos []gorm_model.YoungeeTaskInfo
  59. err = db.Debug().Model(&gorm_model.YoungeeTaskInfo{}).Where("task_id IN ?", taskIds).Find(&taskInfos).Error
  60. if err != nil {
  61. logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]3 error query mysql total, err:%+v", err)
  62. return nil, err
  63. }
  64. var recruitStrategysIDs []int64
  65. recruitStrategys := gorm_model.RecruitStrategy{}
  66. for _, taskInfo := range taskInfos {
  67. err2 := db.Debug().Model(gorm_model.RecruitStrategy{}).Where("project_id=? AND strategy_id=?", taskInfo.ProjectID, taskInfo.StrategyID).Scan(&recruitStrategys).Error
  68. if err2 != nil {
  69. logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]4 error query mysql total, err:%+v", err2)
  70. return nil, err2
  71. }
  72. recruitStrategysIDs = append(recruitStrategysIDs, recruitStrategys.RecruitStrategyID)
  73. }
  74. return recruitStrategysIDs, nil
  75. }
  76. func UpdateTaskStage(ctx context.Context, projectID int64, taskStatus int64, taskStage int64) error {
  77. db := GetReadDB(ctx)
  78. err := db.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id=? and task_status = ?", projectID, taskStatus).Update("task_stage", taskStage).Error
  79. if err != nil {
  80. logrus.WithContext(ctx).Errorf("[UpdateTaskStatusPaying]2 error query mysql total, err:%+v", err)
  81. return err
  82. }
  83. return nil
  84. }