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 }