|
@@ -2,6 +2,7 @@ package com.chelvc.cloud.vehicle.server.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.chelvc.cloud.uc.api.service.EmployeeService;
|
|
|
import com.chelvc.cloud.vehicle.api.constant.CategoryType;
|
|
|
import com.chelvc.cloud.vehicle.api.constant.MerchantStatus;
|
|
|
import com.chelvc.cloud.vehicle.api.dto.CategoryDTO;
|
|
@@ -9,12 +10,14 @@ import com.chelvc.cloud.vehicle.api.dto.GoodsDTO;
|
|
|
import com.chelvc.cloud.vehicle.api.dto.MerchantDTO;
|
|
|
import com.chelvc.cloud.vehicle.api.dto.MerchantDetailDTO;
|
|
|
import com.chelvc.cloud.vehicle.api.param.*;
|
|
|
+import com.chelvc.cloud.vehicle.server.copier.GoodsCopier;
|
|
|
import com.chelvc.cloud.vehicle.server.copier.MerchantCopier;
|
|
|
import com.chelvc.cloud.vehicle.server.dao.MerchantMapper;
|
|
|
import com.chelvc.cloud.vehicle.server.entity.Merchant;
|
|
|
import com.chelvc.cloud.vehicle.server.service.CategoryService;
|
|
|
import com.chelvc.cloud.vehicle.server.service.GoodsService;
|
|
|
import com.chelvc.cloud.vehicle.server.service.MerchantService;
|
|
|
+import com.chelvc.framework.base.context.SessionContextHolder;
|
|
|
import com.chelvc.framework.base.util.ResourceUtils;
|
|
|
import com.chelvc.framework.common.model.Pagination;
|
|
|
import com.chelvc.framework.common.util.StringUtils;
|
|
@@ -43,6 +46,8 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
|
|
|
|
|
|
private final CategoryService categoryService;
|
|
|
|
|
|
+ private final EmployeeService employeeService;
|
|
|
+
|
|
|
@Override
|
|
|
public List<MerchantDTO> listNearbyMerchants(@NonNull LocationQueryParam param, int size) {
|
|
|
return this.baseMapper.listNearbyMerchants(param, size);
|
|
@@ -85,6 +90,12 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
|
|
|
MerchantDTO merchant = MerchantCopier.INSTANCE.copying(
|
|
|
ResourceUtils.required(this.baseMapper.getMerchantById(id, param), "商家不存在")
|
|
|
);
|
|
|
+ Long userId = SessionContextHolder.getSession().getId();
|
|
|
+ //查询商家是否被收藏
|
|
|
+ Integer count = this.baseMapper.merchantFavorite(id,userId);
|
|
|
+ if (count > 0){
|
|
|
+ merchant.setFavorites(true);
|
|
|
+ }
|
|
|
|
|
|
// 获取商家全部商品列表
|
|
|
List<GoodsDTO> goods = this.goodsService.listMerchantSimpleGoods(
|
|
@@ -131,12 +142,24 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
|
|
|
|
|
|
@Override
|
|
|
public Pagination<MerchantDTO> getMerchantPaging(@NonNull MerchantPagingParam param) {
|
|
|
- Page<Merchant> page = this.lambdaQuery()
|
|
|
- .like(StringUtils.nonEmpty(param.getName()), Merchant::getName, param.getName())
|
|
|
- .eq(Objects.nonNull(param.getRecommend()), Merchant::getRecommend, param.getRecommend())
|
|
|
- .eq(Objects.nonNull(param.getStatus()), Merchant::getStatus, param.getStatus())
|
|
|
- .orderByDesc(Merchant::getCreateTime).page(PagingUtils.convert(param.getPaging()));
|
|
|
- return PagingUtils.convert(page, MerchantCopier.INSTANCE::copying);
|
|
|
+ Long userId = SessionContextHolder.getSession().getId();
|
|
|
+ if (employeeService.isAdmin(userId)){
|
|
|
+ Page<Merchant> page = this.lambdaQuery()
|
|
|
+ .like(StringUtils.nonEmpty(param.getName()), Merchant::getName, param.getName())
|
|
|
+ .eq(Objects.nonNull(param.getRecommend()), Merchant::getRecommend, param.getRecommend())
|
|
|
+ .eq(Objects.nonNull(param.getStatus()), Merchant::getStatus, param.getStatus())
|
|
|
+ .orderByDesc(Merchant::getCreateTime).page(PagingUtils.convert(param.getPaging()));
|
|
|
+ return PagingUtils.convert(page, MerchantCopier.INSTANCE::copying);
|
|
|
+ }else{
|
|
|
+ Page<Merchant> page = this.lambdaQuery()
|
|
|
+ .like(StringUtils.nonEmpty(param.getName()), Merchant::getName, param.getName())
|
|
|
+ .eq(Objects.nonNull(param.getRecommend()), Merchant::getRecommend, param.getRecommend())
|
|
|
+ .eq(Objects.nonNull(param.getStatus()), Merchant::getStatus, param.getStatus())
|
|
|
+ .eq(Merchant::getUserId,userId)
|
|
|
+ .orderByDesc(Merchant::getCreateTime).page(PagingUtils.convert(param.getPaging()));
|
|
|
+ return PagingUtils.convert(page, MerchantCopier.INSTANCE::copying);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -154,4 +177,14 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
|
|
|
private MerchantDTO convert(Merchant merchant) {
|
|
|
return MerchantCopier.INSTANCE.copying(merchant);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Long> getMerchantIdsByUserId(Long userId){
|
|
|
+ List<Merchant> merchants = this.lambdaQuery()
|
|
|
+ .eq(Merchant::getUserId, userId)
|
|
|
+ .eq(Merchant::getStatus, MerchantStatus.ONLINE)
|
|
|
+ .list();
|
|
|
+ return merchants.stream().map(Merchant::getId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
}
|