Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-csf
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-csf
Commits
f5f407fc
Commit
f5f407fc
authored
Apr 21, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
41674338
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
18 deletions
+49
-18
yd-csf-api/src/main/java/com/yd/csf/api/async/ApiExpectedFortuneAsyncService.java
+23
-6
yd-csf-api/src/main/java/com/yd/csf/api/handler/CalmSendJobHandler.java
+26
-12
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/async/ApiExpectedFortuneAsyncService.java
View file @
f5f407fc
...
@@ -367,20 +367,37 @@ public class ApiExpectedFortuneAsyncService {
...
@@ -367,20 +367,37 @@ public class ApiExpectedFortuneAsyncService {
if
(
fyc
==
null
)
{
if
(
fyc
==
null
)
{
continue
;
continue
;
}
}
// 增量值安全处理:get 可能返回 null,统一转为 ZERO
BigDecimal
safeDelta
=
delta
==
null
?
BigDecimal
.
ZERO
:
delta
;
BigDecimal
safeNoDelta
=
noDelta
==
null
?
BigDecimal
.
ZERO
:
noDelta
;
BigDecimal
safeNoFirstDelta
=
noFirstDelta
==
null
?
BigDecimal
.
ZERO
:
noFirstDelta
;
BigDecimal
safeNoRycDelta
=
noRycDelta
==
null
?
BigDecimal
.
ZERO
:
noRycDelta
;
BigDecimal
safeFirstDelta
=
firstDelta
==
null
?
BigDecimal
.
ZERO
:
firstDelta
;
BigDecimal
safeRycDelta
=
rycDelta
==
null
?
BigDecimal
.
ZERO
:
rycDelta
;
// 原有字段安全处理:fyc 中的字段可能为 null,转为 ZERO 再进行 add
BigDecimal
effectOld
=
fyc
.
getEffect
()
==
null
?
BigDecimal
.
ZERO
:
fyc
.
getEffect
();
BigDecimal
noEffectOld
=
fyc
.
getNoEffect
()
==
null
?
BigDecimal
.
ZERO
:
fyc
.
getNoEffect
();
BigDecimal
noFirstCommissionOld
=
fyc
.
getNoFirstCommission
()
==
null
?
BigDecimal
.
ZERO
:
fyc
.
getNoFirstCommission
();
BigDecimal
noRycOld
=
fyc
.
getNoRyc
()
==
null
?
BigDecimal
.
ZERO
:
fyc
.
getNoRyc
();
BigDecimal
firstCommissionOld
=
fyc
.
getFirstCommission
()
==
null
?
BigDecimal
.
ZERO
:
fyc
.
getFirstCommission
();
BigDecimal
rycOld
=
fyc
.
getRyc
()
==
null
?
BigDecimal
.
ZERO
:
fyc
.
getRyc
();
// 应用增量
// 应用增量
//未生效累计积分(不限业务场景)
//未生效累计积分(不限业务场景)
fyc
.
setNoEffect
(
fyc
.
getNoEffect
().
add
(
n
oDelta
));
fyc
.
setNoEffect
(
noEffectOld
.
add
(
safeN
oDelta
));
//未生效累计首期佣金积分值(佣金场景)
//未生效累计首期佣金积分值(佣金场景)
fyc
.
setNoFirstCommission
(
fyc
.
getNoFirstCommission
().
add
(
n
oFirstDelta
));
fyc
.
setNoFirstCommission
(
noFirstCommissionOld
.
add
(
safeN
oFirstDelta
));
//未生效累计非首期佣金积分值(佣金场景)
//未生效累计非首期佣金积分值(佣金场景)
fyc
.
setNoRyc
(
fyc
.
getNoRyc
().
add
(
n
oRycDelta
));
fyc
.
setNoRyc
(
noRycOld
.
add
(
safeN
oRycDelta
));
//已生效累计积分(不限业务场景)
//已生效累计积分(不限业务场景)
fyc
.
setEffect
(
fyc
.
getEffect
().
add
(
d
elta
));
fyc
.
setEffect
(
effectOld
.
add
(
safeD
elta
));
//已生效累计首期佣金积分值(佣金场景)
//已生效累计首期佣金积分值(佣金场景)
fyc
.
setFirstCommission
(
f
yc
.
getFirstCommission
().
add
(
f
irstDelta
));
fyc
.
setFirstCommission
(
f
irstCommissionOld
.
add
(
safeF
irstDelta
));
//已生效累计非首期佣金积分值(佣金场景)
//已生效累计非首期佣金积分值(佣金场景)
fyc
.
setRyc
(
fyc
.
getRyc
().
add
(
r
ycDelta
));
fyc
.
setRyc
(
rycOld
.
add
(
safeR
ycDelta
));
//累计积分 = 未生效累计积分 + 已生效累计积分
//累计积分 = 未生效累计积分 + 已生效累计积分
fyc
.
setTotalFyc
(
fyc
.
getNoEffect
().
add
(
fyc
.
getEffect
()));
fyc
.
setTotalFyc
(
fyc
.
getNoEffect
().
add
(
fyc
.
getEffect
()));
...
...
yd-csf-api/src/main/java/com/yd/csf/api/handler/CalmSendJobHandler.java
View file @
f5f407fc
...
@@ -77,37 +77,51 @@ public class CalmSendJobHandler {
...
@@ -77,37 +77,51 @@ public class CalmSendJobHandler {
iAgentDetailFycService
.
saveOrUpdate
(
agentDetailFyc
);
iAgentDetailFycService
.
saveOrUpdate
(
agentDetailFyc
);
}
}
//更新积分总表的字段(此时积分都已经生效)
// 更新积分总表的字段(此时积分都已经生效)
//查询积分总表对象 弄好了,差一个每月1号晋升职级定时任务未开发,还有个基本法要根据保单生效日所在月对应的积分总表操作日志记录表来找出对应月的最大职级(晋升职级累计积分)(少个积分总表操作日志记录表)
AgentAccumulatedFyc
agentAccumulatedFyc
=
iAgentAccumulatedFycService
.
queryOne
(
calmTask
.
getBrokerBizId
());
AgentAccumulatedFyc
agentAccumulatedFyc
=
iAgentAccumulatedFycService
.
queryOne
(
calmTask
.
getBrokerBizId
());
if
(
agentAccumulatedFyc
!=
null
)
{
if
(
agentAccumulatedFyc
!=
null
)
{
// 安全获取任务佣金增量值,若为 null 则用 0 代替
BigDecimal
fycValue
=
calmTask
.
getFyc
()
==
null
?
BigDecimal
.
ZERO
:
calmTask
.
getFyc
();
// 安全获取原有字段值,若为 null 则视为 0
BigDecimal
noEffectOld
=
agentAccumulatedFyc
.
getNoEffect
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getNoEffect
();
BigDecimal
effectOld
=
agentAccumulatedFyc
.
getEffect
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getEffect
();
BigDecimal
firstCommissionOld
=
agentAccumulatedFyc
.
getFirstCommission
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getFirstCommission
();
BigDecimal
noFirstCommissionOld
=
agentAccumulatedFyc
.
getNoFirstCommission
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getNoFirstCommission
();
BigDecimal
rycOld
=
agentAccumulatedFyc
.
getRyc
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getRyc
();
BigDecimal
noRycOld
=
agentAccumulatedFyc
.
getNoRyc
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getNoRyc
();
//未生效累计积分(不限业务场景)= 未生效累计积分(不限业务场景) - 增量积分
//未生效累计积分(不限业务场景)= 未生效累计积分(不限业务场景) - 增量积分
BigDecimal
noEffect
=
agentAccumulatedFyc
.
getNoEffect
().
subtract
(
calmTask
.
getFyc
()
);
BigDecimal
noEffect
=
noEffectOld
.
subtract
(
fycValue
);
agentAccumulatedFyc
.
setNoEffect
(
noEffect
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
?
BigDecimal
.
ZERO
:
noEffect
);
agentAccumulatedFyc
.
setNoEffect
(
noEffect
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
?
BigDecimal
.
ZERO
:
noEffect
);
//已生效累计积分(不限业务场景) = 已生效累计积分(不限业务场景) + 增量积分
//已生效累计积分(不限业务场景) = 已生效累计积分(不限业务场景) + 增量积分
BigDecimal
effect
=
agentAccumulatedFyc
.
getEffect
().
add
(
calmTask
.
getFyc
()
);
BigDecimal
effect
=
effectOld
.
add
(
fycValue
);
agentAccumulatedFyc
.
setEffect
(
effect
);
agentAccumulatedFyc
.
setEffect
(
effect
);
//累计积分 = 未生效累计积分 + 已生效累计积分
//累计积分 = 未生效累计积分 + 已生效累计积分
agentAccumulatedFyc
.
setTotalFyc
(
agentAccumulatedFyc
.
getNoEffect
().
add
(
agentAccumulatedFyc
.
getEffect
()));
agentAccumulatedFyc
.
setTotalFyc
(
agentAccumulatedFyc
.
getNoEffect
().
add
(
agentAccumulatedFyc
.
getEffect
()));
if
(
calmTask
.
getFortunePeriod
()
==
1
)
{
if
(
calmTask
.
getFortunePeriod
()
!=
null
&&
calmTask
.
getFortunePeriod
()
==
1
)
{
//首期
//首期
//已生效累计首期佣金积分值(佣金场景) = 已生效累计首期佣金积分值(佣金场景) + 增量积分
//已生效累计首期佣金积分值(佣金场景) = 已生效累计首期佣金积分值(佣金场景) + 增量积分
BigDecimal
firstCommission
=
agentAccumulatedFyc
.
getFirstCommission
().
add
(
calmTask
.
getFyc
()
);
BigDecimal
firstCommission
=
firstCommissionOld
.
add
(
fycValue
);
agentAccumulatedFyc
.
setFirstCommission
(
firstCommission
);
agentAccumulatedFyc
.
setFirstCommission
(
firstCommission
);
//未生效累计首期佣金积分值(佣金场景)= 未生效累计首期佣金积分值(佣金场景)- 增量积分
//未生效累计首期佣金积分值(佣金场景)= 未生效累计首期佣金积分值(佣金场景)- 增量积分
BigDecimal
noFirstCommission
=
agentAccumulatedFyc
.
getNoFirstCommission
().
subtract
(
calmTask
.
getFyc
()
);
BigDecimal
noFirstCommission
=
noFirstCommissionOld
.
subtract
(
fycValue
);
agentAccumulatedFyc
.
setNoFirstCommission
(
noFirstCommission
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
?
BigDecimal
.
ZERO
:
noFirstCommission
);
agentAccumulatedFyc
.
setNoFirstCommission
(
noFirstCommission
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
?
BigDecimal
.
ZERO
:
noFirstCommission
);
}
else
{
}
else
{
//非首期
//非首期
//已生效累计非首期佣金积分值(佣金场景) = 已生效累计非首期佣金积分值(佣金场景) + 增量积分
//已生效累计非首期佣金积分值(佣金场景) = 已生效累计非首期佣金积分值(佣金场景) + 增量积分
BigDecimal
ryc
=
agentAccumulatedFyc
.
getRyc
().
add
(
calmTask
.
getFyc
()
);
BigDecimal
ryc
=
rycOld
.
add
(
fycValue
);
agentAccumulatedFyc
.
setRyc
(
ryc
);
agentAccumulatedFyc
.
setRyc
(
ryc
);
//未生效累计非首期佣金积分值(佣金场景)= 未生效累计非首期佣金积分值(佣金场景)- 增量积分
//未生效累计非首期佣金积分值(佣金场景)= 未生效累计非首期佣金积分值(佣金场景)- 增量积分
BigDecimal
noRyc
=
agentAccumulatedFyc
.
getNoRyc
().
subtract
(
calmTask
.
getFyc
()
);
BigDecimal
noRyc
=
noRycOld
.
subtract
(
fycValue
);
agentAccumulatedFyc
.
setNoRyc
(
noRyc
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
?
BigDecimal
.
ZERO
:
noRyc
);
agentAccumulatedFyc
.
setNoRyc
(
noRyc
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
?
BigDecimal
.
ZERO
:
noRyc
);
}
}
//晋升职级累计积分 = 已生效累计积分 - 已生效累计非首期佣金积分值
//晋升职级累计积分 = 已生效累计积分 - 已生效累计非首期佣金积分值
BigDecimal
promotion
=
agentAccumulatedFyc
.
getEffect
().
subtract
(
agentAccumulatedFyc
.
getRyc
());
// 注意:此处 effect 和 ryc 已更新,使用更新后的值,但仍需判空保护
BigDecimal
effectAfter
=
agentAccumulatedFyc
.
getEffect
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getEffect
();
BigDecimal
rycAfter
=
agentAccumulatedFyc
.
getRyc
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getRyc
();
BigDecimal
promotion
=
effectAfter
.
subtract
(
rycAfter
);
agentAccumulatedFyc
.
setPromotion
(
promotion
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
?
BigDecimal
.
ZERO
:
promotion
);
agentAccumulatedFyc
.
setPromotion
(
promotion
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
?
BigDecimal
.
ZERO
:
promotion
);
//最后计算日期,记录最后一次计算累计FYC的日期
//最后计算日期,记录最后一次计算累计FYC的日期
agentAccumulatedFyc
.
setLastCalcDate
(
LocalDateTime
.
now
());
agentAccumulatedFyc
.
setLastCalcDate
(
LocalDateTime
.
now
());
...
@@ -115,7 +129,7 @@ public class CalmSendJobHandler {
...
@@ -115,7 +129,7 @@ public class CalmSendJobHandler {
//新增积分总表日志表
//新增积分总表日志表
AgentAccumulatedFycLog
log
=
new
AgentAccumulatedFycLog
();
AgentAccumulatedFycLog
log
=
new
AgentAccumulatedFycLog
();
BeanUtils
.
copyProperties
(
agentAccumulatedFyc
,
log
);
BeanUtils
.
copyProperties
(
agentAccumulatedFyc
,
log
);
log
.
setId
(
null
);
log
.
setId
(
null
);
log
.
setFycBizId
(
agentAccumulatedFyc
.
getFycBizId
());
log
.
setFycBizId
(
agentAccumulatedFyc
.
getFycBizId
());
log
.
setFycLogBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_AGENT_ACCUMULATED_FYC_LOG
.
getCode
()));
log
.
setFycLogBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_AGENT_ACCUMULATED_FYC_LOG
.
getCode
()));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment