|  | @@ -5,6 +5,8 @@ import cn.hutool.core.lang.Assert;
 | 
	
		
			
				|  |  |  import cn.hutool.core.util.ObjectUtil;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.framework.common.pojo.PageResult;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.framework.common.util.collection.CollectionUtils;
 | 
	
		
			
				|  |  | +import cn.newfeifan.mall.module.system.dal.dataobject.user.AdminUserDO;
 | 
	
		
			
				|  |  | +import cn.newfeifan.mall.module.system.dal.mysql.user.AdminUserMapper;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.trade.controller.admin.delivery.vo.expresstemplate.*;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.trade.dal.dataobject.delivery.DeliveryExpressTemplateChargeDO;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.trade.dal.dataobject.delivery.DeliveryExpressTemplateDO;
 | 
	
	
		
			
				|  | @@ -13,6 +15,10 @@ import cn.newfeifan.mall.module.trade.dal.mysql.delivery.DeliveryExpressTemplate
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.trade.dal.mysql.delivery.DeliveryExpressTemplateFreeMapper;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.trade.dal.mysql.delivery.DeliveryExpressTemplateMapper;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.trade.service.delivery.bo.DeliveryExpressTemplateRespBO;
 | 
	
		
			
				|  |  | +import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
	
		
			
				|  |  | +import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | +import org.springframework.data.redis.core.StringRedisTemplate;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  |  import org.springframework.validation.annotation.Validated;
 | 
	
	
		
			
				|  | @@ -22,6 +28,7 @@ import java.util.*;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
 | 
	
		
			
				|  |  |  import static cn.newfeifan.mall.framework.common.util.collection.CollectionUtils.*;
 | 
	
		
			
				|  |  | +import static cn.newfeifan.mall.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 | 
	
		
			
				|  |  |  import static cn.newfeifan.mall.module.trade.convert.delivery.DeliveryExpressTemplateConvert.INSTANCE;
 | 
	
		
			
				|  |  |  import static cn.newfeifan.mall.module.trade.enums.ErrorCodeConstants.EXPRESS_TEMPLATE_NAME_DUPLICATE;
 | 
	
		
			
				|  |  |  import static cn.newfeifan.mall.module.trade.enums.ErrorCodeConstants.EXPRESS_TEMPLATE_NOT_EXISTS;
 | 
	
	
		
			
				|  | @@ -41,6 +48,12 @@ public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTempla
 | 
	
		
			
				|  |  |      private DeliveryExpressTemplateChargeMapper expressTemplateChargeMapper;
 | 
	
		
			
				|  |  |      @Resource
 | 
	
		
			
				|  |  |      private DeliveryExpressTemplateFreeMapper expressTemplateFreeMapper;
 | 
	
		
			
				|  |  | +    @Resource
 | 
	
		
			
				|  |  | +    private StringRedisTemplate stringRedisTemplate;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Resource
 | 
	
		
			
				|  |  | +    private AdminUserMapper userMapper;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
	
		
			
				|  | @@ -50,6 +63,9 @@ public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTempla
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 插入
 | 
	
		
			
				|  |  |          DeliveryExpressTemplateDO template = INSTANCE.convert(createReqVO);
 | 
	
		
			
				|  |  | +        ShopBO shop = getShop();
 | 
	
		
			
				|  |  | +        template.setShopId(shop.getShopId());
 | 
	
		
			
				|  |  | +        template.setMerchantId(shop.getMerId());
 | 
	
		
			
				|  |  |          expressTemplateMapper.insert(template);
 | 
	
		
			
				|  |  |          // 插入运费模板计费表
 | 
	
		
			
				|  |  |          if (CollUtil.isNotEmpty(createReqVO.getCharges())) {
 | 
	
	
		
			
				|  | @@ -66,6 +82,7 @@ public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTempla
 | 
	
		
			
				|  |  |          return template.getId();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void updateDeliveryExpressTemplate(DeliveryExpressTemplateUpdateReqVO updateReqVO) {
 | 
	
	
		
			
				|  | @@ -147,7 +164,12 @@ public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTempla
 | 
	
		
			
				|  |  |       * @param id   运费模板编号,可以为 null
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      private void validateTemplateNameUnique(String name, Long id) {
 | 
	
		
			
				|  |  | -        DeliveryExpressTemplateDO template = expressTemplateMapper.selectByName(name);
 | 
	
		
			
				|  |  | +        ShopBO shop = getShop();
 | 
	
		
			
				|  |  | +        QueryWrapper<DeliveryExpressTemplateDO> queryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | +        queryWrapper.lambda()
 | 
	
		
			
				|  |  | +                .eq(DeliveryExpressTemplateDO::getShopId,shop.getShopId())
 | 
	
		
			
				|  |  | +                .eq(DeliveryExpressTemplateDO::getName,name);
 | 
	
		
			
				|  |  | +        DeliveryExpressTemplateDO template = expressTemplateMapper.selectOne(queryWrapper);
 | 
	
		
			
				|  |  |          if (template == null) {
 | 
	
		
			
				|  |  |              return;
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -186,6 +208,8 @@ public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTempla
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public PageResult<DeliveryExpressTemplateDO> getDeliveryExpressTemplatePage(DeliveryExpressTemplatePageReqVO pageReqVO) {
 | 
	
		
			
				|  |  | +        ShopBO shop = getShop();
 | 
	
		
			
				|  |  | +        pageReqVO.setShopId(shop.getShopId());
 | 
	
		
			
				|  |  |          return expressTemplateMapper.selectPage(pageReqVO);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -215,4 +239,20 @@ public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTempla
 | 
	
		
			
				|  |  |          return INSTANCE.convertMap(areaId, templateList, chargeList, freeList);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    private ShopBO getShop() {
 | 
	
		
			
				|  |  | +        Long loginUserId = getLoginUserId();
 | 
	
		
			
				|  |  | +        String s = stringRedisTemplate.opsForValue().get("shop:" + loginUserId);
 | 
	
		
			
				|  |  | +        if (StringUtils.isEmpty(s)) {
 | 
	
		
			
				|  |  | +            AdminUserDO adminUserDO = userMapper.selectById(loginUserId);
 | 
	
		
			
				|  |  | +            ShopBO shop = new ShopBO();
 | 
	
		
			
				|  |  | +            shop.setShopId(adminUserDO.getShopId());
 | 
	
		
			
				|  |  | +            shop.setMerId(adminUserDO.getMerchantId());
 | 
	
		
			
				|  |  | +            return shop;
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +           return JSONObject.parseObject(s, ShopBO.class);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 |