recruit_strategy.go 2.7 KB

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