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 9b41f915..313a790d 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 @@ -2,6 +2,7 @@ package com.hzs.member.handlebusiness.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -18,6 +19,7 @@ import com.hzs.common.domain.member.detail.CuMemberAwards; import com.hzs.common.domain.member.detail.CuMemberGrade; import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.detail.CuMemberServiceLog; +import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.member.handleBusiness.CuHandleBusiness; import com.hzs.common.domain.system.base.BdCountry; import com.hzs.common.domain.system.config.BdAwards; @@ -824,10 +826,69 @@ 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.FALSE; + return Boolean.TRUE; } /**