store_dao.go 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package dao
  2. import (
  3. "errors"
  4. "gorm.io/gorm"
  5. "youngee_b_api/app/entity"
  6. )
  7. type StoreDao struct{}
  8. func (d StoreDao) CreateStore(store entity.Store) (int64, error) {
  9. err := Db.Model(&entity.Store{}).Create(&store).Error
  10. if err != nil {
  11. return 0, err
  12. }
  13. return store.StoreID, nil
  14. }
  15. func (d StoreDao) UpdateStore(store entity.Store) (int64, error) {
  16. err := Db.Model(&entity.Store{}).Where("store_id = ?", store.StoreID).Updates(store).Error
  17. if err != nil {
  18. return 0, err
  19. }
  20. return store.StoreID, nil
  21. }
  22. func (d StoreDao) DeleteStore(storeId int64) error {
  23. err := Db.Where("store_id = ?", storeId).Delete(&entity.Store{}).Error
  24. return err
  25. }
  26. func (d StoreDao) GetStoreByID(storeId int64) (*entity.Store, error) {
  27. var store entity.Store
  28. err := Db.Debug().Where("store_id = ?", storeId).First(&store).Error
  29. if err != nil {
  30. if errors.Is(err, gorm.ErrRecordNotFound) {
  31. return nil, nil
  32. } else {
  33. return nil, err
  34. }
  35. }
  36. return &store, nil
  37. }
  38. func (d StoreDao) GetStoresByEnterpriseID(enterpriseId string, page int, pageSize int) ([]entity.Store, int64, error) {
  39. var stores []entity.Store
  40. var total int64
  41. query := Db.Model(&entity.Store{}).Where("enterprise_id = ? AND is_deleted = ?", enterpriseId, 0)
  42. query.Count(&total)
  43. // 计算偏移量
  44. offset := (page - 1) * pageSize
  45. // 分页查询
  46. err := query.Order("created_at desc").Offset(offset).Limit(pageSize).Find(&stores).Error
  47. if err != nil {
  48. return nil, 0, err
  49. }
  50. return stores, total, nil
  51. }
  52. func (d StoreDao) GetStoresByEnterpriseIDAndStoreName(enterpriseId string, storeName string, page int, pageSize int) ([]entity.Store, int64, error) {
  53. var stores []entity.Store
  54. var total int64
  55. query := Db.Model(&entity.Store{}).Where("enterprise_id = ? AND is_deleted = ?", enterpriseId, 0)
  56. if storeName != "" {
  57. query = query.Where("store_name LIKE ?", "%"+storeName+"%")
  58. }
  59. query.Count(&total)
  60. // 计算偏移量
  61. offset := (page - 1) * pageSize
  62. // 分页查询
  63. err := query.Order("created_at desc").Offset(offset).Limit(pageSize).Find(&stores).Error
  64. if err != nil {
  65. return nil, 0, err
  66. }
  67. return stores, total, nil
  68. }
  69. // 更新team_num字段值
  70. func (d StoreDao) IncrementTeamNum(storeId int64) error {
  71. err := Db.Model(&entity.Store{}).Where("store_id = ?", storeId).Update("team_num", gorm.Expr("team_num + ?", 1)).Error
  72. return err
  73. }
  74. // 获取所有门店类目
  75. func (d StoreDao) GetStoreCategory() ([]entity.StoreCategory, error) {
  76. var storeCategory []entity.StoreCategory
  77. err := Db.Model(&entity.StoreCategory{}).Find(&storeCategory).Error
  78. return storeCategory, err
  79. }