From ae99a4a7654a6a3d8fd8343c22c415930f0a18cb Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 09 Feb 2023 11:15:15 +0800 Subject: [PATCH] 后台运费模板功能 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java | 186 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 186 insertions(+), 0 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java index a65ff45..6774b7f 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java @@ -13,6 +13,7 @@ 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; @@ -39,6 +40,8 @@ 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) { @@ -525,4 +528,187 @@ 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)){ + 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); + }else{ + //默认规则 + adminMallCarriageRuleVo.setBasicCntDefault(mallCarriageRuleInfo.getBasicCnt()); + adminMallCarriageRuleVo.setBasicPriceDefault(mallCarriageRuleInfo.getBasicPrice()); + adminMallCarriageRuleVo.setMoreCntDefault(mallCarriageRuleInfo.getMoreCnt()); + adminMallCarriageRuleVo.setMorePriceDefault(mallCarriageRuleInfo.getMorePrice()); + adminMallCarriageRuleVo.setValuationType(mallCarriageRuleInfo.getValuationType()); + } + } + adminMallCarriageRuleVo.setAdminCarriageRuleInfoVos(adminCarriageRuleInfoVos); + } + 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+"正在使用当前模板,请先下架商品"); + } + //删除现有的所有运费模板子表数据 + 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("操作成功"); + } } -- Gitblit v1.9.1