supplier.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. // CreateSupplier 新建服务商
  9. func CreateSupplier(ctx context.Context, newSupplier gorm_model.YoungeeSupplier) (*int, error) {
  10. db := GetWriteDB(ctx)
  11. err := db.Create(&newSupplier).Error
  12. if err != nil {
  13. return nil, err
  14. }
  15. return &newSupplier.SupplierId, nil
  16. }
  17. // GetSupplierByUserID 用户ID查找服务商信息
  18. func GetSupplierByUserID(ctx context.Context, userID int64) (*gorm_model.YoungeeSupplier, error) {
  19. db := GetReadDB(ctx)
  20. var supplierInfo *gorm_model.YoungeeSupplier
  21. err := db.Where("user_id = ?", userID).First(&supplierInfo).Error
  22. if err != nil {
  23. if err == gorm.ErrRecordNotFound {
  24. return nil, nil
  25. } else {
  26. return nil, err
  27. }
  28. }
  29. return supplierInfo, nil
  30. }
  31. // GetSupplierById 服务商ID查找服务商信息
  32. func GetSupplierById(ctx context.Context, supplierId int) (*gorm_model.YoungeeSupplier, error) {
  33. db := GetReadDB(ctx)
  34. var supplierInfo *gorm_model.YoungeeSupplier
  35. err := db.Where("supplier_id = ?", supplierId).First(&supplierInfo).Error
  36. if err != nil {
  37. if err == gorm.ErrRecordNotFound {
  38. return nil, nil
  39. } else {
  40. return nil, err
  41. }
  42. }
  43. return supplierInfo, nil
  44. }
  45. // UpdateSupplier 服务商信息更新
  46. func UpdateSupplier(ctx context.Context, supplierInfo *gorm_model.YoungeeSupplier) error {
  47. db := GetWriteDB(ctx)
  48. whereCondition := gorm_model.YoungeeSupplier{SupplierId: supplierInfo.SupplierId}
  49. err := db.Model(&gorm_model.YoungeeSupplier{}).Where(whereCondition).Updates(supplierInfo).Error
  50. if err != nil {
  51. return err
  52. }
  53. return nil
  54. }
  55. // CountSupplierUserByPhone 按照手机号码统计服务商数量
  56. func CountSupplierUserByPhone(ctx context.Context, phone string) (int64, error) {
  57. db := GetReadDB(ctx)
  58. var taskNum int64
  59. err := db.Model(gorm_model.YoungeeSupplier{}).Where("phone_number = ?", phone).Count(&taskNum).Error
  60. if err != nil {
  61. logrus.WithContext(ctx).Errorf("[CountSupplierUserByPhone] error read mysql, err:%+v", err)
  62. return 0, err
  63. }
  64. return taskNum, nil
  65. }