task.go 2.5 KB

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