|
@@ -1,7 +1,6 @@
|
|
|
package com.caimei365.commodity.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
-import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.caimei365.commodity.components.PriceUtilService;
|
|
|
import com.caimei365.commodity.mapper.PriceMapper;
|
|
@@ -168,6 +167,9 @@ public class ShopServiceImpl implements ShopService {
|
|
|
List<FreightTemplateVo> shopTemplate = shopMapper.getTemplate(shopId);
|
|
|
// 设置模板信息
|
|
|
List<FreightTemplateVo> freightTemplateVos = setFreightTemplate(shopTemplate);
|
|
|
+ if (null == freightTemplateVos) {
|
|
|
+ return ResponseJson.error(-1, "模板信息异常",null);
|
|
|
+ }
|
|
|
PaginationVo<FreightTemplateVo> paginationVo = new PaginationVo<>(freightTemplateVos);
|
|
|
return ResponseJson.success(paginationVo);
|
|
|
}
|
|
@@ -184,20 +186,21 @@ public class ShopServiceImpl implements ShopService {
|
|
|
FreightTemplateDto template = shopMapper.getTemplateById(id);
|
|
|
if (null != template) {
|
|
|
// 插入新的运费模板
|
|
|
+ template.setName(template.getName()+"的副本");
|
|
|
shopMapper.insertTemplate(template);
|
|
|
// 获取运费模板规则
|
|
|
- List<FreightRuleDto> rule = shopMapper.getRuleById(id);
|
|
|
+ List<FreightRuleVo> rule = shopMapper.getRuleById(id);
|
|
|
if (null == rule || rule.size() <= 0) {
|
|
|
return ResponseJson.error(-1,"运费模板规则异常",null);
|
|
|
}
|
|
|
// 获取规则地区
|
|
|
- List<Integer> ruleIds = rule.stream().map(FreightRuleDto::getId).collect(Collectors.toList());
|
|
|
+ List<Integer> ruleIds = rule.stream().map(FreightRuleVo::getId).collect(Collectors.toList());
|
|
|
List<FreightAreaVo> area = shopMapper.getArea(ruleIds);
|
|
|
if (null == area || area.size() <= 0) {
|
|
|
return ResponseJson.error(-1,"运费模板规则地区异常",null);
|
|
|
}
|
|
|
// 复制运费规则
|
|
|
- for (FreightRuleDto freightRuleDto : rule) {
|
|
|
+ for (FreightRuleVo freightRuleDto : rule) {
|
|
|
FreightRuleDto ruleDto = new FreightRuleDto();
|
|
|
BeanUtils.copyProperties(freightRuleDto, ruleDto);
|
|
|
ruleDto.setFreightId(template.getId());
|
|
@@ -217,6 +220,41 @@ public class ShopServiceImpl implements ShopService {
|
|
|
return ResponseJson.success();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 运费模板回显
|
|
|
+ *
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseJson getFreightTemplateDetail(Integer id) {
|
|
|
+ // 获取运费模板信息
|
|
|
+ FreightTemplateVo template = shopMapper.getTemplateVoById(id);
|
|
|
+ if (null != template) {
|
|
|
+ // 获取运费模板规则
|
|
|
+ List<FreightRuleVo> rule = shopMapper.getRuleVoById(id);
|
|
|
+ if (null == rule || rule.size() <= 0) {
|
|
|
+ return ResponseJson.error(-1,"运费模板规则异常",null);
|
|
|
+ }
|
|
|
+ // 获取规则地区
|
|
|
+ List<Integer> ruleIds = rule.stream().map(FreightRuleVo::getId).collect(Collectors.toList());
|
|
|
+ List<FreightAreaVo> area = shopMapper.getArea(ruleIds);
|
|
|
+ if (null == area || area.size() <= 0) {
|
|
|
+ return ResponseJson.error(-1,"运费模板规则地区异常",null);
|
|
|
+ }
|
|
|
+ // 将地区与运费规则关联
|
|
|
+ for (FreightRuleVo ruleVo : rule) {
|
|
|
+ List<FreightAreaVo> areaVoList = area.stream().filter(a -> a.getRuleId().equals(ruleVo.getId())).collect(Collectors.toList());
|
|
|
+ ruleVo.setFreightAreaList(areaVoList);
|
|
|
+ }
|
|
|
+ // 将运费规则与运费模板关联
|
|
|
+ template.setFreightRuleList(rule);
|
|
|
+ } else {
|
|
|
+ return ResponseJson.error(-1,"运费模板信息异常",null);
|
|
|
+ }
|
|
|
+ return ResponseJson.success(template);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 选择地区
|
|
|
*
|
|
@@ -225,39 +263,40 @@ public class ShopServiceImpl implements ShopService {
|
|
|
@Override
|
|
|
public ResponseJson getArea(Integer freightId, Integer ruleId) {
|
|
|
// 区域
|
|
|
- List<RegionDto> regionList = new ArrayList<>();
|
|
|
+ List<RegionVo> regionList = new ArrayList<>();
|
|
|
// 添加区域 东北、华东、华北、华中、华南、西南、西北
|
|
|
- RegionDto regionDto = new RegionDto();
|
|
|
- regionDto.setName("东北");
|
|
|
- regionList.add(regionDto);
|
|
|
- regionDto = new RegionDto();
|
|
|
- regionDto.setName("华东");
|
|
|
- regionList.add(regionDto);
|
|
|
- regionDto = new RegionDto();
|
|
|
- regionDto.setName("华北");
|
|
|
- regionList.add(regionDto);
|
|
|
- regionDto = new RegionDto();
|
|
|
- regionDto.setName("华中");
|
|
|
- regionList.add(regionDto);
|
|
|
- regionDto = new RegionDto();
|
|
|
- regionDto.setName("华南");
|
|
|
- regionList.add(regionDto);
|
|
|
- regionDto = new RegionDto();
|
|
|
- regionDto.setName("西南");
|
|
|
- regionList.add(regionDto);
|
|
|
- regionDto = new RegionDto();
|
|
|
- regionDto.setName("西北");
|
|
|
- regionList.add(regionDto);
|
|
|
+ RegionVo regionVo = new RegionVo();
|
|
|
+ regionVo.setName("东北");
|
|
|
+ regionList.add(regionVo);
|
|
|
+ regionVo = new RegionVo();
|
|
|
+ regionVo.setName("华东");
|
|
|
+ regionList.add(regionVo);
|
|
|
+ regionVo = new RegionVo();
|
|
|
+ regionVo.setName("华北");
|
|
|
+ regionList.add(regionVo);
|
|
|
+ regionVo = new RegionVo();
|
|
|
+ regionVo.setName("华中");
|
|
|
+ regionList.add(regionVo);
|
|
|
+ regionVo = new RegionVo();
|
|
|
+ regionVo.setName("华南");
|
|
|
+ regionList.add(regionVo);
|
|
|
+ regionVo = new RegionVo();
|
|
|
+ regionVo.setName("西南");
|
|
|
+ regionList.add(regionVo);
|
|
|
+ regionVo = new RegionVo();
|
|
|
+ regionVo.setName("西北");
|
|
|
+ regionList.add(regionVo);
|
|
|
// 省份集合
|
|
|
- List<ProvinceDto> provinceList = shopMapper.getProvince();
|
|
|
+ List<ProvinceVo> provinceList = shopMapper.getProvince();
|
|
|
// 市集合
|
|
|
- List<CityDto> cityList = shopMapper.getCity(freightId, ruleId);
|
|
|
- for (ProvinceDto procince: provinceList) {
|
|
|
- List<CityDto> collect = cityList.stream().filter(c -> c.getProvinceId().equals(procince.getProvinceId())).collect(Collectors.toList());
|
|
|
+ List<CityVo> cityList = shopMapper.getCity(freightId, ruleId);
|
|
|
+
|
|
|
+ for (ProvinceVo procince: provinceList) {
|
|
|
+ List<CityVo> collect = cityList.stream().filter(c -> c.getProvinceId().equals(procince.getProvinceId())).collect(Collectors.toList());
|
|
|
procince.setCityList(collect);
|
|
|
}
|
|
|
- for (RegionDto region : regionList) {
|
|
|
- List<ProvinceDto> collect = null;
|
|
|
+ for (RegionVo region : regionList) {
|
|
|
+ List<ProvinceVo> collect = null;
|
|
|
if ("东北".equals(region.getName())) {
|
|
|
collect = provinceList.stream().filter(p -> p.getName().contains("辽宁") || p.getName().contains("吉林") || p.getName().contains("黑龙江")).collect(Collectors.toList());
|
|
|
region.setProvinceList(collect);
|
|
@@ -291,12 +330,12 @@ public class ShopServiceImpl implements ShopService {
|
|
|
region.setProvinceList(collect);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ setRegion(regionList);
|
|
|
return ResponseJson.success(regionList);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 供应商 -- 新增运费模板
|
|
|
+ * 供应商 -- 保存运费模板
|
|
|
*
|
|
|
* @param freightTemplateDto
|
|
|
* @return
|
|
@@ -309,12 +348,10 @@ public class ShopServiceImpl implements ShopService {
|
|
|
if (null == freightTemplateDto.getFreightRuleList()) {
|
|
|
return ResponseJson.error(-1, "运费模板对应规则不能为空", null);
|
|
|
}
|
|
|
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
- String format = dateFormat.format(new Date());
|
|
|
+
|
|
|
if (null == freightTemplateDto.getId()) {
|
|
|
// 新增运费模板
|
|
|
|
|
|
- freightTemplateDto.setAddTime(format);
|
|
|
shopMapper.insertTemplate(freightTemplateDto);
|
|
|
// 添加运费模板规则
|
|
|
for (FreightRuleDto ruleDto : freightTemplateDto.getFreightRuleList()) {
|
|
@@ -328,13 +365,11 @@ public class ShopServiceImpl implements ShopService {
|
|
|
}
|
|
|
for (FreightAreaDto areaDto : ruleDto.getFreightAreaList()) {
|
|
|
areaDto.setRuleId(ruleDto.getId());
|
|
|
- areaDto.setAddTime(format);
|
|
|
shopMapper.insertArea(areaDto);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
// 修改
|
|
|
- freightTemplateDto.setUpdateTime(format);
|
|
|
shopMapper.updateTemplate(freightTemplateDto);
|
|
|
for (FreightRuleDto ruleDto : freightTemplateDto.getFreightRuleList()) {
|
|
|
shopMapper.updateRule(ruleDto);
|
|
@@ -346,7 +381,6 @@ public class ShopServiceImpl implements ShopService {
|
|
|
List<Integer> ids = new ArrayList<>();
|
|
|
for (FreightAreaDto areaDto : ruleDto.getFreightAreaList()) {
|
|
|
areaDto.setRuleId(ruleDto.getId());
|
|
|
- areaDto.setAddTime(format);
|
|
|
if (null == areaDto.getId()) {
|
|
|
shopMapper.insertArea(areaDto);
|
|
|
}
|
|
@@ -446,7 +480,7 @@ public class ShopServiceImpl implements ShopService {
|
|
|
if (null == productDto.getFreePostFlag()) {
|
|
|
return ResponseJson.error("参数异常,物流方式不能为空",null);
|
|
|
}
|
|
|
- if (2 == productDto.getFreePostFlag() && null == productDto.getFreightTemplateId()) {
|
|
|
+ if (1 == productDto.getFreePostFlag() && null == productDto.getFreightTemplateId()) {
|
|
|
return ResponseJson.error("参数异常,运费模板Id不能为空",null);
|
|
|
}
|
|
|
List<Sku> skus = JSON.parseArray(productDto.getSkus(), Sku.class);
|
|
@@ -932,13 +966,23 @@ public class ShopServiceImpl implements ShopService {
|
|
|
return ResponseJson.success();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 设置模板信息
|
|
|
+ * @param templateVos
|
|
|
+ * @return
|
|
|
+ */
|
|
|
private List<FreightTemplateVo> setFreightTemplate(List<FreightTemplateVo> templateVos) {
|
|
|
if (null != templateVos) {
|
|
|
List<Integer> templateIds = templateVos.stream().map(FreightTemplateVo::getId).collect(Collectors.toList());
|
|
|
List<FreightRuleVo> rule = shopMapper.getRule(templateIds);
|
|
|
+ if (null == rule) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
List<Integer> ruleIds = rule.stream().map(FreightRuleVo::getId).collect(Collectors.toList());
|
|
|
List<FreightAreaVo> area = shopMapper.getArea(ruleIds);
|
|
|
+ if (null == area) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
// 将地区与运费规则关联
|
|
|
for (FreightRuleVo ruleVo : rule) {
|
|
|
List<FreightAreaVo> areaVoList = area.stream().filter(a -> a.getRuleId().equals(ruleVo.getId())).collect(Collectors.toList());
|
|
@@ -952,4 +996,66 @@ public class ShopServiceImpl implements ShopService {
|
|
|
}
|
|
|
return templateVos;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置地区选中信息
|
|
|
+ * @param regionList
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private void setRegion(List<RegionVo> regionList){
|
|
|
+ if (null != regionList) {
|
|
|
+ for (RegionVo regionVo : regionList) {
|
|
|
+ // 省选中
|
|
|
+ List<String> provinceName = new ArrayList<>();
|
|
|
+ for (ProvinceVo provinceVo : regionVo.getProvinceList()) {
|
|
|
+ List<String> cityName = new ArrayList<>();
|
|
|
+ // 市选中状态
|
|
|
+ for (CityVo cityVo : provinceVo.getCityList()) {
|
|
|
+ if ( null != cityVo.getType()) {
|
|
|
+ cityVo.setChecked(true);
|
|
|
+ cityName.add(cityVo.getName());
|
|
|
+ } else {
|
|
|
+ cityVo.setChecked(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String[] splitCity = StringUtils.strip(cityName.toString(),"[]").split(",");
|
|
|
+ provinceVo.setCheckedCities(splitCity);
|
|
|
+ /**
|
|
|
+ * Checked、当省份下的市全被勾选中的话为 true 部分市被勾选中 为false
|
|
|
+ * IsIndeterminate、当省份下的市全被勾选中的话为 false 部分市被勾选中 为true
|
|
|
+ */
|
|
|
+ if (provinceVo.getCityList().stream().allMatch(CityVo::getChecked)) {
|
|
|
+ // 市全部选中 省设置全选
|
|
|
+ provinceVo.setIsIndeterminate(false);
|
|
|
+ provinceVo.setChecked(true);
|
|
|
+ provinceName.add(provinceVo.getName());
|
|
|
+ } else if (provinceVo.getCityList().stream().noneMatch(CityVo::getChecked)) {
|
|
|
+ // 市全部未选中 省设置未全选
|
|
|
+ provinceVo.setIsIndeterminate(true);
|
|
|
+ provinceVo.setChecked(false);
|
|
|
+ } else {
|
|
|
+ // 市部分选中 省设置未全选
|
|
|
+ provinceVo.setIsIndeterminate(true);
|
|
|
+ provinceVo.setChecked(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String[] spiltProvince = StringUtils.strip(provinceName.toString(),"[]").split(",");
|
|
|
+ regionVo.setCheckedCities(spiltProvince);
|
|
|
+ // 区域选中
|
|
|
+ if (regionVo.getProvinceList().stream().allMatch(ProvinceVo::getChecked)) {
|
|
|
+ // 省全部选中
|
|
|
+ regionVo.setIsIndeterminate(false);
|
|
|
+ regionVo.setChecked(true);
|
|
|
+ } else if (regionVo.getProvinceList().stream().noneMatch(ProvinceVo::getChecked)){
|
|
|
+ // 省全部未选中
|
|
|
+ regionVo.setIsIndeterminate(true);
|
|
|
+ regionVo.setChecked(false);
|
|
|
+ } else {
|
|
|
+ // 省部分选中
|
|
|
+ regionVo.setIsIndeterminate(true);
|
|
|
+ regionVo.setChecked(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|