enterprise_dao.go 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package dao
  2. import (
  3. "errors"
  4. "gorm.io/gorm"
  5. "youngee_b_api/app/entity"
  6. )
  7. type EnterpriseDao struct{}
  8. func (d EnterpriseDao) GetEnterpriseInfo(enterpriseId string) (*entity.Enterprise, error) {
  9. var enterprise entity.Enterprise
  10. err := Db.Debug().Model(&entity.Enterprise{}).Where("enterprise_id = ?", enterpriseId).Find(&enterprise).Error
  11. if err != nil {
  12. if errors.Is(err, gorm.ErrRecordNotFound) {
  13. return nil, nil
  14. } else {
  15. return nil, err
  16. }
  17. }
  18. return &enterprise, nil
  19. }
  20. func (d EnterpriseDao) GetEnterprise(enterpriseId string) (*entity.Enterprise, error) {
  21. var enterprise entity.Enterprise
  22. err := Db.Model(&entity.Enterprise{}).Where("enterprise_id = ?", enterpriseId).Select("business_name, user_id").Find(&enterprise).Error
  23. if err != nil {
  24. return nil, err
  25. }
  26. return &enterprise, nil
  27. }
  28. func (d EnterpriseDao) GetEnterprisePhone(enterpriseId string) (string, error) {
  29. var phone string
  30. err := Db.Debug().Model(&entity.Enterprise{}).Where("enterprise_id = ?", enterpriseId).Select("phone").Find(&phone).Error
  31. if err != nil {
  32. return "", err
  33. }
  34. return phone, nil
  35. }
  36. // 充值-更新账户余额
  37. func (d EnterpriseDao) UpdateEnterpriseBalance(enterpriseId string, amount float64) (*string, error) {
  38. var enterprise entity.Enterprise
  39. var err error
  40. err = Db.Debug().Model(&entity.Enterprise{}).Where("enterprise_id = ?", enterpriseId).Find(&enterprise).Error
  41. if err != nil {
  42. return nil, err
  43. }
  44. newBalance := enterprise.Balance + amount
  45. newAvailableBalance := enterprise.AvailableBalance + amount
  46. err = Db.Debug().Model(&entity.Enterprise{}).Where("enterprise_id = ?", enterpriseId).Updates(entity.Enterprise{
  47. Balance: newBalance,
  48. AvailableBalance: newAvailableBalance}).Error
  49. if err != nil {
  50. return nil, err
  51. }
  52. return &enterpriseId, nil
  53. }
  54. // 支付-更新账户余额、冻结金额
  55. func (d EnterpriseDao) UpdateEnterpriseBalanceAndFrozen(enterpriseId string, amount float64) (*string, error) {
  56. var enterprise entity.Enterprise
  57. var err error
  58. err = Db.Debug().Model(&entity.Enterprise{}).Where("enterprise_id = ?", enterpriseId).Find(&enterprise).Error
  59. if err != nil {
  60. return nil, err
  61. }
  62. if enterprise.AvailableBalance < amount {
  63. return nil, errors.New("可用余额不足")
  64. }
  65. newBalance := enterprise.Balance - amount
  66. newAvailableBalance := enterprise.AvailableBalance - amount
  67. newFrozenBalance := enterprise.FrozenBalance + amount
  68. err = Db.Debug().Model(&entity.Enterprise{}).Where("enterprise_id = ?", enterpriseId).Updates(entity.Enterprise{
  69. Balance: newBalance,
  70. AvailableBalance: newAvailableBalance,
  71. FrozenBalance: newFrozenBalance}).Error
  72. if err != nil {
  73. return nil, err
  74. }
  75. return &enterpriseId, nil
  76. }
  77. // 更新商家信息
  78. func (d EnterpriseDao) UpdateEnterprise(enterprise entity.Enterprise) error {
  79. err := Db.Model(&entity.Enterprise{}).Where("enterprise_id = ?", enterprise.EnterpriseID).Updates(enterprise).Error
  80. if err != nil {
  81. return err
  82. }
  83. return nil
  84. }