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);
|
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, 0);
|
||||||
|
|
||||||
if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()
|
if (EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
|
||||||
|| EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
|
// 代理级别,判断处理区域
|
||||||
// 店主、代理级别,判断处理区域
|
|
||||||
if (null != saOrder.getRegionProvince()
|
if (null != saOrder.getRegionProvince()
|
||||||
&& null != saOrder.getRegionCity()) {
|
&& null != saOrder.getRegionCity()) {
|
||||||
iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder()
|
iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder()
|
||||||
|
@ -1532,18 +1531,14 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public void updateRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt) {
|
public void updateRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt) {
|
||||||
// 更新会员信息
|
// 会员新等级
|
||||||
updateCuMember(cuMember);
|
|
||||||
|
|
||||||
// 会员等级
|
|
||||||
GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
|
GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
|
||||||
if (!cuMember.getPkSettleGrade().equals(saOrder.getPkGradeOld())) {
|
if (!cuMember.getPkSettleGrade().equals(saOrder.getPkGradeOld())) {
|
||||||
// 保存会员等级变动(如果旧等级和新等级相同,则不记录)
|
// 保存会员等级变动(如果旧等级和新等级相同,则不记录)
|
||||||
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld());
|
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld());
|
||||||
|
|
||||||
if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()
|
if (EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
|
||||||
|| EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
|
// 代理级别,判断处理区域
|
||||||
// 店主、代理级别,判断处理区域
|
|
||||||
if (null != saOrder.getRegionProvince()
|
if (null != saOrder.getRegionProvince()
|
||||||
&& null != saOrder.getRegionCity()) {
|
&& null != saOrder.getRegionCity()) {
|
||||||
iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder()
|
iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder()
|
||||||
|
@ -1554,11 +1549,16 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 判断处理会员自己等级(下级有店主、代理,自己判断是否升级高级店主、董事代理)
|
||||||
|
this.handleSelfLevel(gradeDTO, cuMember, saOrder.getPayTime());
|
||||||
}
|
}
|
||||||
|
// 更新会员信息
|
||||||
|
updateCuMember(cuMember);
|
||||||
|
|
||||||
// 判断处理推荐人等级
|
// 判断处理推荐人等级(自己是店主、代理,判断推荐人是否升级高级店主、董事代理)
|
||||||
handleParentUpgrade(cuMember, saOrder, gradeDTO);
|
handleParentUpgrade(cuMember, saOrder, gradeDTO);
|
||||||
|
// 处理会员账户
|
||||||
this.handleRetailMemberAccount(saOrder, cuMemberAccountExt);
|
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 saOrder 升级订单
|
||||||
* @param currentDateTime
|
* @param currentDateTime 当前时间
|
||||||
*/
|
*/
|
||||||
private void handleParentLevel(SaOrderExt saOrder, Date currentDateTime) {
|
private void handleParentLevel(SaOrderExt saOrder, Date currentDateTime) {
|
||||||
// 注册、升级订单,需要判断是否有推荐人升级的
|
// 注册、升级订单,需要判断是否有推荐人升级的
|
||||||
|
|
|
@ -2418,9 +2418,12 @@
|
||||||
<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 >= #{gradeValue}) so
|
and bg.grade_value >= #{gradeValue}
|
||||||
|
order by so.pay_time
|
||||||
|
) so
|
||||||
where rownum = 1
|
where rownum = 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getMemberCountWithGradeAndParent" resultType="java.lang.Integer">
|
<select id="getMemberCountWithGradeAndParent" resultType="java.lang.Integer">
|
||||||
select
|
select
|
||||||
count(cu.PK_ID)
|
count(cu.PK_ID)
|
||||||
|
|
Loading…
Reference in New Issue