## 考核处理改为全员考核处理;

This commit is contained in:
cabbage 2025-07-30 15:08:01 +08:00
parent 96967927b3
commit cd8140a1f7
18 changed files with 92 additions and 86 deletions

View File

@ -177,7 +177,6 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
// 直接计算奖金 业绩 * 计算值判断是否有扣项 // 直接计算奖金 业绩 * 计算值判断是否有扣项
// 获取等级对应的业绩 // 获取等级对应的业绩
BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
// TODO new 乐学处理直接使用订单业绩不跟等级业绩走
// // 获得升级方式 // // 获得升级方式
// String value = systemConfigMap.get(targetMemberSettleExt.getPkSettleCountry() + ESystemConfig.UPGRADE_WAY.getKey()); // String value = systemConfigMap.get(targetMemberSettleExt.getPkSettleCountry() + ESystemConfig.UPGRADE_WAY.getKey());
// if (Objects.equals(Integer.toString(EUpgradeWay.COVER.getValue()), value) && CollectionUtil.isNotEmpty(gradeList)) { // if (Objects.equals(Integer.toString(EUpgradeWay.COVER.getValue()), value) && CollectionUtil.isNotEmpty(gradeList)) {

View File

@ -69,17 +69,6 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
continue; continue;
} }
// TODO new 乐学没有复购考核校验改为校验月新增小区业绩
// // 正常状态的辅导奖需要判断复购考核复购考核不通过的状态变为烧伤
// if (EYesNo.NO.getIntValue() == targetMemberSettleExt.getPurchaseStatus()) {
// // 需要复购考核的
// CuMemberAssess cuMemberAssess = cuMemberAssessMap.get(targetMemberSettleExt.getPkMember());
// if (cuMemberAssess == null) {
// pkParent = targetMemberSettleExt.getPkParent();
// continue;
// }
// }
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, saOrderExt, targetMemberSettleExt); CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, saOrderExt, targetMemberSettleExt);
// 直推奖金明细 // 直推奖金明细
int pkBonusItem = getPkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.HELP_EACH_INCOME.getValue()); int pkBonusItem = getPkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.HELP_EACH_INCOME.getValue());
@ -193,8 +182,6 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
Map<Long, CuMemberBonus> cuMemberBonusMap, SaOrderExt saOrderExt, Map<Long, CuMemberBonus> cuMemberBonusMap, SaOrderExt saOrderExt,
List<CuMemberSettleExt> cuMemberSettleExtList, String settleDateStr) { List<CuMemberSettleExt> cuMemberSettleExtList, String settleDateStr) {
// 根据订单获取轮次要回写 // 根据订单获取轮次要回写
// 乐学新制度没有没有复购考核了
// Map<Long, CuMemberAssess> cuMemberAssessMap = getCuMemberAssessMap(cuMemberSettleExtMap, settleDateStr, cuMemberSettleExtList);
return calculateRepurchasePushBonusOne(cuMemberSettleExtMap, bonusConfigDTO, null, period, cuMemberBonusMap, saOrderExt); return calculateRepurchasePushBonusOne(cuMemberSettleExtMap, bonusConfigDTO, null, period, cuMemberBonusMap, saOrderExt);
} }

View File

