Pārlūkot izejas kodu

运费模版调整

luolinsong 1 mēnesi atpakaļ
vecāks
revīzija
a4cd0db59b

+ 12 - 0
fs-service/src/main/java/com/fs/hisStore/domain/FsShippingTemplatesRegionScrm.java

@@ -55,6 +55,10 @@ public class FsShippingTemplatesRegionScrm extends BaseEntity
     @Excel(name = "计费方式")
     private Integer type;
 
+    /** 城市ID */
+    @Excel(name = "城市ID")
+    private Long countyId;
+
     public void setId(Long id) 
     {
         this.id = id;
@@ -137,5 +141,13 @@ public class FsShippingTemplatesRegionScrm extends BaseEntity
         return type;
     }
 
+    public void setCountyId(Long countyId)
+    {
+        this.countyId = countyId;
+    }
 
+    public Long getCountyId()
+    {
+        return countyId;
+    }
 }

+ 3 - 0
fs-service/src/main/java/com/fs/hisStore/mapper/FsShippingTemplatesRegionScrmMapper.java

@@ -66,4 +66,7 @@ public interface FsShippingTemplatesRegionScrmMapper
     int deleteFsShippingTemplatesRegionByTempId(Long tempId);
     @Select("select * from fs_shipping_templates_region where find_in_set(temp_id,#{tempIds}) and find_in_set(city_id,#{cityIds})")
     List<FsShippingTemplatesRegionScrm> selectFsShippingTemplatesRegionListByTempIdsAndCityIds(@Param("tempIds") String tempIds, @Param("cityIds") String cityIds);
+
+    @Select("select * from fs_shipping_templates_region where find_in_set(temp_id,#{tempIds}) and find_in_set(county_id,#{cityIds})")
+    List<FsShippingTemplatesRegionScrm> selectFsShippingTemplatesRegionListByTempIdsAndCountyId(@Param("tempIds") String tempIds, @Param("cityIds") String cityIds);
 }

+ 1 - 0
fs-service/src/main/java/com/fs/hisStore/service/IFsShippingTemplatesRegionScrmService.java

@@ -60,4 +60,5 @@ public interface IFsShippingTemplatesRegionScrmService
     public int deleteFsShippingTemplatesRegionById(Long id);
 
     List<FsShippingTemplatesRegionScrm> selectFsShippingTemplatesRegionListByTempIdsAndCityIds(String tempIds, String cityIds);
+    List<FsShippingTemplatesRegionScrm> selectFsShippingTemplatesRegionListByTempIdsAndCountyId(String tempIds, String cityIds);
 }

+ 4 - 0
fs-service/src/main/java/com/fs/hisStore/service/impl/FsShippingTemplatesRegionScrmServiceImpl.java

@@ -96,4 +96,8 @@ public class FsShippingTemplatesRegionScrmServiceImpl implements IFsShippingTemp
     public List<FsShippingTemplatesRegionScrm> selectFsShippingTemplatesRegionListByTempIdsAndCityIds(String tempIds, String cityIds) {
         return fsShippingTemplatesRegionMapper.selectFsShippingTemplatesRegionListByTempIdsAndCityIds(tempIds,cityIds);
     }
+    @Override
+    public List<FsShippingTemplatesRegionScrm> selectFsShippingTemplatesRegionListByTempIdsAndCountyId(String tempIds, String cityIds) {
+        return fsShippingTemplatesRegionMapper.selectFsShippingTemplatesRegionListByTempIdsAndCountyId(tempIds,cityIds);
+    }
 }

+ 18 - 12
fs-service/src/main/java/com/fs/hisStore/service/impl/FsShippingTemplatesScrmServiceImpl.java

