store_dao.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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) GetStoreByID(storeId int64) (*entity.Store, error) {
  16. var store entity.Store
  17. err := Db.Debug().Where("store_id = ?", storeId).First(&store).Error
  18. if err != nil {
  19. if errors.Is(err, gorm.ErrRecordNotFound) {
  20. return nil, nil
  21. } else {
  22. return nil, err
  23. }
  24. }
  25. return &store, nil
  26. }
  27. func (d StoreDao) GetStoresByEnterpriseID(enterpriseId string, page int, pageSize int) ([]entity.Store, int64, error) {
  28. var stores []entity.Store
  29. var total int64
  30. query := Db.Model(&entity.Store{}).Where("enterprise_id = ? AND is_deleted = ?", enterpriseId, 0)
  31. query.Count(&total)
  32. // 计算偏移量
  33. offset := (page - 1) * pageSize
  34. // 分页查询
  35. err := query.Order("created_at desc").Offset(offset).Limit(pageSize).Find(&stores).Error
  36. if err != nil {
  37. return nil, 0, err
  38. }
  39. return stores, total, nil
  40. }
  41. func (d StoreDao) GetStoresByEnterpriseIDAndStoreName(enterpriseId string, storeName string, page int, pageSize int) ([]entity.Store, int64, error) {
  42. var stores []entity.Store
  43. var total int64
  44. query := Db.Model(&entity.Store{}).Where("enterprise_id = ? AND is_deleted = ?", enterpriseId, 0)
  45. if storeName != "" {
  46. query = query.Where("store_name LIKE ?", "%"+storeName+"%")
  47. }
  48. query.Count(&total)
  49. // 计算偏移量
  50. offset := (page - 1) * pageSize
  51. // 分页查询
  52. err := query.Order("created_at desc").Offset(offset).Limit(pageSize).Find(&stores).Error
  53. if err != nil {
  54. return nil, 0, err
  55. }
  56. return stores, total, nil
  57. }