task.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package db
  2. import (
  3. "context"
  4. "github.com/caixw/lib.go/conv"
  5. "time"
  6. "youngee_m_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 := conv.MustInt(taskStatus, 0)
  49. if err := db.Debug().Model(&gorm_model.YoungeeTaskInfo{}).Where("task_id IN ?", taskIds).
  50. Updates(gorm_model.YoungeeTaskInfo{TaskStatus: taskSta}).Error; err != nil {
  51. logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]2 error query mysql total, err:%+v", err)
  52. return nil, err
  53. }
  54. var taskInfos []gorm_model.YoungeeTaskInfo
  55. err := db.Debug().Model(&gorm_model.YoungeeTaskInfo{}).Where("task_id IN ?", taskIds).Find(&taskInfos).Error
  56. if err != nil {
  57. logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]3 error query mysql total, err:%+v", err)
  58. return nil, err
  59. }
  60. var recruitStrategysIDs []int64
  61. recruitStrategys := gorm_model.RecruitStrategy{}
  62. for _, taskInfo := range taskInfos {
  63. err2 := db.Debug().Model(gorm_model.RecruitStrategy{}).Where("project_id=? AND strategy_id=?", taskInfo.ProjectId, taskInfo.StrategyId).Scan(&recruitStrategys).Error
  64. if err2 != nil {
  65. logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]4 error query mysql total, err:%+v", err2)
  66. return nil, err2
  67. }
  68. recruitStrategysIDs = append(recruitStrategysIDs, recruitStrategys.RecruitStrategyID)
  69. }
  70. return recruitStrategysIDs, nil
  71. }
  72. func UpdateTaskStage(ctx context.Context, projectID int64, taskStatus int64, taskStage int64) error {
  73. db := GetReadDB(ctx)
  74. err := db.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id=? and task_status = ?", projectID, taskStatus).Update("task_stage", taskStage).Error
  75. if err != nil {
  76. logrus.WithContext(ctx).Errorf("[UpdateTaskStatusPaying]2 error query mysql total, err:%+v", err)
  77. return err
  78. }
  79. return nil
  80. }