@ -468,7 +468,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
List<SaOrderExt> mallOrderList = new ArrayList<>(); List<SaOrderExt> mallOrderList = new ArrayList<>();
// 拓展收益订单 -- 2025.05.13 拓展收益比例改为12首购+复购业绩合并计算 // 拓展收益订单 -- 2025.05.13 拓展收益比例改为12首购+复购业绩合并计算
List<SaOrderExt> expandOrderList = newExpandFlag ? new ArrayList<>() : null; List<SaOrderExt> expandOrderList = newExpandFlag ? new ArrayList<>() : null;
// 特殊订单目前乐学易考
// 其他订单 注意累计业绩已经在计算奖衔前累计完成不需要在计算累计业绩只需要计算新增跟结余过滤掉其他订单 // 其他订单 注意累计业绩已经在计算奖衔前累计完成不需要在计算累计业绩只需要计算新增跟结余过滤掉其他订单
saOrderExtList.forEach(saOrderExt -> { saOrderExtList.forEach(saOrderExt -> {
//根据订单状态回退网体,查询撤销订单, 撤销订单不进行结算 //根据订单状态回退网体,查询撤销订单, 撤销订单不进行结算

View File

@ -216,7 +216,7 @@ public interface CuMemberAssessMapper extends BaseMapper<CuMemberAssess> {
@Param("startDate") Date startDate); @Param("startDate") Date startDate);
/** /**
* 处理考试通过会员 * 处理会员考核
* *
* @param accessTableName * @param accessTableName
* @param startDate * @param startDate

View File

@ -420,7 +420,7 @@ public class CuMemberAssessServiceImpl extends ServiceImpl<CuMemberAssessMapper,
baseMapper.createPassMemberAssess(assessTableName, monthStartDate, endDate, startDate); baseMapper.createPassMemberAssess(assessTableName, monthStartDate, endDate, startDate);
// 会员复购订单首月免考 // 会员复购订单首月免考
// 当月会员复购考核 // 当月会员复购考核撤单可能更新为考核不通过
baseMapper.updatePassMemberAssess(assessTableName, startDate, endDate); baseMapper.updatePassMemberAssess(assessTableName, startDate, endDate);
// 初始化考核数据 // 初始化考核数据

View File

@ -10,15 +10,10 @@ import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* <p>
* 会员信息-会员考核记录VO * 会员信息-会员考核记录VO
* </p>
*
* @author hzs
* @since 2022-08-31
*/ */
@Data @Data
public class CuMemberAssessVO { public class CuMemberAssessVO {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -62,8 +57,6 @@ public class CuMemberAssessVO {
private String orderCode; private String orderCode;
/** /**
* 交易时间 * 交易时间
*/ */
@ -141,9 +134,4 @@ public class CuMemberAssessVO {
List<Integer> orderTypeList; List<Integer> orderTypeList;
} }

View File

@ -1185,7 +1185,7 @@
from ${assessTableName} cma from ${assessTableName} cma
where cma.del_flag = 0 where cma.del_flag = 0
and cma.assess_type = 5 and cma.assess_type = 5
and cma.assess_status in (1, 2)) tmp and cma.assess_status in (0, 1)) tmp
on (tmp.pk_member = cms.pk_member) on (tmp.pk_member = cms.pk_member)
when matched then when matched then
update set cms.is_maker_space = 0 update set cms.is_maker_space = 0

View File

@ -460,12 +460,19 @@
<update id="createPassMemberAssess"> <update id="createPassMemberAssess">
merge into ${accessTableName} cma merge into ${accessTableName} cma
using ( using (
select cm.pk_id select cm.pk_id,
case
when cm.pay_time >= #{monthStartDate} and #{endDate} >= cm.pay_time then 0
else 1
end is_examine,
case
when cm.pay_time >= #{monthStartDate} and #{endDate} >= cm.pay_time then 1
else 2
end assess_status
from cu_member cm from cu_member cm
where cm.del_flag = 0 where cm.del_flag = 0
and cm.category = 0
and cm.pay_status = 1 and cm.pay_status = 1
and cm.pay_time >= #{monthStartDate}
and #{endDate} >= cm.pay_time
) tmp ) tmp
on (cma.pk_member = tmp.pk_id and assess_type = 5 and cma.del_flag = 0) on (cma.pk_member = tmp.pk_id and assess_type = 5 and cma.del_flag = 0)
when not matched then when not matched then
@ -479,35 +486,46 @@
end_date) end_date)
values (tmp.pk_id, values (tmp.pk_id,
5, 5,
0, tmp.is_examine,
1, tmp.assess_status,
tmp.pk_id, tmp.pk_id,
#{startDate}, #{startDate},
#{endDate}) #{endDate})
</update> </update>
<!-- 处理考试通过会员 --> <!-- 处理会员考核 -->
<update id="updatePassMemberAssess"> <update id="updatePassMemberAssess">
merge into ${accessTableName} cma merge into ${accessTableName} cma
using (select tmp.pk_member, tmp.pay_time using (select tmp.pk_member,
from (select so.pk_member, min(so.pay_time) pay_time tmp.pay_time,
from sa_order so case
where so.del_flag = 0 when tmp.pay_time is null then 2
and so.order_type = 3 else 0
and so.order_status = 1 end assess_status
and so.order_achieve > 0 from (select cma.pk_member, tmp.pay_time
and so.pay_time >= #{startDate} from ${accessTableName} cma
and #{endDate} >= so.pay_time left join (select so.pk_member, min(so.pay_time) pay_time
group by so.pk_member) tmp from sa_order so
where so.del_flag = 0
and so.order_type = 3
and so.order_status = 1
and so.order_achieve > 0
and so.pay_time >= #{startDate}
and #{endDate} >= so.pay_time
group by so.pk_member) tmp
on tmp.pk_member = cma.pk_member
where cma.assess_type = 5
and cma.is_examine = 1
and cma.del_flag = 0) tmp
left join ${accessTableName} cma left join ${accessTableName} cma
on cma.pk_member = tmp.pk_member on cma.pk_member = tmp.pk_member
and cma.assess_type = 0 and cma.assess_type = 5
and cma.del_flag = 0 and cma.is_examine = 1
where cma.start_date is null and cma.del_flag = 0) tmp
or tmp.pay_time > cma.start_date) tmp on (cma.pk_member = tmp.pk_member and assess_type = 5 and cma.is_examine = 1 and cma.del_flag = 0)
on (cma.pk_member = tmp.pk_member and assess_type = 5 and cma.del_flag = 0 and cma.is_examine = 1)
when matched then when matched then
update set cma.start_date = tmp.pay_time update set cma.assess_status = tmp.assess_status,
cma.start_date = tmp.pay_time
when not matched then when not matched then
insert insert
(pk_member, (pk_member,
@ -517,7 +535,14 @@
pk_creator, pk_creator,
start_date, start_date,
end_date) end_date)
values (tmp.pk_member, 5, 1, 0, tmp.pk_member, trunc(tmp.pay_time), #{endDate}) values
(tmp.pk_member,
5,
1,
tmp.assess_status,
tmp.pk_member,
trunc(tmp.pay_time),
#{endDate})
</update> </update>
<!-- 初始化区域考核数据 --> <!-- 初始化区域考核数据 -->

View File

@ -23,6 +23,11 @@ public class MemberAssessParam implements Serializable {
*/ */
private String memberCode; private String memberCode;
/**
* 考核状态
*/
private Integer assessStatus;
/** /**
* 考核类型 * 考核类型
*/ */

View File

@ -12,12 +12,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* <p>
* 会员信息-会员考核记录VO * 会员信息-会员考核记录VO
* </p>
*
* @author hzs
* @since 2022-08-31
*/ */
@Data @Data
public class CuMemberAssessVO implements Serializable { public class CuMemberAssessVO implements Serializable {

View File

@ -1,11 +1,14 @@
package com.hzs.member.detail.vo; package com.hzs.member.detail.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.BigDecimalFormat;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
/** /**
* 会员考核列表返回VO * 会员考核列表返回VO
@ -51,10 +54,18 @@ public class MemberAssessVO implements Serializable {
/** /**
* 考核目标 * 考核目标
*/ */
@BigDecimalFormat
private BigDecimal assessTarget; private BigDecimal assessTarget;
/** /**
* 新増业绩 * 新増业绩
*/ */
@BigDecimalFormat
private BigDecimal monthAdd; private BigDecimal monthAdd;
/**
* 免考通过时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startDate;
} }

View File

@ -170,6 +170,9 @@
<if test="param.memberCode != null and param.memberCode != ''"> <if test="param.memberCode != null and param.memberCode != ''">
and cm.member_code like #{param.memberCode} || '%' and cm.member_code like #{param.memberCode} || '%'
</if> </if>
<if test="param.assessStatus != null">
and cma.assess_status = #{param.assessStatus}
</if>
<if test="param.assessTypeList != null and param.assessTypeList.size > 0"> <if test="param.assessTypeList != null and param.assessTypeList.size > 0">
and cma.assess_type in and cma.assess_type in
<foreach collection="param.assessTypeList" item="item" open="(" separator="," close=")"> <foreach collection="param.assessTypeList" item="item" open="(" separator="," close=")">

View File

@ -2114,7 +2114,7 @@ public class EnumsController extends BaseController {
public AjaxResult assessStatus() { public AjaxResult assessStatus() {
List<EnumEntity> enumEntityList = new ArrayList<>(); List<EnumEntity> enumEntityList = new ArrayList<>();
for (EAssessStatus value : EAssessStatus.values()) { for (EAssessStatus value : EAssessStatus.values()) {
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ASSESS_STATUS)); enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel()));
} }
return AjaxResult.success(enumEntityList); return AjaxResult.success(enumEntityList);
} }

View File

@ -1,6 +1,5 @@
package com.hzs.common.core.enums; package com.hzs.common.core.enums;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
@ -14,19 +13,19 @@ public enum EAssessStatus {
/** /**
* 0=考核通过 1=免考通过 2=考核不通过 3=不考核 * 0=考核通过 1=免考通过 2=考核不通过 3=不考核
*/ */
EXAMINE_PASS(0, "考核通过", 0, EnumsPrefixConstants.ASSESS_STATUS + 0), EXAMINE_PASS(0, "考核通过", 0),
/** /**
* 1=免考通过 * 1=免考通过
*/ */
EXEMPT_PASS(1, "免考通过", 0, EnumsPrefixConstants.ASSESS_STATUS + 1), EXEMPT_PASS(1, "免考通过", 0),
/** /**
* 2=考核不通过 * 2=考核不通过
*/ */
EXAMINE_NO_PASS(2, "考核不通过", 0, EnumsPrefixConstants.ASSESS_STATUS + 2), EXAMINE_NO_PASS(2, "考核不通过", 0),
/** /**
* 3=不考核 * 3=不考核
*/ */
NO_EXAMINE(3, "不考核", 0, EnumsPrefixConstants.ASSESS_STATUS + 3), NO_EXAMINE(3, "不考核", 0),
; ;
@ -42,10 +41,6 @@ public enum EAssessStatus {
* 是否启用0=,1= -- 来源EYesNo * 是否启用0=,1= -- 来源EYesNo
*/ */
private final int enable; private final int enable;
/**
* 国际化翻译key值
*/
private final String key;
public static String getLabelByValue(Integer value) { public static String getLabelByValue(Integer value) {

View File

@ -5,11 +5,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
/** /**
* @Description: 考核状态(会员端专用) * 考核状态(会员端专用)
* @Author: sui q
* @Time: 2022/11/9 13:33
* @Classname: EAssessStatus
* @PackageName: com.hzs.common.core.enums
*/ */
@AllArgsConstructor @AllArgsConstructor
@Getter @Getter

View File

@ -4,13 +4,6 @@ import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
/**
* @Description:
* @Author: yuhui
* @Time: 2023/4/19 9:07
* @Classname: ERepurchaseType
* @PackageName: com.hzs.common.enums
*/
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum ERepurchaseType { public enum ERepurchaseType {

View File

@ -8,8 +8,6 @@ import java.util.List;
/** /**
* 枚举统一返回实体 * 枚举统一返回实体
*
* @author: jiiangchao
*/ */
@AllArgsConstructor @AllArgsConstructor
@Data @Data
@ -69,9 +67,9 @@ public class EnumEntity {
/** /**
* 需要翻译的构造函数 * 需要翻译的构造函数
* *
* @param value * @param value
* @param label 标签 * @param label 标签
* @param field 字段 * @param field 字段
* @param transactionKey 翻译健 * @param transactionKey 翻译健
*/ */
public EnumEntity(int value, String label, String field, String transactionKey) { public EnumEntity(int value, String label, String field, String transactionKey) {

View File

@ -1,6 +1,7 @@
package com.hzs.common.domain.member.detail; package com.hzs.common.domain.member.detail;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
@ -109,5 +110,16 @@ public class CuMemberAssess extends BaseEntity {
@TableField("MONTH_SURPLUS") @TableField("MONTH_SURPLUS")
private BigDecimal monthSurplus; private BigDecimal monthSurplus;
/**
* 免考开始时间
*/
@TableField("START_DATE")
private Date startDate;
/**
* 免考结束时间
*/
@TableField("END_DATE")
private Date endDate;
} }