forked from angelo/java-retail-app
## 会员自己升级店主、代理判断是否1+1多升一级;
This commit is contained in:
parent
296af0b3e8
commit
33ea433fad
|
@ -1509,9 +1509,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
// 保存会员等级变动
|
||||
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, 0);
|
||||
|
||||
if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()
|
||||
|| EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
|
||||
// 店主、代理级别,判断处理区域
|
||||
if (EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
|
||||
// 代理级别,判断处理区域
|
||||
if (null != saOrder.getRegionProvince()
|
||||
&& null != saOrder.getRegionCity()) {
|
||||
iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder()
|
||||
|
@ -1532,18 +1531,14 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void updateRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt) {
|
||||
// 更新会员信息
|
||||
updateCuMember(cuMember);
|
||||
|
||||
// 会员等级
|
||||
// 会员新等级
|
||||
GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
|
||||
if (!cuMember.getPkSettleGrade().equals(saOrder.getPkGradeOld())) {
|
||||
// 保存会员等级变动(如果旧等级和新等级相同,则不记录)
|
||||
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld());
|
||||
|
||||
if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()
|
||||
|| EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
|
||||
// 店主、代理级别,判断处理区域
|
||||
if (EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
|
||||
// 代理级别,判断处理区域
|
||||
if (null != saOrder.getRegionProvince()
|
||||
&& null != saOrder.getRegionCity()) {
|
||||
iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder()
|
||||
|
@ -1554,11 +1549,16 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
.build());
|
||||
}
|
||||
}
|
||||
|
||||
// 判断处理会员自己等级(下级有店主、代理,自己判断是否升级高级店主、董事代理)
|
||||
this.handleSelfLevel(gradeDTO, cuMember, saOrder.getPayTime());
|
||||
}
|
||||
// 更新会员信息
|
||||
updateCuMember(cuMember);
|
||||
|
||||
// 判断处理推荐人等级
|
||||
// 判断处理推荐人等级(自己是店主、代理,判断推荐人是否升级高级店主、董事代理)
|
||||
handleParentUpgrade(cuMember, saOrder, gradeDTO);
|
||||
|
||||
// 处理会员账户
|
||||
this.handleRetailMemberAccount(saOrder, cuMemberAccountExt);
|
||||
}
|
||||
|
||||
|
@ -1677,11 +1677,41 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理会员自己等级
|
||||
*
|
||||
* @param gradeDTO 新等级
|
||||
* @param cuMember 会员自己
|
||||
* @param payTime 订单支付时间(升级记录时间)
|
||||
*/
|
||||
private void handleSelfLevel(GradeDTO gradeDTO, CuMember cuMember, Date payTime) {
|
||||
if (null == gradeDTO) {
|
||||
gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
|
||||
}
|
||||
if (gradeDTO.getGradeValue().equals(EGrade.REGION.getValue())) {
|
||||
// 会员当前是区域代理,查询直推是否存在区域代理
|
||||
SaOrder recommendOrder = iCuMemberService.listRecommendVipOrder(cuMember.getPkId(), null, EGrade.REGION.getValue());
|
||||
if (null != recommendOrder) {
|
||||
recommendOrder.setPayTime(payTime);
|
||||
cuMember.setPkSettleGrade(iGradeServiceApi.getGradeByGradeValue(EGrade.DIRECTOR.getValue(), cuMember.getPkSettleCountry()).getData().getPkId());
|
||||
saveLevelUpgrade(cuMember, EUpgradeType.AUTO_UPGRADE.getValue(), recommendOrder, gradeDTO.getPkId());
|
||||
}
|
||||
} else if (gradeDTO.getGradeValue().equals(EGrade.VIP.getValue())) {
|
||||
// 会员当前是博羚店主,查询直推是否存在博羚店主
|
||||
SaOrder recommendOrder = iCuMemberService.listRecommendVipOrder(cuMember.getPkId(), null, EGrade.VIP.getValue());
|
||||
if (null != recommendOrder) {
|
||||
recommendOrder.setPayTime(payTime);
|
||||
cuMember.setPkSettleGrade(iGradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), cuMember.getPkSettleCountry()).getData().getPkId());
|
||||
saveLevelUpgrade(cuMember, EUpgradeType.AUTO_UPGRADE.getValue(), recommendOrder, gradeDTO.getPkId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理推荐人等级
|
||||
*
|
||||
* @param saOrder
|
||||
* @param currentDateTime
|
||||
* @param saOrder 升级订单
|
||||
* @param currentDateTime 当前时间
|
||||
*/
|
||||
private void handleParentLevel(SaOrderExt saOrder, Date currentDateTime) {
|
||||
// 注册、升级订单,需要判断是否有推荐人升级的
|
||||
|
|
|
@ -2418,9 +2418,12 @@
|
|||
<if test="orderCode != null and orderCode != ''">
|
||||
and so.order_code != #{orderCode}
|
||||
</if>
|
||||
and bg.grade_value >= #{gradeValue}) so
|
||||
and bg.grade_value >= #{gradeValue}
|
||||
order by so.pay_time
|
||||
) so
|
||||
where rownum = 1
|
||||
</select>
|
||||
|
||||
<select id="getMemberCountWithGradeAndParent" resultType="java.lang.Integer">
|
||||
select
|
||||
count(cu.PK_ID)
|
||||
|
|
Loading…
Reference in New Issue