|  | @@ -3,6 +3,12 @@ package cn.newfeifan.mall.module.trade.service.delivery;
 | 
	
		
			
				|  |  |  import cn.hutool.core.collection.CollUtil;
 | 
	
		
			
				|  |  |  import cn.hutool.core.lang.Assert;
 | 
	
		
			
				|  |  |  import cn.hutool.core.util.ObjectUtil;
 | 
	
		
			
				|  |  | +import cn.newfeifan.mall.module.system.dal.dataobject.user.AdminUserDO;
 | 
	
		
			
				|  |  | +import cn.newfeifan.mall.module.system.dal.mysql.user.AdminUserMapper;
 | 
	
		
			
				|  |  | +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 cn.newfeifan.mall.framework.common.pojo.PageResult;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.framework.common.util.collection.CollectionUtils;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.trade.controller.admin.delivery.vo.expresstemplate.*;
 | 
	
	
		
			
				|  | @@ -13,6 +19,7 @@ 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 lombok.extern.slf4j.Slf4j;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  |  import org.springframework.validation.annotation.Validated;
 | 
	
	
		
			
				|  | @@ -22,6 +29,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;
 | 
	
	
		
			
				|  | @@ -33,6 +41,7 @@ import static cn.newfeifan.mall.module.trade.enums.ErrorCodeConstants.EXPRESS_TE
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  @Service
 | 
	
		
			
				|  |  |  @Validated
 | 
	
		
			
				|  |  | +@Slf4j
 | 
	
		
			
				|  |  |  public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTemplateService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Resource
 | 
	
	
		
			
				|  | @@ -41,6 +50,11 @@ 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 +64,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())) {
 | 
	
	
		
			
				|  | @@ -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;
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -215,4 +237,21 @@ 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());
 | 
	
		
			
				|  |  | +            log.info("====shop:{}",shop);
 | 
	
		
			
				|  |  | +            return shop;
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            log.info("====shop:{}",s);
 | 
	
		
			
				|  |  | +            return JSONObject.parseObject(s, ShopBO.class);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 |