From 526ffe6c490376477655e0700397b88c1402ccb3 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Fri, 11 Jul 2025 16:36:13 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E6=B3=A8=E5=86=8C=E3=80=81=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E8=AE=A2=E5=8D=95=E6=B7=BB=E5=8A=A0=E5=8C=BA=E5=9F=9F?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CuMemberBusinessServiceImpl.java | 69 ++++++++++++++----- .../mapper/CuMemberRetailRegionMapper.java | 9 +++ .../service/ICuMemberRetailRegionService.java | 9 +++ .../impl/CuMemberRetailRegionServiceImpl.java | 5 ++ .../member/CuMemberRetailRegionMapper.xml | 31 +++++++++ .../api/ApiRetailOrderController.java | 51 ++++++++++++++ .../service/impl/RetailOrderServiceImpl.java | 18 ++++- .../retail/sale/param/RetailOrderParam.java | 13 ++++ .../manager/SaOrderBusinessController.java | 12 ---- .../hzs/sale/order/mapper/SaOrderMapper.java | 11 +++ .../order/service/IOrderBusinessService.java | 8 --- .../sale/order/service/ISaOrderService.java | 12 ++++ .../impl/OrderBusinessServiceImpl.java | 28 -------- .../service/impl/SaOrderServiceImpl.java | 28 +++----- .../wares/mapper/BdWaresAuthorityMapper.java | 9 --- .../service/IBdWaresAuthorityService.java | 9 --- .../sale/wares/service/IBdWaresService.java | 8 --- .../impl/BdWaresAuthorityServiceImpl.java | 9 --- .../service/impl/BdWaresServiceImpl.java | 5 -- .../mapper/sale/order/SaOrderMapper.xml | 22 ++++++ .../sale/wares/BdWaresAuthorityMapper.xml | 25 ------- .../member/ext/CuMemberRetailRegionExt.java | 16 +++-- .../common/domain/sale/ext/SaOrderExt.java | 13 ++++ .../domain/sale/wares/BdWaresAuthority.java | 8 --- 24 files changed, 266 insertions(+), 162 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index fbc7694c..61c53433 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -26,12 +26,12 @@ import com.hzs.common.domain.member.detail.CuMemberChangeLog; import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.system.config.BdAccount; import com.hzs.common.domain.system.config.BdAwards; import com.hzs.common.domain.system.config.BdGrade; -import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.util.TransactionUtils; import com.hzs.member.account.dto.BusinessCommissionDTO; import com.hzs.member.account.service.ICuMemberAccountService; @@ -45,6 +45,7 @@ import com.hzs.member.detail.service.ICuMemberAwardsService; import com.hzs.member.detail.service.ICuMemberChangeLogService; import com.hzs.member.detail.service.ICuMemberLevelService; import com.hzs.member.pub.tool.MemberToolsHandler; +import com.hzs.retail.member.service.ICuMemberRetailRegionService; import com.hzs.sale.order.ISaOrderServiceApi; import com.hzs.system.base.ICurrencyServiceApi; import com.hzs.system.base.dto.CurrencyDTO; @@ -92,8 +93,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { private RedisService redisService; @Autowired private ICuMemberService iCuMemberService; - - private ICuMemberRegisterService cuMemberRegisterService; + @Autowired + private ICuMemberRegisterService iCuMemberRegisterService; + @Autowired + private ICuMemberRetailRegionService iCuMemberRetailRegionService; private ICuMemberAccountService cuMemberAccountService; @@ -146,10 +149,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { this.cuMemberAccountService = cuMemberAccountService; } - @Autowired - public void setCuMemberRegisterService(ICuMemberRegisterService cuMemberRegisterService) { - this.cuMemberRegisterService = cuMemberRegisterService; - } @Autowired public void setCuMemberChangeLogService(ICuMemberChangeLogService cuMemberChangeLogService) { @@ -290,7 +289,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 用户注册信息 CuMemberRegister cuMemberRegister = BeanUtil.copyProperties(cuMember, CuMemberRegister.class); cuMemberRegister.setPkMember(cuMember.getPkId()); - cuMemberRegisterService.save(cuMemberRegister); + iCuMemberRegisterService.save(cuMemberRegister); } /** @@ -319,7 +318,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 用户注册信息 CuMemberRegister cuMemberRegister = BeanUtil.copyProperties(cuMember, CuMemberRegister.class); cuMemberRegister.setPkMember(cuMember.getPkId()); - cuMemberRegisterService.save(cuMemberRegister); + iCuMemberRegisterService.save(cuMemberRegister); } @Override @@ -611,7 +610,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { cuMemberRegister.setPkMember(member.getPkId()); cuMemberRegister.setPkCountry(saOrder.getPkCountry()); cuMemberRegister.setPkModified(saOrder.getPkCreator()); - cuMemberRegisterService.updateCuMemberRegister(cuMemberRegister); + iCuMemberRegisterService.updateCuMemberRegister(cuMemberRegister); } cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); @@ -643,7 +642,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { updateWrapperRegister.set(CuMemberRegister::getModifiedTime, DateUtils.currentDateTime()); updateWrapperRegister.set(CuMemberRegister::getPkModified, saOrder.getPkModified()); updateWrapperRegister.eq(CuMemberRegister::getPkMember, member.getPkId()); - cuMemberRegisterService.update(updateWrapperRegister); + iCuMemberRegisterService.update(updateWrapperRegister); } cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); @@ -874,7 +873,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { cuMemberRegister.setPkMember(pkMember); cuMemberRegister.setPkCountry(saOrder.getPkCountry()); cuMemberRegister.setPkModified(saOrder.getPkCreator()); - cuMemberRegisterService.updateCuMemberRegister(cuMemberRegister); + iCuMemberRegisterService.updateCuMemberRegister(cuMemberRegister); CuMemberAccount payMemberAccount = cuMemberAccountMap.get(saOrder.getPkCreator()); cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount); } @@ -1496,12 +1495,29 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 保存会员注册信息 CuMemberRegister cuMemberRegister = BeanUtil.copyProperties(cuMember, CuMemberRegister.class); cuMemberRegister.setPkMember(cuMember.getPkId()); - cuMemberRegisterService.save(cuMemberRegister); + iCuMemberRegisterService.save(cuMemberRegister); + // 会员等级 + GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); // 保存会员等级变动 saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, 0); + + if (EGrade.VIP.getValue() == gradeDTO.getGradeValue() + || EGrade.BRANCH_COMPANY.getValue() == gradeDTO.getGradeValue()) { + // 店主、分公司级别,判断处理区域 + if (null != saOrder.getRegionProvince() + && null != saOrder.getRegionCity()) { + iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder() + .pkMember(cuMember.getPkId()) + .province(saOrder.getRegionProvince()) + .city(saOrder.getRegionCity()) + .county(saOrder.getRegionCounty()) + .build()); + } + } + // 判断处理推荐人等级 - handleParentUpgrade(cuMember, saOrder); + handleParentUpgrade(cuMember, saOrder, gradeDTO); this.handleRetailMemberAccount(saOrder, cuMemberAccountExt); } @@ -1512,12 +1528,29 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { // 更新会员信息 updateCuMember(cuMember); + // 会员等级 + GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); if (!cuMember.getPkSettleGrade().equals(saOrder.getPkGradeOld())) { // 保存会员等级变动(如果旧等级和新等级相同,则不记录) saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld()); + + if (EGrade.VIP.getValue() == gradeDTO.getGradeValue() + || EGrade.BRANCH_COMPANY.getValue() == gradeDTO.getGradeValue()) { + // 店主、分公司级别,判断处理区域 + if (null != saOrder.getRegionProvince() + && null != saOrder.getRegionCity()) { + iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder() + .pkMember(cuMember.getPkId()) + .province(saOrder.getRegionProvince()) + .city(saOrder.getRegionCity()) + .county(saOrder.getRegionCounty()) + .build()); + } + } } + // 判断处理推荐人等级 - handleParentUpgrade(cuMember, saOrder); + handleParentUpgrade(cuMember, saOrder, gradeDTO); this.handleRetailMemberAccount(saOrder, cuMemberAccountExt); } @@ -1580,8 +1613,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { * * @param cuMember */ - private void handleParentUpgrade(CuMember cuMember, SaOrderExt saOrder) { - GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); + private void handleParentUpgrade(CuMember cuMember, SaOrderExt saOrder, GradeDTO gradeDTO) { + if (null == gradeDTO) { + gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); + } if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()) { // 会员等级为 博羚店主,推荐人如果也是博羚店主,需要升级为高级店主 CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent()); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java index 555bae8d..e3de6003 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRegionMapper.java @@ -58,4 +58,13 @@ public interface CuMemberRetailRegionMapper extends BaseMapper waresCodeList); List getRegionTreeList(@Param("queryType") String queryType, @Param("userId") Long userId); + + /** + * 插入或更新区域选择 + * + * @param retailRegion + * @return + */ + int mergeMemberRetailRegion(@Param("retailRegion") CuMemberRetailRegion retailRegion); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java index b01940d0..04982a8d 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/ICuMemberRetailRegionService.java @@ -60,4 +60,13 @@ public interface ICuMemberRetailRegionService extends IService> getRegionTreeList(String queryType, Long pkMember); + + /** + * 插入或更新区域选择 + * + * @param retailRegion + * @return + */ + int mergeMemberRetailRegion(CuMemberRetailRegion retailRegion); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java index 9d9e157d..0740d616 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailRegionServiceImpl.java @@ -115,4 +115,9 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl + + + merge into CU_MEMBER_RETAIL_REGION cmrr + using ( + select + #{retailRegion.pkMember} pk_member, + #{retailRegion.province} province, + #{retailRegion.city} city, + #{retailRegion.county} county + from dual + ) tmp + on (tmp.pk_member = cmrr.pk_member and cmrr.del_flag = 0) + WHEN MATCHED THEN + update + set cmrr.province = tmp.province, + cmrr.city = tmp.city, + cmrr.county = tmp.county, + cmrr.pk_modified = tmp.pk_member, + cmrr.modified_time = sysdate + WHEN NOT MATCHED THEN + insert + (pk_id, pk_member, province, city, county, pk_creator) + values + (cu_member_retail_region_seq.Nextval, + tmp.pk_member, + tmp.province, + tmp.city, + tmp.county, + tmp.pk_member) + + diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java index c1b97395..94a8bad6 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java @@ -15,6 +15,7 @@ import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.ext.CuMemberAccountExt; +import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.system.config.BdGrade; import com.hzs.common.security.utils.SecurityUtils; @@ -220,6 +221,12 @@ public class ApiRetailOrderController { return AjaxResult.error(checkStr); } + // 校验会员选择区域是否已经被占用 + checkStr = this.checkRegionNum(registerParam); + if (null != checkStr) { + return AjaxResult.error(checkStr); + } + // 手机号可以重复,不需要进行是否重复校验 -- 已经跳过,此处可以不需要当前判断 // // 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一 // String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData(); @@ -264,6 +271,12 @@ public class ApiRetailOrderController { return AjaxResult.error(checkStr); } + // 校验会员选择区域是否已经被占用 + checkStr = this.checkRegionNum(registerParam); + if (null != checkStr) { + return AjaxResult.error(checkStr); + } + // 手机号可以重复,不需要进行是否重复校验 -- 已经跳过,此处可以不需要当前判断 // // 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一 // String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData(); @@ -291,6 +304,9 @@ public class ApiRetailOrderController { if (memberAccountExt.getIsPayment()) { // 进行支付 saOrderExt.setSpecialArea(registerParam.getSpecialArea()); + saOrderExt.setRegionProvince(registerParam.getRegionProvince()); + saOrderExt.setRegionCity(registerParam.getRegionCity()); + saOrderExt.setRegionCounty(registerParam.getRegionCounty()); String payStr = iRetailOrderService.payRegOrder(saOrderExt, newMember, memberAccountExt); if (null != payStr) { return AjaxResult.error(payStr); @@ -345,6 +361,12 @@ public class ApiRetailOrderController { } upgradeParam.setUpgradeMember(updateGradeMember); + // 校验会员选择区域是否已经被占用 + otherCheckStr = this.checkRegionNum(upgradeParam); + if (null != otherCheckStr) { + return AjaxResult.error(otherCheckStr); + } + // 购物车中获取商品信息 upgradeParam.setOrderItemsParams(convertShoppingCarToSku(upgradeParam.getPkCreator(), upgradeParam.getShopList())); @@ -381,6 +403,12 @@ public class ApiRetailOrderController { return AjaxResult.error(otherCheckStr); } + // 校验会员选择区域是否已经被占用 + otherCheckStr = this.checkRegionNum(upgradeParam); + if (null != otherCheckStr) { + return AjaxResult.error(otherCheckStr); + } + // 支付入参 upgradeParam.setIsPay(EYesNo.YES.getIntValue()); @@ -399,6 +427,9 @@ public class ApiRetailOrderController { if (memberAccountExt.getIsPayment()) { // 进行支付 saOrderExt.setSpecialArea(upgradeParam.getSpecialArea()); + saOrderExt.setRegionProvince(upgradeParam.getRegionProvince()); + saOrderExt.setRegionCity(upgradeParam.getRegionCity()); + saOrderExt.setRegionCounty(upgradeParam.getRegionCounty()); String payStr = iRetailOrderService.payUpgOrder(saOrderExt, updateGradeMember, memberAccountExt); if (null != payStr) { return AjaxResult.error(payStr); @@ -729,4 +760,24 @@ public class ApiRetailOrderController { return null; } + /** + * 校验会员选择区域是否已经被占用 + * + * @param orderParam + * @return + */ + private String checkRegionNum(RetailOrderParam orderParam) { + if (null != orderParam.getRegionProvince() + && null != orderParam.getRegionCity()) { + // 区域省、市不为空,则进行判断 + CuMemberRetailRegionExt cuMemberRetailRegion = iSaOrderService.getRegionBindNum(orderParam.getRegionProvince(), orderParam.getRegionCity(), orderParam.getRegionCounty()); + if (null != cuMemberRetailRegion) { + if (cuMemberRetailRegion.getRegionNum() >= cuMemberRetailRegion.getBindNum()) { + return "当前区域已经达到绑定上限,请重新选择"; + } + } + } + return null; + } + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java index ffdebdde..79311850 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java @@ -589,6 +589,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService { newMember.setPkAwards(registerParam.getPkAwards()); saOrderExt.setPkMember(newMember.getPkId()); + saOrderExt.setRegionProvince(registerParam.getRegionProvince()); + saOrderExt.setRegionCity(registerParam.getRegionCity()); + saOrderExt.setRegionCounty(registerParam.getRegionCounty()); resultStr = this.payRegOrder(saOrderExt, newMember, null); } else { @@ -599,8 +602,19 @@ public class RetailOrderServiceImpl implements IRetailOrderService { return "会员信息不存在"; } if (EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { + // 获取缓存参数 + RetailOrderUpgradeParam upgradeParam = redisService.getCacheObject(CacheConstants.RETAIL_TEMP_UPG_PARAM + pkMember + orderCode); + if (null == upgradeParam) { + return "在线支付升级会员不存在"; + } + // 升级订单 cuMember.setPkSettleGrade(saOrderExt.getPkGrade()); + + saOrderExt.setRegionProvince(upgradeParam.getRegionProvince()); + saOrderExt.setRegionCity(upgradeParam.getRegionCity()); + saOrderExt.setRegionCounty(upgradeParam.getRegionCounty()); + resultStr = this.payUpgOrder(saOrderExt, cuMember, null); } else { // 其它订单 @@ -640,7 +654,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { Map waresLimitMap = new HashMap<>(); // 盒数商品 - List boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType()); + List boxWaresList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType()); for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) { saOrderItems.setPkOrder(saOrderExt.getPkId()); @@ -649,7 +663,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { saOrderItems.setCreationTime(saOrderExt.getCreationTime()); // 指定商品拆分 并且 非赠品 - if (boxProductList.contains(saOrderItems.getWareCode()) + if (boxWaresList.contains(saOrderItems.getWareCode()) && EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) { // key: 商品ID-商品价格(产品价格*产品数量) String key = saOrderItems.getPkWares() + "-" + (saOrderItems.getPrice().multiply(new BigDecimal(saOrderItems.getQuantity()))); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java index a5587c9a..c6d21f80 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java @@ -166,4 +166,17 @@ public class RetailOrderParam implements Serializable { */ private Integer isPay; + /** + * 选择区域省 + */ + private Integer regionProvince; + /** + * 选择区域市 + */ + private Integer regionCity; + /** + * 选择区域县 + */ + private Integer regionCounty; + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java index 401f32db..3c563929 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java @@ -671,12 +671,6 @@ public class SaOrderBusinessController extends BaseController { return AjaxResult.error(checkStr); } - // 校验盒数商品与非盒数商品不能互换 - checkStr = iOrderBusinessService.checkOrderRetailProduct(param); - if (null != checkStr) { - return AjaxResult.error(checkStr); - } - // 确认调换货物并发起审批 String str = iOrderBusinessService.changeProductApprovalSubmit(param, userTokenService.getLoginUser()); if (null == str) { @@ -722,12 +716,6 @@ public class SaOrderBusinessController extends BaseController { return AjaxResult.error(checkStr); } - // 校验盒数商品与非盒数商品不能互换 - checkStr = iOrderBusinessService.checkOrderRetailProduct(param); - if (null != checkStr) { - return AjaxResult.error(checkStr); - } - // 调换货物不走签呈 String str = iOrderBusinessService.changeProductApprovalFreeSign(param, userTokenService.getLoginUser()); if (null == str) { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java index 271b084e..9450ee98 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderMapper.java @@ -1,6 +1,7 @@ package com.hzs.sale.order.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.sale.ext.SaDeliverItemsExt; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.ext.SaOrderItemsExt; @@ -277,4 +278,14 @@ public interface SaOrderMapper extends BaseMapper { */ Date getFirstPayTime(@Param("pkMember") Long pkMember); + /** + * 查询省、市、区绑定次数 + * + * @param province + * @param city + * @param county + * @return + */ + CuMemberRetailRegionExt getRegionBindNum(@Param("province") Integer province, @Param("city") Integer city, @Param("county") Integer county); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/IOrderBusinessService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/IOrderBusinessService.java index 256ec76a..32e3562f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/IOrderBusinessService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/IOrderBusinessService.java @@ -42,14 +42,6 @@ public interface IOrderBusinessService { */ String checkOrderDeliver(List orderCodeList, Integer pkCountry); - /** - * 校验新零售盒数产品是否可以换货 - * - * @param param 请求入参 - * @return - */ - String checkOrderRetailProduct(OrderProductParam param); - /** * 本次业务修改费用 * diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java index 78ef2ccf..c1b7e54d 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java @@ -5,6 +5,7 @@ import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.sale.ext.*; import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.sale.order.SaOrderItems; @@ -628,4 +629,15 @@ public interface ISaOrderService extends IService { */ int handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, List gradeList, List boxProductList, Integer systemType); + /** + * 查询省、市、区绑定次数 + * + * @param province + * @param city + * @param county + * @return + */ + CuMemberRetailRegionExt getRegionBindNum(Integer province, Integer city, Integer county); + + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java index b0a8f124..041cda78 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java @@ -151,34 +151,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { return null; } - @Override - public String checkOrderRetailProduct(OrderProductParam param) { - // 盒数商品对应的产品列表 - List pkProductList = iBdWaresService.listBoxProduct(BoxProductUtil.getBoxProductListBySystemType(null)); - // 换货产品列表 - List paramProductList = param.getItemList().stream().map(OrderProductDetailParam::getPkProduct).collect(Collectors.toList()); - - SaOrder saOrder = iSaOrderService.getOne(Wrappers.lambdaQuery() - .eq(SaOrder::getOrderCode, param.getOrderCode()) - ); - if (saOrder.getBoxNum() > 0) { - // 盒数商品订单,换货的产品是否都是盒数商品下的,如果是则可以进行更换,如果不是则不能更换 - for (Integer pkProduct : paramProductList) { - if (!pkProductList.contains(pkProduct)) { - return "盒数商品与普通商品不能互相换货"; - } - } - } else { - // 非盒数商品订单 - for (Integer pkProduct : paramProductList) { - if (pkProductList.contains(pkProduct)) { - return "普通商品与盒数商品不能互相换货"; - } - } - } - return null; - } - @Override public Map queryChargeLog(List saOrderList, EApprovalBusiness eApprovalBusiness, Integer pkCountry) { // key 订单编号, value 扣款实体 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 38622be0..4200bd96 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 @@ -26,6 +26,7 @@ import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.detail.CuMemberServiceLog; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.member.ext.CuMemberExt; +import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.sale.ext.*; import com.hzs.common.domain.sale.order.*; import com.hzs.common.domain.sale.wares.BdWares; @@ -2155,13 +2156,13 @@ public class SaOrderServiceImpl extends ServiceImpl impl } // 盒数产品 - List boxProductList = BoxProductUtil.getBoxProductListBySystemType(systemType); + List boxWaresList = BoxProductUtil.getBoxProductListBySystemType(systemType); // 当前产品盒数 int boxNum = 0; // 判断订单明细中指定产品数量,校验等级 for (OrderItemsParam orderItemsParam : orderItemsParams) { - if (boxProductList.contains(orderItemsParam.getWaresCode())) { + if (boxWaresList.contains(orderItemsParam.getWaresCode())) { // 存在指定商品,需要累计盒数 boxNum += orderItemsParam.getQuantity(); } @@ -2187,7 +2188,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl } // 获取升级盒数基数 - int baseBoxNum = this.handleBaseBoxNum(updateGradeMember, memberGrade, gradeList, boxProductList, systemType); + int baseBoxNum = this.handleBaseBoxNum(updateGradeMember, memberGrade, gradeList, boxWaresList, systemType); // 计算等级 bdGrade = this.getGradeByBox(boxNum + baseBoxNum, gradeList, memberGrade, true); @@ -2246,13 +2247,13 @@ public class SaOrderServiceImpl extends ServiceImpl impl * @param cuMember 会员信息 * @param memberGrade 会员等级信息 * @param gradeList 等级列表 - * @param boxProductList 盒数商品列表 + * @param boxWaresList 盒数商品列表 * @param systemType 所属系统 * @return */ @Override public int handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, - List gradeList, List boxProductList, + List gradeList, List boxWaresList, Integer systemType) { // 升级盒数基数 int baseBoxNum = 0; @@ -2266,25 +2267,18 @@ public class SaOrderServiceImpl extends ServiceImpl impl BdGrade lastUpdateGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(lastMemberLevel.getNewLevel())).findFirst().get(); // 盒数基数 = 手动升级盒数 + 手动升级之后的升级订单盒数 baseBoxNum = lastUpdateGrade.getBoxNumber() - + saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType); + + saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType); } else { // 没有手动升级记录 - baseBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType); + baseBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType); } } return baseBoxNum; } - /** - * 获取等级(没有则返回V0) - * - * @param eGrade 等级枚举 - * @param gradeList 等级列表 - * @return - */ - private BdGrade getGrade(EGrade eGrade, List gradeList) { - Optional gradeOptional = gradeList.stream().filter(tmp -> tmp.getGradeValue().equals(eGrade.getValue())).findFirst(); - return gradeOptional.orElseGet(() -> this.getGrade(EGrade.START_UP, gradeList)); + @Override + public CuMemberRetailRegionExt getRegionBindNum(Integer province, Integer city, Integer county) { + return baseMapper.getRegionBindNum(province, city, county); } } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresAuthorityMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresAuthorityMapper.java index 99dab3ee..8049c86a 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresAuthorityMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/mapper/BdWaresAuthorityMapper.java @@ -1,17 +1,8 @@ package com.hzs.sale.wares.mapper; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.sale.wares.BdWaresAuthority; -/** - *

- * Mapper 接口 - *

- * - * @author hzs - * @since 2022-09-09 - */ public interface BdWaresAuthorityMapper extends BaseMapper { } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresAuthorityService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresAuthorityService.java index 6505f175..2010f281 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresAuthorityService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/IBdWaresAuthorityService.java @@ -1,17 +1,8 @@ package com.hzs.sale.wares.service; - import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.sale.wares.BdWaresAuthority; -/** - *

- * 服务类 - *

- * - * @author hzs - * @since 2022-09-09 - */ public interface IBdWaresAuthorityService extends IService { } 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 aebe0a18..fbd9f3da 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 @@ -190,14 +190,6 @@ public interface IBdWaresService extends IService { */ List listRetailWaresByCondition(RetailWaresParam param); - /** - * 查询盒数商品对应产品列表 - * - * @param boxWaresList 盒数商品列表 - * @return - */ - List listBoxProduct(List boxWaresList); - /** * 查询盒数商品列表 * diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresAuthorityServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresAuthorityServiceImpl.java index b5d3e177..87252b22 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresAuthorityServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresAuthorityServiceImpl.java @@ -1,20 +1,11 @@ package com.hzs.sale.wares.service.impl; - import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.domain.sale.wares.BdWaresAuthority; import com.hzs.sale.wares.mapper.BdWaresAuthorityMapper; import com.hzs.sale.wares.service.IBdWaresAuthorityService; import org.springframework.stereotype.Service; -/** - *

- * 服务实现类 - *

- * - * @author hzs - * @since 2022-09-09 - */ @Service public class BdWaresAuthorityServiceImpl extends ServiceImpl implements IBdWaresAuthorityService { 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 060a3019..3189c5fa 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 @@ -1173,11 +1173,6 @@ public class BdWaresServiceImpl extends ServiceImpl impl return baseMapper.listRetailWaresByCondition(param); } - @Override - public List listBoxProduct(List boxWaresList) { - return baseMapper.listBoxProduct(boxWaresList, null, null).stream().map(BdWaresDetail::getPkProduct).collect(Collectors.toList()); - } - @Override public List listBoxProductAndWares(List boxWaresList, Integer pkProduct, Integer specialArea) { return baseMapper.listBoxProduct(boxWaresList, pkProduct, specialArea); diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml index 83f66172..f5ebffce 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderMapper.xml @@ -1392,4 +1392,26 @@ and so.box_num != 0 + + + diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresAuthorityMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresAuthorityMapper.xml index a2739eb1..522ee914 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresAuthorityMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/wares/BdWaresAuthorityMapper.xml @@ -2,30 +2,5 @@ - - - - - - - - - - - - - - - - - - PK_CREATOR, - CREATION_TIME, - PK_MODIFIED, - MODIFIED_TIME, - DEL_FLAG, - PK_COUNTRY, - PK_ID, PK_WARES, AUTHORITY_TYPE, PK_MEMBER,MEMBER_CODE - diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/ext/CuMemberRetailRegionExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/ext/CuMemberRetailRegionExt.java index d6471e44..a895aa2c 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/ext/CuMemberRetailRegionExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/retail/member/ext/CuMemberRetailRegionExt.java @@ -8,11 +8,7 @@ import lombok.EqualsAndHashCode; import java.util.Date; /** - * @Description: 新零售会员区域配置扩展类 - * @Author: jiang chao - * @Time: 2024/12/10 14:58 - * @Classname: CuMemberRetailRegionExt - * @PackageName: com.hzs.common.domain.retail.member.ext + * 新零售会员区域配置扩展类 */ @EqualsAndHashCode(callSuper = true) @Data @@ -102,4 +98,14 @@ public class CuMemberRetailRegionExt extends CuMemberRetailRegion { * 2025年6月11日 是否激活 (0-是, 1-否) */ private Integer isActivate; + + /** + * 已绑定地区数量 + */ + private Integer regionNum; + /** + * 地区可绑定数量 + */ + private Integer bindNum; + } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderExt.java index b3d1d024..d15fa03b 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/ext/SaOrderExt.java @@ -176,4 +176,17 @@ public class SaOrderExt extends SaOrder { private List deleteLevelList; + /** + * 选择区域省 + */ + private Integer regionProvince; + /** + * 选择区域市 + */ + private Integer regionCity; + /** + * 选择区域县 + */ + private Integer regionCounty; + } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWaresAuthority.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWaresAuthority.java index 597c98f9..5e468997 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWaresAuthority.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/wares/BdWaresAuthority.java @@ -9,14 +9,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; -/** - *

- * - *

- * - * @author hzs - * @since 2022-09-09 - */ @Data @EqualsAndHashCode(callSuper = true) @Accessors(chain = true)