Compare commits

..

2 Commits

5 changed files with 38 additions and 28 deletions

View File

@ -51,7 +51,7 @@ public interface ICuMemberService extends IService<CuMember> {
/** /**
* 根据等级更新会员等级 * 根据等级更新会员等级
*/ */
void updateCuMemberGradeByPeriod(List<CuMemberGrade> cuMemberGradeList, Integer period); void updateCuMemberGradeByPeriod(Integer period);
/** /**
* 查询会员等级 * 查询会员等级

View File

@ -50,7 +50,7 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
} }
@Override @Override
public void updateCuMemberGradeByPeriod(List<CuMemberGrade> cuMemberGradeList, Integer period) { public void updateCuMemberGradeByPeriod(Integer period) {
baseMapper.updateCuMemberGrade(period); baseMapper.updateCuMemberGrade(period);
} }

View File

@ -300,9 +300,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, isSecond); secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, isSecond);
cuMemberRetailRangeExtList.add(sourceMemberRangeExt); cuMemberRetailRangeExtList.add(sourceMemberRangeExt);
// 查询期间的等级 // 查询期间的等级来源 cu_member_grade
List<CuMemberGrade> memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod); List<CuMemberGrade> memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod);
// 查询最大的手动奖衔 // 查询最大的手动等级来源 cu_member_grade
List<CuMemberGrade> cuMemberGradeList1 = iCuMemberGradeService.queryCuMemberGradeByList(currentPeriod, memberRetailRangeExtList); List<CuMemberGrade> cuMemberGradeList1 = iCuMemberGradeService.queryCuMemberGradeByList(currentPeriod, memberRetailRangeExtList);
if (cuMemberGradeList1.size() > 0) { if (cuMemberGradeList1.size() > 0) {
Map<Long, CuMemberGrade> memberGradeMap = new HashMap<>(); Map<Long, CuMemberGrade> memberGradeMap = new HashMap<>();
@ -340,9 +340,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
} }
} }
if (cuMemberGradeList.size() > 0) { if (cuMemberGradeList.size() > 0) {
// 删除等级 // 删除等级cu_member_grade
iCuMemberGradeService.deleteCuMemberGrade(cuMemberGradeList, currentPeriod); iCuMemberGradeService.deleteCuMemberGrade(cuMemberGradeList, currentPeriod);
// 批量更新会员等级 // 批量更新会员等级更新 cu_member
iCuMemberService.updateCuMemberMinGradeByList(cuMemberGradeList, currentPeriod); iCuMemberService.updateCuMemberMinGradeByList(cuMemberGradeList, currentPeriod);
} }
} }
@ -562,11 +562,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 盒数商品 计算 直推级差 + 平级收益 // 盒数商品 计算 直推级差 + 平级收益
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt)); cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
} }
}
// 计算完奖金算等级 // 订单存在升级记录
// if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
// || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
// // 订单存在升级记录
if (memberLevelMap.containsKey(saOrderExt.getPkId())) { if (memberLevelMap.containsKey(saOrderExt.getPkId())) {
CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId()); CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId());
if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) { if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) {
@ -578,8 +576,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
} }
} }
} }
// }
}
} }
// 计算区域奖 // 计算区域奖
@ -611,9 +607,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (cuMemberGradeList.size() > 0) { if (cuMemberGradeList.size() > 0) {
// 批量插入会员等级记录 // 批量插入会员等级记录
iCuMemberGradeService.insertCuMemberGrade(cuMemberGradeList); iCuMemberGradeService.insertCuMemberGrade(cuMemberGradeList);
// 更新会员表等级数据来源 cu_member_grade) // 更新会员表cu_member等级数据来源 cu_member_grade)
iCuMemberService.updateCuMemberGradeByPeriod(cuMemberGradeList, period); iCuMemberService.updateCuMemberGradeByPeriod(period);
// 更新会员表等级数据来源 cu_member_level) // 更新会员表cu_member等级数据来源 cu_member_level)
iCuMemberService.updateCuMemberLevel(settleStartDate, settleEndDate); iCuMemberService.updateCuMemberLevel(settleStartDate, settleEndDate);
} }
// 更新网体 // 更新网体
@ -752,6 +748,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (null != memberRetailLevel) { if (null != memberRetailLevel) {
if (memberRetailLevel.getGradeValue() > targetMemberRangeExt.getGradeValue()) { if (memberRetailLevel.getGradeValue() > targetMemberRangeExt.getGradeValue()) {
targetMemberRangeExt.setPkGrade(memberRetailLevel.getPkGrade()); targetMemberRangeExt.setPkGrade(memberRetailLevel.getPkGrade());
targetMemberRangeExt.setGradeValue(memberRetailLevel.getGradeValue());
} }
} }
} }

View File

@ -307,15 +307,16 @@
<update id="updateCuMemberMinGradeByList"> <update id="updateCuMemberMinGradeByList">
merge into cu_member a merge into cu_member a
using ( using (
select pk_member, min(pk_grade) pk_grade from( select pk_member, min(pk_grade) pk_grade from (
<foreach item="item" index="index" collection="cuMemberGradeList" separator=" union "> <foreach item="item" index="index" collection="cuMemberGradeList" separator=" union ">
select #{item.pkMember} pk_member,#{item.newLevel} pk_grade from dual select #{item.pkMember} pk_member, #{item.newLevel} pk_grade from dual
</foreach>) </foreach>
)
group by pk_member group by pk_member
) b ) b
on (a.pk_id = b.pk_member) on (a.pk_id = b.pk_member)
when matched then when matched then
update set a.pk_settle_grade = b.pk_grade,a.modified_time = sysdate update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate
</update> </update>
<update id="updateCuMemberLevel"> <update id="updateCuMemberLevel">

View File

@ -20,6 +20,7 @@ import com.hzs.common.domain.sale.ext.SaOrderWaresLimitExt;
import com.hzs.common.domain.sale.order.*; import com.hzs.common.domain.sale.order.*;
import com.hzs.common.domain.sale.wares.BdWaresRange; import com.hzs.common.domain.sale.wares.BdWaresRange;
import com.hzs.common.domain.system.base.BdStorehouse; import com.hzs.common.domain.system.base.BdStorehouse;
import com.hzs.common.domain.system.config.BdAwards;
import com.hzs.common.domain.system.config.BdGrade; import com.hzs.common.domain.system.config.BdGrade;
import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.account.IMemberAccountServiceApi; import com.hzs.member.account.IMemberAccountServiceApi;
@ -40,6 +41,7 @@ import com.hzs.sale.wares.service.IBdWaresExtendService;
import com.hzs.sale.wares.service.IBdWaresRangeService; import com.hzs.sale.wares.service.IBdWaresRangeService;
import com.hzs.system.base.ICurrencyServiceApi; import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.dto.CurrencyDTO; import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.config.IAwardsServiceApi;
import com.hzs.system.config.IGradeServiceApi; import com.hzs.system.config.IGradeServiceApi;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboReference;
@ -90,6 +92,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
@DubboReference @DubboReference
IGradeServiceApi iGradeServiceApi; IGradeServiceApi iGradeServiceApi;
@DubboReference @DubboReference
IAwardsServiceApi iAwardsServiceApi;
@DubboReference
ICurrencyServiceApi iCurrencyServiceApi; ICurrencyServiceApi iCurrencyServiceApi;
@DubboReference @DubboReference
IMemberServiceApi iMemberServiceApi; IMemberServiceApi iMemberServiceApi;
@ -217,8 +221,16 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 会员信息 // 会员信息
if (null != cuMember) { if (null != cuMember) {
cuMember.setPkSettleGrade(newGrade.getPkId()); cuMember.setPkSettleGrade(newGrade.getPkId());
if (cuMember.getPkAwards() == null) { if (null == cuMember.getPkAwards()) {
// 新会员没有奖衔则进行赋值
cuMember.setPkAwards(newGrade.getPkAwards()); cuMember.setPkAwards(newGrade.getPkAwards());
} else {
// 老会员奖衔如果为无也进行赋值
BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData();
if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()
&& EAwards.MEMBER.getValue() != newGrade.getPkAwards()) {
cuMember.setPkAwards(newGrade.getPkAwards());
}
} }
} }
} }