3
0
Fork 0

## Opt - 修改直推 等级调整(未上)

This commit is contained in:
sangelxiu1 2025-08-21 09:23:19 +08:00
parent 8d95d51c27
commit 83f6aa393b
3 changed files with 120 additions and 0 deletions

View File

@ -623,4 +623,9 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
*/ */
SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode); SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode);
/**
*
*/
int getMemberCountWithGradeAndParent(@Param("parentId") Long parentId, @Param("gradeValue") Integer gradeValue);
} }

View File

@ -23,12 +23,14 @@ import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailSExt; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailSExt;
import com.hzs.common.domain.member.base.*; import com.hzs.common.domain.member.base.*;
import com.hzs.common.domain.member.detail.CuMemberGrade; 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.detail.CuMemberServiceLog;
import com.hzs.common.domain.member.empty.CuMemberEmptyCode; import com.hzs.common.domain.member.empty.CuMemberEmptyCode;
import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.domain.sale.wares.BdWaresAuthority; import com.hzs.common.domain.sale.wares.BdWaresAuthority;
import com.hzs.common.domain.system.config.BdAwards; import com.hzs.common.domain.system.config.BdAwards;
import com.hzs.common.domain.system.config.BdGrade;
import com.hzs.common.domain.system.config.BdTradeWhiteConfig; import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
import com.hzs.common.security.service.UserTokenService; import com.hzs.common.security.service.UserTokenService;
import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.security.utils.SecurityUtils;
@ -37,6 +39,7 @@ import com.hzs.member.account.dto.BusinessCommissionDTO;
import com.hzs.member.account.dto.MemberAmountDTO; import com.hzs.member.account.dto.MemberAmountDTO;
import com.hzs.member.account.service.ICuMemberAccountService; import com.hzs.member.account.service.ICuMemberAccountService;
import com.hzs.member.account.service.ICuMemberTradeService; import com.hzs.member.account.service.ICuMemberTradeService;
import com.hzs.member.base.IMemberServiceApi;
import com.hzs.member.base.param.UpdatePlaceParentPetitionParam; import com.hzs.member.base.param.UpdatePlaceParentPetitionParam;
import com.hzs.member.base.dto.*; import com.hzs.member.base.dto.*;
import com.hzs.member.base.mapper.CuMemberMapper; import com.hzs.member.base.mapper.CuMemberMapper;
@ -44,6 +47,7 @@ import com.hzs.member.base.param.*;
import com.hzs.member.base.service.*; import com.hzs.member.base.service.*;
import com.hzs.member.base.vo.*; import com.hzs.member.base.vo.*;
import com.hzs.member.detail.service.ICuMemberServiceLogService; import com.hzs.member.detail.service.ICuMemberServiceLogService;
import com.hzs.member.detail.service.impl.CuMemberLevelServiceImpl;
import com.hzs.member.empty.service.ICuMemberEmptyCodeService; import com.hzs.member.empty.service.ICuMemberEmptyCodeService;
import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam; import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam;
import com.hzs.member.handlebusiness.vo.BusinessMemberVO; import com.hzs.member.handlebusiness.vo.BusinessMemberVO;
@ -71,6 +75,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -120,6 +125,14 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
@Autowired @Autowired
private RabbitTemplate rabbitTemplate; private RabbitTemplate rabbitTemplate;
@Qualifier("memberServiceApi")
@Autowired
private IMemberServiceApi memberServiceApi;
@Qualifier("gradeService")
@Autowired
private IGradeServiceApi gradeService;
@Autowired
private CuMemberLevelServiceImpl cuMemberLevelServiceImpl;
@Override @Override
public Boolean saveMember(CuMember cuMember) { public Boolean saveMember(CuMember cuMember) {
@ -1361,6 +1374,22 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
try { try {
// 修改直推日志 // 修改直推日志
sendUpdateParentLog(parentParam, EApprovalBusiness.CU_MEMBER_PARENT.getValue(), code, loginUser); sendUpdateParentLog(parentParam, EApprovalBusiness.CU_MEMBER_PARENT.getValue(), code, loginUser);
/**
* 如果当前用户为区域代理 原上级为董事 验证是否掉等级 , 新上级如果为区域代理 升等级(董事)
* 如果当前用户为博羚店主 原上级为高级店主 验证是否掉等级 , 新上级如果为博羚店主 升等级(高级店主)
*/
// 新上级 uc.getEditNewPlaceMemberCode()
// 旧上级 getMemberById(uc.getPkParent()).getMemberCode()
// 关闭直推修改等级逻辑
if(1 == 2){
CuMember newMember = memberServiceApi.getMember(uc.getEditNewPlaceMemberCode()).getData();
CuMember oldMember = getMemberById(uc.getPkParent());
CuMember mainMember = getMember(uc.getPkMember());
validateGrade(mainMember, oldMember, newMember);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -1368,6 +1397,83 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
return code; return code;
} }
public void validateGrade(CuMember mainMember, CuMember oldMember, CuMember newMember){
Integer mainGradeValue = gradeService.getGrade(mainMember.getPkSettleGrade()).getData().getGradeValue();
Integer oldGradeValue = gradeService.getGrade(oldMember.getPkSettleGrade()).getData().getGradeValue();
Integer newGradeValue = gradeService.getGrade(newMember.getPkSettleGrade()).getData().getGradeValue();
LambdaQueryWrapper<CuMemberLevel> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CuMemberLevel::getPkMember, mainMember.getPkId());
queryWrapper.eq(CuMemberLevel::getUpType, EUpgradeType.BUY_UPGRADE.getValue());
queryWrapper.isNotNull(CuMemberLevel::getPkOrder);
queryWrapper.orderByDesc(CuMemberLevel::getUpgradeTime);
CuMemberLevel lastUpgrade = cuMemberLevelServiceImpl.getOne(queryWrapper, false);
if(mainGradeValue.equals(EGrade.VIP.getValue())){
// old 直推是否还有EGrade.VIP 没有则掉等级
int subUserCount = baseMapper.getMemberCountWithGradeAndParent(oldMember.getPkId(), EGrade.VIP.getValue());
if(subUserCount < 1){
// 掉等级
GradeDTO targetGrade = gradeService.getGradeByGradeValue(EGrade.VIP.getValue(), SecurityUtils.getPkCountry()).getData();
oldMember.setPkSettleGradeValue(targetGrade.getPkId());
LambdaQueryWrapper<CuMemberLevel> removeWrapper = new LambdaQueryWrapper<>();
removeWrapper.eq(CuMemberLevel::getPkMember, oldMember.getPkId());
removeWrapper.eq(CuMemberLevel::getPkOrder, lastUpgrade.getPkOrder());
removeWrapper.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue());
baseMapper.updateById(oldMember);
cuMemberLevelServiceImpl.remove(removeWrapper);
}
if(newGradeValue.equals(EGrade.VIP.getValue())){
// 升等级
GradeDTO targetGrade = gradeService.getGradeByGradeValue(EGrade.S_VIP.getValue(), SecurityUtils.getPkCountry()).getData();
newMember.setPkSettleGradeValue(targetGrade.getPkId());
CuMemberLevel cuMemberLevel = CuMemberLevel.builder()
.pkMember(newMember.getPkId())
.upType(EUpgradeType.AUTO_UPGRADE.getValue())
.oldLevel(newMember.getPkSettleGrade())
.newLevel(targetGrade.getPkId())
.upgradeTime(new Date())
.pkOrder(lastUpgrade.getPkOrder())
.build();
cuMemberLevel.setPkCountry(SecurityUtils.getPkCountry());
cuMemberLevel.setPkCreator(SecurityUtils.getUserId());
cuMemberLevelServiceImpl.save(cuMemberLevel);
baseMapper.updateById(newMember);
}
// new 是否为EGrade.VIP 如果是则升等级
}else if(mainGradeValue.equals(EGrade.REGION.getValue())){
// old 直推是否还有EGrade.REGION 没有则掉等级
int subUserCount = baseMapper.getMemberCountWithGradeAndParent(oldMember.getPkId(), EGrade.REGION.getValue());
if(subUserCount < 1){
// 掉等级
GradeDTO targetGrade = gradeService.getGradeByGradeValue(EGrade.REGION.getValue(), SecurityUtils.getPkCountry()).getData();
oldMember.setPkSettleGradeValue(targetGrade.getPkId());
LambdaQueryWrapper<CuMemberLevel> removeWrapper = new LambdaQueryWrapper<>();
removeWrapper.eq(CuMemberLevel::getPkMember, oldMember.getPkId());
removeWrapper.eq(CuMemberLevel::getPkOrder, lastUpgrade.getPkOrder());
removeWrapper.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue());
baseMapper.updateById(oldMember);
cuMemberLevelServiceImpl.remove(removeWrapper);
}
if(newGradeValue.equals(EGrade.REGION.getValue())){
// 升等级
GradeDTO targetGrade = gradeService.getGradeByGradeValue(EGrade.DIRECTOR.getValue(), SecurityUtils.getPkCountry()).getData();
newMember.setPkSettleGradeValue(targetGrade.getPkId());
CuMemberLevel cuMemberLevel = CuMemberLevel.builder()
.pkMember(newMember.getPkId())
.upType(EUpgradeType.AUTO_UPGRADE.getValue())
.oldLevel(newMember.getPkSettleGrade())
.newLevel(targetGrade.getPkId())
.upgradeTime(new Date())
.pkOrder(lastUpgrade.getPkOrder())
.build();
cuMemberLevel.setPkCountry(SecurityUtils.getPkCountry());
cuMemberLevel.setPkCreator(SecurityUtils.getUserId());
cuMemberLevelServiceImpl.save(cuMemberLevel);
baseMapper.updateById(newMember);
}
// new 是否为EGrade.REGION 如果是则升等级
}
}
/** /**
* 推送修改直推日志 * 推送修改直推日志
*/ */

View File

@ -2419,5 +2419,14 @@
and bg.grade_value >= 60) so and bg.grade_value >= 60) so
where rownum = 1 where rownum = 1
</select> </select>
<select id="getMemberCountWithGradeAndParent" resultType="java.lang.Integer">
select
count(cu.PK_ID)
from cu_member cu
left join bd_grade bg on cu.PK_SETTLE_GRADE = bg.pk_id
where
cu.PK_PARENT = #{parentId}
and bg.GRADE_VALUE = #{gradeValue}
</select>
</mapper> </mapper>