3
0
Fork 0

Compare commits

..

3 Commits

6 changed files with 63 additions and 65 deletions

View File

@ -608,12 +608,12 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
CuMember getShopkeeperMember(@Param("pkMember") Long pkMember, @Param("gradeValue") Integer gradeValue);
/**
* 查询高级店主
* 查询会员等级
*
* @param pkMember
* @return
*/
CuMember getGradeSvipMember(@Param("pkMember") Long pkMember);
CuMemberExt getGradeSvipMember(@Param("pkMember") Long pkMember, @Param("gradeValue") Integer gradeValue);
/**
* 查询会员直推大于博羚店主的注册升级订单查询会员直推大于博羚店主的注册升级订单
@ -622,7 +622,7 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
* @param orderCode
* @return
*/
SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode);
SaOrder listRecommendVipOrder(@Param("pkMember") Long pkMember, @Param("orderCode") String orderCode, @Param("gradeValue") Integer gradeValue);
/**

View File

@ -878,12 +878,12 @@ public interface ICuMemberService extends IService<CuMember> {
CuMember getShopkeeperMember(Long pkMember, Integer gradeValue);
/**
* 查询高级店主
* 查询会员等级
*
* @param pkMember
* @return
*/
CuMember getGradeSvipMember(Long pkMember);
CuMemberExt getGradeSvipMember(Long pkMember, Integer gradeValue);
/**
* 查询会员直推大于博羚店主的注册升级订单查询会员直推大于博羚店主的注册升级订单
@ -892,7 +892,7 @@ public interface ICuMemberService extends IService<CuMember> {
* @param orderCode
* @return
*/
SaOrder listRecommendVipOrder(Long pkMember, String orderCode);
SaOrder listRecommendVipOrder(Long pkMember, String orderCode, Integer gradeValue);
/**
* 查询汇总

View File

@ -1605,12 +1605,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
if (null == gradeDTO) {
gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
}
if (gradeDTO.getGradeValue() >= EGrade.VIP.getValue()) {
// 会员等级大于等于 博羚店主推荐人如果也是博羚店主需要升级为高级店主
CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.VIP.getValue());
if (gradeDTO.getGradeValue() >= EGrade.REGION.getValue()) {
// 会员等级大于等于 区域代理推荐人如果也是区域代理需要升级为董事代理
CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.REGION.getValue());
if (null != parentMember) {
// 记录升级历史
GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), cuMember.getPkSettleCountry()).getData();
GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.DIRECTOR.getValue(), cuMember.getPkSettleCountry()).getData();
CuMemberLevel cuMemberLevel = CuMemberLevel.builder()
.pkMember(parentMember.getPkId())
.upType(EUpgradeType.AUTO_UPGRADE.getValue())
@ -1630,12 +1630,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
updateWrapper.set(CuMember::getModifiedTime, new Date());
iCuMemberService.update(updateWrapper);
}
} else if (gradeDTO.getGradeValue() >= EGrade.REGION.getValue()) {
// 会员等级大于等于 区域代理推荐人如果也是区域代理需要升级为董事代理
CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.REGION.getValue());
} else if (gradeDTO.getGradeValue() >= EGrade.VIP.getValue()) {
// 会员等级大于等于 博羚店主推荐人如果也是博羚店主需要升级为高级店主
CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.VIP.getValue());
if (null != parentMember) {
// 记录升级历史
GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.DIRECTOR.getValue(), cuMember.getPkSettleCountry()).getData();
GradeDTO upgradeDTO = iGradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), cuMember.getPkSettleCountry()).getData();
CuMemberLevel cuMemberLevel = CuMemberLevel.builder()
.pkMember(parentMember.getPkId())
.upType(EUpgradeType.AUTO_UPGRADE.getValue())
@ -1674,11 +1674,24 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
memberLevelQuery.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue());
CuMemberLevel parentLevel = iCuMemberLevelService.getOne(memberLevelQuery);
if (null != parentLevel) {
// 查询推荐人信息必须是高级店主
CuMember parentMember = iCuMemberService.getGradeSvipMember(parentLevel.getPkMember());
// 查询推荐人及等级信息
CuMemberExt parentMember = iCuMemberService.getGradeSvipMember(parentLevel.getPkMember(), null);
if (null != parentMember) {
// 推荐是高级店主查询直推博羚店主以上订单
SaOrder parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode());
SaOrder parentOrder = null;
if (parentMember.getGradeValue() == EGrade.DIRECTOR.getValue()) {
// 推荐人是董事代理查询直推区域代理以上订单
parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode(), EGrade.REGION.getValue());
} else if (parentMember.getGradeValue() == EGrade.S_VIP.getValue()) {
// 推荐人是高级店主查询直推博羚店主以上订单
parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode(), EGrade.VIP.getValue());
}
this.handleParentLevelUpdate(parentOrder, parentLevel, parentMember, currentDateTime);
}
}
}
}
private void handleParentLevelUpdate(SaOrder parentOrder, CuMemberLevel parentLevel, CuMemberExt parentMember, Date currentDateTime) {
if (null != parentOrder) {
// 存在其它博羚店主订单重新处理升级记录
CuMemberLevel parentNewLevel = BeanUtil.copyProperties(parentLevel, CuMemberLevel.class);
@ -1703,10 +1716,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
updateMemberLevel.set(CuMemberLevel::getModifiedTime, currentDateTime);
iCuMemberLevelService.update(updateMemberLevel);
}
}
}
}
/**

View File

@ -3250,13 +3250,13 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
}
@Override
public CuMember getGradeSvipMember(Long pkMember) {
return baseMapper.getGradeSvipMember(pkMember);
public CuMemberExt getGradeSvipMember(Long pkMember, Integer gradeValue) {
return baseMapper.getGradeSvipMember(pkMember, gradeValue);
}
@Override
public SaOrder listRecommendVipOrder(Long pkMember, String orderCode) {
return baseMapper.listRecommendVipOrder(pkMember, orderCode);
public SaOrder listRecommendVipOrder(Long pkMember, String orderCode, Integer gradeValue) {
return baseMapper.listRecommendVipOrder(pkMember, orderCode, gradeValue);
}

View File

@ -2382,16 +2382,18 @@
and bg.grade_value = #{gradeValue}
</select>
<!-- 查询高级店主 -->
<select id="getGradeSvipMember" resultType="com.hzs.common.domain.member.base.CuMember">
select cm.*
<!-- 查询会员等级 -->
<select id="getGradeSvipMember" resultType="com.hzs.common.domain.member.ext.CuMemberExt">
select cm.*, bg.grade_value gradeValue
from cu_member cm
left join bd_grade bg
on bg.pk_id = cm.pk_settle_grade
where cm.del_flag = 0
and cm.category = 0
and cm.pk_id = #{pkMember}
and bg.grade_value = 70
<!--
and bg.grade_value = #{gradeValue}
-->
</select>
<!-- 查询会员直推大于博羚店主的注册、升级订单 -->
@ -2416,7 +2418,7 @@
<if test="orderCode != null and orderCode != ''">
and so.order_code != #{orderCode}
</if>
and bg.grade_value >= 60) so
and bg.grade_value >= #{gradeValue}) so
where rownum = 1
</select>
<select id="getMemberCountWithGradeAndParent" resultType="java.lang.Integer">

View File

@ -2201,23 +2201,10 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
.max(Comparator.comparingInt(BdGrade::getGradeValue)).get();
} else {
// 非注册处理
// if (checkUpgrade) {
// // 当前等级大于等于V3 盒数商品为0则直接返回当前等级
// if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0
// || boxTotal == 0) {
// return memberGrade;
// }
// } else {
// // 当前等级大于V3 盒数商品为0则直接返回当前等级
// if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) > 0
// || boxTotal == 0) {
// return memberGrade;
// }
// }
// 查询等级比现在当前等级大的 并且 排除高级店主然后倒序排序再查询 购买盒数 <= 等级盒数 的第一个等级就是当前升级的等级
Optional<BdGrade> gradeOptional = gradeList.stream()
.filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getGradeValue() > memberGrade.getGradeValue())
.filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getGradeValue() != EGrade.DIRECTOR.getValue()
&& tmpGrade.getGradeValue() > memberGrade.getGradeValue())
.sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed())
.filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(BigDecimal.ZERO) > 0)
.filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(boxTotal) <= 0).findFirst();