recruit_strategy.go 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package db
  2. import (
  3. "context"
  4. "github.com/sirupsen/logrus"
  5. "gorm.io/gorm"
  6. "youngee_m_api/model/gorm_model"
  7. )
  8. func CreateRecruitStrategy(ctx context.Context, recruitStrategys []gorm_model.RecruitStrategy) error {
  9. db := GetReadDB(ctx)
  10. err := db.Create(&recruitStrategys).Error
  11. if err != nil {
  12. return err
  13. }
  14. return nil
  15. }
  16. func DeleteRecruitStrategyByProjectID(ctx context.Context, projectID string) error {
  17. db := GetReadDB(ctx)
  18. err := db.Where("project_id = ?", projectID).Delete(&gorm_model.RecruitStrategy{}).Error
  19. if err != nil {
  20. return err
  21. }
  22. return nil
  23. }
  24. func CalculateSelectedNumberByRecruitStrategyID(ctx context.Context, recruitStrategyIDs []int64, AddNumber int64) error {
  25. db := GetReadDB(ctx)
  26. err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id in ?", recruitStrategyIDs).
  27. Updates(map[string]interface{}{
  28. "selected_number": gorm.Expr("selected_number + ?", AddNumber),
  29. "waiting_number": gorm.Expr("waiting_number + ?", AddNumber)}).Error
  30. if err != nil {
  31. return err
  32. }
  33. return nil
  34. }
  35. func UpdateSelectedNumber(ctx context.Context, RecruitStrategyID int64, selected_number int64) error {
  36. db := GetReadDB(ctx)
  37. err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id = ?", RecruitStrategyID).
  38. Update("selected_number", gorm.Expr("selected_number + ?", selected_number)).Error
  39. if err != nil {
  40. logrus.WithContext(ctx).Errorf("[logistics db] call CreateLogistics error,err:%+v", err)
  41. return err
  42. }
  43. return nil
  44. }
  45. func UpdateLogisticsNumber(ctx context.Context, RecruitStrategyID int64, delivered_value int64, waiting_value int64, signed_value int64) error {
  46. db := GetReadDB(ctx)
  47. err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id = ?", RecruitStrategyID).
  48. Updates(map[string]interface{}{"delivered_number": gorm.Expr("delivered_number + ?", delivered_value),
  49. "waiting_number": gorm.Expr("waiting_number + ?", waiting_value), "signed_number": gorm.Expr("signed_number + ?", signed_value)}).Error
  50. if err != nil {
  51. logrus.WithContext(ctx).Errorf("[logistics db] call CreateLogistics error,err:%+v", err)
  52. return err
  53. }
  54. return nil
  55. }
  56. func GetRecruitStrategyIdByTS(ctx context.Context, projectId string, strategyID int64) (*int64, error) {
  57. db := GetReadDB(ctx)
  58. RecruitStrategy := &gorm_model.RecruitStrategy{}
  59. err := db.Model(gorm_model.RecruitStrategy{}).Where("project_id = ? AND strategy_id = ?", projectId, strategyID).Scan(RecruitStrategy).Error
  60. if err != nil {
  61. logrus.WithContext(ctx).Errorf("[logistics db] call GetRecruitStrategyIdByTS error,err:%+v", err)
  62. return nil, err
  63. }
  64. return &RecruitStrategy.RecruitStrategyID, nil
  65. }
  66. func GetRecruitStrategyByProjectId(ctx context.Context, projectId string) ([]gorm_model.RecruitStrategy, error) {
  67. db := GetReadDB(ctx)
  68. var RecruitStrategy []gorm_model.RecruitStrategy
  69. err := db.Model(gorm_model.RecruitStrategy{}).Where("project_id = ?", projectId).Scan(&RecruitStrategy).Error
  70. if err != nil {
  71. logrus.WithContext(ctx).Errorf("[logistics db] call GetRecruitStrategyIdByProjectId error,err:%+v", err)
  72. return nil, err
  73. }
  74. return RecruitStrategy, nil
  75. }