From 81916636be905498a2fc710b19112213f3bfc0a6 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Fri, 1 Aug 2025 15:43:13 +0800 Subject: [PATCH] =?UTF-8?q?##=20Feat=20-=20=E7=A7=92=E6=9D=80=E4=B8=93?= =?UTF-8?q?=E5=8C=BA=E9=94=80=E5=94=AE=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/ApiBdWaresController.java | 20 +++++++++++++ .../controller/manage/BdWaresController.java | 21 +++++++++++++ .../hzs/sale/wares/param/CuWaresParams.java | 10 +++++++ .../com/hzs/sale/wares/param/WaresParams.java | 6 ++++ .../sale/wares/service/IBdWaresService.java | 1 + .../service/impl/BdWaresServiceImpl.java | 30 +++++++++++++++++++ .../impl/BdWaresSpecsSkuServiceImpl.java | 13 ++++++++ .../java/com/hzs/sale/wares/vo/WaresVo.java | 26 ++++++++++++++++ .../mapper/sale/wares/BdWaresMapper.xml | 16 +++++++--- .../sale/wares/BdWaresSpecsSkuMapper.xml | 8 +++-- .../common/core/enums/EOperationMethod.java | 2 ++ .../hzs/common/core/enums/ESpecialArea.java | 2 +- .../com/hzs/common/core/utils/NumberUtil.java | 7 +++++ .../common/domain/sale/ext/BdWaresExt.java | 21 +++++++++++++ .../domain/sale/ext/BdWaresSpecsSkuExt.java | 20 +++++++++++++ 15 files changed, 196 insertions(+), 7 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/api/ApiBdWaresController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/api/ApiBdWaresController.java index 586a0357..25f15eb7 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/api/ApiBdWaresController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/api/ApiBdWaresController.java @@ -292,6 +292,16 @@ public class ApiBdWaresController extends BaseController { jsonArray.add(js); } } + Integer inventory = waresExt.getInventory(); + Integer inventoryRatio = waresExt.getInventoryRatio(); + Integer inventoryUse = waresExt.getInventoryUse(); + int ratio = 100 - (int) Math.round(NumberUtil.getRatioNum(inventory, inventoryUse)); + if(ratio <= inventoryRatio){ + waresParams.setUseRatio(true); + waresParams.setInventory(ratio + ""); + }else{ + waresParams.setUseRatio(false); + } waresParams.setProductGroup(jsonArray); waresParamsList.add(waresParams); } @@ -684,6 +694,16 @@ public class ApiBdWaresController extends BaseController { } else { waresParamsList.add(waresParams); } + Integer inventory = waresExt.getInventory(); + Integer inventoryRatio = waresExt.getInventoryRatio(); + Integer inventoryUse = waresExt.getInventoryUse(); + int ratio = 100 - (int) Math.round(NumberUtil.getRatioNum(inventory, inventoryUse)); + if(ratio <= inventoryRatio){ + waresParams.setUseRatio(true); + waresParams.setInventory(ratio + ""); + }else{ + waresParams.setUseRatio(false); + } } } return AjaxResult.success(waresParamsList); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java index 67a31365..b882015d 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java @@ -891,6 +891,13 @@ public class BdWaresController extends BaseController { waresParams.setMemberLimit(waresExtend.getMemberLimit()); waresParams.setMemberMonthLimit(waresExtend.getMemberMonthLimit()); + waresParams.setInventory(waresExtend.getInventory()); + waresParams.setInventoryRatio(waresExtend.getInventoryRatio()); + waresParams.setMemberLimit(waresExtend.getMemberLimit()); + waresParams.setMemberMonthLimit(waresExtend.getMemberMonthLimit()); + waresParams.setInventoryUse(waresExtend.getInventoryUse()); + + BdAreaClassify parentAreaClassify = areaClassifyService.getAreaClassify(wares.getPkAreaClassify()); if (parentAreaClassify != null) { if (parentAreaClassify.getPkParent() == 0) { @@ -1342,4 +1349,18 @@ public class BdWaresController extends BaseController { return AjaxResult.success(); } + + /** + * 编辑商品信息 + * + * @param waresParams + * @return + */ + @PostMapping("/resetInventoryUse") + @Log(module = EOperationModule.WARES_LIST, business = EOperationBusiness.WARES_LIST, method = EOperationMethod.RESET) + public AjaxResult resetInventoryUse(@RequestBody WaresParams waresParams) { + waresParams.setPkCountry(SecurityUtils.getPkCountry()); + waresService.resetInventoryUse(waresParams); + return AjaxResult.success(waresParams.getWaresCode()); + } } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/CuWaresParams.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/CuWaresParams.java index 9ec3edf7..a3bcfe55 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/CuWaresParams.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/CuWaresParams.java @@ -281,4 +281,14 @@ public class CuWaresParams implements Serializable { * 消费配置主键 */ private Integer pkSpecialCurrency; + + /** + * 展示库存 + */ + private String inventory; + + /** + * 是否展示剩余比例 + */ + private boolean useRatio; } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/WaresParams.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/WaresParams.java index fff86605..ee14665b 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/WaresParams.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/param/WaresParams.java @@ -1,5 +1,6 @@ package com.hzs.sale.wares.param; +import com.baomidou.mybatisplus.annotation.TableField; import com.hzs.common.core.annotation.BigDecimalFormat; import lombok.Data; @@ -423,5 +424,10 @@ public class WaresParams implements Serializable { * 会员月限购 */ private Integer memberMonthLimit; + /** + * 已用库存数量 + */ + private Integer inventoryUse; + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresService.java index 752a263a..8720f736 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresService.java @@ -236,4 +236,5 @@ public interface IBdWaresService extends IService { */ List listWares(IndexWaresParam param); + void resetInventoryUse(WaresParams params); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java index 5be771d0..71bf468c 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresServiceImpl.java @@ -11,6 +11,7 @@ import com.hzs.common.core.enums.*; import com.hzs.common.core.exception.base.BaseException; import com.hzs.common.core.service.RedisService; import com.hzs.common.core.utils.DateUtils; +import com.hzs.common.core.utils.NumberUtil; import com.hzs.common.core.utils.StringUtils; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.ext.CuMemberExt; @@ -135,6 +136,7 @@ public class BdWaresServiceImpl extends ServiceImpl impl waresExtend.setPkCreator(user.getUserId()); waresExtend.setCreationTime(DateUtils.currentDateTime()); waresExtend.setPkCountry(user.getDataCountry()); + waresExtend.setInventoryUse(0); // 前缀标签 BdLabel prefixLabel = null; if (waresParams.getPkPrefixLabel() != null) { @@ -551,6 +553,7 @@ public class BdWaresServiceImpl extends ServiceImpl impl waresExtend.setPkWares(wares.getPkId()); waresExtend.setPkModified(user.getUserId()); waresExtend.setModifiedTime(new Date()); + waresExtend.setInventoryUse(null); // 根据商品id 修改信息 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(BdWaresExtend::getPkWares, wares.getPkId()); @@ -1241,6 +1244,7 @@ public class BdWaresServiceImpl extends ServiceImpl impl specialAreaList = saList; } + specialAreaList.add(14); RecommendWaresInfoVo recommendWaresInfoVo = new RecommendWaresInfoVo(); // 推荐专区 List resultList = new ArrayList<>(); @@ -1281,6 +1285,17 @@ public class BdWaresServiceImpl extends ServiceImpl impl waresVo.setIsSale(wl.getIsSale()); waresVo.setPreSaleStatus(wl.getPreSaleStatus()); waresVo.setSpecialArea(wl.getSpecialArea()); + + Integer inventory = wl.getInventory(); + Integer inventoryRatio = wl.getInventoryRatio(); + Integer inventoryUse = wl.getInventoryUse(); + int ratio = 100 - (int) Math.round(NumberUtil.getRatioNum(inventory, inventoryUse)); + if(ratio <= inventoryRatio){ + waresVo.setUseRatio(true); + waresVo.setInventory(ratio + ""); + }else{ + waresVo.setUseRatio(false); + } return waresVo; }).collect(Collectors.toList()); recommendSpecialAreaVo.setWaresList(waresVoList); @@ -1508,4 +1523,19 @@ public class BdWaresServiceImpl extends ServiceImpl impl return baseMapper.listWaresNew(param); } + @Override + public void resetInventoryUse(WaresParams params) { + BdWaresExtend waresExtend = BeanUtil.copyProperties(params, BdWaresExtend.class); + waresExtend.setSystemType(ESystemType.DEFAULT.getValue()); + waresExtend.setPkWares(params.getWaresId()); + waresExtend.setPkModified(SecurityUtils.getUserId()); + waresExtend.setModifiedTime(new Date()); + waresExtend.setInventoryUse(0); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BdWaresExtend::getPkWares, params.getWaresId()); + + iBdWaresExtendService.update(waresExtend, queryWrapper); + } + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresSpecsSkuServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresSpecsSkuServiceImpl.java index c4d20f14..495ebcf9 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresSpecsSkuServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresSpecsSkuServiceImpl.java @@ -8,6 +8,7 @@ import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; import com.hzs.common.core.utils.ComputeUtil; import com.hzs.common.core.utils.DistinctByKeyUtil; +import com.hzs.common.core.utils.NumberUtil; import com.hzs.common.core.utils.StringUtils; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.sale.ext.BdWaresSpecsRelationExt; @@ -98,6 +99,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresSpecsSkuMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresSpecsSkuMapper.xml index 5a31f44e..541fd7fd 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresSpecsSkuMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresSpecsSkuMapper.xml @@ -99,7 +99,9 @@ , be.CREATION_TIME , be.PRE_SALE_STATUS , be.is_maker_gift - , bk.vip_price,bk.retail_price,be.PK_SPECIAL_CURRENCY + , bk.vip_price,bk.retail_price,be.PK_SPECIAL_CURRENCY, + + be.INVENTORY, be.INVENTORY_RATIO, be.MEMBER_LIMIT, be.MEMBER_MONTH_LIMIT, be.INVENTORY_USE from bd_wares bw inner join bd_wares_extend be on bw.pk_id = be.pk_wares @@ -296,7 +298,9 @@ , be.CREATION_TIME , be.PRE_SALE_STATUS , be.is_maker_gift - , be.PK_SPECIAL_CURRENCY + , be.PK_SPECIAL_CURRENCY, + + be.INVENTORY, be.INVENTORY_RATIO, be.MEMBER_LIMIT, be.MEMBER_MONTH_LIMIT, be.INVENTORY_USE from bd_wares bw inner join bd_wares_extend be on bw.pk_id = be.pk_wares diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationMethod.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationMethod.java index 58518c64..60e63839 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationMethod.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationMethod.java @@ -22,6 +22,8 @@ public enum EOperationMethod { UPDATE("修改"), + RESET("重置已用库存"), + UPDATE_STATUS("修改状态"), DELETE("删除"), diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESpecialArea.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESpecialArea.java index 016e271f..055167ca 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESpecialArea.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESpecialArea.java @@ -39,7 +39,7 @@ public enum ESpecialArea { /** * 秒杀专区 */ - LIVE_BROADCAST(14, "秒杀专区", 0, EnumsPrefixConstants.SPECIAL_AREA + 14, 14, EMenuDetail.LIVE.getValue()), + LIVE_BROADCAST(14, "秒杀专区", 0, EnumsPrefixConstants.SPECIAL_AREA + 14, 0, EMenuDetail.LIVE.getValue()), /** * 注册专区 diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/NumberUtil.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/NumberUtil.java index 7da4aa41..cd08d961 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/NumberUtil.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/utils/NumberUtil.java @@ -26,5 +26,12 @@ public class NumberUtil { return "0%"; } } + public static double getRatioNum(Integer number1, Integer number2) { + if (number2 != 0) { + return ((double) number2/ (double) number1) * 100; + } else { + return 0d; + } + } } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/BdWaresExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/BdWaresExt.java index 2225c310..4eb1d6b4 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/BdWaresExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/BdWaresExt.java @@ -186,4 +186,25 @@ public class BdWaresExt extends BdWares { */ private Integer isMakerGift; + + /** + * 库存数量 + */ + private Integer inventory; + /** + * 库存倒计时比例 + */ + private Integer inventoryRatio; + /** + * 会员总限购 + */ + private Integer memberLimit; + /** + * 会员月限购 + */ + private Integer memberMonthLimit; + /** + * 已用库存数量 + */ + private Integer inventoryUse; } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/BdWaresSpecsSkuExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/BdWaresSpecsSkuExt.java index 7859f18e..24ac1959 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/BdWaresSpecsSkuExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/BdWaresSpecsSkuExt.java @@ -171,4 +171,24 @@ public class BdWaresSpecsSkuExt extends BdWaresSpecsSku { private Integer pkSpecialCurrency; + /** + * 库存数量 + */ + private Integer inventory; + /** + * 库存倒计时比例 + */ + private Integer inventoryRatio; + /** + * 会员总限购 + */ + private Integer memberLimit; + /** + * 会员月限购 + */ + private Integer memberMonthLimit; + /** + * 已用库存数量 + */ + private Integer inventoryUse; }