## 调整创建语句结构;
This commit is contained in:
parent
c77ec2965b
commit
d7203842f8
|
@ -265,7 +265,7 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
|
|||
List<CuMemberSettleExt> queryExemptCuMemberSettle(String tableName);
|
||||
|
||||
/**
|
||||
* 查询出符合下一等级足够业绩的会员
|
||||
* 查询出符合下一奖衔足够业绩的会员
|
||||
*
|
||||
* @param settleTableName 结算表
|
||||
* @return: List<CuMemberSettleExt>
|
||||
|
|
|
@ -173,7 +173,7 @@ public interface ICuMemberTreeService extends IService<CuMemberTree> {
|
|||
List<CuMemberSettleExt> queryExemptCuMemberSettle(String tableName);
|
||||
|
||||
/**
|
||||
* 查询出符合下一等级足够业绩的会员
|
||||
* 查询出符合下一奖衔足够业绩的会员
|
||||
*
|
||||
* @param settleTableName 结算表
|
||||
* @return: List<CuMemberSettleExt>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.hzs.bonus.bonus.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.bonus.achieve.param.MemberAchieveParam;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
|
||||
import com.hzs.bonus.detail.service.ICuMemberAssessService;
|
||||
|
@ -1072,6 +1073,49 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param orderExtList 订单列表
|
||||
* @Description: 根据订单分类,分为首购、复购、真实,获取新增业绩
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/2 11:24
|
||||
*/
|
||||
public void assortSaOrder(Map<Long, MemberAchieveParam> cuMemberAchieveHashMap, List<SaOrderExt> orderExtList, BonusConfigDTO bonusConfigDTO, Boolean isFirst) {
|
||||
// 注册+升级 首购
|
||||
// 除(注册+升级)其他 复购
|
||||
// 首购+复购 = 真实
|
||||
for (SaOrderExt saOrderExt : orderExtList) {
|
||||
MemberAchieveParam cuMemberAchieve;
|
||||
if (cuMemberAchieveHashMap.containsKey(saOrderExt.getPkMember())) {
|
||||
cuMemberAchieve = cuMemberAchieveHashMap.get(saOrderExt.getPkMember());
|
||||
// 所有的都算真实业绩
|
||||
} else {
|
||||
cuMemberAchieve = MemberAchieveParam.builder()
|
||||
.pkRate(saOrderExt.getPkRate())
|
||||
.pkMember(saOrderExt.getPkMember())
|
||||
.newAmount(BigDecimal.ZERO)
|
||||
.newPv(BigDecimal.ZERO)
|
||||
.repNewAmount(BigDecimal.ZERO)
|
||||
.repNewPv(BigDecimal.ZERO)
|
||||
.newRealAmount(BigDecimal.ZERO)
|
||||
.newRealPv(BigDecimal.ZERO)
|
||||
.build();
|
||||
cuMemberAchieveHashMap.put(saOrderExt.getPkMember(), cuMemberAchieve);
|
||||
}
|
||||
if (isFirst) {
|
||||
// 首购处理
|
||||
cuMemberAchieve.setNewAmount(ComputeUtil.computeAdd(cuMemberAchieve.getNewAmount(), saOrderExt.getOrderAmount()));
|
||||
cuMemberAchieve.setNewPv(ComputeUtil.computeAdd(cuMemberAchieve.getNewPv(), saOrderExt.getOrderAchieve()));
|
||||
} else {
|
||||
// 非首购处理
|
||||
cuMemberAchieve.setRepNewAmount(ComputeUtil.computeAdd(cuMemberAchieve.getRepNewAmount(), saOrderExt.getOrderAmount()));
|
||||
cuMemberAchieve.setRepNewPv(ComputeUtil.computeAdd(cuMemberAchieve.getRepNewPv(), saOrderExt.getOrderAchieve()));
|
||||
}
|
||||
cuMemberAchieve.setNewRealAmount(ComputeUtil.computeAdd(cuMemberAchieve.getNewRealAmount(), saOrderExt.getOrderAmount()));
|
||||
cuMemberAchieve.setNewRealPv(ComputeUtil.computeAdd(cuMemberAchieve.getNewRealPv(), saOrderExt.getOrderAchieve()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理汇率
|
||||
*
|
||||
|
|
|
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.hzs.activity.pick.IAcPickServiceApi;
|
||||
import com.hzs.bonus.achieve.param.MemberAchieveParam;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberAchieveService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberRangeService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
|
@ -416,10 +417,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
//********************************* 更新当天最新的业绩*************************/
|
||||
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
||||
BonusConfigDTO bonusConfigDTO = bonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
// Map<Long, MemberAchieveParam> cuMemberAchieveHashMap = new HashMap<>();
|
||||
// bonusSettlePurchaseHandle.assortSaOrder(cuMemberAchieveHashMap, firPurchaseOrderList, bonusConfigDTO, Boolean.TRUE);
|
||||
// bonusSettlePurchaseHandle.assortSaOrder(cuMemberAchieveHashMap, repurchaseOrderList, bonusConfigDTO, Boolean.FALSE);
|
||||
// cuMemberTreeService.updateCuMemberSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
|
||||
//*********************************计算奖衔 更新奖衔*********************************/
|
||||
// 开始计算奖衔 计算奖衔 更新奖衔(根据最新业绩查询变动且业绩满足下一等级,根据等级判断是否满足考核,安置考核或血缘考核)
|
||||
|
@ -427,10 +424,15 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 获取到奖衔配置
|
||||
// a)更新会员表
|
||||
// b)更新结算网体表 (月表、日表)
|
||||
|
||||
Map<Long, MemberAchieveParam> cuMemberAchieveHashMap = new HashMap<>();
|
||||
bonusSettlePurchaseHandle.assortSaOrder(cuMemberAchieveHashMap, firPurchaseOrderList, bonusConfigDTO, Boolean.TRUE);
|
||||
bonusSettlePurchaseHandle.assortSaOrder(cuMemberAchieveHashMap, repurchaseOrderList, bonusConfigDTO, Boolean.FALSE);
|
||||
cuMemberTreeService.updateCuMemberSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
// c)增加奖衔记录表
|
||||
// cuMemberAwardsService.calculateCuMemberAwards(settleDate, awardsMap, currentSettleTableName);
|
||||
cuMemberAwardsService.calculateCuMemberAwards(settleDate, awardsMap, currentSettleTableName);
|
||||
// 计算完奖衔回退业绩,最终根据新增进行回写
|
||||
// cuMemberTreeService.updateCuMemberBackSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
cuMemberTreeService.updateCuMemberBackSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
|
||||
//********************************重新考核*********************************/
|
||||
// TODO new 乐学没有分红、复购考核,这个位置需要去掉
|
||||
|
@ -452,19 +454,20 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 计算复购券
|
||||
calculateRepurchaseCoupons(DateUtils.parseDate(settleDate), firPurchaseOrderList, period, bonusConfigDTO, cuMemberBonusMap,
|
||||
recordDetailVO, cuMemberSettleExtMap);
|
||||
|
||||
// 计算乐享订单奖金,按照订单进行日结
|
||||
// 增加判断是否相同月,相同月的话昨天的考核结果更新到今天
|
||||
Boolean isSameMonth = DateUtils.getMonth(settleDate).equals(DateUtils.getMonth(yesterday));
|
||||
// 乐享奖金
|
||||
bonusSettleRangeHandle.calculateLeEnjoyBonusBySaOrder(cuMemberBonusMap, bonusConfigDTO, recordDetailVO,
|
||||
period, yesterdayPeriod, isSameMonth);
|
||||
// 计算新零售团队奖金
|
||||
// // 计算新零售团队奖金
|
||||
// bonusSettleRangeHandle.calculateRetailBonusBySaOrder(settleDate, cuMemberBonusMap, bonusConfigDTO, recordDetailVO,
|
||||
// period, yesterdayPeriod, retailOrderList, isSameMonth);
|
||||
// 验证是否月奖,验证是否是结算月底那一天,月底那一天计算云代,判断是否为月底
|
||||
|
||||
// 验证是否月奖,验证是否是结算月底那一天,月底那一天计算云代,判断是否为月底
|
||||
//*********************************计算云代奖金、 复购券均分收益************************/
|
||||
// TODO new 云代、复购券均分、分红,暂时不处理
|
||||
// // TODO new 云代、复购券均分、分红,暂时不处理
|
||||
// if (settleDate.endsWith("10")) {
|
||||
// // 计算云代奖金、复购券均分
|
||||
// calculateCloudAgentOrder(settleDate, bonusConfigDTO, period, recordDetailVO, cuMemberBonusMap);
|
||||
|
@ -473,17 +476,18 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// calculateShareBonus(settleDate, bonusConfigDTO, period, recordDetailVO, cuMemberBonusMap, cuAwardsControlMap);
|
||||
// }
|
||||
|
||||
// // 计算店铺奖金
|
||||
// if(settleDate.endsWith("10")){
|
||||
// calculateStoreOrder(settleDate, bonusConfigDTO, period, recordDetailVO, cuMemberBonusMap);
|
||||
// }
|
||||
// // 计算实际分红奖金
|
||||
// if (settleDate.endsWith("10")) {
|
||||
// calculateShareBonus(settleDate, bonusConfigDTO, period, recordDetailVO, cuMemberBonusMap);
|
||||
// }
|
||||
// 计算全球积分、车奖积分
|
||||
// 环球积分和车奖积分的规则。有荣衔,复购考核通过的10代不压缩,以推荐+拓展+领导+分红为合计基数,获取对应比例,比例根据参数配置
|
||||
// // 计算店铺奖金
|
||||
// if (settleDate.endsWith("10")) {
|
||||
// calculateStoreOrder(settleDate, bonusConfigDTO, period, recordDetailVO, cuMemberBonusMap);
|
||||
// }
|
||||
// // 计算实际分红奖金
|
||||
// if (settleDate.endsWith("10")) {
|
||||
// calculateShareBonus(settleDate, bonusConfigDTO, period, recordDetailVO, cuMemberBonusMap);
|
||||
// }
|
||||
// // 计算全球积分、车奖积分
|
||||
// // 环球积分和车奖积分的规则。有荣衔,复购考核通过的10代不压缩,以推荐+拓展+领导+分红为合计基数,获取对应比例,比例根据参数配置
|
||||
// calculateGlobalCarBonus(cuMemberSettleExtMap, currentSettleTableName, settleDate, bonusConfigDTO, period, recordDetailVO, cuMemberBonusMap);
|
||||
|
||||
// 保存当日计算的奖金
|
||||
insertCuMemberBonus(settleDate, period, cuMemberBonusMap, recordDetailVO);
|
||||
// 处理血缘业绩,统计伞下直推
|
||||
|
@ -493,6 +497,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 处理网体,更新网体新增 轮次最小值 cuMemberSettleExtMap
|
||||
cuMemberTreeService.updateCuMemberSettle(currentSettleTableName, cuMemberSettleExtMap);
|
||||
}
|
||||
|
||||
// 每日进行甩网业绩,按照条件,降结算好的业绩甩到想应的会员那边
|
||||
List<CuMemberAchieveExt> retMemberAchieveExtList = execNetAchieve(period, settleDate, currentSettleTableName);
|
||||
// 处理甩网数据
|
||||
|
@ -509,21 +514,25 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 当月第一天
|
||||
Integer currentMonthFirstPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.currentMonthFirstDateStr(DateUtils.parseStringToDate(settleDate))).getPkId();
|
||||
cuMemberAwardsService.calculateCuMemberAwardsEveryMonth(currentMonthFirstPeriod, yesterdayPeriod, period, settleDate, beforeMonthTableName, awardsMap);
|
||||
|
||||
// 计算完当日奖金后,根据业绩计算下月奖衔
|
||||
String afterDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, currentDate);
|
||||
if (afterDate.endsWith("01")) {
|
||||
// TODO new 不是月奖衔,每月初不更新(月级差奖衔需要去掉)
|
||||
// String rangeTableName = TableNameConstants.CU_MEMBER_RANGE + period;
|
||||
// // 月第一天日期
|
||||
// String monthFirstDate = DateUtils.currentMonthFirstDateStr(DateUtils.parseStringToDate(settleDate));
|
||||
// // 月第一天期数
|
||||
// Integer startPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(monthFirstDate).getPkId();
|
||||
// TODO new 不是月奖衔,每月初不更新
|
||||
// // 更新奖衔,根据新结算的奖衔
|
||||
// cuMemberTreeService.updateCuMemberAwardsBySettle(currentSettleTableName, rangeTableName, startPeriod, period);
|
||||
|
||||
// TODO new 现在没有月考核,是不是可以去掉?
|
||||
// 结算每月月末那一天,都是先删除,在新增,重新考核
|
||||
cuMemberTreeService.initCuMemberAssessData(settleDate);
|
||||
// 更新奖衔考核结果
|
||||
cuMemberAwardsService.updateCuMemberAwardsExamine(currentDate, period);
|
||||
|
||||
// 生成月表(cu_member_month)
|
||||
String monthTableName = TableNameConstants.CU_MEMBER_MONTH + DateUtils.getMonth(afterDate);
|
||||
Integer number = cuMemberTreeService.queryExistOracleTable(monthTableName);
|
||||
|
|
|
@ -9,9 +9,7 @@ import java.math.BigDecimal;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员信息-奖衔升级记录 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-08-31
|
||||
|
@ -29,39 +27,43 @@ public interface CuMemberAwardsMapper extends BaseMapper<CuMemberAwards> {
|
|||
|
||||
/**
|
||||
* 批量更新会员奖衔记录,此方法用于奖金结算,批量更新为删除状态,留存奖衔降级记录
|
||||
*
|
||||
* @param cuMemberAwardsList 更新的人
|
||||
* @param period 期间
|
||||
* @return: Integer
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/5 16:04
|
||||
*/
|
||||
* @param period 期间
|
||||
* @return: Integer
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/5 16:04
|
||||
*/
|
||||
Integer updateBatchCuMemberAwards(@Param("cuMemberAwardsList") List<CuMemberAwards> cuMemberAwardsList, @Param("period") Integer period);
|
||||
|
||||
/**
|
||||
* 查询会员最后一条奖衔升级记录
|
||||
*
|
||||
* @param cuMemberAwardsList 奖衔升级记录
|
||||
* @return: List<CuMemberAwards>
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/5 15:28
|
||||
*/
|
||||
* @return: List<CuMemberAwards>
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/5 15:28
|
||||
*/
|
||||
List<CuMemberAwards> queryLastCuMemberAwards(@Param("cuMemberAwardsList") List<?> cuMemberAwardsList);
|
||||
|
||||
/**
|
||||
* 删除自动升级的奖衔升级记录
|
||||
*
|
||||
* @param period 期间
|
||||
* @return: Integer
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/23 11:15
|
||||
*/
|
||||
Integer deleteCuMemberAwards(@Param("period")Integer period);
|
||||
* @return: Integer
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/23 11:15
|
||||
*/
|
||||
Integer deleteCuMemberAwards(@Param("period") Integer period);
|
||||
|
||||
/**
|
||||
* 批量插入奖衔记录
|
||||
*
|
||||
* @param cuMemberAwardsList 需要插入的奖衔列表
|
||||
* @return: Integer
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/5 16:55
|
||||
*/
|
||||
* @return: Integer
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/5 16:55
|
||||
*/
|
||||
Integer saveBatchCuMemberAwards(@Param("cuMemberAwardsList") List<CuMemberAwards> cuMemberAwardsList);
|
||||
|
||||
void deleteCuMemberSettleAwards(@Param("period") Integer period);
|
||||
|
@ -107,5 +109,5 @@ public interface CuMemberAwardsMapper extends BaseMapper<CuMemberAwards> {
|
|||
* @param: null null
|
||||
**/
|
||||
void updateCuMemberAwardsExamine(@Param("assessTableName") String assessTableName, @Param("awardPeriod") Integer awardPeriod,
|
||||
@Param("assessPeriod") Integer assessPeriod);
|
||||
@Param("assessPeriod") Integer assessPeriod);
|
||||
}
|
||||
|
|
|
@ -3,16 +3,13 @@ package com.hzs.bonus.detail.service;
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员信息-奖衔升级记录 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-08-31
|
||||
|
@ -21,18 +18,20 @@ public interface ICuMemberAwardsService extends IService<CuMemberAwards> {
|
|||
|
||||
/**
|
||||
* 重新计算会员的奖衔,根据累计结束后的业绩
|
||||
* @param settleDate 结算日
|
||||
*
|
||||
* @param settleDate 结算日
|
||||
* @param countryAwardsMap 国家奖衔配置
|
||||
* @param settleTableName 结算表
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/4 17:35
|
||||
*/
|
||||
* @param settleTableName 结算表
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/4 17:35
|
||||
*/
|
||||
void calculateCuMemberAwards(String settleDate, Map<String, BdAwards> countryAwardsMap, String settleTableName);
|
||||
|
||||
/**
|
||||
* 回退极差奖衔,每日重新结算,先把奖衔回退到前一天
|
||||
* @param period 结算期间
|
||||
*
|
||||
* @param period 结算期间
|
||||
* @param rangeTableName 结算表
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
|
@ -42,6 +41,7 @@ public interface ICuMemberAwardsService extends IService<CuMemberAwards> {
|
|||
|
||||
/**
|
||||
* 批量插入奖衔记录
|
||||
*
|
||||
* @param cuMemberAwardsList 需要插入的奖衔列表
|
||||
* @return: Integer
|
||||
* @Author: sui q
|
||||
|
@ -51,13 +51,14 @@ public interface ICuMemberAwardsService extends IService<CuMemberAwards> {
|
|||
|
||||
/**
|
||||
* 删除奖衔升级记录
|
||||
* @param pkOrder 订单
|
||||
* @param pkApprove 审核人
|
||||
*
|
||||
* @param pkOrder 订单
|
||||
* @param pkApprove 审核人
|
||||
* @param currentDateTime 当前时间
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/3/30 9:21
|
||||
*/
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/3/30 9:21
|
||||
*/
|
||||
void deleteCuMemberAwards(Long pkOrder, Long pkApprove, Date currentDateTime);
|
||||
|
||||
/*
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
package com.hzs.bonus.detail.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
|
||||
|
@ -24,9 +25,7 @@ import java.time.temporal.ChronoUnit;
|
|||
import java.util.*;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员信息-奖衔升级记录 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-08-31
|
||||
|
@ -34,43 +33,33 @@ import java.util.*;
|
|||
@Service
|
||||
public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper, CuMemberAwards> implements ICuMemberAwardsService {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberTreeService cuMemberTreeService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberService cuMemberService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) {
|
||||
this.cuMemberSettlePeriodService = cuMemberSettlePeriodService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberService(ICuMemberService cuMemberService) {
|
||||
this.cuMemberService = cuMemberService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberTreeService(ICuMemberTreeService cuMemberTreeService) {
|
||||
this.cuMemberTreeService = cuMemberTreeService;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void calculateCuMemberAwards(String setDate, Map<String, BdAwards> countryAwardsMap, String settleTableName) {
|
||||
// 查询结算日当天奖衔发生过变动的会员,本期
|
||||
Date settleDate = DateUtils.parseStringToDate(setDate);
|
||||
Integer period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(setDate).getPkId();
|
||||
//删除当天奖衔升级记录,自动升级的
|
||||
// 更新奖衔,回退奖衔
|
||||
|
||||
// 某一期的会员奖衔
|
||||
List<CuMemberAwards> cuMemberAwards = queryCuMemberAwardsByPeriod(period);
|
||||
// 回退会员奖衔(日结表)
|
||||
cuMemberTreeService.updateBackCuMemberSettleAward(settleTableName, period);
|
||||
// 更新会员奖衔根据临时表(会员表)
|
||||
cuMemberService.updateBackCuMemberAward(cuMemberAwards, period);
|
||||
// 回退业绩表奖衔
|
||||
baseMapper.deleteCuMemberAwards(period);
|
||||
|
||||
while (true) {
|
||||
// 查询出符合下一奖衔足够业绩的会员
|
||||
List<CuMemberSettleExt> cuMemberSettleExtList = cuMemberTreeService.queryCuMemberSettleEnoughAwardAchieve(settleTableName);
|
||||
if(!calculateAwards(countryAwardsMap, settleTableName, settleDate, period, cuMemberSettleExtList)){
|
||||
if (!calculateAwards(countryAwardsMap, settleTableName, settleDate, period, cuMemberSettleExtList)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -98,7 +87,9 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
|
||||
List<CuMemberSettleExt> enoughAwardsMemberList = new ArrayList<>();
|
||||
if (cuMemberSettleExtList.size() > 0) {
|
||||
// 安置考核会员
|
||||
List<CuMemberSettleExt> placeAwardsMemberList = new ArrayList<>();
|
||||
// 血缘考核会员
|
||||
List<CuMemberSettleExt> bloodAwardsMemberList = new ArrayList<>();
|
||||
// 用于记录原来的奖衔
|
||||
Map<Long, CuMemberSettleExt> originalCuMemberSettleMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberSettleExtList.size()));
|
||||
|
@ -106,10 +97,13 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
BdAwards bdAwards = getBdAwards(countryAwardsMap, originalCuMemberSettleMap, cuMemberSettleExt);
|
||||
// 验证关系
|
||||
if (null == bdAwards.getRelationType()) {
|
||||
// 不需要考核
|
||||
enoughAwardsMemberList.add(cuMemberSettleExt);
|
||||
} else if (ERelationType.BLOOD_KINSHIP_CHECK.getValue() == bdAwards.getRelationType()) {
|
||||
// 血缘考核
|
||||
bloodAwardsMemberList.add(cuMemberSettleExt);
|
||||
} else if (ERelationType.PLACE_CHECK.getValue() == bdAwards.getRelationType()) {
|
||||
// 安置考核
|
||||
placeAwardsMemberList.add(cuMemberSettleExt);
|
||||
} else {
|
||||
enoughAwardsMemberList.add(cuMemberSettleExt);
|
||||
|
@ -117,7 +111,7 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
});
|
||||
|
||||
List<CuMemberAwards> memberAwardsList = updateAwardsRecord(enoughAwardsMemberList, originalCuMemberSettleMap, period);
|
||||
if(memberAwardsList != null && memberAwardsList.size() >0){
|
||||
if (memberAwardsList != null && memberAwardsList.size() > 0) {
|
||||
cuMemberAwardsList.addAll(memberAwardsList);
|
||||
}
|
||||
// 需要验证安置的
|
||||
|
@ -132,10 +126,10 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
}
|
||||
});
|
||||
List<CuMemberAwards> awardsList = updateAwardsRecord(updateAwardsMemberList, originalCuMemberSettleMap, period);
|
||||
if(updateAwardsMemberList.size() >0) {
|
||||
if (updateAwardsMemberList.size() > 0) {
|
||||
enoughAwardsMemberList.addAll(updateAwardsMemberList);
|
||||
}
|
||||
if(awardsList != null && awardsList.size() >0){
|
||||
if (awardsList != null && awardsList.size() > 0) {
|
||||
cuMemberAwardsList.addAll(awardsList);
|
||||
}
|
||||
}
|
||||
|
@ -152,10 +146,10 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
}
|
||||
});
|
||||
List<CuMemberAwards> awardsList = updateAwardsRecord(updateAwardsMemberList, originalCuMemberSettleMap, period);
|
||||
if(updateAwardsMemberList.size() >0) {
|
||||
if (updateAwardsMemberList.size() > 0) {
|
||||
enoughAwardsMemberList.addAll(updateAwardsMemberList);
|
||||
}
|
||||
if(awardsList != null && awardsList.size() >0){
|
||||
if (awardsList != null && awardsList.size() > 0) {
|
||||
cuMemberAwardsList.addAll(awardsList);
|
||||
}
|
||||
}
|
||||
|
@ -164,12 +158,13 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
// 将变动值插入临时表中
|
||||
// 更新会员表
|
||||
cuMemberService.updateCuMemberByPeriod(enoughAwardsMemberList, period);
|
||||
// 更新结算网体表(月表、日表)
|
||||
// 根据结算日期获得所有需要更新的周期
|
||||
// 更新结算网体表 -- 结算日期到当前日期的所有日结算表
|
||||
updateMemberAwardPeriod(settleDate);
|
||||
return Boolean.TRUE;
|
||||
}else {
|
||||
} else {
|
||||
// 更新会员表
|
||||
cuMemberService.updateCuMemberByPeriod(null, period);
|
||||
// 更新结算网体表 -- 结算日期到当前日期的所有日结算表
|
||||
updateMemberAwardPeriod(settleDate);
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
|
@ -188,11 +183,11 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
|
||||
@Override
|
||||
public void deleteCuMemberAwards(Long pkOrder, Long pkApprove, Date currentDateTime) {
|
||||
UpdateWrapper<CuMemberAwards> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.set(SystemFieldConstants.DEL_FLAG, EYesNo.NO.getIntValue());
|
||||
updateWrapper.set(SystemFieldConstants.PK_MODIFIED, pkApprove);
|
||||
updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, currentDateTime);
|
||||
updateWrapper.eq(SaOrderFieldConstants.PK_ORDER, pkOrder);
|
||||
LambdaUpdateWrapper<CuMemberAwards> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.set(CuMemberAwards::getDelFlag, EYesNo.NO.getIntValue());
|
||||
updateWrapper.set(CuMemberAwards::getPkModified, pkApprove);
|
||||
updateWrapper.set(CuMemberAwards::getModifiedTime, currentDateTime);
|
||||
updateWrapper.eq(CuMemberAwards::getPkOrder, pkOrder);
|
||||
update(updateWrapper);
|
||||
}
|
||||
|
||||
|
@ -203,10 +198,10 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
List<BdAwards> bdAwardsList = new ArrayList<>();
|
||||
for (String key : awardsMap.keySet()) {
|
||||
BdAwards bdAwards = awardsMap.get(key);
|
||||
if(bdAwards.getPkCountry().equals(CountryConstants.CHINA_COUNTRY) && ComputeUtil.compareValue(bdAwards.getCommunityCheck()) && ComputeUtil.compareGreaterThan(minAchieve, bdAwards.getCommunityCheck())){
|
||||
if (bdAwards.getPkCountry().equals(CountryConstants.CHINA_COUNTRY) && ComputeUtil.compareValue(bdAwards.getCommunityCheck()) && ComputeUtil.compareGreaterThan(minAchieve, bdAwards.getCommunityCheck())) {
|
||||
minAchieve = bdAwards.getCommunityCheck();
|
||||
}
|
||||
if(ComputeUtil.compareValue(bdAwards.getCommunityCheck()) && bdAwards.getPkCountry().equals(CountryConstants.CHINA_COUNTRY)) {
|
||||
if (ComputeUtil.compareValue(bdAwards.getCommunityCheck()) && bdAwards.getPkCountry().equals(CountryConstants.CHINA_COUNTRY)) {
|
||||
bdAwardsList.add(bdAwards);
|
||||
}
|
||||
}
|
||||
|
@ -246,8 +241,8 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
* @Author: sui q
|
||||
* @Date: 2023/2/23 17:44
|
||||
*/
|
||||
private List<CuMemberAwards> updateAwardsRecord(List<CuMemberSettleExt> enoughAwardsMemberList, Map<Long, CuMemberSettleExt> originalCuMemberSettleMap,
|
||||
Integer period) {
|
||||
private List<CuMemberAwards> updateAwardsRecord(List<CuMemberSettleExt> enoughAwardsMemberList, Map<Long, CuMemberSettleExt> originalCuMemberSettleMap,
|
||||
Integer period) {
|
||||
if (enoughAwardsMemberList.size() == 0) {
|
||||
return null;
|
||||
}
|
||||
|
@ -255,7 +250,6 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
// 增加奖衔记录表
|
||||
// 更新升奖衔的会员,插入升衔记录
|
||||
return upgradeCuMemberAwards(enoughAwardsMemberList, originalCuMemberSettleMap, period);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -266,7 +260,7 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
* @param period 期间
|
||||
*/
|
||||
private List<CuMemberAwards> upgradeCuMemberAwards(List<CuMemberSettleExt> enoughAwardsMemberList, Map<Long, CuMemberSettleExt> originalCuMemberSettleMap,
|
||||
Integer period) {
|
||||
Integer period) {
|
||||
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
|
||||
if (enoughAwardsMemberList.size() > 0) {
|
||||
// 记录要入库的,为了验证是否首次晋升
|
||||
|
@ -347,9 +341,9 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
|
|||
* @Date: 2022/11/5 14:21
|
||||
*/
|
||||
private List<CuMemberAwards> queryCuMemberAwardsByPeriod(Integer period) {
|
||||
QueryWrapper<CuMemberAwards> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq(MemberFieldConstants.PERIOD, period);
|
||||
queryWrapper.eq(MemberFieldConstants.UP_TYPE, EUpgradeType.AUTO_UPGRADE.getValue());
|
||||
LambdaQueryWrapper<CuMemberAwards> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(CuMemberAwards::getPeriod, period);
|
||||
queryWrapper.eq(CuMemberAwards::getUpType, EUpgradeType.AUTO_UPGRADE.getValue());
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
|
|
|
@ -170,18 +170,18 @@
|
|||
from (
|
||||
<foreach collection="memberAchieveParamList" item="achieve" open=" " separator=" union all " close=" ">
|
||||
select pk_place_parent pk_member,#{achieve.pkRate} pk_rate,
|
||||
(case when place_dept =1 then #{achieve.newAmount} else 0 end) a_new_amount,
|
||||
(case when place_dept =1 then #{achieve.newPv} else 0 end) a_new_pv,
|
||||
(case when place_dept =1 then #{achieve.repNewAmount} else 0 end) rep_a_new_amount,
|
||||
(case when place_dept =1 then #{achieve.repNewPv} else 0 end) rep_a_new_pv,
|
||||
(case when place_dept =1 then #{achieve.newRealAmount} else 0 end) a_new_real_amount,
|
||||
(case when place_dept =1 then #{achieve.newRealPv} else 0 end) a_new_real_pv,
|
||||
(case when place_dept =2 then #{achieve.newAmount} else 0 end) b_new_amount,
|
||||
(case when place_dept =2 then #{achieve.newPv} else 0 end) b_new_pv,
|
||||
(case when place_dept =2 then #{achieve.repNewAmount} else 0 end) rep_b_new_amount,
|
||||
(case when place_dept =2 then #{achieve.repNewPv} else 0 end) rep_b_new_pv,
|
||||
(case when place_dept =2 then #{achieve.newRealAmount} else 0 end) b_new_real_amount,
|
||||
(case when place_dept =2 then #{achieve.newRealPv} else 0 end) b_new_real_pv
|
||||
(case when place_dept = 1 then #{achieve.newAmount} else 0 end) a_new_amount,
|
||||
(case when place_dept = 1 then #{achieve.newPv} else 0 end) a_new_pv,
|
||||
(case when place_dept = 1 then #{achieve.repNewAmount} else 0 end) rep_a_new_amount,
|
||||
(case when place_dept = 1 then #{achieve.repNewPv} else 0 end) rep_a_new_pv,
|
||||
(case when place_dept = 1 then #{achieve.newRealAmount} else 0 end) a_new_real_amount,
|
||||
(case when place_dept = 1 then #{achieve.newRealPv} else 0 end) a_new_real_pv,
|
||||
(case when place_dept = 2 then #{achieve.newAmount} else 0 end) b_new_amount,
|
||||
(case when place_dept = 2 then #{achieve.newPv} else 0 end) b_new_pv,
|
||||
(case when place_dept = 2 then #{achieve.repNewAmount} else 0 end) rep_b_new_amount,
|
||||
(case when place_dept = 2 then #{achieve.repNewPv} else 0 end) rep_b_new_pv,
|
||||
(case when place_dept = 2 then #{achieve.newRealAmount} else 0 end) b_new_real_amount,
|
||||
(case when place_dept = 2 then #{achieve.newRealPv} else 0 end) b_new_real_pv
|
||||
from(
|
||||
select pk_place_parent,place_dept from(
|
||||
select * from ${tableName}
|
||||
|
@ -224,18 +224,18 @@
|
|||
from (
|
||||
<foreach collection="memberAchieveParamList" item="achieve" open=" " separator=" union all " close=" ">
|
||||
select pk_place_parent pk_member,#{achieve.pkRate} pk_rate,
|
||||
(case when place_dept =1 then #{achieve.newAmount} else 0 end) a_new_amount,
|
||||
(case when place_dept =1 then #{achieve.newPv} else 0 end) a_new_pv,
|
||||
(case when place_dept =1 then #{achieve.repNewAmount} else 0 end) rep_a_new_amount,
|
||||
(case when place_dept =1 then #{achieve.repNewPv} else 0 end) rep_a_new_pv,
|
||||
(case when place_dept =1 then #{achieve.newRealAmount} else 0 end) a_new_real_amount,
|
||||
(case when place_dept =1 then #{achieve.newRealPv} else 0 end) a_new_real_pv,
|
||||
(case when place_dept =2 then #{achieve.newAmount} else 0 end) b_new_amount,
|
||||
(case when place_dept =2 then #{achieve.newPv} else 0 end) b_new_pv,
|
||||
(case when place_dept =2 then #{achieve.repNewAmount} else 0 end) rep_b_new_amount,
|
||||
(case when place_dept =2 then #{achieve.repNewPv} else 0 end) rep_b_new_pv,
|
||||
(case when place_dept =2 then #{achieve.newRealAmount} else 0 end) b_new_real_amount,
|
||||
(case when place_dept =2 then #{achieve.newRealPv} else 0 end) b_new_real_pv
|
||||
(case when place_dept = 1 then #{achieve.newAmount} else 0 end) a_new_amount,
|
||||
(case when place_dept = 1 then #{achieve.newPv} else 0 end) a_new_pv,
|
||||
(case when place_dept = 1 then #{achieve.repNewAmount} else 0 end) rep_a_new_amount,
|
||||
(case when place_dept = 1 then #{achieve.repNewPv} else 0 end) rep_a_new_pv,
|
||||
(case when place_dept = 1 then #{achieve.newRealAmount} else 0 end) a_new_real_amount,
|
||||
(case when place_dept = 1 then #{achieve.newRealPv} else 0 end) a_new_real_pv,
|
||||
(case when place_dept = 2 then #{achieve.newAmount} else 0 end) b_new_amount,
|
||||
(case when place_dept = 2 then #{achieve.newPv} else 0 end) b_new_pv,
|
||||
(case when place_dept = 2 then #{achieve.repNewAmount} else 0 end) rep_b_new_amount,
|
||||
(case when place_dept = 2 then #{achieve.repNewPv} else 0 end) rep_b_new_pv,
|
||||
(case when place_dept = 2 then #{achieve.newRealAmount} else 0 end) b_new_real_amount,
|
||||
(case when place_dept = 2 then #{achieve.newRealPv} else 0 end) b_new_real_pv
|
||||
from(
|
||||
select pk_place_parent,place_dept from(
|
||||
select * from ${tableName}
|
||||
|
|
|
@ -1179,6 +1179,7 @@
|
|||
connect by t.pk_member = prior t.pk_place_parent) tmp
|
||||
on ct.pk_member = tmp.pk_member
|
||||
</select>
|
||||
|
||||
<select id="queryCuMemberSettleEnoughAwardAchieve" resultMap="CuMemberSettleExt">
|
||||
select a.pk_member,
|
||||
a.pk_parent,
|
||||
|
|
|
@ -34,11 +34,12 @@
|
|||
|
||||
<insert id="saveBatchCuMemberAwards">
|
||||
insert ALL
|
||||
<foreach item="item" index="index" collection="cuMemberAwardsList" separator=" " >
|
||||
into cu_member_awards(pk_member,period,up_type,old_level,new_level,purchase_status,pk_creator,pk_country) values
|
||||
<foreach item="item" index="index" collection="cuMemberAwardsList" separator=" ">
|
||||
into cu_member_awards(pk_member,period,up_type,old_level,new_level,purchase_status,pk_creator,pk_country)
|
||||
values
|
||||
(
|
||||
#{item.pkMember},#{item.period},#{item.upType},#{item.oldLevel},#{item.newLevel},#{item.purchaseStatus},#{item.pkCreator},
|
||||
#{item.pkCountry}
|
||||
#{item.pkCountry}
|
||||
)
|
||||
</foreach>
|
||||
SELECT 1 FROM dual
|
||||
|
@ -71,21 +72,24 @@
|
|||
insert(pk_id,period,pk_member,a_balance,b_balance,a_new_pv,b_new_pv,new_pv,pk_country,assess_status)
|
||||
values(cu_member_settle_awards_seq.nextval,b.period,b.pk_member,b.a_balance,b.b_balance,b.a_new_pv,b.b_new_pv,b.new_pv,b.pk_country,3)
|
||||
</update>
|
||||
|
||||
<update id="calculateCuMemberAwards">
|
||||
merge into cu_member_settle_awards a
|
||||
using(
|
||||
select pk_member,period,max(pk_awards) pk_awards from(
|
||||
select pk_member,period,max(pk_awards) pk_awards from(
|
||||
<foreach collection="bdAwardsList" item="item" open=" " close=" " separator=" union ">
|
||||
select pk_member,period,#{item.pkId} pk_awards from cu_member_settle_awards
|
||||
select pk_member,period,#{item.pkId} pk_awards
|
||||
from cu_member_settle_awards
|
||||
where period = #{period} and pk_country=#{item.pkCountry} and new_pv>=#{item.communityCheck}
|
||||
<if test="item.communityCheckEnd != null and item.communityCheckEnd > 0">
|
||||
and new_pv <#{item.communityCheckEnd}
|
||||
</if>
|
||||
</foreach>)
|
||||
group by pk_member,period
|
||||
</foreach>
|
||||
)
|
||||
group by pk_member,period
|
||||
) b on (a.pk_member=b.pk_member and a.period=b.period)
|
||||
when matched then
|
||||
update set a.pk_awards=b.pk_awards
|
||||
update set a.pk_awards = b.pk_awards
|
||||
</update>
|
||||
|
||||
<update id="updateBatchCuMemberAwards">
|
||||
|
@ -112,43 +116,57 @@
|
|||
|
||||
<update id="calculateCuMemberRangeAwardsEveryMonth">
|
||||
merge into cu_member_settle_awards a
|
||||
using(
|
||||
select #{period} period,b.pk_member,b.max_team_pv,b.small_team_pv new_pv from(
|
||||
select pk_parent pk_member,max(team_month_pv+new_pv) max_team_pv,
|
||||
(sum(team_month_pv+new_pv)-max(team_month_pv+new_pv)) small_team_pv,
|
||||
count(pk_parent) dept_num from ${rangeTableName}
|
||||
group by pk_parent
|
||||
having count(pk_parent)>=2) b
|
||||
where b.small_team_pv>=#{minAchieve}) b
|
||||
on (a.pk_member=b.pk_member and a.period=b.period)
|
||||
using (
|
||||
select #{period} period, b.pk_member, b.max_team_pv, b.small_team_pv new_pv
|
||||
from (
|
||||
select pk_parent pk_member,
|
||||
max(team_month_pv + new_pv) max_team_pv,
|
||||
(sum(team_month_pv + new_pv) - max(team_month_pv + new_pv)) small_team_pv,
|
||||
count(pk_parent) dept_num
|
||||
from ${rangeTableName}
|
||||
group by pk_parent
|
||||
having count(pk_parent) >= 2) b
|
||||
where b.small_team_pv >= #{minAchieve}) b
|
||||
on (a.pk_member = b.pk_member and a.period = b.period)
|
||||
when matched then
|
||||
update set a.a_new_pv=b.max_team_pv,a.b_new_pv=b.new_pv,a.new_pv=b.new_pv
|
||||
update set a.a_new_pv = b.max_team_pv,a.b_new_pv = b.new_pv,a.new_pv = b.new_pv
|
||||
when not matched then
|
||||
insert(pk_id,period,pk_member,a_balance,b_balance,a_new_pv,b_new_pv,new_pv,pk_country,assess_status)
|
||||
values(cu_member_settle_awards_seq.nextval,b.period,b.pk_member,0,0,b.max_team_pv,b.new_pv,b.new_pv,1,3)
|
||||
insert (pk_id, period, pk_member, a_balance, b_balance, a_new_pv, b_new_pv, new_pv, pk_country,
|
||||
assess_status)
|
||||
values (cu_member_settle_awards_seq.nextval, b.period, b.pk_member, 0, 0, b.max_team_pv, b.new_pv,
|
||||
b.new_pv, 1, 3)
|
||||
</update>
|
||||
|
||||
<delete id="deleteCuMemberAwards">
|
||||
delete from cu_member_awards where period = #{period} and up_type = 1
|
||||
</delete>
|
||||
|
||||
<delete id="deleteCuMemberSettleAwards">
|
||||
delete from cu_member_settle_awards where period = #{period}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteRepeatCuMemberAwards">
|
||||
delete from cu_member_settle_awards where pk_id in(
|
||||
select a.pk_id from (
|
||||
select ct.pk_id,ct.pk_member,ba.awards_value from cu_member_settle_awards ct
|
||||
inner join bd_awards ba
|
||||
on ct.pk_awards=ba.pk_id and ba.del_flag=0
|
||||
where period= #{period}) a
|
||||
inner join(
|
||||
select ct.*,bw.awards_value from(
|
||||
select pk_member,max(pk_awards) pk_awards from cu_member_settle_awards
|
||||
where period between #{firstPeriod} and #{yesPeriod}
|
||||
group by pk_member) ct
|
||||
inner join bd_awards bw
|
||||
on ct.pk_awards=bw.pk_id and bw.del_flag=0
|
||||
) b
|
||||
on a.pk_member=b.pk_member and a.awards_value <=b.awards_value)
|
||||
delete
|
||||
from cu_member_settle_awards
|
||||
where pk_id in (
|
||||
select a.pk_id
|
||||
from (
|
||||
select ct.pk_id, ct.pk_member, ba.awards_value
|
||||
from cu_member_settle_awards ct
|
||||
inner join bd_awards ba
|
||||
on ct.pk_awards = ba.pk_id and ba.del_flag = 0
|
||||
where period = #{period}) a
|
||||
inner join(
|
||||
select ct.*, bw.awards_value
|
||||
from (
|
||||
select pk_member, max(pk_awards) pk_awards
|
||||
from cu_member_settle_awards
|
||||
where period between #{firstPeriod} and #{yesPeriod}
|
||||
group by pk_member) ct
|
||||
inner join bd_awards bw
|
||||
on ct.pk_awards = bw.pk_id and bw.del_flag = 0
|
||||
) b
|
||||
on a.pk_member = b.pk_member and a.awards_value <= b.awards_value)
|
||||
</delete>
|
||||
|
||||
<select id="queryLastCuMemberAwards" resultMap="CuMemberAwards">
|
||||
|
|
Loading…
Reference in New Issue