From 8d3a33206cb5cab907794f2646505621a60efc66 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 5 Aug 2025 14:26:17 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E7=A7=92=E6=9D=80=E4=B8=93=E5=8C=BA?= =?UTF-8?q?=E4=B8=8B=E5=8D=95=E9=80=BB=E8=BE=91=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/ApiOthSaOrderController.java | 22 +-- .../service/impl/SaOrderServiceImpl.java | 144 ++++++++++++++++-- .../wares/mapper/BdWaresExtendMapper.java | 9 ++ .../mapper/BdWaresMemberLimitMapper.java | 22 +++ .../wares/service/IBdWaresExtendService.java | 17 +++ .../service/IBdWaresMemberLimitService.java | 31 ++++ .../impl/BdWaresExtendServiceImpl.java | 20 +++ .../impl/BdWaresMemberLimitServiceImpl.java | 33 ++++ .../mapper/sale/wares/BdWaresExtendMapper.xml | 15 ++ .../sale/wares/BdWaresMemberLimitMapper.xml | 40 +++++ .../hzs/common/core/config/BarcodeConfig.java | 2 - .../config/FastJson2JsonRedisSerializer.java | 2 - .../hzs/common/core/config/FilterConfig.java | 9 +- .../common/core/config/MyBatisPlusConfig.java | 2 - .../com/hzs/common/core/config/OssConfig.java | 2 - .../hzs/common/core/config/RedisConfig.java | 2 - .../hzs/common/core/enums/EApprovalType.java | 6 +- .../common/core/enums/EApproveOperation.java | 6 +- .../hzs/common/core/enums/EApproveStatus.java | 7 +- .../hzs/common/core/enums/EBindStatus.java | 2 - .../hzs/common/core/enums/EChangeType.java | 8 - .../com/hzs/common/core/enums/ELimitType.java | 61 ++++++++ .../hzs/common/core/enums/ESettlePeriod.java | 6 - .../common/core/enums/ESettlementCycle.java | 7 +- .../common/domain/bonus/BdBonusInstall.java | 5 - .../common/domain/bonus/BdBonusService.java | 3 - .../common/domain/ground/margin/ThMargin.java | 99 ------------ .../ground/supplier/ThSupplierApply.java | 9 +- .../domain/sale/wares/BdWaresMemberLimit.java | 62 ++++++++ 29 files changed, 449 insertions(+), 204 deletions(-) create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresMemberLimitMapper.java create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresMemberLimitService.java create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresMemberLimitServiceImpl.java create mode 100644 bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMemberLimitMapper.xml create mode 100644 bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ELimitType.java delete mode 100644 bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/ground/margin/ThMargin.java create mode 100644 bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWaresMemberLimit.java diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOthSaOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOthSaOrderController.java index b785edd0..0da4a391 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOthSaOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/api/ApiOthSaOrderController.java @@ -20,15 +20,12 @@ import com.hzs.sale.order.param.OrderReturn; import com.hzs.sale.order.service.impl.SaOrderHandle; import com.hzs.sale.order.vo.CheckBeforeConfirmVO; import com.hzs.sale.shopping.param.CarWaresInfoParam; -import com.hzs.sale.shopping.vo.CarWaresInfoVo; import com.hzs.sale.shopping.vo.ShoppingCartRedis; import com.hzs.sale.shopping.vo.ShoppingCartVO; import com.hzs.sale.shopping.vo.WaresItemVo; import com.hzs.sale.wares.service.IBdWaresSpecsSkuService; -import com.hzs.system.config.IGradeServiceApi; import com.hzs.system.config.dto.GradeDTO; import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -48,9 +45,6 @@ public class ApiOthSaOrderController extends ParentOrderController { @Autowired private IBdWaresSpecsSkuService iBdWaresSpecsSkuService; - @DubboReference - IGradeServiceApi iGradeServiceApi; - /** * 提供确认订单的方法 * @@ -78,6 +72,7 @@ public class ApiOthSaOrderController extends ParentOrderController { convertShoppingCarToSku(orderParam); if (EOrderType.UPGRADE_ORDER.getValue() == orderParam.getSpecialArea() || EOrderType.REPURCHASE_ORDER.getValue() == orderParam.getSpecialArea() + || EOrderType.MALL_ORDER.getValue() == orderParam.getSpecialArea() || EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == orderParam.getSpecialArea() || EOrderType.SPECIAL_REPURCHASE_ORDER.getValue() == orderParam.getSpecialArea()) { if (StringUtils.isEmpty(orderParam.getUpgradeMemberCode())) { @@ -252,21 +247,6 @@ public class ApiOthSaOrderController extends ParentOrderController { } GradeDTO gradeDTO = saOrderHandle.getMemberGradeAndAwardByCountry(BigDecimal.ZERO, achieveAmount, pkCountry, EUpgradeWay.COVER.getValue() + ""); if (null != gradeDTO) { -// if (EOrderType.REGISTER_ORDER.getValue() == param.getSpecialArea() -// || EOrderType.UPGRADE_ORDER.getValue() == param.getSpecialArea()) { -// // 2025.05.13 新添加需求,开网初期报单660给1980等级,报单1980给9900等级 -// if (EGrade.YOU_KE.getValue() == gradeDTO.getGradeValue()) { -// GradeDTO newGradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.MAKER.getValue(), pkCountry).getData(); -// if (null != newGradeDTO) { -// gradeDTO = newGradeDTO; -// } -// } else if (EGrade.MAKER.getValue() == gradeDTO.getGradeValue()) { -// GradeDTO newGradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.VIP.getValue(), pkCountry).getData(); -// if (null != newGradeDTO) { -// gradeDTO = newGradeDTO; -// } -// } -// } if (addPurchase > gradeDTO.getBoxNumber()) { if (gradeDTO.getBoxNumber() == 0) { vo.setFlag(EYesNo.NO.getIntValue()); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index d8ff677b..52380362 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -33,6 +33,8 @@ import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.sale.ext.*; import com.hzs.common.domain.sale.order.*; import com.hzs.common.domain.sale.wares.BdWares; +import com.hzs.common.domain.sale.wares.BdWaresExtend; +import com.hzs.common.domain.sale.wares.BdWaresMemberLimit; import com.hzs.common.domain.system.base.BdCountry; import com.hzs.common.domain.system.base.ext.BdProductStorehouseExt; import com.hzs.common.domain.system.config.BdAwards; @@ -148,6 +150,8 @@ public class SaOrderServiceImpl extends ServiceImpl impl private IOrderBusinessService iOrderBusinessService; @Autowired private ISaOrderChargeLogService iSaOrderChargeLogService; + @Autowired + private IBdWaresMemberLimitService iBdWaresMemberLimitService; @Autowired private UserTokenService userTokenService; @@ -593,22 +597,22 @@ public class SaOrderServiceImpl extends ServiceImpl impl // 待支付直接保存订单、会员 // 保存订单 save(saOrderExt); - - // 将订单表主键封装为明细表主键 - List waresNumberParamList = new ArrayList<>(); - saOrderExt.getOrderItemsList().forEach(saOrderItems -> { - saOrderItems.setPkOrder(saOrderExt.getPkId()); - if (saOrderItems.getPkWares() != null && saOrderItems.getPkWares() != 0) { - // 换货或者二次发货等,商品为0,则不需要处理 - waresNumberParamList.add(WaresNumberParam.builder().pkWares(saOrderItems.getPkWares()).number(saOrderItems.getWaresQuantity()).build()); - } - }); - // 更新销量 - // 过滤相同商品主键数据 - List waresNumberList = waresNumberParamList.stream().filter(DeduplicationUtil.distinctByKey(WaresNumberParam::getPkWares)).collect(Collectors.toList()); - waresSalesAccrual(waresNumberList); // 保存订单明细 iSaOrderItemsService.saveBatch(saOrderExt.getOrderItemsList()); + +// // 更新销量 +// // 将订单表主键封装为明细表主键 +// List waresNumberParamList = new ArrayList<>(); +// saOrderExt.getOrderItemsList().forEach(saOrderItems -> { +// saOrderItems.setPkOrder(saOrderExt.getPkId()); +// if (saOrderItems.getPkWares() != null && saOrderItems.getPkWares() != 0) { +// // 换货或者二次发货等,商品为0,则不需要处理 +// waresNumberParamList.add(WaresNumberParam.builder().pkWares(saOrderItems.getPkWares()).number(saOrderItems.getWaresQuantity()).build()); +// } +// }); +// // 过滤相同商品主键数据 +// List waresNumberList = waresNumberParamList.stream().filter(DeduplicationUtil.distinctByKey(WaresNumberParam::getPkWares)).collect(Collectors.toList()); +// waresSalesAccrual(waresNumberList); } @Override @@ -883,6 +887,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl CuMember cuMember; if (EOrderType.UPGRADE_ORDER.getValue() == orderParam.getSpecialArea() || EOrderType.REPURCHASE_ORDER.getValue() == orderParam.getSpecialArea() + || EOrderType.MALL_ORDER.getValue() == orderParam.getSpecialArea() || EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == orderParam.getSpecialArea() || EOrderType.SPECIAL_REPURCHASE_ORDER.getValue() == orderParam.getSpecialArea()) { cuMember = getCuMemberByCode(orderParam.getUpgradeMemberCode()); @@ -900,6 +905,9 @@ public class SaOrderServiceImpl extends ServiceImpl impl if (setLastCuMemberGrade(cuMember, saOrderExt)) { return false; } + } else if (EOrderType.MALL_ORDER.getValue() == orderParam.getSpecialArea()) { + // 2025.08.01 秒杀专区,处理限购 + this.checkMallOrder(saOrderExt); } if (isToBePay) { @@ -923,6 +931,8 @@ public class SaOrderServiceImpl extends ServiceImpl impl } else { // 更新订单信息 updateSaOrder(saOrderExt); + // 2025.08.01 添加秒杀限购处理 + this.handleMallOrder(saOrderExt); } // 处理会员信息,更新会员等级,扣款 @@ -2268,4 +2278,110 @@ public class SaOrderServiceImpl extends ServiceImpl impl return baseMapper.singleItemStat(singleItemStatParam); } + /** + * 处理秒杀限购 + * + * @param saOrderExt + */ + private void handleMallOrder(SaOrderExt saOrderExt) { + if (EOrderType.MALL_ORDER.getValue() == saOrderExt.getOrderType()) { + // 秒杀订单,需要更新限购信息 + // key:商品ID,value:商品购买数量 + Map limitMap = new HashMap<>(); + for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { + if (EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) { + // 非赠品计算商品数量 + limitMap.put(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity()); + } + } + // 会员限购列表 + List limitList = new ArrayList<>(); + for (Integer key : limitMap.keySet()) { + for (ELimitType limitType : ELimitType.getLiveLimitType()) { + limitList.add(BdWaresMemberLimit.builder() + .pkMember(saOrderExt.getPkMember()) + .pkWares(key) + .limitType(limitType.getValue()) + .quantity(limitMap.get(key)) + .limitDate(ELimitType.TOTAL.getValue() == limitType.getValue() ? ELimitType.TOTAL.getFormat() : DateUtils.parseDateToFormat(limitType.getFormat(), saOrderExt.getPayTime())) + .build()); + } + } + if (CollectionUtil.isNotEmpty(limitList)) { + // 更新会员限购数据 + iBdWaresMemberLimitService.updateWaresMemberLimitBatch(limitList); + // 更新商品限购库存 + iBdWaresExtendService.batchUpdateInventoryUse(limitList); + } + } + } + + /** + * 校验秒杀限购 + * + * @param saOrderExt + */ + private void checkMallOrder(SaOrderExt saOrderExt) { + // key:商品ID,value:商品购买数量 + Map limitMap = new HashMap<>(); + // key:商品ID,value:商品限购属性 + Map waresLimitMap = new HashMap<>(); + for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { + if (EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) { + // 非赠品 + limitMap.put(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity()); + } + } + if (limitMap.size() > 0) { + // 商品限购数据 + List waresExtendList = iBdWaresExtendService.listByPkWaresList(limitMap.keySet()); + for (BdWaresExtend bdWaresExtend : waresExtendList) { + // 购买数量 + Integer waresQuantity = limitMap.get(bdWaresExtend.getPkWares()); + if (waresQuantity + bdWaresExtend.getInventoryUse() > bdWaresExtend.getInventory()) { + // 购买数量 + 已用库存 > 库存数量,不能购买 + throw new ServiceException("购买商品库存已不足,无法下单"); + } + if (waresQuantity > bdWaresExtend.getMemberLimit() + || waresQuantity > bdWaresExtend.getMemberMonthLimit()) { + // 购买数量 > 总限购 或 月限购,不能购买 + throw new ServiceException("购买商品已经超过限购数量,无法下单"); + } + waresLimitMap.put(bdWaresExtend.getPkWares(), bdWaresExtend); + } + // 会员购买数据 + List memberLimitList = iBdWaresMemberLimitService.listMemberWaresLimit(saOrderExt.getPkMember(), limitMap.keySet()); + if (CollectionUtil.isNotEmpty(memberLimitList)) { + // key: 商品+限购类型,value:数量 + Map checkLimitMap = new HashMap<>(); + for (BdWaresMemberLimit bdWaresMemberLimit : memberLimitList) { + checkLimitMap.put(bdWaresMemberLimit.getPkWares() + "-" + bdWaresMemberLimit.getLimitDate(), bdWaresMemberLimit.getQuantity()); + } + for (Integer tmpWares : waresLimitMap.keySet()) { + // 遍历商品进行判断是否超出限购 + // 总限购 + Integer totalLimit = checkLimitMap.get(tmpWares + "-" + ELimitType.TOTAL.getFormat()); + if (null != totalLimit) { + // 总限购 + 本次购买数量 + totalLimit = totalLimit + limitMap.get(tmpWares); + if (totalLimit > waresLimitMap.get(tmpWares).getMemberLimit()) { + // 购买数量 > 总限购,不能购买 + throw new ServiceException("购买商品已经超过限购数量,无法下单"); + } + } + // 月限购 + Integer monthLimit = checkLimitMap.get(tmpWares + "-" + DateUtils.parseDateToFormat(ELimitType.MONTH.getFormat(), saOrderExt.getPayTime())); + if (null != monthLimit) { + // 月限购 + 本次购买数量 + monthLimit = monthLimit + limitMap.get(tmpWares); + if (monthLimit > waresLimitMap.get(tmpWares).getMemberLimit()) { + // 购买数量 > 月限购,不能购买 + throw new ServiceException("购买商品已经超过限购数量,无法下单"); + } + } + } + } + } + } + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresExtendMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresExtendMapper.java index 0b700841..400d5bbf 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresExtendMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresExtendMapper.java @@ -2,6 +2,7 @@ package com.hzs.sale.wares.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.sale.wares.BdWaresExtend; +import com.hzs.common.domain.sale.wares.BdWaresMemberLimit; import com.hzs.sale.order.vo.WaresPreSaleVo; import org.apache.ibatis.annotations.Param; @@ -40,4 +41,12 @@ public interface BdWaresExtendMapper extends BaseMapper { */ List selectByWaresCodeList(@Param("waresCodeList") Collection waresCodeList, @Param("specialArea") Integer specialArea); + /** + * 批量更新已用库存 + * + * @param limitList + * @return + */ + int batchUpdateInventoryUse(@Param("limitList") List limitList); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresMemberLimitMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresMemberLimitMapper.java new file mode 100644 index 00000000..3fbf2a07 --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresMemberLimitMapper.java @@ -0,0 +1,22 @@ +package com.hzs.sale.wares.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hzs.common.domain.sale.wares.BdWaresMemberLimit; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 会员商品限购 Mapper 接口 + */ +public interface BdWaresMemberLimitMapper extends BaseMapper { + + /** + * 批量更新会员限购数据 + * + * @param limitList + * @return + */ + int updateWaresMemberLimitBatch(@Param("limitList") List limitList); + +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresExtendService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresExtendService.java index 774d0537..c9c6172c 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresExtendService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresExtendService.java @@ -2,6 +2,7 @@ package com.hzs.sale.wares.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.sale.wares.BdWaresExtend; +import com.hzs.common.domain.sale.wares.BdWaresMemberLimit; import com.hzs.sale.order.param.WaresNumberParam; import com.hzs.sale.order.vo.WaresPreSaleVo; @@ -39,4 +40,20 @@ public interface IBdWaresExtendService extends IService { */ List selectByWaresCodeList(Collection waresCodeList, Integer specialArea); + /** + * 根据商品ID列表查询扩展属性 + * + * @param pkWaresList + * @return + */ + List listByPkWaresList(Collection pkWaresList); + + /** + * 批量更新已用库存 + * + * @param limitList + * @return + */ + int batchUpdateInventoryUse(List limitList); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresMemberLimitService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresMemberLimitService.java new file mode 100644 index 00000000..41f278cd --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresMemberLimitService.java @@ -0,0 +1,31 @@ +package com.hzs.sale.wares.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.hzs.common.domain.sale.wares.BdWaresMemberLimit; + +import java.util.Collection; +import java.util.List; + +/** + * 会员商品限购 服务类 + */ +public interface IBdWaresMemberLimitService extends IService { + + /** + * 批量更新会员限购数据 + * + * @param waresMemberLimitList + * @return + */ + int updateWaresMemberLimitBatch(List waresMemberLimitList); + + /** + * 查询会员限购数量 + * + * @param pkMember + * @param pkWaresList + * @return + */ + List listMemberWaresLimit(Long pkMember, Collection pkWaresList); + +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresExtendServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresExtendServiceImpl.java index 1199594f..04bcae8e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresExtendServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresExtendServiceImpl.java @@ -1,7 +1,10 @@ package com.hzs.sale.wares.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.domain.sale.wares.BdWaresExtend; +import com.hzs.common.domain.sale.wares.BdWaresMemberLimit; import com.hzs.sale.order.param.WaresNumberParam; import com.hzs.sale.order.vo.WaresPreSaleVo; import com.hzs.sale.wares.mapper.BdWaresExtendMapper; @@ -9,6 +12,7 @@ import com.hzs.sale.wares.service.IBdWaresExtendService; import org.springframework.stereotype.Service; import java.util.Collection; +import java.util.Collections; import java.util.Date; import java.util.List; @@ -42,4 +46,20 @@ public class BdWaresExtendServiceImpl extends ServiceImpl listByPkWaresList(Collection pkWaresList) { + if (CollectionUtil.isNotEmpty(pkWaresList)) { + return this.list(Wrappers.lambdaQuery() + .in(BdWaresExtend::getPkWares, pkWaresList) + .orderByAsc(BdWaresExtend::getPkWares) + ); + } + return Collections.emptyList(); + } + + @Override + public int batchUpdateInventoryUse(List limitList) { + return baseMapper.batchUpdateInventoryUse(limitList); + } + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresMemberLimitServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresMemberLimitServiceImpl.java new file mode 100644 index 00000000..bfd90b53 --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresMemberLimitServiceImpl.java @@ -0,0 +1,33 @@ +package com.hzs.sale.wares.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.common.domain.sale.wares.BdWaresMemberLimit; +import com.hzs.sale.wares.mapper.BdWaresMemberLimitMapper; +import com.hzs.sale.wares.service.IBdWaresMemberLimitService; +import org.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.List; + +/** + * 会员商品限购 服务实现类 + */ +@Service +public class BdWaresMemberLimitServiceImpl extends ServiceImpl implements IBdWaresMemberLimitService { + + @Override + public int updateWaresMemberLimitBatch(List waresMemberLimitList) { + return baseMapper.updateWaresMemberLimitBatch(waresMemberLimitList); + } + + @Override + public List listMemberWaresLimit(Long pkMember, Collection pkWaresList) { + return this.list(Wrappers.lambdaQuery() + .eq(BdWaresMemberLimit::getPkMember, pkMember) + .in(BdWaresMemberLimit::getPkWares, pkWaresList) + .orderByAsc(BdWaresMemberLimit::getPkWares) + ); + } + +} diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresExtendMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresExtendMapper.xml index 0fdcb555..678e5984 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresExtendMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresExtendMapper.xml @@ -85,4 +85,19 @@ + + + merge into bd_wares_extend bwe + using ( + + select #{items.pkWares} pk_wares, + #{items.quantity} quantity + from dual + + ) tmp + on (bwe.pk_wares = tmp.pk_wares) + when matched then + update set bwe.inventory_use = bwe.inventory_use + tmp.quantity + + diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMemberLimitMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMemberLimitMapper.xml new file mode 100644 index 00000000..a25046d2 --- /dev/null +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresMemberLimitMapper.xml @@ -0,0 +1,40 @@ + + + + + + + merge into BD_WARES_MEMBER_LIMIT bwml + using ( + + select #{items.pkMember} pk_member, + #{items.pkWares} pk_wares, + #{items.limitType} limit_type, + #{items.quantity} quantity, + #{items.limitDate} limit_date + from dual + + ) tmp + on (bwml.PK_MEMBER = tmp.pk_member and bwml.PK_WARES = tmp.pk_wares and bwml.limit_date = tmp.limit_date and bwml.del_flag = 0) + when matched then + update set bwml.quantity = bwml.quantity + tmp.quantity + WHEN NOT MATCHED THEN + insert ( + pk_id, + pk_member, + pk_wares, + limit_type, + quantity, + pk_creator, + limit_date) + values ( + bd_wares_member_limit_seq.nextval, + tmp.pk_member, + tmp.pk_wares, + tmp.limit_type, + tmp.quantity, + tmp.pk_member, + tmp.limit_date) + + + diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/BarcodeConfig.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/BarcodeConfig.java index 81c7b7ef..c782b767 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/BarcodeConfig.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/BarcodeConfig.java @@ -5,8 +5,6 @@ import org.springframework.stereotype.Component; /** * 读取项目相关配置 - * - * @author hzs */ @Component @ConfigurationProperties(prefix = "txmconfig") diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/FastJson2JsonRedisSerializer.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/FastJson2JsonRedisSerializer.java index 6b08c558..0d2e955b 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/FastJson2JsonRedisSerializer.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/FastJson2JsonRedisSerializer.java @@ -11,8 +11,6 @@ import com.alibaba.fastjson2.JSONWriter; /** * Redis使用FastJson序列化 - * - * @author hzs */ public class FastJson2JsonRedisSerializer implements RedisSerializer { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/FilterConfig.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/FilterConfig.java index 822713bd..a2224b8d 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/FilterConfig.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/FilterConfig.java @@ -9,12 +9,7 @@ import org.springframework.context.annotation.Configuration; import javax.servlet.DispatcherType; /** - * description: 通过FilterRegistrationBean注册自定义过滤器TrimFilter - * @author: sui q - * @time: 2023/4/3 14:05 - * @classname: WebBindingInitializerConfiguration - * @package_name: com.hzs.gateway.config - * version 1.0.0 + * 通过FilterRegistrationBean注册自定义过滤器TrimFilter */ @Configuration public class FilterConfig { @@ -28,7 +23,7 @@ public class FilterConfig { registration.setFilter(new TrimFilter()); registration.addUrlPatterns("/**"); registration.setName("paramsFilter"); - registration.setOrder(Integer.MAX_VALUE-1); + registration.setOrder(Integer.MAX_VALUE - 1); return registration; } } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/MyBatisPlusConfig.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/MyBatisPlusConfig.java index f925cace..a9829a99 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/MyBatisPlusConfig.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/MyBatisPlusConfig.java @@ -7,8 +7,6 @@ import org.springframework.context.annotation.Configuration; /** * MybatisPlus配置 - * - * @author hzs */ @Configuration public class MyBatisPlusConfig { diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/OssConfig.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/OssConfig.java index c218ce90..1defb4ad 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/OssConfig.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/OssConfig.java @@ -5,8 +5,6 @@ import org.springframework.stereotype.Component; /** * 读取项目相关配置 - * - * @author: jiiangchao */ @Component @ConfigurationProperties(prefix = "oss") diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/RedisConfig.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/RedisConfig.java index bb02d37b..834cc423 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/RedisConfig.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/config/RedisConfig.java @@ -12,8 +12,6 @@ import org.springframework.data.redis.serializer.StringRedisSerializer; /** * redis配置 - * - * @author hzs */ @Configuration @EnableCaching diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EApprovalType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EApprovalType.java index e3e8f7ad..80a982dd 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EApprovalType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EApprovalType.java @@ -4,11 +4,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * @Description: 需要审批业务类型大类 - * @Author: sui q - * @Time: 2022/10/21 15:09 - * @Classname: EApprovalType - * @PackageName: com.hzs.common.core.enums + * 需要审批业务类型大类 */ @AllArgsConstructor @Getter diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EApproveOperation.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EApproveOperation.java index d3d350b8..d5f0f7fd 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EApproveOperation.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EApproveOperation.java @@ -5,11 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * Description: 审批操作 - * Author: jiang chao - * Time: 2022/9/21 15:13 - * Classname: ApprovalParam - * PackageName: com.hzs.system.sys.param + * 审批操作 */ @AllArgsConstructor @Getter diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EApproveStatus.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EApproveStatus.java index 2467714e..2a7daedc 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EApproveStatus.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EApproveStatus.java @@ -5,12 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * Description: 审批状态 - * - * @author: sui q - * Time: 2022/9/1 9:06 - * Classname: EApproveStatus - * PackageName: com.hzs.common.core.enums + * 审批状态 */ @AllArgsConstructor @Getter diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBindStatus.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBindStatus.java index 080f7762..7cca25ba 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBindStatus.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBindStatus.java @@ -5,8 +5,6 @@ import lombok.Getter; /** * 绑定标记枚举类 - * - * @author hzs */ @AllArgsConstructor @Getter diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EChangeType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EChangeType.java index 10f48d50..30304be0 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EChangeType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EChangeType.java @@ -24,14 +24,6 @@ public enum EChangeType { * 3=分红考核扣除 */ SHARE_ASSESSMENT_DEDUCT(3, "分红考核扣除", 0, EnumsPrefixConstants.CHANGE_TYPE + 3), - /** - * 4=优选考核新增 - */ - LENJOY_ASSESSMENT_ADD(4, "优选考核新增", 1, EnumsPrefixConstants.CHANGE_TYPE + 4), - /** - * 5=优选考核扣除 - */ - LENJOY_ASSESSMENT_DEDUCT(5, "优选考核扣除", 1, EnumsPrefixConstants.CHANGE_TYPE + 5), ; /** diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ELimitType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ELimitType.java new file mode 100644 index 00000000..ac9cf506 --- /dev/null +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ELimitType.java @@ -0,0 +1,61 @@ +package com.hzs.common.core.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; +import java.util.List; + +/** + * 限购类型 + */ +@AllArgsConstructor +@Getter +public enum ELimitType { + + /** + * 总限购 + */ + TOTAL(0, "总限购", "0"), + + /** + * 年限购 + */ + YEAR(1, "年限购", "yyyy"), + + /** + * 月限购 + */ + MONTH(2, "月限购", "yyyyMM"), + + /** + * 日限购 + */ + DAY(3, "日限购", "yyyyMMdd"), + + ; + + /** + * 实际值 + */ + private final int value; + /** + * 显示标签 + */ + private final String label; + /** + * 限购格式 + */ + private final String format; + + /** + * 获取秒杀限购类型 + * + * @return + */ + public static List getLiveLimitType() { + // 总、月 + return Arrays.asList(ELimitType.TOTAL, ELimitType.MONTH); + } + +} diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESettlePeriod.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESettlePeriod.java index 99049155..6982d1e0 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESettlePeriod.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESettlePeriod.java @@ -6,12 +6,6 @@ import lombok.Getter; /** * 结算周期 枚举 - * - * @author: sui q - * @time: 2022/8/25 14:24 - * @description: - * @classname: ESettlePeriod - * @package_name: com.hzs.common.core.enums */ @AllArgsConstructor @Getter diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESettlementCycle.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESettlementCycle.java index 471958f0..ab069c02 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESettlementCycle.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESettlementCycle.java @@ -5,11 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * @Description: 奖学结算周期枚举 - * @Author: zhangjing - * @Time: 2022/9/1 17:39 - * @Classname: ESettlementCycle - * @PackageName: com.hzs.common.core.enums + * 奖学结算周期枚举 */ @AllArgsConstructor @Getter @@ -31,7 +27,6 @@ public enum ESettlementCycle { MONTH(3, "月", 0, EnumsPrefixConstants.SETTLE_PERIOD + 3), - ; /** diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/bonus/BdBonusInstall.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/bonus/BdBonusInstall.java index 25acaf37..b03307a3 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/bonus/BdBonusInstall.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/bonus/BdBonusInstall.java @@ -8,12 +8,7 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** - *

* 奖金配置表 - *

- * - * @author hzs - * @since 2022-10-28 */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/bonus/BdBonusService.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/bonus/BdBonusService.java index ac68d0ac..a7e15944 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/bonus/BdBonusService.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/bonus/BdBonusService.java @@ -15,9 +15,6 @@ import lombok.experimental.Accessors; /** * 服务补贴 - * - * @author hzs - * @since 2022-11-01 */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/ground/margin/ThMargin.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/ground/margin/ThMargin.java deleted file mode 100644 index fa3bfe55..00000000 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/ground/margin/ThMargin.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.hzs.common.domain.ground.margin; - -import java.math.BigDecimal; - -import com.baomidou.mybatisplus.annotation.KeySequence; -import com.baomidou.mybatisplus.annotation.TableName; -import java.util.Date; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableField; -import com.hzs.common.core.web.domain.BaseEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -/** - *

- * 保证金缴纳 - *

- * - * @author hzs - * @since 2024-03-21 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@Accessors(chain = true) -@KeySequence("TH_MARGIN_SEQ") -@TableName("TH_MARGIN") -public class ThMargin extends BaseEntity { - - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId("PK_ID") - private Integer pkId; - - /** - * 缴纳供应商 - */ - @TableField("PK_SUPPLIER") - private Integer pkSupplier; - - /** - * 缴纳日期 - */ - @TableField("BILL_DATE") - private Date billDate; - - /** - * 销售类型 引用现在销售大类 - */ - @TableField("SALE_TYPE") - private Integer saleType; - - /** - * 销售范围 - */ - @TableField("SALE_SCOPE") - private Integer saleScope; - - /** - * 联系电话 - */ - @TableField("PHONE") - private String phone; - - /** - * 联系人 - */ - @TableField("LINK_MAN") - private String linkMan; - - /** - * 保证金金额 - */ - @TableField("MARGIN") - private BigDecimal margin; - - /** - * 审批业务类型 来源枚举 EApprovalBusiness - */ - @TableField("EDIT_TYPE") - private Integer editType; - - /** - * 审核状态 来源枚举 EApproveStatus - */ - @TableField("APPROVE_STATUS") - private Integer approveStatus; - - @TableField("TH_BUSINESS_CODE") - private String thBusinessCode; - - - - - -} diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/ground/supplier/ThSupplierApply.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/ground/supplier/ThSupplierApply.java index 261e7418..ee6546fd 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/ground/supplier/ThSupplierApply.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/ground/supplier/ThSupplierApply.java @@ -2,7 +2,9 @@ package com.hzs.common.domain.ground.supplier; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableName; + import java.util.Date; + import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.hzs.common.core.web.domain.BaseEntity; @@ -11,12 +13,7 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** - *

* 供应商申请 - *

- * - * @author hzs - * @since 2024-03-21 */ @Data @EqualsAndHashCode(callSuper = true) @@ -183,6 +180,4 @@ public class ThSupplierApply extends BaseEntity { private String thBusinessCode; - - } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWaresMemberLimit.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWaresMemberLimit.java new file mode 100644 index 00000000..70de66db --- /dev/null +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWaresMemberLimit.java @@ -0,0 +1,62 @@ +package com.hzs.common.domain.sale.wares; + +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; +import com.hzs.common.core.web.domain.BaseEntity; +import lombok.*; +import lombok.experimental.Accessors; + +/** + * 会员商品限购 + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@KeySequence("BD_WARES_MEMBER_LIMIT_SEQ") +@TableName("BD_WARES_MEMBER_LIMIT") +public class BdWaresMemberLimit extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId("PK_ID") + private Long pkId; + + /** + * 会员ID + */ + @TableField("PK_MEMBER") + private Long pkMember; + + /** + * 商品ID + */ + @TableField("PK_WARES") + private Integer pkWares; + + /** + * 限购类型(1=总,2=年,3=月,4=日) + */ + @TableField("LIMIT_TYPE") + private Integer limitType; + + /** + * 购买数量 + */ + @TableField("QUANTITY") + private Integer quantity; + + /** + * 限购时间(总限购为,年限购为4位年,月限购为6位月,日限购为8位日) + */ + @TableField("LIMIT_DATE") + private String limitDate; + +}