From 277c51dadee29d9fca4fdf673aebcddad1bcb8cb Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Sat, 21 Jun 2025 09:59:43 +0800 Subject: [PATCH] =?UTF-8?q?##=20Fix=20-=20=E5=A2=9E=E5=8A=A0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=9C=81=E7=BA=A7=E6=8E=A5=E5=8F=A3&=E5=8A=9E?= =?UTF-8?q?=E7=90=86=E4=B8=9A=E5=8A=A1=E6=97=B6=E5=A2=9E=E5=8A=A0=E9=AA=8C?= =?UTF-8?q?=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hzs/system/base/IAreaServiceApi.java | 3 + .../member/base/mapper/CuMemberMapper.java | 4 + .../member/base/service/ICuMemberService.java | 3 + .../service/impl/CuMemberServiceImpl.java | 10 +++ .../service/ICuHandleBusinessService.java | 4 +- .../impl/CuHandleBusinessServiceImpl.java | 84 +++++-------------- .../handlebusiness/vo/BusinessMemberVO.java | 5 +- .../service/impl/MemberRetailServiceImpl.java | 1 + .../retail/member/vo/RetailMemberInfoVO.java | 5 ++ .../mapper/member/base/CuMemberMapper.xml | 8 ++ .../controller/api/ApiAreaController.java | 5 ++ .../base/provider/AreaServiceProvider.java | 5 ++ .../system/base/service/IBdAreaService.java | 1 + .../base/service/impl/BdAreaServiceImpl.java | 11 +++ .../provider/CommonServiceProvider.java | 68 +++++++-------- .../common/domain/member/base/CuMember.java | 5 ++ .../common/domain/member/ext/CuMemberExt.java | 4 + 17 files changed, 126 insertions(+), 100 deletions(-) diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/base/IAreaServiceApi.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/base/IAreaServiceApi.java index c61120c3..593286a8 100644 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/base/IAreaServiceApi.java +++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/base/IAreaServiceApi.java @@ -51,4 +51,7 @@ public interface IAreaServiceApi { **/ R> queryBdProductStorehouseByCondition(List productId, Integer province); + + R>getAreaByParentId(Integer pkCountry); + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java index 553dd7bf..001652bd 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java @@ -650,4 +650,8 @@ public interface CuMemberMapper extends BaseMapper { */ BdTradeWhiteConfig selectMemberByUnderBlood(@Param("pkMember") Long pkMember, @Param("memberType") Integer memberType); + + int validateCompanyCount(@Param("gradeValue") Integer gradeValue); + + int validateBranchOfficeCount(@Param("areaId") Integer areaId); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java index abf348bf..c8603a2a 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java @@ -924,4 +924,7 @@ public interface ICuMemberService extends IService { */ BdTradeWhiteConfig selectMemberByUnderBlood(Long pkMember, Integer memberType); + int validateCompanyCount(); + + int validateBranchOfficeCount(Integer areaId); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index f9b04571..60983705 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -3249,4 +3249,14 @@ public class CuMemberServiceImpl extends ServiceImpl i return baseMapper.selectMemberByUnderBlood(pkMember, memberType); } + @Override + public int validateCompanyCount() { + return baseMapper.validateCompanyCount(EGrade.COMPANY.getValue()); + } + + @Override + public int validateBranchOfficeCount(Integer areaId) { + return baseMapper.validateBranchOfficeCount(areaId); + } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/ICuHandleBusinessService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/ICuHandleBusinessService.java index 1000b1d6..b8c4e782 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/ICuHandleBusinessService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/ICuHandleBusinessService.java @@ -27,14 +27,14 @@ public interface ICuHandleBusinessService extends IService { * @param loginUser 用户信息 * @return */ - Boolean businessHandling(HandleBusinessVO handleBusinessVO, LoginUser loginUser); + Boolean businessHandling(HandleBusinessVO handleBusinessVO, LoginUser loginUser) throws Exception; /** * 在线签呈审核 (审批状态) 同意/驳回 * * @param approvalBusinessResultDTO */ - R signForApprovalExamine(ApprovalBusinessResultDTO approvalBusinessResultDTO); + R signForApprovalExamine(ApprovalBusinessResultDTO approvalBusinessResultDTO) throws Exception; /** * 在线签呈 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java index 313a790d..611d9b5a 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java @@ -109,7 +109,7 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl> gradeList = iGradeServiceApi.queryGradeList(pkCountry); + Map gradesMap = gradeList.getData().stream().collect(Collectors.toMap(GradeDTO::getGradeValue, o -> o)); List handleBusinessList = handleBusinessVO.getHandleBusinessList(); //获取期数 String localDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); @@ -751,6 +754,20 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl cuMemberLevelList = new ArrayList<>(); if (CollUtil.isNotEmpty(businessMemberListUpdate)) { for (BusinessMemberVO businessMemberVO : businessMemberListUpdate) { + Integer updateGradeId = Integer.parseInt(businessMemberVO.getNewValue()); + if(EGrade.COMPANY.getValue() == gradesMap.get(updateGradeId).getGradeValue()){ + // 2025年6月20日 新等级 公司验全唯一 + int count = cuMemberService.validateCompanyCount(); + if(count > 0){ + throw new Exception("已存在结算等级为公司的用户,不允许重复添加!"); + } + }else if(EGrade.S_VIP.getValue() == gradesMap.get(updateGradeId).getGradeValue()){ + // 2025年6月20日 新等级 分公司验省唯一 + int count = cuMemberService.validateBranchOfficeCount(businessMemberVO.getAreaId()); + if(count > 0){ + throw new Exception("已存在结算绑定省的分公司用户,不允许重复添加!"); + } + } // 记录升级历史 cuMemberLevel = CuMemberLevel.builder() .pkMember(businessMemberVO.getPkMember()) @@ -828,65 +845,6 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl businessTypeList = handleBusinessList.stream() - .map(BusinessTypeValueVO::getBusinessType) - .collect(Collectors.toList()); - if(!businessTypeList.contains(EApprovalBusiness.CHANGE_AWARDS.getValue())){ - List businessMemberList = handleBusinessVO.getBusinessMemberList(); - List businessMemberListUpdate = getBusinessMemberByBusinessType(businessMemberList, EApprovalBusiness.CHANGE_SETTLEMENT_GRADE.getValue()); - String localDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); - Integer period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate).getPkId(); - Integer pkCountry = loginUser.getDataCountry(); - R> awardsList = iAwardsServiceApi.queryAwards(pkCountry); - Map awardsMap = awardsList.getData().stream().collect(Collectors.toMap(BdAwards::getAwardsValue, o -> o)); - int newLevel = awardsMap.get(EAwards.HEADER.getValue()).getPkId(); - List cuMemberAwardsList = new ArrayList<>(); - HandleBusinessVO businessVO = new HandleBusinessVO(); - businessVO.setHandleBusinessList(Arrays.asList( - BusinessTypeValueVO.builder() - .businessValueList(Arrays.asList(newLevel)) - .businessType(EApprovalBusiness.CHANGE_AWARDS.getValue()).build()) - ); - businessVO.setUpdatePkMember(loginUser.getUserId()); - List businessMemberVOList = new ArrayList<>(); - businessVO.setBusinessMemberList(businessMemberVOList); - for (BusinessMemberVO memberVO : businessMemberListUpdate) { - CuMemberExt memberExt = cuMemberService.getMemberById(memberVO.getPkMember()); - // 没有奖衔 - Integer memberAwardsValue = awardsList.getData().stream().filter(o -> o.getPkId().equals(memberExt.getPkAwards())).findFirst().get().getAwardsValue(); - if(ObjectUtil.isNotEmpty(memberExt) && EAwards.HEADER.getValue() > memberAwardsValue){ - businessMemberVOList.add(BusinessMemberVO.builder().pkMember(memberExt.getPkId()).build()); - int oldLevel = awardsMap.get(memberAwardsValue).getPkId(); - Long pkMember = memberExt.getPkId(); - // 记录升级历史 - CuMemberAwards cuMemberAwards = CuMemberAwards.builder() - .pkMember(pkMember) - .period(period) - .upType(EUpgradeType.MANUAL_UPGRADE.getValue()) - .oldLevel(oldLevel) - .newLevel(newLevel) - .purchaseStatus(getPurchaseStatus(pkMember, oldLevel)) - .endValidityDate(memberVO.getEndValidityDate()) - .build(); - cuMemberAwards.setPkCountry(handleBusinessVO.getPkCountry()); - cuMemberAwards.setPkCreator(loginUser.getUserId()); - cuMemberAwardsList.add(cuMemberAwards); - } - } - // 改奖衔 - if(CollUtil.isNotEmpty(businessVO.getHandleBusinessList()) && CollUtil.isNotEmpty(businessVO.getBusinessMemberList())){ - cuMemberService.batchUpdateMemberByBusinessType(businessVO); - } - // 插入升级记录 - if(CollUtil.isNotEmpty(cuMemberAwardsList)){ - cuMemberAwardsService.saveBatch(cuMemberAwardsList); - } - } - } - // 2025年6月19日 手改注册等级为合伙人时,如奖衔为空,则改为黄宝 end } return Boolean.TRUE; } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/vo/BusinessMemberVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/vo/BusinessMemberVO.java index bd979cf5..2b26735d 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/vo/BusinessMemberVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/vo/BusinessMemberVO.java @@ -529,5 +529,8 @@ public class BusinessMemberVO implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endValidityDate; - + /** + * 分公司-绑定省id + */ + private Integer areaId; } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/MemberRetailServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/MemberRetailServiceImpl.java index 445bc84b..1a8d9672 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/MemberRetailServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/MemberRetailServiceImpl.java @@ -88,6 +88,7 @@ public class MemberRetailServiceImpl implements IMemberRetailService { .pkCountry(cuMember.getPkCountry()) .pkSettleCountry(cuMember.getPkSettleCountry()) .isActivate(cuMember.getIsActivate()) + .areaName(cuMember.getAreaName()) .build(); } return null; diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/RetailMemberInfoVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/RetailMemberInfoVO.java index bc710446..b5bf3f14 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/RetailMemberInfoVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/RetailMemberInfoVO.java @@ -141,4 +141,9 @@ public class RetailMemberInfoVO implements Serializable { */ private Integer isActivate; + /** + * 分公司绑定省名称 + */ + private String areaName; + } diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml index ae36b406..0affc145 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -2057,6 +2057,7 @@ + + diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/controller/api/ApiAreaController.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/controller/api/ApiAreaController.java index 5aebd989..4ead7bf3 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/controller/api/ApiAreaController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/controller/api/ApiAreaController.java @@ -157,4 +157,9 @@ public class ApiAreaController { } return AjaxResult.success(resultList); } + + @GetMapping("/get-area-by-parentId") + public AjaxResult getArea(Integer parentId) { + return AjaxResult.success(areaService.getAreaByParentId(parentId)); + } } diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/provider/AreaServiceProvider.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/provider/AreaServiceProvider.java index 06e1a3d7..a6e2ed75 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/provider/AreaServiceProvider.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/provider/AreaServiceProvider.java @@ -78,4 +78,9 @@ public class AreaServiceProvider implements IAreaServiceApi { public R> queryBdProductStorehouseByCondition(List productId, Integer province) { return R.ok(bdProductStorehouseService.queryBdProductStorehouseByCondition(productId, province)); } + + @Override + public R> getAreaByParentId(Integer parentId) { + return R.ok(iBdAreaService.getAreaByParentId(parentId)); + } } diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/IBdAreaService.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/IBdAreaService.java index 669b90ed..fa8b286a 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/IBdAreaService.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/IBdAreaService.java @@ -28,4 +28,5 @@ public interface IBdAreaService extends IService { */ String updateArea(List areaDTOList); + List getAreaByParentId(Integer parentId); } diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdAreaServiceImpl.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdAreaServiceImpl.java index 135bd375..28cf91eb 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdAreaServiceImpl.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/base/service/impl/BdAreaServiceImpl.java @@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; @@ -120,4 +121,14 @@ public class BdAreaServiceImpl extends ServiceImpl impleme return null; } + @Override + public List getAreaByParentId(Integer parentId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BdArea::getPkCountry, CountryConstants.CHINA_COUNTRY); + queryWrapper.eq(BdArea::getParent, parentId); + queryWrapper.apply("pk_id not in (select PK_AREA_ID from cu_member)"); + queryWrapper.orderByAsc(BdArea::getCode); + return baseMapper.selectList(queryWrapper); + } + } diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/common/provider/CommonServiceProvider.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/common/provider/CommonServiceProvider.java index 3c0c3914..7335a001 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/common/provider/CommonServiceProvider.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/common/provider/CommonServiceProvider.java @@ -132,40 +132,40 @@ public class CommonServiceProvider implements ICommonServiceApi { } } // 当月奖衔 - if (null != memberDataDTO.getPkAwards()) { - BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkAwards()); - if (null != bdAwards) { - memberDataDTO.setAwardsVal(bdAwards.getAwardsName()); - if (EAwards.MEMBER.getValue() != bdAwards.getAwardsValue()) { - // 奖衔如果是会员级别不返回图标 - memberDataDTO.setAwardsIcon(bdAwards.getImage()); - } - } - } - // 荣誉奖衔 - if (null != memberDataDTO.getPkMaxAwards()) { - BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkMaxAwards()); - if (null != bdAwards) { - if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()) { - memberDataDTO.setMaxAwardsVal(memberDataDTO.getAwardsVal()); - memberDataDTO.setMaxAwardsIcon(memberDataDTO.getAwardsIcon()); - } else { - memberDataDTO.setMaxAwardsVal(bdAwards.getAwardsName()); - memberDataDTO.setMaxAwardsIcon(bdAwards.getImage()); - } - } - } - // 分红奖衔 - if (null != memberDataDTO.getPkRangeAwards()) { - BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkRangeAwards()); - if (null != bdAwards) { - if (bdAwards.getAwardsValue() > EAwards.HIGH_MANAGER.getValue()) { - // 前4级不显示分红奖衔 - memberDataDTO.setRangeAwardsVal(bdAwards.getAwardsName()); - memberDataDTO.setRangeAwardsIcon(bdAwards.getImage()); - } - } - } +// if (null != memberDataDTO.getPkAwards()) { +// BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkAwards()); +// if (null != bdAwards) { +// memberDataDTO.setAwardsVal(bdAwards.getAwardsName()); +// if (EAwards.MEMBER.getValue() != bdAwards.getAwardsValue()) { +// // 奖衔如果是会员级别不返回图标 +// memberDataDTO.setAwardsIcon(bdAwards.getImage()); +// } +// } +// } +// // 荣誉奖衔 +// if (null != memberDataDTO.getPkMaxAwards()) { +// BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkMaxAwards()); +// if (null != bdAwards) { +// if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()) { +// memberDataDTO.setMaxAwardsVal(memberDataDTO.getAwardsVal()); +// memberDataDTO.setMaxAwardsIcon(memberDataDTO.getAwardsIcon()); +// } else { +// memberDataDTO.setMaxAwardsVal(bdAwards.getAwardsName()); +// memberDataDTO.setMaxAwardsIcon(bdAwards.getImage()); +// } +// } +// } +// // 分红奖衔 +// if (null != memberDataDTO.getPkRangeAwards()) { +// BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkRangeAwards()); +// if (null != bdAwards) { +// if (bdAwards.getAwardsValue() > EAwards.HIGH_MANAGER.getValue()) { +// // 前4级不显示分红奖衔 +// memberDataDTO.setRangeAwardsVal(bdAwards.getAwardsName()); +// memberDataDTO.setRangeAwardsIcon(bdAwards.getImage()); +// } +// } +// } // 币种 if (null != memberDataDTO.getPkSettleCountry()) { BdCurrency bdCurrency = iBdCurrencyService.getCurrency(memberDataDTO.getPkSettleCountry()); diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMember.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMember.java index b330ec91..9f6bf462 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMember.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMember.java @@ -415,4 +415,9 @@ public class CuMember extends BaseEntity { @TableField("IS_ACTIVATE") private Integer isActivate; + /** + * 分公司省ID + */ + @TableField("PK_AREA_ID") + private Integer pkAreaId; } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/ext/CuMemberExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/ext/CuMemberExt.java index cbb02146..bd73aa03 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/ext/CuMemberExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/ext/CuMemberExt.java @@ -211,4 +211,8 @@ public class CuMemberExt extends CuMember { */ private String lastMemberCode; + /** + * 分公司绑定省名称 + */ + private String areaName; }