enterprise_dao.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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, needPay 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 < needPay {
  63. return nil, errors.New("可用余额不足")
  64. }
  65. newAvailableBalance := enterprise.AvailableBalance - needPay
  66. newFrozenBalance := enterprise.FrozenBalance + needPay
  67. err = Db.Model(&entity.Enterprise{}).Where("enterprise_id = ?", enterpriseId).Updates(entity.Enterprise{
  68. AvailableBalance: newAvailableBalance,
  69. FrozenBalance: newFrozenBalance}).Error
  70. if err != nil {
  71. return nil, err
  72. }
  73. return &enterpriseId, nil
  74. }
  75. // 解冻-更新账户余额、冻结金额
  76. func (d EnterpriseDao) UpdateEnterpriseBalanceAndFrozen2(enterpriseId string, needPay float64, realPayments float64) (*string, error) {
  77. var enterprise entity.Enterprise
  78. var err error
  79. err = Db.Model(&entity.Enterprise{}).Where("enterprise_id = ?", enterpriseId).Find(&enterprise).Error
  80. if err != nil {
  81. return nil, err
  82. }
  83. newBalance := enterprise.Balance - realPayments
  84. newAvailableBalance := enterprise.AvailableBalance + (needPay - realPayments)
  85. newFrozenBalance := enterprise.FrozenBalance - needPay
  86. err = Db.Debug().Model(&entity.Enterprise{}).Where("enterprise_id = ?", enterpriseId).Updates(entity.Enterprise{
  87. Balance: newBalance,
  88. AvailableBalance: newAvailableBalance,
  89. FrozenBalance: newFrozenBalance}).Error
  90. if err != nil {
  91. return nil, err
  92. }
  93. return &enterpriseId, nil
  94. }
  95. // 更新商家信息
  96. func (d EnterpriseDao) UpdateEnterprise(enterprise entity.Enterprise) error {
  97. err := Db.Model(&entity.Enterprise{}).Where("enterprise_id = ?", enterprise.EnterpriseID).Updates(enterprise).Error
  98. if err != nil {
  99. return err
  100. }
  101. return nil
  102. }