forked from angelo/java-retail-app
Compare commits
3 Commits
af4d056488
...
d299b38890
| Author | SHA1 | Date |
|---|---|---|
|
|
d299b38890 | |
|
|
08fdaf709f | |
|
|
8665a3c606 |
|
|
@ -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);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询汇总
|
* 查询汇总
|
||||||
|
|
|
||||||
|
|
@ -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,38 +1674,47 @@ 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()) {
|
||||||
if (null != parentOrder) {
|
// 推荐人是董事代理,查询直推区域代理以上订单
|
||||||
// 存在其它博羚店主订单,重新处理升级记录
|
parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode(), EGrade.REGION.getValue());
|
||||||
CuMemberLevel parentNewLevel = BeanUtil.copyProperties(parentLevel, CuMemberLevel.class);
|
} else if (parentMember.getGradeValue() == EGrade.S_VIP.getValue()) {
|
||||||
parentNewLevel.setPkId(null);
|
// 推荐人是高级店主,查询直推博羚店主以上订单
|
||||||
parentNewLevel.setPkOrder(parentOrder.getPkId());
|
parentOrder = iCuMemberService.listRecommendVipOrder(parentMember.getPkId(), saOrder.getOrderCode(), EGrade.VIP.getValue());
|
||||||
parentNewLevel.setUpgradeTime(parentOrder.getPayTime());
|
|
||||||
parentNewLevel.setModifiedTime(parentOrder.getPayTime());
|
|
||||||
parentNewLevel.setPkModified(parentOrder.getPkMember());
|
|
||||||
iCuMemberLevelService.save(parentNewLevel);
|
|
||||||
} else {
|
|
||||||
// 不存在其它博羚店主订单,会员需要降级处理
|
|
||||||
LambdaUpdateWrapper<CuMember> parentMemberUpdate = new LambdaUpdateWrapper<>();
|
|
||||||
parentMemberUpdate.eq(CuMember::getPkId, parentMember.getPkId());
|
|
||||||
parentMemberUpdate.set(CuMember::getPkSettleGrade, parentLevel.getOldLevel());
|
|
||||||
parentMemberUpdate.set(CuMember::getModifiedTime, currentDateTime);
|
|
||||||
iCuMemberService.update(parentMemberUpdate);
|
|
||||||
}
|
}
|
||||||
// 删除原来升级记录
|
this.handleParentLevelUpdate(parentOrder, parentLevel, parentMember, currentDateTime);
|
||||||
LambdaUpdateWrapper<CuMemberLevel> updateMemberLevel = new LambdaUpdateWrapper<>();
|
|
||||||
updateMemberLevel.eq(CuMemberLevel::getPkId, parentLevel.getPkId());
|
|
||||||
updateMemberLevel.set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue());
|
|
||||||
updateMemberLevel.set(CuMemberLevel::getModifiedTime, currentDateTime);
|
|
||||||
iCuMemberLevelService.update(updateMemberLevel);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void handleParentLevelUpdate(SaOrder parentOrder, CuMemberLevel parentLevel, CuMemberExt parentMember, Date currentDateTime) {
|
||||||
|
if (null != parentOrder) {
|
||||||
|
// 存在其它博羚店主订单,重新处理升级记录
|
||||||
|
CuMemberLevel parentNewLevel = BeanUtil.copyProperties(parentLevel, CuMemberLevel.class);
|
||||||
|
parentNewLevel.setPkId(null);
|
||||||
|
parentNewLevel.setPkOrder(parentOrder.getPkId());
|
||||||
|
parentNewLevel.setUpgradeTime(parentOrder.getPayTime());
|
||||||
|
parentNewLevel.setModifiedTime(parentOrder.getPayTime());
|
||||||
|
parentNewLevel.setPkModified(parentOrder.getPkMember());
|
||||||
|
iCuMemberLevelService.save(parentNewLevel);
|
||||||
|
} else {
|
||||||
|
// 不存在其它博羚店主订单,会员需要降级处理
|
||||||
|
LambdaUpdateWrapper<CuMember> parentMemberUpdate = new LambdaUpdateWrapper<>();
|
||||||
|
parentMemberUpdate.eq(CuMember::getPkId, parentMember.getPkId());
|
||||||
|
parentMemberUpdate.set(CuMember::getPkSettleGrade, parentLevel.getOldLevel());
|
||||||
|
parentMemberUpdate.set(CuMember::getModifiedTime, currentDateTime);
|
||||||
|
iCuMemberService.update(parentMemberUpdate);
|
||||||
|
}
|
||||||
|
// 删除原来升级记录
|
||||||
|
LambdaUpdateWrapper<CuMemberLevel> updateMemberLevel = new LambdaUpdateWrapper<>();
|
||||||
|
updateMemberLevel.eq(CuMemberLevel::getPkId, parentLevel.getPkId());
|
||||||
|
updateMemberLevel.set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue());
|
||||||
|
updateMemberLevel.set(CuMemberLevel::getModifiedTime, currentDateTime);
|
||||||
|
iCuMemberLevelService.update(updateMemberLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
@ -2238,7 +2225,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public BigDecimal handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, List<BdGrade> gradeList, List<String> boxWaresList,
|
public BigDecimal handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, List<BdGrade> gradeList, List<String> boxWaresList,
|
||||||
Integer systemType) {
|
Integer systemType) {
|
||||||
// 升级盒数基数
|
// 升级盒数基数
|
||||||
BigDecimal baseBoxNum = BigDecimal.ZERO;
|
BigDecimal baseBoxNum = BigDecimal.ZERO;
|
||||||
// 会员所有升级记录
|
// 会员所有升级记录
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue