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); CuMember getShopkeeperMember(@Param("pkMember") Long pkMember, @Param("gradeValue") Integer gradeValue);
/** /**
* 查询高级店主 * 查询会员等级
* *
* @param pkMember * @param pkMember
* @return * @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 * @param orderCode
* @return * @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); CuMember getShopkeeperMember(Long pkMember, Integer gradeValue);
/** /**
* 查询高级店主 * 查询会员等级
* *
* @param pkMember * @param pkMember
* @return * @return
*/ */
CuMember getGradeSvipMember(Long pkMember); CuMemberExt getGradeSvipMember(Long pkMember, Integer gradeValue);
/** /**
* 查询会员直推大于博羚店主的注册升级订单查询会员直推大于博羚店主的注册升级订单 * 查询会员直推大于博羚店主的注册升级订单查询会员直推大于博羚店主的注册升级订单
@ -892,7 +892,7 @@ public interface ICuMemberService extends IService<CuMember> {
* @param orderCode * @param orderCode
* @return * @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) { if (null == gradeDTO) {
gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData(); gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
} }
if (gradeDTO.getGradeValue() >= EGrade.VIP.getValue()) { if (gradeDTO.getGradeValue() >= EGrade.REGION.getValue()) {
// 会员等级大于等于 博羚店主推荐人如果也是博羚店主需要升级为高级店主 // 会员等级大于等于 区域代理推荐人如果也是区域代理需要升级为董事代理
CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.VIP.getValue()); CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.REGION.getValue());
if (null != parentMember) { 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() CuMemberLevel cuMemberLevel = CuMemberLevel.builder()
.pkMember(parentMember.getPkId()) .pkMember(parentMember.getPkId())
.upType(EUpgradeType.AUTO_UPGRADE.getValue()) .upType(EUpgradeType.AUTO_UPGRADE.getValue())
@ -1630,12 +1630,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
updateWrapper.set(CuMember::getModifiedTime, new Date()); updateWrapper.set(CuMember::getModifiedTime, new Date());
iCuMemberService.update(updateWrapper); iCuMemberService.update(updateWrapper);
} }
} else if (gradeDTO.getGradeValue() >= EGrade.REGION.getValue()) { } else if (gradeDTO.getGradeValue() >= EGrade.VIP.getValue()) {
// 会员等级大于等于 区域代理推荐人如果也是区域代理需要升级为董事代理 // 会员等级大于等于 博羚店主推荐人如果也是博羚店主需要升级为高级店主
CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.REGION.getValue()); CuMember parentMember = iCuMemberService.getShopkeeperMember(cuMember.getPkParent(), EGrade.VIP.getValue());
if (null != parentMember) { 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() CuMemberLevel cuMemberLevel = CuMemberLevel.builder()
.pkMember(parentMember.getPkId()) .pkMember(parentMember.getPkId())
.upType(EUpgradeType.AUTO_UPGRADE.getValue()) .upType(EUpgradeType.AUTO_UPGRADE.getValue())
@ -1674,11 +1674,24 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
memberLevelQuery.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue()); memberLevelQuery.eq(CuMemberLevel::getUpType, EUpgradeType.AUTO_UPGRADE.getValue());
CuMemberLevel parentLevel = iCuMemberLevelService.getOne(memberLevelQuery); CuMemberLevel parentLevel = iCuMemberLevelService.getOne(memberLevelQuery);
if (null != parentLevel) { if (null != parentLevel) {
// 查询推荐人信息必须是高级店主 // 查询推荐人及等级信息
CuMember parentMember = iCuMemberService.getGradeSvipMember(parentLevel.getPkMember()); CuMemberExt parentMember = iCuMemberService.getGradeSvipMember(parentLevel.getPkMember(), null);
if (null != parentMember) { if (null != parentMember) {
// 推荐是高级店主查询直推博羚店主以上订单 SaOrder parentOrder = null;
SaOrder parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode()); 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) { if (null != parentOrder) {
// 存在其它博羚店主订单重新处理升级记录 // 存在其它博羚店主订单重新处理升级记录
CuMemberLevel parentNewLevel = BeanUtil.copyProperties(parentLevel, CuMemberLevel.class); CuMemberLevel parentNewLevel = BeanUtil.copyProperties(parentLevel, CuMemberLevel.class);
@ -1703,10 +1716,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
updateMemberLevel.set(CuMemberLevel::getModifiedTime, currentDateTime); updateMemberLevel.set(CuMemberLevel::getModifiedTime, currentDateTime);
iCuMemberLevelService.update(updateMemberLevel); iCuMemberLevelService.update(updateMemberLevel);
} }
}
}
}
/** /**

View File

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

View File

@ -2382,16 +2382,18 @@
and bg.grade_value = #{gradeValue} and bg.grade_value = #{gradeValue}
</select> </select>
<!-- 查询高级店主 --> <!-- 查询会员等级 -->
<select id="getGradeSvipMember" resultType="com.hzs.common.domain.member.base.CuMember"> <select id="getGradeSvipMember" resultType="com.hzs.common.domain.member.ext.CuMemberExt">
select cm.* select cm.*, bg.grade_value gradeValue
from cu_member cm from cu_member cm
left join bd_grade bg left join bd_grade bg
on bg.pk_id = cm.pk_settle_grade on bg.pk_id = cm.pk_settle_grade
where cm.del_flag = 0 where cm.del_flag = 0
and cm.category = 0 and cm.category = 0
and cm.pk_id = #{pkMember} and cm.pk_id = #{pkMember}
and bg.grade_value = 70 <!--
and bg.grade_value = #{gradeValue}
-->
</select> </select>
<!-- 查询会员直推大于博羚店主的注册、升级订单 --> <!-- 查询会员直推大于博羚店主的注册、升级订单 -->
@ -2416,7 +2418,7 @@
<if test="orderCode != null and orderCode != ''"> <if test="orderCode != null and orderCode != ''">
and so.order_code != #{orderCode} and so.order_code != #{orderCode}
</if> </if>
and bg.grade_value >= 60) so and bg.grade_value >= #{gradeValue}) so
where rownum = 1 where rownum = 1
</select> </select>
<select id="getMemberCountWithGradeAndParent" resultType="java.lang.Integer"> <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(); .max(Comparator.comparingInt(BdGrade::getGradeValue)).get();
} else { } 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() 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()) .sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed())
.filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(BigDecimal.ZERO) > 0) .filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(BigDecimal.ZERO) > 0)
.filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(boxTotal) <= 0).findFirst(); .filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(boxTotal) <= 0).findFirst();