123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- package service
- import (
- "errors"
- "time"
- "youngee_b_api/app/dao"
- "youngee_b_api/app/entity"
- "youngee_b_api/app/vo"
- )
- type StoreService struct{}
- // 获取某商家下的所有门店
- func (p StoreService) GetStoresByEnterpriseId(param vo.GetAllStoreParam) (vo.ResultVO, error) {
- if param.Page == 0 {
- param.Page = 1
- }
- if param.PageSize == 0 {
- param.PageSize = 10
- }
- var result vo.ResultVO
- var stores []entity.Store
- var err error
- var total int64
- enterpriseId := param.EnterpriseId
- if enterpriseId == "" {
- return result, errors.New("enterpriseId is empty")
- }
- stores, total, err = (&dao.StoreDao{}).GetStoresByEnterpriseIDAndStoreName(enterpriseId, param.StoreName, param.Page, param.PageSize)
- if err != nil {
- // 数据库查询error
- return result, err
- }
- var reStores []vo.ReStorePreview
- var creatorName string
- for _, store := range stores {
- photoUrl, e := dao.ProductPhotoDAO{}.GetMainPhotoByStoreID(store.StoreID)
- if store.SubAccountID == 0 {
- enterprise, err := dao.EnterpriseDao{}.GetEnterprise(store.EnterpriseID)
- if err == nil && enterprise != nil {
- creatorName = enterprise.BusinessName
- }
- } else {
- subAccount, err := dao.SubAccountDao{}.GetSubAccount(store.SubAccountID)
- if err == nil && subAccount != nil {
- creatorName = subAccount.SubAccountName
- }
- }
- if e != nil {
- photoUrl = ""
- }
- reStore := vo.ReStorePreview{
- StoreID: store.StoreID,
- StoreName: store.StoreName,
- StoreLocation: store.StoreLocation,
- StoreType: store.StoreType,
- StoreCategory: store.StoreCategory,
- TeamNum: store.TeamNum,
- StoreDetail: store.StoreDetail,
- CreatedAt: store.CreatedAt.Format("2006-01-02 15:04:05"),
- PhotoUrl: photoUrl,
- CreateName: creatorName,
- }
- reStores = append(reStores, reStore)
- }
- result = vo.ResultVO{
- Page: param.Page,
- PageSize: param.PageSize,
- Total: total,
- Data: reStores,
- }
- return result, nil
- }
- // 新建门店
- func (p StoreService) CreateStore(param *vo.StoreCreateParam) (int64, error) {
- newStore := entity.Store{
- StoreName: param.StoreName,
- StoreCategory: param.StoreCategory,
- StoreType: param.StoreType,
- StoreLocation: param.StoreLocation,
- StoreDetail: param.StoreDetail,
- StoreLink: param.StoreLink,
- BelongEnterpriseID: param.EnterpriseId,
- EnterpriseID: param.EnterpriseId,
- SubAccountID: param.SubAccountId,
- OperateType: 1,
- CreatedAt: time.Now(),
- }
- storeId, err := dao.StoreDao{}.CreateStore(newStore)
- if err != nil {
- return 0, err
- }
- if param.StorePhotos != nil {
- storePhotos := []entity.ProductPhoto{}
- for _, photo := range param.StorePhotos {
- storePhoto := entity.ProductPhoto{
- PhotoUrl: photo.PhotoUrl,
- PhotoUid: photo.PhotoUid,
- Symbol: photo.Symbol,
- StoreID: storeId,
- ProductPhotoType: 2,
- CreatedAt: time.Now(),
- }
- storePhotos = append(storePhotos, storePhoto)
- }
- err = dao.ProductPhotoDAO{}.CreateProductPhoto(storePhotos)
- if err != nil {
- return 0, err
- }
- }
- return storeId, nil
- }
- // 门店详情
- func (s StoreService) GetStoreDetail(param *vo.StoreSearchParam) (*vo.ReStoreInfo, error) {
- var reStoreInfo *vo.ReStoreInfo
- store, err := dao.StoreDao{}.GetStoreByID(param.StoreId)
- if err != nil {
- return nil, err
- }
- photoMain, _ := dao.ProductPhotoDAO{}.GetMainPhotoByStoreID(param.StoreId)
- photosAll, _ := dao.ProductPhotoDAO{}.GetProductPhotoByStoreID(param.StoreId)
- var photoRotates []vo.Photo
- var photoDetails []vo.Photo
- for _, photosOne := range photosAll {
- if photosOne.Symbol == 2 || photosOne.Symbol == 3 {
- photo := vo.Photo{
- PhotoUrl: photosOne.PhotoUrl,
- Symbol: photosOne.Symbol,
- }
- photoRotates = append(photoRotates, photo)
- } else if photosOne.Symbol == 4 || photosOne.Symbol == 5 {
- photo := vo.Photo{
- PhotoUrl: photosOne.PhotoUrl,
- Symbol: photosOne.Symbol,
- }
- photoDetails = append(photoDetails, photo)
- }
- }
- reStoreInfo = &vo.ReStoreInfo{
- StoreID: store.StoreID,
- StoreLink: store.StoreLink,
- StoreName: store.StoreName,
- StoreCategory: store.StoreCategory,
- StoreType: store.StoreType,
- StoreLocation: store.StoreLocation,
- TeamNum: store.TeamNum,
- StoreDetail: store.StoreDetail,
- PhotoMain: photoMain,
- PhotoRotates: photoRotates,
- PhotoDetails: photoDetails,
- CreatedAt: store.CreatedAt.Format("2006-01-02 15:04:05"),
- }
- return reStoreInfo, nil
- }
- // 更新门店
- func (p StoreService) UpdateStore(param *vo.StoreUpdateParam) (int64, error) {
- newStore := entity.Store{
- StoreID: param.StoreId,
- StoreName: param.StoreName,
- StoreCategory: param.StoreCategory,
- StoreType: param.StoreType,
- StoreLocation: param.StoreLocation,
- StoreDetail: param.StoreDetail,
- StoreLink: param.StoreLink,
- UpdatedAt: time.Now(),
- }
- storeId, err := dao.StoreDao{}.UpdateStore(newStore)
- if err != nil {
- return 0, err
- }
- if param.StorePhotos != nil {
- storePhotos := []entity.ProductPhoto{}
- for _, photo := range param.StorePhotos {
- storePhoto := entity.ProductPhoto{
- PhotoUrl: photo.PhotoUrl,
- PhotoUid: photo.PhotoUid,
- Symbol: photo.Symbol,
- StoreID: storeId,
- ProductPhotoType: 2,
- CreatedAt: time.Now(),
- }
- storePhotos = append(storePhotos, storePhoto)
- }
- err = dao.ProductPhotoDAO{}.CreateProductPhoto(storePhotos)
- if err != nil {
- return 0, err
- }
- }
- return storeId, nil
- }
- // 删除门店
- func (p StoreService) DeleteStore(param *vo.StoreUpdateParam) (int64, error) {
- err := dao.StoreDao{}.DeleteStore(param.StoreId)
- if err != nil {
- return 0, err
- }
- return param.StoreId, nil
- }
- // 门店类目
- func (p StoreService) GetStoreCategory() ([]vo.ReStoreCategory, error) {
- var reStoreCategories []vo.ReStoreCategory
- storeCategory, err := dao.StoreDao{}.GetStoreCategory()
- if err != nil {
- return nil, err
- }
- for _, category := range storeCategory {
- reStoreCategory := vo.ReStoreCategory{
- ID: category.ID,
- Category: category.Category,
- Detail: category.Detail,
- }
- reStoreCategories = append(reStoreCategories, reStoreCategory)
- }
- return reStoreCategories, nil
- }
|