1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package dao
- import (
- "errors"
- "gorm.io/gorm"
- "youngee_b_api/app/entity"
- )
- type StoreDao struct{}
- func (d StoreDao) CreateStore(store entity.Store) (int64, error) {
- err := Db.Model(&entity.Store{}).Create(&store).Error
- if err != nil {
- return 0, err
- }
- return store.StoreID, nil
- }
- func (d StoreDao) UpdateStore(store entity.Store) (int64, error) {
- err := Db.Model(&entity.Store{}).Where("store_id = ?", store.StoreID).Updates(store).Error
- if err != nil {
- return 0, err
- }
- return store.StoreID, nil
- }
- func (d StoreDao) DeleteStore(storeId int64) error {
- err := Db.Where("store_id = ?", storeId).Delete(&entity.Store{}).Error
- return err
- }
- func (d StoreDao) GetStoreByID(storeId int64) (*entity.Store, error) {
- var store entity.Store
- err := Db.Debug().Where("store_id = ?", storeId).First(&store).Error
- if err != nil {
- if errors.Is(err, gorm.ErrRecordNotFound) {
- return nil, nil
- } else {
- return nil, err
- }
- }
- return &store, nil
- }
- func (d StoreDao) GetStoresByEnterpriseID(enterpriseId string, page int, pageSize int) ([]entity.Store, int64, error) {
- var stores []entity.Store
- var total int64
- query := Db.Model(&entity.Store{}).Where("enterprise_id = ? AND is_deleted = ?", enterpriseId, 0)
- query.Count(&total)
- // 计算偏移量
- offset := (page - 1) * pageSize
- // 分页查询
- err := query.Order("created_at desc").Offset(offset).Limit(pageSize).Find(&stores).Error
- if err != nil {
- return nil, 0, err
- }
- return stores, total, nil
- }
- func (d StoreDao) GetStoresByEnterpriseIDAndStoreName(enterpriseId string, storeName string, page int, pageSize int) ([]entity.Store, int64, error) {
- var stores []entity.Store
- var total int64
- query := Db.Model(&entity.Store{}).Where("enterprise_id = ? AND is_deleted = ?", enterpriseId, 0)
- if storeName != "" {
- query = query.Where("store_name LIKE ?", "%"+storeName+"%")
- }
- query.Count(&total)
- // 计算偏移量
- offset := (page - 1) * pageSize
- // 分页查询
- err := query.Order("created_at desc").Offset(offset).Limit(pageSize).Find(&stores).Error
- if err != nil {
- return nil, 0, err
- }
- return stores, total, nil
- }
- // 更新team_num字段值
- func (d StoreDao) IncrementTeamNum(storeId int64) error {
- err := Db.Model(&entity.Store{}).Where("store_id = ?", storeId).Update("team_num", gorm.Expr("team_num + ?", 1)).Error
- return err
- }
- // 获取所有门店类目
- func (d StoreDao) GetStoreCategory() ([]entity.StoreCategory, error) {
- var storeCategory []entity.StoreCategory
- err := Db.Model(&entity.StoreCategory{}).Find(&storeCategory).Error
- return storeCategory, err
- }
|