|  |  |  | 
|---|
|  |  |  | import cn.hutool.core.collection.CollUtil; | 
|---|
|  |  |  | import cn.hutool.core.util.ObjectUtil; | 
|---|
|  |  |  | import cn.hutool.core.util.StrUtil; | 
|---|
|  |  |  | import cn.hutool.json.JSONUtil; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.metadata.IPage; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
|---|
|  |  |  | 
|---|
|  |  |  | private final MallGoodsStyleMapper mallGoodsStyleMapper; | 
|---|
|  |  |  | private final MallGoodsImagesMapper mallGoodsImagesMapper; | 
|---|
|  |  |  | private final MallShoppingCartMapper mallShoppingCartMapper; | 
|---|
|  |  |  | private final MallCarriageRuleMapper mallCarriageRuleMapper; | 
|---|
|  |  |  | private final MallCarriageRuleInfoMapper mallCarriageRuleInfoMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<AdminMallGoodsVo> getCategoryListInPage(MallGoods mallGoods, QueryRequest request) { | 
|---|
|  |  |  | 
|---|
|  |  |  | if (mallGoodsByGoodsNo > 0) { | 
|---|
|  |  |  | return new FebsResponse().fail().message("商品编号不能重复"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer carriageType = addMallGoodsDto.getCarriageType(); | 
|---|
|  |  |  | if(1 == carriageType){ | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(addMallGoodsDto.getCarriageAmount()) | 
|---|
|  |  |  | || BigDecimal.ZERO.compareTo(addMallGoodsDto.getCarriageAmount()) > 0){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("固定邮费不能小于零"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | Long carriageRuleId = addMallGoodsDto.getCarriageRuleId(); | 
|---|
|  |  |  | MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(carriageRuleId); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallCarriageRule)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("邮费模板不能为空"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 付费商品 | 
|---|
|  |  |  | if (addMallGoodsDto.getGoodsType() != 2) { | 
|---|
|  |  |  | 
|---|
|  |  |  | if (StrUtil.isEmpty(presentPrice)) { | 
|---|
|  |  |  | return new FebsResponse().fail().message("商品规格现价不能为空"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BigDecimal goodsWeight = addSku.getGoodsWeight(); | 
|---|
|  |  |  | if(BigDecimal.ZERO.compareTo(goodsWeight) > 0){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("重量不能小于零"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | MallGoods mallGoods = MallGoodsConversion.INSTANCE.dtoToEntity(addMallGoodsDto); | 
|---|
|  |  |  | mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (mallGoods.getHasCarriage() == 2) { | 
|---|
|  |  |  | mallGoods.setCarriage(BigDecimal.ZERO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        if (mallGoods.getHasCarriage() == 2) { | 
|---|
|  |  |  | //            mallGoods.setCarriage(BigDecimal.ZERO); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | mallGoodsMapper.insert(mallGoods); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String thumbs = addMallGoodsDto.getThumbs(); | 
|---|
|  |  |  | 
|---|
|  |  |  | sku.setSkuVolume(mallGoods.getVolume()); | 
|---|
|  |  |  | sku.setStock(mallGoods.getStock()); | 
|---|
|  |  |  | sku.setStyleId(style.getId()); | 
|---|
|  |  |  | sku.setGoodsWeight(mallGoods.getGoodsWeight()); | 
|---|
|  |  |  | mallGoodsSkuMapper.insert(sku); | 
|---|
|  |  |  | return new FebsResponse().success().message("添加成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | mallGoodsSku.setStyleId(mallGoodsStyleSku.getId()); | 
|---|
|  |  |  | mallGoodsSku.setCostPrice(addMallGoodsSkuDto.getCostPrice()); | 
|---|
|  |  |  | mallGoodsSku.setGoodsId(mallGoods.getId()); | 
|---|
|  |  |  | mallGoodsSku.setGoodsWeight(addMallGoodsSkuDto.getGoodsWeight()); | 
|---|
|  |  |  | mallGoodsSku.setSample(addMallGoodsSkuDto.getSample()); | 
|---|
|  |  |  | mallGoodsSkuMapper.insert(mallGoodsSku); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (mallGoodsByGoodsNo > 0) { | 
|---|
|  |  |  | return new FebsResponse().fail().message("商品编号不能重复"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer carriageType = mallGoodsUpdateDto.getCarriageType(); | 
|---|
|  |  |  | if(1 == carriageType){ | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallGoodsUpdateDto.getCarriageAmount()) | 
|---|
|  |  |  | || BigDecimal.ZERO.compareTo(mallGoodsUpdateDto.getCarriageAmount()) > 0){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("固定邮费不能小于零"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | Long carriageRuleId = mallGoodsUpdateDto.getCarriageRuleId(); | 
|---|
|  |  |  | MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(carriageRuleId); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallCarriageRule)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("邮费模板不能为空"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (mallGoodsUpdateDto.getGoodsType() != 2) { | 
|---|
|  |  |  | Long categoryId = mallGoodsUpdateDto.getCategoryId(); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (presentPrice.compareTo(BigDecimal.ZERO) < 0) { | 
|---|
|  |  |  | return new FebsResponse().fail().message("商品规格现价不能小于0"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BigDecimal goodsWeight = addSku.getGoodsWeight(); | 
|---|
|  |  |  | if(BigDecimal.ZERO.compareTo(goodsWeight) > 0){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("重量不能小于零"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BeanUtil.copyProperties(mallGoodsUpdateDto, mallGoods); | 
|---|
|  |  |  | if (mallGoods.getHasCarriage() == 2) { | 
|---|
|  |  |  | mallGoods.setCarriage(BigDecimal.ZERO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        if (mallGoods.getHasCarriage() == 2) { | 
|---|
|  |  |  | //            mallGoods.setCarriage(BigDecimal.ZERO); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | mallGoodsMapper.updateById(mallGoods); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if( 1 == mallGoods.getCarriageType()){ | 
|---|
|  |  |  | mallGoodsMapper.updateCarriageRuleId(mallGoods.getId()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | mallGoodsMapper.updateCarriageAmount(mallGoods.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | mallGoodsImagesMapper.deleteByGoodsId(mallGoodsUpdateDto.getId()); | 
|---|
|  |  |  | String thumbs = mallGoodsUpdateDto.getThumbs(); | 
|---|
|  |  |  | 
|---|
|  |  |  | sku.setSkuVolume(mallGoods.getVolume()); | 
|---|
|  |  |  | sku.setStock(mallGoods.getStock()); | 
|---|
|  |  |  | sku.setStyleId(style.getId()); | 
|---|
|  |  |  | sku.setGoodsWeight(mallGoods.getGoodsWeight()); | 
|---|
|  |  |  | mallGoodsSkuMapper.insert(sku); | 
|---|
|  |  |  | return new FebsResponse().success().message("添加成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (ObjectUtil.isEmpty(mallGoodsStyleSku)) { | 
|---|
|  |  |  | styles.add(addStyleDto.getStyleName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | MallGoodsStyle mallGoodsStyle = mallGoodsStyleMapper.selectById(addStyleDto.getStyleId()); | 
|---|
|  |  |  | mallGoodsStyle.setName(addStyleDto.getStyleName()); | 
|---|
|  |  |  | mallGoodsStyleMapper.updateById(mallGoodsStyle); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | mallGoodsSku.setStyleId(addMallGoodsSkuDto.getStyleId()); | 
|---|
|  |  |  | mallGoodsSku.setGoodsId(mallGoods.getId()); | 
|---|
|  |  |  | mallGoodsSku.setCostPrice(addMallGoodsSkuDto.getCostPrice()); | 
|---|
|  |  |  | mallGoodsSku.setGoodsWeight(addMallGoodsSkuDto.getGoodsWeight()); | 
|---|
|  |  |  | mallGoodsSku.setSample(addMallGoodsSkuDto.getSample()); | 
|---|
|  |  |  | mallGoodsSkuMapper.updateById(mallGoodsSku); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | //新增商品规格 | 
|---|
|  |  |  | 
|---|
|  |  |  | mallGoodsSku.setStyleId(mallGoodsStyleSku.getId()); | 
|---|
|  |  |  | mallGoodsSku.setCostPrice(addMallGoodsSkuDto.getCostPrice()); | 
|---|
|  |  |  | mallGoodsSku.setGoodsId(mallGoods.getId()); | 
|---|
|  |  |  | mallGoodsSku.setGoodsWeight(addMallGoodsSkuDto.getGoodsWeight()); | 
|---|
|  |  |  | mallGoodsSku.setSample(addMallGoodsSkuDto.getSample()); | 
|---|
|  |  |  | mallGoodsSkuMapper.insert(mallGoodsSku); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<AdminHomeDeliverySettingVo> getDeliveryHomeListInPage(AdminHomeDeliverySettingVo adminHomeDeliverySetting, QueryRequest request) { | 
|---|
|  |  |  | Page<DataDictionaryCustom> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
|---|
|  |  |  | IPage<DataDictionaryCustom> dataDictionaryCustomIPage = this.baseMapper.getDeliveryHomeListInPage(page, adminHomeDeliverySetting); | 
|---|
|  |  |  | List<DataDictionaryCustom> records = dataDictionaryCustomIPage.getRecords(); | 
|---|
|  |  |  | List<AdminHomeDeliverySettingVo> adminHomeDeliverySettingVos = new ArrayList<>(); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(records)){ | 
|---|
|  |  |  | for(DataDictionaryCustom dataDictionaryCustom : records){ | 
|---|
|  |  |  | AdminHomeDeliverySettingVo adminHomeDeliverySettingVo = JSONUtil.toBean(dataDictionaryCustom.getValue(), AdminHomeDeliverySettingVo.class); | 
|---|
|  |  |  | adminHomeDeliverySettingVo.setId(dataDictionaryCustom.getId()); | 
|---|
|  |  |  | adminHomeDeliverySettingVos.add(adminHomeDeliverySettingVo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | IPage<AdminHomeDeliverySettingVo> adminHomeDeliverySettingVoIPage = new Page<>(); | 
|---|
|  |  |  | adminHomeDeliverySettingVoIPage.setRecords(adminHomeDeliverySettingVos); | 
|---|
|  |  |  | adminHomeDeliverySettingVoIPage.setTotal(dataDictionaryCustomIPage.getTotal()); | 
|---|
|  |  |  | return adminHomeDeliverySettingVoIPage; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse deliveryHomeUpdate(AdminHomeDeliverySettingVo adminHomeDeliverySettingVo) { | 
|---|
|  |  |  | DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(adminHomeDeliverySettingVo.getId()); | 
|---|
|  |  |  | adminHomeDeliverySettingVo.setId(null); | 
|---|
|  |  |  | dataDictionaryCustom.setValue(JSONUtil.toJsonStr(adminHomeDeliverySettingVo)); | 
|---|
|  |  |  | dataDictionaryCustomMapper.updateById(dataDictionaryCustom); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<MallCarriageRule> getMallCarriageRuleListInPage(MallCarriageRule mallCarriageRule, QueryRequest request) { | 
|---|
|  |  |  | Page<MallCarriageRule> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
|---|
|  |  |  | IPage<MallCarriageRule> mallCarriageRules = mallCarriageRuleMapper.selectMallCarriageRuleListInPage(page, mallCarriageRule); | 
|---|
|  |  |  | return mallCarriageRules; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public FebsResponse carriageRuleDelById(Long id) { | 
|---|
|  |  |  | MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallCarriageRule)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("操作失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<MallGoods> mallGoods = this.baseMapper.selectMallGoodsListQueryByRuleId(id); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(mallGoods)){ | 
|---|
|  |  |  | StringBuffer goodsNameBuffer = new StringBuffer(); | 
|---|
|  |  |  | for(MallGoods goods : mallGoods){ | 
|---|
|  |  |  | goodsNameBuffer.append(goods.getGoodsName()); | 
|---|
|  |  |  | goodsNameBuffer.append(","); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return new FebsResponse().fail().message(goodsNameBuffer+"正在使用当前模板,请先编辑商品信息"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | QueryWrapper<MallCarriageRuleInfo> objectQueryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | objectQueryWrapper.eq("rule_id",id); | 
|---|
|  |  |  | mallCarriageRuleInfoMapper.delete(objectQueryWrapper); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | mallCarriageRuleMapper.deleteById(id); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public FebsResponse carriageRuleAdd(AdminCarriageRuleAddDto adminCarriageRuleAddDto) { | 
|---|
|  |  |  | String ruleName = adminCarriageRuleAddDto.getRuleName(); | 
|---|
|  |  |  | QueryWrapper<MallCarriageRule> objectQueryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | objectQueryWrapper.eq("name",ruleName); | 
|---|
|  |  |  | List<MallCarriageRule> mallCarriageRules = mallCarriageRuleMapper.selectList(objectQueryWrapper); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(mallCarriageRules)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("标题不能重复"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MallCarriageRule mallCarriageRule = new MallCarriageRule(); | 
|---|
|  |  |  | mallCarriageRule.setName(ruleName); | 
|---|
|  |  |  | mallCarriageRuleMapper.insert(mallCarriageRule); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Long ruleId = mallCarriageRule.getId(); | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 生成默认的运费规则 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | MallCarriageRuleInfo mallCarriageRuleInfoDefault = new MallCarriageRuleInfo(); | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setRuleId(ruleId); | 
|---|
|  |  |  | //计价方式(1:按件算 2:按重量算) | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setValuationType(adminCarriageRuleAddDto.getValuationType()); | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setValuationUnit( | 
|---|
|  |  |  | adminCarriageRuleAddDto.getValuationType() == 1?"件":"千克" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setBasicCnt(adminCarriageRuleAddDto.getBasicCntDefault()); | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setBasicPrice(adminCarriageRuleAddDto.getBasicPriceDefault()); | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setMoreCnt(adminCarriageRuleAddDto.getMoreCntDefault()); | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setMorePrice(adminCarriageRuleAddDto.getMorePriceDefault()); | 
|---|
|  |  |  | mallCarriageRuleInfoMapper.insert(mallCarriageRuleInfoDefault); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<AdminCarriageRuleAddInfoDto> adminCarriageRuleAddInfoDtos = adminCarriageRuleAddDto.getAdminCarriageRuleAddInfoDtos(); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(adminCarriageRuleAddInfoDtos)){ | 
|---|
|  |  |  | for(AdminCarriageRuleAddInfoDto adminCarriageRuleAddInfoDto : adminCarriageRuleAddInfoDtos){ | 
|---|
|  |  |  | MallCarriageRuleInfo mallCarriageRuleInfo = new MallCarriageRuleInfo(); | 
|---|
|  |  |  | mallCarriageRuleInfo.setRuleId(ruleId); | 
|---|
|  |  |  | mallCarriageRuleInfo.setAreaAddress(adminCarriageRuleAddInfoDto.getAreaAddress()); | 
|---|
|  |  |  | //计价方式(1:按件算 2:按重量算) | 
|---|
|  |  |  | mallCarriageRuleInfo.setValuationType(adminCarriageRuleAddDto.getValuationType()); | 
|---|
|  |  |  | mallCarriageRuleInfo.setValuationUnit( | 
|---|
|  |  |  | adminCarriageRuleAddDto.getValuationType() == 1?"件":"千克" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | mallCarriageRuleInfo.setBasicCnt(adminCarriageRuleAddInfoDto.getBasicCnt()); | 
|---|
|  |  |  | mallCarriageRuleInfo.setBasicPrice(adminCarriageRuleAddInfoDto.getBasicPrice()); | 
|---|
|  |  |  | mallCarriageRuleInfo.setMoreCnt(adminCarriageRuleAddInfoDto.getMoreCnt()); | 
|---|
|  |  |  | mallCarriageRuleInfo.setMorePrice(adminCarriageRuleAddInfoDto.getMorePrice()); | 
|---|
|  |  |  | mallCarriageRuleInfoMapper.insert(mallCarriageRuleInfo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return new FebsResponse().success().message("操作成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public AdminMallCarriageRuleVo selectCarriageRuleByRuleId(long id) { | 
|---|
|  |  |  | AdminMallCarriageRuleVo adminMallCarriageRuleVo = new AdminMallCarriageRuleVo(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(id); | 
|---|
|  |  |  | adminMallCarriageRuleVo.setId(id); | 
|---|
|  |  |  | adminMallCarriageRuleVo.setRuleName(mallCarriageRule.getName()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<MallCarriageRuleInfo> mallCarriageRuleInfos = mallCarriageRuleInfoMapper.selectMallCarriageRuleInfoByRuleIdAndAreaAddress(id,null); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(mallCarriageRuleInfos)){ | 
|---|
|  |  |  | StringBuffer areaAddressStr = new StringBuffer(); | 
|---|
|  |  |  | List<AdminMallCarriageRuleInfoVo> adminCarriageRuleInfoVos = new ArrayList<>(); | 
|---|
|  |  |  | for(MallCarriageRuleInfo mallCarriageRuleInfo : mallCarriageRuleInfos){ | 
|---|
|  |  |  | if(StrUtil.isNotEmpty(mallCarriageRuleInfo.getAreaAddress())){ | 
|---|
|  |  |  | AdminMallCarriageRuleInfoVo adminMallCarriageRuleInfoVo = new AdminMallCarriageRuleInfoVo(); | 
|---|
|  |  |  | adminMallCarriageRuleInfoVo.setId(mallCarriageRuleInfo.getId()); | 
|---|
|  |  |  | adminMallCarriageRuleInfoVo.setAreaAddress(mallCarriageRuleInfo.getAreaAddress()); | 
|---|
|  |  |  | adminMallCarriageRuleInfoVo.setBasicCnt(mallCarriageRuleInfo.getBasicCnt()); | 
|---|
|  |  |  | adminMallCarriageRuleInfoVo.setBasicPrice(mallCarriageRuleInfo.getBasicPrice()); | 
|---|
|  |  |  | adminMallCarriageRuleInfoVo.setMoreCnt(mallCarriageRuleInfo.getMoreCnt()); | 
|---|
|  |  |  | adminMallCarriageRuleInfoVo.setMorePrice(mallCarriageRuleInfo.getMorePrice()); | 
|---|
|  |  |  | adminCarriageRuleInfoVos.add(adminMallCarriageRuleInfoVo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | areaAddressStr.append(mallCarriageRuleInfo.getAreaAddress()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | //默认规则 | 
|---|
|  |  |  | adminMallCarriageRuleVo.setBasicCntDefault(mallCarriageRuleInfo.getBasicCnt()); | 
|---|
|  |  |  | adminMallCarriageRuleVo.setBasicPriceDefault(mallCarriageRuleInfo.getBasicPrice()); | 
|---|
|  |  |  | adminMallCarriageRuleVo.setMoreCntDefault(mallCarriageRuleInfo.getMoreCnt()); | 
|---|
|  |  |  | adminMallCarriageRuleVo.setMorePriceDefault(mallCarriageRuleInfo.getMorePrice()); | 
|---|
|  |  |  | adminMallCarriageRuleVo.setValuationType(mallCarriageRuleInfo.getValuationType()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | adminMallCarriageRuleVo.setAdminCarriageRuleInfoVos(adminCarriageRuleInfoVos); | 
|---|
|  |  |  | adminMallCarriageRuleVo.setAreaAddressStr(areaAddressStr.toString()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return adminMallCarriageRuleVo; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public FebsResponse carriageRuleUpdate(AdminCarriageRuleUpdateDto adminCarriageRuleUpdateDto) { | 
|---|
|  |  |  | Long id = adminCarriageRuleUpdateDto.getId(); | 
|---|
|  |  |  | MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallCarriageRule)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("运费模板不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<MallGoods> mallGoods = this.baseMapper.selectMallGoodsListQueryByRuleIdAndIsSale(id,MallGoods.ISHOT_STATE_YES); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(mallGoods)){ | 
|---|
|  |  |  | StringBuffer goodsNameBuffer = new StringBuffer(); | 
|---|
|  |  |  | for(MallGoods goods : mallGoods){ | 
|---|
|  |  |  | goodsNameBuffer.append(goods.getGoodsName()); | 
|---|
|  |  |  | goodsNameBuffer.append(","); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return new FebsResponse().fail().message(goodsNameBuffer+"正在使用当前模板,请先下架商品"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | mallCarriageRule.setName(adminCarriageRuleUpdateDto.getRuleName()); | 
|---|
|  |  |  | mallCarriageRuleMapper.updateById(mallCarriageRule); | 
|---|
|  |  |  | //删除现有的所有运费模板子表数据 | 
|---|
|  |  |  | List<MallCarriageRuleInfo> mallCarriageRuleInfos = mallCarriageRuleInfoMapper.selectMallCarriageRuleInfoByRuleIdAndAreaAddress(id, null); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(mallCarriageRuleInfos)){ | 
|---|
|  |  |  | for(MallCarriageRuleInfo mallCarriageRuleInfo : mallCarriageRuleInfos){ | 
|---|
|  |  |  | mallCarriageRuleInfoMapper.deleteById(mallCarriageRuleInfo.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 生成运费模板子表数据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | MallCarriageRuleInfo mallCarriageRuleInfoDefault = new MallCarriageRuleInfo(); | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setRuleId(id); | 
|---|
|  |  |  | //计价方式(1:按件算 2:按重量算) | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setValuationType(adminCarriageRuleUpdateDto.getValuationType()); | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setValuationUnit( | 
|---|
|  |  |  | adminCarriageRuleUpdateDto.getValuationType() == 1?"件":"千克" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setBasicCnt(adminCarriageRuleUpdateDto.getBasicCntDefault()); | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setBasicPrice(adminCarriageRuleUpdateDto.getBasicPriceDefault()); | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setMoreCnt(adminCarriageRuleUpdateDto.getMoreCntDefault()); | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.setMorePrice(adminCarriageRuleUpdateDto.getMorePriceDefault()); | 
|---|
|  |  |  | mallCarriageRuleInfoMapper.insert(mallCarriageRuleInfoDefault); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<AdminCarriageRuleAddInfoDto> adminCarriageRuleAddInfoDtos = adminCarriageRuleUpdateDto.getAdminCarriageRuleAddInfoDtos(); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(adminCarriageRuleAddInfoDtos)){ | 
|---|
|  |  |  | for(AdminCarriageRuleAddInfoDto adminCarriageRuleAddInfoDto : adminCarriageRuleAddInfoDtos){ | 
|---|
|  |  |  | MallCarriageRuleInfo mallCarriageRuleInfo = new MallCarriageRuleInfo(); | 
|---|
|  |  |  | mallCarriageRuleInfo.setRuleId(id); | 
|---|
|  |  |  | mallCarriageRuleInfo.setAreaAddress(adminCarriageRuleAddInfoDto.getAreaAddress()); | 
|---|
|  |  |  | //计价方式(1:按件算 2:按重量算) | 
|---|
|  |  |  | mallCarriageRuleInfo.setValuationType(mallCarriageRuleInfoDefault.getValuationType()); | 
|---|
|  |  |  | mallCarriageRuleInfo.setValuationUnit( | 
|---|
|  |  |  | mallCarriageRuleInfoDefault.getValuationType() == 1?"件":"千克" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | mallCarriageRuleInfo.setBasicCnt(adminCarriageRuleAddInfoDto.getBasicCnt()); | 
|---|
|  |  |  | mallCarriageRuleInfo.setBasicPrice(adminCarriageRuleAddInfoDto.getBasicPrice()); | 
|---|
|  |  |  | mallCarriageRuleInfo.setMoreCnt(adminCarriageRuleAddInfoDto.getMoreCnt()); | 
|---|
|  |  |  | mallCarriageRuleInfo.setMorePrice(adminCarriageRuleAddInfoDto.getMorePrice()); | 
|---|
|  |  |  | mallCarriageRuleInfoMapper.insert(mallCarriageRuleInfo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return new FebsResponse().success().message("操作成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<MallCarriageRule> findAllCarriageRuleTree() { | 
|---|
|  |  |  | List<MallCarriageRule> mallCarriageRules = mallCarriageRuleMapper.selectList(new QueryWrapper<>()); | 
|---|
|  |  |  | return mallCarriageRules; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|