recruit_strategy.go 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package db
  2. import (
  3. "context"
  4. "github.com/sirupsen/logrus"
  5. "gorm.io/gorm"
  6. "youngee_b_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, recruitstrategyID int64, AddNumber int64) error {
  25. db := GetReadDB(ctx)
  26. err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id = ?", recruitstrategyID).
  27. Updates(map[string]interface{}{"selected_number": gorm.Expr("selected_number + ?", AddNumber), "waiting_number": gorm.Expr("waiting_number + ?", AddNumber)}).Error
  28. if err != nil {
  29. return err
  30. }
  31. return nil
  32. }
  33. func UpdateLogisticsNumber(ctx context.Context, RecruitStrategyID int64, delivered_value int64, waiting_value int64, signed_value int64) error {
  34. db := GetReadDB(ctx)
  35. err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id = ?", RecruitStrategyID).
  36. 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
  37. if err != nil {
  38. logrus.WithContext(ctx).Errorf("[logistics db] call CreateLogistics error,err:%+v", err)
  39. return err
  40. }
  41. return nil
  42. }
  43. func GetRecruitStrategyIdByTS(ctx context.Context, projectId string, strategyID int64) (*int64, error) {
  44. db := GetReadDB(ctx)
  45. RecruitStrategy := &gorm_model.RecruitStrategy{}
  46. err := db.Model(gorm_model.RecruitStrategy{}).Where("project_id = ? AND strategy_id = ?", projectId, strategyID).Scan(RecruitStrategy).Error
  47. if err != nil {
  48. logrus.WithContext(ctx).Errorf("[logistics db] call GetRecruitStrategyIdByTS error,err:%+v", err)
  49. return nil, err
  50. }
  51. return &RecruitStrategy.RecruitStrategyID, nil
  52. }
  53. func GetRecruitStrategyByProjectId(ctx context.Context, projectId string) ([]gorm_model.RecruitStrategy, error) {
  54. db := GetReadDB(ctx)
  55. RecruitStrategys := []gorm_model.RecruitStrategy{}
  56. err := db.Model(gorm_model.RecruitStrategy{}).Where("project_id = ? AND strategy_type = ?", projectId, 1).Scan(&RecruitStrategys).Error
  57. if err != nil {
  58. logrus.WithContext(ctx).Errorf("[logistics db] call GetRecruitStrategyByProjectId error,err:%+v", err)
  59. return nil, err
  60. }
  61. return RecruitStrategys, nil
  62. }
  63. func GetRecruitStrategyBySProjectId(ctx context.Context, sProjectId int) ([]gorm_model.RecruitStrategy, error) {
  64. db := GetReadDB(ctx)
  65. RecruitStrategys := []gorm_model.RecruitStrategy{}
  66. err := db.Model(gorm_model.RecruitStrategy{}).Where("s_project_id = ? AND strategy_type = ?", sProjectId, 2).Scan(&RecruitStrategys).Error
  67. if err != nil {
  68. logrus.WithContext(ctx).Errorf("[logistics db] call GetRecruitStrategyByProjectId error,err:%+v", err)
  69. return nil, err
  70. }
  71. return RecruitStrategys, nil
  72. }
  73. func GetRecruitStrategyBySLocalId(ctx context.Context, sLocalId int) ([]gorm_model.RecruitStrategy, error) {
  74. db := GetReadDB(ctx)
  75. RecruitStrategys := []gorm_model.RecruitStrategy{}
  76. err := db.Model(gorm_model.RecruitStrategy{}).Where("s_local_id = ? AND strategy_type = ?", sLocalId, 2).Scan(&RecruitStrategys).Error
  77. if err != nil {
  78. logrus.WithContext(ctx).Errorf("[logistics db] call GetRecruitStrategyByProjectId error,err:%+v", err)
  79. return nil, err
  80. }
  81. return RecruitStrategys, nil
  82. }