| | |
| | | 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) { |
| | |
| | | //新增商品 |
| | | MallGoods mallGoods = MallGoodsConversion.INSTANCE.dtoToEntity(addMallGoodsDto); |
| | | mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED); |
| | | |
| | | if (mallGoods.getHasCarriage() == 2) { |
| | | mallGoods.setCarriage(BigDecimal.ZERO); |
| | | } |
| | | mallGoodsMapper.insert(mallGoods); |
| | | |
| | | String thumbs = addMallGoodsDto.getThumbs(); |
| | |
| | | } |
| | | |
| | | if (addMallGoodsDto.getGoodsType() == 2) { |
| | | return new FebsResponse().success().message("添加成功"); |
| | | } |
| | | |
| | | // 单规格 |
| | | if (addMallGoodsDto.getIsSku() == 2) { |
| | | MallGoodsStyle style = new MallGoodsStyle(); |
| | | style.setGoodsId(mallGoods.getId()); |
| | | style.setName(mallGoods.getGoodsName()); |
| | | mallGoodsStyleMapper.insert(style); |
| | | |
| | | MallGoodsSku sku = new MallGoodsSku(); |
| | | sku.setGoodsId(mallGoods.getId()); |
| | | sku.setSkuImage(mallGoods.getThumb()); |
| | | sku.setSkuName(mallGoods.getGoodsName()); |
| | | sku.setCostPrice(mallGoods.getCostPrice()); |
| | | sku.setPresentPrice(new BigDecimal(mallGoods.getPresentPrice())); |
| | | sku.setOriginalPrice(new BigDecimal(mallGoods.getOriginalPrice())); |
| | | sku.setSkuVolume(mallGoods.getVolume()); |
| | | sku.setStock(mallGoods.getStock()); |
| | | sku.setStyleId(style.getId()); |
| | | mallGoodsSkuMapper.insert(sku); |
| | | return new FebsResponse().success().message("添加成功"); |
| | | } |
| | | |
| | |
| | | return new FebsResponse().fail().message("商品规格原价不能小于0"); |
| | | } |
| | | BigDecimal presentPrice = addSku.getPresentPrice(); |
| | | if (presentPrice.compareTo(BigDecimal.ZERO) <= 0) { |
| | | if (presentPrice.compareTo(BigDecimal.ZERO) < 0) { |
| | | return new FebsResponse().fail().message("商品规格现价不能小于0"); |
| | | } |
| | | |
| | |
| | | |
| | | //新增商品 |
| | | MallGoods mallGoods = mallGoodsMapper.selectById(mallGoodsUpdateDto.getId()); |
| | | |
| | | // 若原来不为多规格或编辑后也不为多规格,则清空样式和规格 |
| | | if (mallGoods.getIsSku() == 2 || mallGoodsUpdateDto.getIsSku() == 2) { |
| | | mallGoodsSkuMapper.deleteByGoodsId(mallGoods.getId()); |
| | | mallGoodsStyleMapper.deleteByGoodsId(mallGoods.getId()); |
| | | } |
| | | |
| | | BeanUtil.copyProperties(mallGoodsUpdateDto, mallGoods); |
| | | if (mallGoods.getHasCarriage() == 2) { |
| | | mallGoods.setCarriage(BigDecimal.ZERO); |
| | | } |
| | | |
| | | mallGoodsMapper.updateById(mallGoods); |
| | | |
| | | mallGoodsImagesMapper.deleteByGoodsId(mallGoodsUpdateDto.getId()); |
| | |
| | | if (mallGoodsUpdateDto.getGoodsType() == 2) { |
| | | return new FebsResponse().success().message("编辑成功"); |
| | | } |
| | | |
| | | // 单规格 |
| | | if (mallGoodsUpdateDto.getIsSku() == 2) { |
| | | MallGoodsStyle style = new MallGoodsStyle(); |
| | | style.setGoodsId(mallGoods.getId()); |
| | | style.setName(mallGoods.getGoodsName()); |
| | | mallGoodsStyleMapper.insert(style); |
| | | |
| | | MallGoodsSku sku = new MallGoodsSku(); |
| | | sku.setGoodsId(mallGoods.getId()); |
| | | sku.setSkuImage(mallGoods.getThumb()); |
| | | sku.setSkuName(mallGoods.getGoodsName()); |
| | | sku.setCostPrice(mallGoods.getCostPrice()); |
| | | sku.setPresentPrice(new BigDecimal(mallGoods.getPresentPrice())); |
| | | sku.setOriginalPrice(new BigDecimal(mallGoods.getOriginalPrice())); |
| | | sku.setSkuVolume(mallGoods.getVolume()); |
| | | sku.setStock(mallGoods.getStock()); |
| | | sku.setStyleId(style.getId()); |
| | | mallGoodsSkuMapper.insert(sku); |
| | | return new FebsResponse().success().message("添加成功"); |
| | | } |
| | | |
| | | |
| | | |
| | | // 删除已存在sku |
| | | List<Long> delSkuIds = mallGoodsUpdateDto.getDelSkuId(); |
| | |
| | | return mallGoodsMapper.getAllGoodsTree(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse goodsHot(Long id) { |
| | | MallGoods mallGoods = mallGoodsMapper.selectById(id); |
| | | if (ObjectUtil.isEmpty(mallGoods)) { |
| | | return new FebsResponse().fail().message("商品不存在,请刷新当前页面"); |
| | | } |
| | | mallGoods.setIsHot(MallGoods.ISHOT_STATE_YES); |
| | | mallGoodsMapper.updateById(mallGoods); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse goodsNotHot(Long id) { |
| | | MallGoods mallGoods = mallGoodsMapper.selectById(id); |
| | | if (ObjectUtil.isEmpty(mallGoods)) { |
| | | return new FebsResponse().fail().message("商品不存在,请刷新当前页面"); |
| | | } |
| | | mallGoods.setIsHot(MallGoods.ISHOT_STATE_NO); |
| | | mallGoodsMapper.updateById(mallGoods); |
| | | 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)){ |
| | | 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("操作成功"); |
| | | } |
| | | } |