recruit_strategy.go 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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).Updates(map[string]interface{}{"selected_number": gorm.Expr("selected_number + ?", AddNumber), "waiting_number": gorm.Expr("waiting_number + ?", AddNumber)}).Error
  27. if err != nil {
  28. return err
  29. }
  30. return nil
  31. }
  32. func UpdateSelectedNumber(ctx context.Context, RecruitStrategyID int64, selected_number int64) error {
  33. db := GetReadDB(ctx)
  34. err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id = ?", RecruitStrategyID).Update("selected_number", gorm.Expr("selected_number + ?", selected_number)).Error
  35. if err != nil {
  36. logrus.WithContext(ctx).Errorf("[logistics db] call CreateLogistics error,err:%+v", err)
  37. return err
  38. }
  39. return nil
  40. }
  41. func UpdateLogisticsNumber(ctx context.Context, RecruitStrategyID int64, delivered_value int64, waiting_value int64, signed_value int64) error {
  42. db := GetReadDB(ctx)
  43. err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id = ?", RecruitStrategyID).
  44. Updates(map[string]interface{}{"delivered_number": gorm.Expr("delivered_number + ?", delivered_value), "waiting_number": gorm.Expr("waiting_number + ?", waiting_value), "signed_number": gorm.Expr("signed_number + ?", signed_value)}).Error
  45. if err != nil {
  46. logrus.WithContext(ctx).Errorf("[logistics db] call CreateLogistics error,err:%+v", err)
  47. return err
  48. }
  49. return nil
  50. }
  51. func GetRecruitStrategyIdByTS(ctx context.Context, projectId string, strategyID int64) (*int64, error) {
  52. db := GetReadDB(ctx)
  53. RecruitStrategy := &gorm_model.RecruitStrategy{}
  54. err := db.Model(gorm_model.RecruitStrategy{}).Where("project_id = ? AND strategy_id = ?", projectId, strategyID).Scan(RecruitStrategy).Error
  55. if err != nil {
  56. logrus.WithContext(ctx).Errorf("[logistics db] call CreateLogistics error,err:%+v", err)
  57. return nil, err
  58. }
  59. return &RecruitStrategy.RecruitStrategyID, nil
  60. }