@@ -161,18 +161,23 @@ public class FsShippingTemplatesScrmServiceImpl implements IFsShippingTemplatesS
             if(regionInfoDto.getRegion() != null && !regionInfoDto.getRegion().isEmpty()){
                 for (RegionDTO regionDto : regionInfoDto.getRegion()){
                     if(regionDto.getChildren() != null && !regionDto.getChildren().isEmpty()){
-                        for (RegionDTO childrenDtp : regionDto.getChildren()){
-                            FsShippingTemplatesRegionScrm shippingTemplatesRegion = FsShippingTemplatesRegionScrm.builder()
-                                    .tempId(tempId)
-                                    .first(new BigDecimal(regionInfoDto.getFirst()))
-                                    .firstPrice(new BigDecimal(regionInfoDto.getPrice()))
-                                    .continues(new BigDecimal(regionInfoDto.getContinues()))
-                                    .continuePrice(new BigDecimal(regionInfoDto.getContinuePrice()))
-                                    .type(param.getType())
-                                    .provinceId(Long.valueOf(regionDto.getCityId()))
-                                    .cityId(Long.valueOf(childrenDtp.getCityId()))
-                                    .build();
-                            fsShippingTemplatesRegionMapper.insertFsShippingTemplatesRegion(shippingTemplatesRegion);
+                        for (RegionDTO childrenDtp : regionDto.getChildren()) {
+                            if (childrenDtp.getChildren() != null && !childrenDtp.getChildren().isEmpty()) {
+                                for (RegionDTO child : childrenDtp.getChildren()) {
+                                    FsShippingTemplatesRegionScrm shippingTemplatesRegion = FsShippingTemplatesRegionScrm.builder()
+                                            .tempId(tempId)
+                                            .first(new BigDecimal(regionInfoDto.getFirst()))
+                                            .firstPrice(new BigDecimal(regionInfoDto.getPrice()))
+                                            .continues(new BigDecimal(regionInfoDto.getContinues()))
+                                            .continuePrice(new BigDecimal(regionInfoDto.getContinuePrice()))
+                                            .type(param.getType())
+                                            .provinceId(Long.valueOf(regionDto.getCityId()))
+                                            .cityId(Long.valueOf(childrenDtp.getCityId()))
+                                            .countyId(Long.valueOf(child.getCityId()))
+                                            .build();
+                                    fsShippingTemplatesRegionMapper.insertFsShippingTemplatesRegion(shippingTemplatesRegion);
+                                }
+                            }
                         }
                     }else{
                         FsShippingTemplatesRegionScrm shippingTemplatesRegion = FsShippingTemplatesRegionScrm.builder()
@@ -183,6 +188,7 @@ public class FsShippingTemplatesScrmServiceImpl implements IFsShippingTemplatesS
                                 .continuePrice(new BigDecimal(regionInfoDto.getContinuePrice()))
                                 .type(param.getType())
                                 .provinceId(Long.valueOf(regionDto.getCityId()))
+                                .cityId(0l)
                                 .build();
                         fsShippingTemplatesRegionMapper.insertFsShippingTemplatesRegion(shippingTemplatesRegion);
                     }

+ 10 - 1
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -3214,8 +3214,17 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             List<FsShippingTemplatesScrm> shippingTemplatesList = shippingTemplatesService.selectFsShippingTemplatesByIds(StringUtils.join(tempIds, ","));
 
             //获取运费模板区域列表按照城市排序
-            List<FsShippingTemplatesRegionScrm> shippingTemplatesRegionList = shippingTemplatesRegionService.selectFsShippingTemplatesRegionListByTempIdsAndCityIds(StringUtils.join(tempIds, ","), StringUtils.join(citys, ","));
+            List<FsShippingTemplatesRegionScrm> shippingTemplatesRegionList = shippingTemplatesRegionService.selectFsShippingTemplatesRegionListByTempIdsAndCountyId(StringUtils.join(tempIds, ","), StringUtils.join(citys, ","));
 
+            if (shippingTemplatesRegionList == null || shippingTemplatesRegionList.isEmpty()) {
+                List<Long> cityList = new ArrayList<>();
+                String cityIdStr = cityId.substring(0, 4);
+                cityList.add(Long.valueOf(cityIdStr+ "00000000"));
+                cityList.add(0L);
+                String cityIds = String.join(",", cityList.stream()
+                        .map(String::valueOf).collect(Collectors.toList()));
+                shippingTemplatesRegionList =   shippingTemplatesRegionService.selectFsShippingTemplatesRegionListByTempIdsAndCityIds(StringUtils.join(tempIds, ","),cityIds);
+            }
             boolean isQg = false;
 
             if (CollectionUtils.isEmpty(shippingTemplatesRegionList)&&CollectionUtils.isNotEmpty(shippingTemplatesList)&&shippingTemplatesList.size()<2) {

+ 23 - 3
fs-service/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java

@@ -2596,9 +2596,19 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
             return storePostage;
         }
         List<FsShippingTemplatesScrm> shippingTemplatesList = shippingTemplatesService.selectFsShippingTemplatesByIds(ids);
-        String cityIds = String.join(",", citys.stream()
+        String countyId = String.join(",", citys.stream()
                 .map(String::valueOf).collect(Collectors.toList()));
-        List<FsShippingTemplatesRegionScrm> shippingTemplatesRegionList = shippingTemplatesRegionService.selectFsShippingTemplatesRegionListByTempIdsAndCityIds(ids,cityIds);
+        List<FsShippingTemplatesRegionScrm> shippingTemplatesRegionList = shippingTemplatesRegionService.selectFsShippingTemplatesRegionListByTempIdsAndCountyId(ids,countyId);
+        if (shippingTemplatesRegionList == null || shippingTemplatesRegionList.isEmpty()) {
+            List<Long> cityList = new ArrayList<>();
+            String cityIdStr = String.valueOf(cityId).substring(0,4);
+
+            cityList.add(Long.valueOf(cityIdStr + "00000000"));
+            cityList.add(0L);
+            String cityIds = String.join(",", cityList.stream()
+                    .map(String::valueOf).collect(Collectors.toList()));
+            shippingTemplatesRegionList =   shippingTemplatesRegionService.selectFsShippingTemplatesRegionListByTempIdsAndCityIds(ids,cityIds);
+        }
         // 有运费模板,但当前城市没有匹配的区域
         if (shippingTemplatesList != null && !shippingTemplatesList.isEmpty()
                 && (shippingTemplatesRegionList == null || shippingTemplatesRegionList.isEmpty())) {
@@ -3808,7 +3818,17 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
         List<FsShippingTemplatesScrm> shippingTemplatesList = shippingTemplatesService.selectFsShippingTemplatesByIds(ids);
 
         //获取运费模板区域列表按照城市排序
-        List<FsShippingTemplatesRegionScrm> shippingTemplatesRegionList = shippingTemplatesRegionService.selectFsShippingTemplatesRegionListByTempIdsAndCityIds(ids, StringUtils.join(citys, ","));
+        List<FsShippingTemplatesRegionScrm> shippingTemplatesRegionList = shippingTemplatesRegionService.selectFsShippingTemplatesRegionListByTempIdsAndCountyId(ids, StringUtils.join(citys, ","));
+
+        if (shippingTemplatesRegionList == null || shippingTemplatesRegionList.isEmpty()) {
+            List<Long> cityList = new ArrayList<>();
+            String cityId = String.valueOf(liveOrder.getCityId()).substring(0,4);
+            cityList.add(Long.valueOf(cityId+ "00000000"));
+            cityList.add(0L);
+            String cityIds = String.join(",", cityList.stream()
+                    .map(String::valueOf).collect(Collectors.toList()));
+            shippingTemplatesRegionList =   shippingTemplatesRegionService.selectFsShippingTemplatesRegionListByTempIdsAndCityIds(StringUtils.join(ids, ","),cityIds);
+        }
         // 有运费模板但城市未匹配到区域,返回 badCode
         if (shippingTemplatesList != null && !shippingTemplatesList.isEmpty()
                 && (shippingTemplatesRegionList == null || shippingTemplatesRegionList.isEmpty())) {

+ 6 - 1
fs-service/src/main/resources/mapper/hisStore/FsShippingTemplatesRegionScrmMapper.xml

@@ -14,10 +14,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="continues"    column="continues"    />
         <result property="continuePrice"    column="continue_price"    />
         <result property="type"    column="type"    />
+        <result property="countyId"    column="county_id"    />
     </resultMap>
 
     <sql id="selectFsShippingTemplatesRegionVo">
-        select id, province_id, temp_id, city_id, first, first_price, continues, continue_price, type from fs_shipping_templates_region
+        select id, province_id, temp_id, city_id,county_id, first, first_price, continues, continue_price, type from fs_shipping_templates_region
     </sql>
 
     <select id="selectFsShippingTemplatesRegionList" parameterType="FsShippingTemplatesRegionScrm" resultMap="FsShippingTemplatesRegionResult">
@@ -26,6 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="provinceId != null "> and province_id = #{provinceId}</if>
             <if test="tempId != null "> and temp_id = #{tempId}</if>
             <if test="cityId != null "> and city_id = #{cityId}</if>
+            <if test="countyId != null "> and county_id = #{countyId}</if>
             <if test="first != null "> and first = #{first}</if>
             <if test="firstPrice != null "> and first_price = #{firstPrice}</if>
             <if test="continues != null "> and continues = #{continues}</if>
@@ -45,6 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="provinceId != null">province_id,</if>
             <if test="tempId != null">temp_id,</if>
             <if test="cityId != null">city_id,</if>
+            <if test="countyId != null">county_id,</if>
             <if test="first != null">first,</if>
             <if test="firstPrice != null">first_price,</if>
             <if test="continues != null">continues,</if>
@@ -55,6 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="provinceId != null">#{provinceId},</if>
             <if test="tempId != null">#{tempId},</if>
             <if test="cityId != null">#{cityId},</if>
+            <if test="countyId != null">#{countyId},</if>
             <if test="first != null">#{first},</if>
             <if test="firstPrice != null">#{firstPrice},</if>
             <if test="continues != null">#{continues},</if>
@@ -69,6 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="provinceId != null">province_id = #{provinceId},</if>
             <if test="tempId != null">temp_id = #{tempId},</if>
             <if test="cityId != null">city_id = #{cityId},</if>
+            <if test="countyId != null">county_id = #{countyId},</if>
             <if test="first != null">first = #{first},</if>
             <if test="firstPrice != null">first_price = #{firstPrice},</if>
             <if test="continues != null">continues = #{continues},</if>