Browse Source

更新运费模板

Yangzw 11 months ago
parent
commit
cc1d35ae50

+ 6 - 0
feifan-module-mall/feifan-module-trade-biz/pom.xml

@@ -108,6 +108,12 @@
             <artifactId>feifan-spring-boot-starter-biz-dict</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>cn.newfeifan.zx</groupId>
+            <artifactId>feifan-module-system-biz</artifactId>
+            <version>${revision}</version>
+        </dependency>
+
     </dependencies>
 
 </project>

+ 18 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/delivery/vo/expresstemplate/ShopBO.java

@@ -0,0 +1,18 @@
+package cn.newfeifan.mall.module.trade.controller.admin.delivery.vo.expresstemplate;
+
+import lombok.Data;
+
+/**
+ * 用户的商户店铺对象
+ */
+@Data
+public class ShopBO {
+    /**
+     * 店铺id
+     */
+    private Long shopId;
+    /**
+     * 商户id
+     */
+    private Long merId;
+}

+ 9 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/dataobject/delivery/DeliveryExpressTemplateDO.java

@@ -41,6 +41,15 @@ public class DeliveryExpressTemplateDO extends BaseDO {
     private Integer sort;
 
 
+    /**
+     * 店铺id
+     */
     private Long shopId;
 
+    /**
+     * 商户id
+     */
+    private Long merchantId;
+
+
 }

+ 40 - 1
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/delivery/DeliveryExpressTemplateServiceImpl.java

@@ -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);
+        }
+    }
+
+
 }