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

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

View File

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

View File

@ -69,17 +69,6 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
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);
// 直推奖金明细
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,
List<CuMemberSettleExt> cuMemberSettleExtList, String settleDateStr) {
// 根据订单获取轮次要回写
// 乐学新制度没有没有复购考核了
// Map<Long, CuMemberAssess> cuMemberAssessMap = getCuMemberAssessMap(cuMemberSettleExtMap, settleDateStr, cuMemberSettleExtList);
return calculateRepurchasePushBonusOne(cuMemberSettleExtMap, bonusConfigDTO, null, period, cuMemberBonusMap, saOrderExt);
}

View File

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

View File

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

View File

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

View File

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

View File

@ -1185,7 +1185,7 @@
from ${assessTableName} cma
where cma.del_flag = 0
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)
when matched then
update set cms.is_maker_space = 0

View File

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

View File

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

View File

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

View File

@ -1,11 +1,14 @@
package com.hzs.member.detail.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.BigDecimalFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 会员考核列表返回VO
@ -51,10 +54,18 @@ public class MemberAssessVO implements Serializable {
/**
* 考核目标
*/
@BigDecimalFormat
private BigDecimal assessTarget;
/**
* 新増业绩
*/
@BigDecimalFormat
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 != ''">
and cm.member_code like #{param.memberCode} || '%'
</if>
<if test="param.assessStatus != null">
and cma.assess_status = #{param.assessStatus}
</if>
<if test="param.assessTypeList != null and param.assessTypeList.size > 0">
and cma.assess_type in
<foreach collection="param.assessTypeList" item="item" open="(" separator="," close=")">

View File

@ -2114,7 +2114,7 @@ public class EnumsController extends BaseController {
public AjaxResult assessStatus() {
List<EnumEntity> enumEntityList = new ArrayList<>();
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);
}

View File

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

View File

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

View File

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

View File

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

View File

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