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
4e64db6c
Commit
4e64db6c
authored
Apr 22, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
ea8b5c39
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
139 additions
and
19 deletions
+139
-19
yd-csf-api/src/main/java/com/yd/csf/api/async/ApiExpectedFortuneAsyncService.java
+0
-0
yd-csf-api/src/main/java/com/yd/csf/api/handler/CalmSendJobHandler.java
+18
-5
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
+8
-3
yd-csf-service/src/main/java/com/yd/csf/service/enums/RuleItemEnum.java
+30
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentAccumulatedFyc.java
+13
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentAccumulatedFycLog.java
+13
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentDetailFyc.java
+38
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/CalmTask.java
+19
-1
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/async/ApiExpectedFortuneAsyncService.java
View file @
4e64db6c
This diff is collapsed.
Click to expand it.
yd-csf-api/src/main/java/com/yd/csf/api/handler/CalmSendJobHandler.java
View file @
4e64db6c
...
@@ -8,6 +8,7 @@ import com.yd.common.utils.RandomStringGenerator;
...
@@ -8,6 +8,7 @@ import com.yd.common.utils.RandomStringGenerator;
import
com.yd.csf.api.service.ApiAgentDetailFycService
;
import
com.yd.csf.api.service.ApiAgentDetailFycService
;
import
com.yd.csf.feign.enums.FycSourceTypeEnum
;
import
com.yd.csf.feign.enums.FycSourceTypeEnum
;
import
com.yd.csf.feign.enums.OprSourceEnum
;
import
com.yd.csf.feign.enums.OprSourceEnum
;
import
com.yd.csf.service.enums.RuleItemEnum
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.service.*
;
import
com.yd.csf.service.service.*
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -81,7 +82,7 @@ public class CalmSendJobHandler {
...
@@ -81,7 +82,7 @@ public class CalmSendJobHandler {
AgentAccumulatedFyc
agentAccumulatedFyc
=
iAgentAccumulatedFycService
.
queryOne
(
calmTask
.
getBrokerBizId
());
AgentAccumulatedFyc
agentAccumulatedFyc
=
iAgentAccumulatedFycService
.
queryOne
(
calmTask
.
getBrokerBizId
());
if
(
agentAccumulatedFyc
!=
null
)
{
if
(
agentAccumulatedFyc
!=
null
)
{
// 安全获取任务佣金增量值,若为 null 则用 0 代替
// 安全获取任务佣金增量值,若为 null 则用 0 代替
BigDecimal
fycValue
=
calmTask
.
get
Fyc
()
==
null
?
BigDecimal
.
ZERO
:
calmTask
.
get
Fyc
();
BigDecimal
fycValue
=
calmTask
.
get
AfterFyc
()
==
null
?
BigDecimal
.
ZERO
:
calmTask
.
getAfter
Fyc
();
// 安全获取原有字段值,若为 null 则视为 0
// 安全获取原有字段值,若为 null 则视为 0
BigDecimal
noEffectOld
=
agentAccumulatedFyc
.
getNoEffect
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getNoEffect
();
BigDecimal
noEffectOld
=
agentAccumulatedFyc
.
getNoEffect
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getNoEffect
();
...
@@ -90,10 +91,12 @@ public class CalmSendJobHandler {
...
@@ -90,10 +91,12 @@ public class CalmSendJobHandler {
BigDecimal
noFirstCommissionOld
=
agentAccumulatedFyc
.
getNoFirstCommission
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getNoFirstCommission
();
BigDecimal
noFirstCommissionOld
=
agentAccumulatedFyc
.
getNoFirstCommission
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getNoFirstCommission
();
BigDecimal
rycOld
=
agentAccumulatedFyc
.
getRyc
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getRyc
();
BigDecimal
rycOld
=
agentAccumulatedFyc
.
getRyc
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getRyc
();
BigDecimal
noRycOld
=
agentAccumulatedFyc
.
getNoRyc
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getNoRyc
();
BigDecimal
noRycOld
=
agentAccumulatedFyc
.
getNoRyc
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getNoRyc
();
BigDecimal
firstSalesCommissionOld
=
agentAccumulatedFyc
.
getFirstSalesCommission
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getFirstSalesCommission
();
BigDecimal
noFirstSalesCommissionOld
=
agentAccumulatedFyc
.
getNoFirstSalesCommission
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getNoFirstSalesCommission
();
//未生效累计积分(不限业务场景)= 未生效累计积分(不限业务场景) - 增量积分
//未生效累计积分(不限业务场景)= 未生效累计积分(不限业务场景) - 增量积分
BigDecimal
noEffect
=
noEffectOld
.
subtract
(
fycValue
);
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
=
effectOld
.
add
(
fycValue
);
BigDecimal
effect
=
effectOld
.
add
(
fycValue
);
agentAccumulatedFyc
.
setEffect
(
effect
);
agentAccumulatedFyc
.
setEffect
(
effect
);
...
@@ -107,7 +110,17 @@ public class CalmSendJobHandler {
...
@@ -107,7 +110,17 @@ public class CalmSendJobHandler {
agentAccumulatedFyc
.
setFirstCommission
(
firstCommission
);
agentAccumulatedFyc
.
setFirstCommission
(
firstCommission
);
//未生效累计首期佣金积分值(佣金场景)= 未生效累计首期佣金积分值(佣金场景)- 增量积分
//未生效累计首期佣金积分值(佣金场景)= 未生效累计首期佣金积分值(佣金场景)- 增量积分
BigDecimal
noFirstCommission
=
noFirstCommissionOld
.
subtract
(
fycValue
);
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
);
if
(
RuleItemEnum
.
SALES
.
getRuleItemBizId
().
equals
(
calmTask
.
getRuleItemBizId
()))
{
//销售佣金项目
//已生效累计首期销售佣金积分值(销售佣金场景(佣金场景的其中一个)) = 已生效累计首期销售佣金积分值(销售佣金场景(佣金场景的其中一个)) + 增量积分
BigDecimal
firstSalesCommission
=
firstSalesCommissionOld
.
add
(
fycValue
);
agentAccumulatedFyc
.
setFirstSalesCommission
(
firstSalesCommission
);
//未生效累计首期销售佣金积分值(销售佣金场景(佣金场景的其中一个))= 未生效累计首期销售佣金积分值(销售佣金场景(佣金场景的其中一个))- 增量积分
BigDecimal
noFirstSalesCommission
=
noFirstSalesCommissionOld
.
subtract
(
fycValue
);
agentAccumulatedFyc
.
setNoFirstSalesCommission
(
noFirstSalesCommission
.
compareTo
(
BigDecimal
.
ZERO
)
<=
0
?
BigDecimal
.
ZERO
:
noFirstSalesCommission
);
}
}
else
{
}
else
{
//非首期
//非首期
//已生效累计非首期佣金积分值(佣金场景) = 已生效累计非首期佣金积分值(佣金场景) + 增量积分
//已生效累计非首期佣金积分值(佣金场景) = 已生效累计非首期佣金积分值(佣金场景) + 增量积分
...
@@ -115,14 +128,14 @@ public class CalmSendJobHandler {
...
@@ -115,14 +128,14 @@ public class CalmSendJobHandler {
agentAccumulatedFyc
.
setRyc
(
ryc
);
agentAccumulatedFyc
.
setRyc
(
ryc
);
//未生效累计非首期佣金积分值(佣金场景)= 未生效累计非首期佣金积分值(佣金场景)- 增量积分
//未生效累计非首期佣金积分值(佣金场景)= 未生效累计非首期佣金积分值(佣金场景)- 增量积分
BigDecimal
noRyc
=
noRycOld
.
subtract
(
fycValue
);
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
);
}
}
//晋升职级累计积分 = 已生效累计积分 - 已生效累计非首期佣金积分值
//晋升职级累计积分 = 已生效累计积分 - 已生效累计非首期佣金积分值
// 注意:此处 effect 和 ryc 已更新,使用更新后的值,但仍需判空保护
// 注意:此处 effect 和 ryc 已更新,使用更新后的值,但仍需判空保护
BigDecimal
effectAfter
=
agentAccumulatedFyc
.
getEffect
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getEffect
();
BigDecimal
effectAfter
=
agentAccumulatedFyc
.
getEffect
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getEffect
();
BigDecimal
rycAfter
=
agentAccumulatedFyc
.
getRyc
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getRyc
();
BigDecimal
rycAfter
=
agentAccumulatedFyc
.
getRyc
()
==
null
?
BigDecimal
.
ZERO
:
agentAccumulatedFyc
.
getRyc
();
BigDecimal
promotion
=
effectAfter
.
subtract
(
rycAfter
);
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
());
iAgentAccumulatedFycService
.
saveOrUpdate
(
agentAccumulatedFyc
);
iAgentAccumulatedFycService
.
saveOrUpdate
(
agentAccumulatedFyc
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
View file @
4e64db6c
...
@@ -529,6 +529,13 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
...
@@ -529,6 +529,13 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
String
token2
=
request2
.
getHeader
(
"Authorization"
);
String
token2
=
request2
.
getHeader
(
"Authorization"
);
log
.
info
(
"使用编程式事务,确保方法内的事务一致性 token==============,{}"
,
token2
);
log
.
info
(
"使用编程式事务,确保方法内的事务一致性 token==============,{}"
,
token2
);
//保单币种->港币的汇率
BigDecimal
exchangeRate
=
BigDecimal
.
ZERO
;
if
(!
CollectionUtils
.
isEmpty
(
queryPolicyAndBrokerDtoList
))
{
QueryPolicyAndBrokerDto
queryPolicyAndBrokerDto
=
queryPolicyAndBrokerDtoList
.
get
(
0
);
exchangeRate
=
queryExchangeRateByFeign
(
queryPolicyAndBrokerDto
.
getCurrency
(),
"HKD"
);
}
//基本法计算值收集列表
//基本法计算值收集列表
List
<
AlgorithmCollectResDto
>
collectResDtos
=
new
ArrayList
<>();
List
<
AlgorithmCollectResDto
>
collectResDtos
=
new
ArrayList
<>();
for
(
QueryPolicyAndBrokerDto
brokerDto
:
queryPolicyAndBrokerDtoList
)
{
for
(
QueryPolicyAndBrokerDto
brokerDto
:
queryPolicyAndBrokerDtoList
)
{
...
@@ -609,7 +616,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
...
@@ -609,7 +616,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//异步处理-构建冷静期定时任务
//异步处理-构建冷静期定时任务
log
.
info
(
"异步处理-构建冷静期定时任务=>请求前入参:{}"
,
JSON
.
toJSONString
(
collectResDtos
));
log
.
info
(
"异步处理-构建冷静期定时任务=>请求前入参:{}"
,
JSON
.
toJSONString
(
collectResDtos
));
apiExpectedFortuneAsyncService
.
buildCalmDateTask
(
collectResDtos
,
policyNo
);
apiExpectedFortuneAsyncService
.
buildCalmDateTask
(
collectResDtos
,
policyNo
,
exchangeRate
);
return
Result
.
success
();
return
Result
.
success
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
@@ -628,8 +635,6 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
...
@@ -628,8 +635,6 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
});
});
}
}
/**
/**
* 查询和当前转介人相关关系(推荐,一级管理,二级管理,辅导)的客户端用户ID列表数据
* 查询和当前转介人相关关系(推荐,一级管理,二级管理,辅导)的客户端用户ID列表数据
* @param brokerDto
* @param brokerDto
...
...
yd-csf-service/src/main/java/com/yd/csf/service/enums/RuleItemEnum.java
0 → 100644
View file @
4e64db6c
package
com
.
yd
.
csf
.
service
.
enums
;
/**
* 基本法项目枚举
*/
public
enum
RuleItemEnum
{
SALES
(
"rule_item_config_FePX0vpJQ9bU1vEo"
,
"销售佣金"
),
;
//基本法项目配置表唯一业务ID
private
String
ruleItemBizId
;
//基本法项目名称
private
String
itemName
;
//构造函数
RuleItemEnum
(
String
ruleItemBizId
,
String
itemName
)
{
this
.
ruleItemBizId
=
ruleItemBizId
;
this
.
itemName
=
itemName
;
}
public
String
getRuleItemBizId
()
{
return
ruleItemBizId
;
}
public
String
getItemName
()
{
return
itemName
;
}
}
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentAccumulatedFyc.java
View file @
4e64db6c
...
@@ -105,7 +105,19 @@ public class AgentAccumulatedFyc implements Serializable {
...
@@ -105,7 +105,19 @@ public class AgentAccumulatedFyc implements Serializable {
private
BigDecimal
noRyc
;
private
BigDecimal
noRyc
;
/**
/**
* 晋升职级累计积分 = 已生效累计积分 - 已生效累计非首期佣金积分值
* 已生效累计首期销售佣金积分值(销售佣金场景(佣金场景的其中一个))
*/
@TableField
(
"first_sales_commission"
)
private
BigDecimal
firstSalesCommission
;
/**
* 未生效累计首期销售佣金积分值(销售佣金场景(佣金场景的其中一个))
*/
@TableField
(
"no_first_sales_commission"
)
private
BigDecimal
noFirstSalesCommission
;
/**
* 晋升职级累计积分 = 初始化已生效积分(不限业务场景) + 已生效累计首期销售佣金积分值(销售佣金场景(佣金场景的其中一个))
*/
*/
@TableField
(
"promotion"
)
@TableField
(
"promotion"
)
private
BigDecimal
promotion
;
private
BigDecimal
promotion
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentAccumulatedFycLog.java
View file @
4e64db6c
...
@@ -116,7 +116,19 @@ public class AgentAccumulatedFycLog implements Serializable {
...
@@ -116,7 +116,19 @@ public class AgentAccumulatedFycLog implements Serializable {
private
BigDecimal
noRyc
;
private
BigDecimal
noRyc
;
/**
/**
* 晋升职级累计积分 = 已生效累计积分 - 已生效累计非首期佣金积分值
* 已生效累计首期销售佣金积分值(销售佣金场景(佣金场景的其中一个))
*/
@TableField
(
"first_sales_commission"
)
private
BigDecimal
firstSalesCommission
;
/**
* 未生效累计首期销售佣金积分值(销售佣金场景(佣金场景的其中一个))
*/
@TableField
(
"no_first_sales_commission"
)
private
BigDecimal
noFirstSalesCommission
;
/**
* 晋升职级累计积分 = 初始化已生效积分(不限业务场景) + 已生效累计首期销售佣金积分值(销售佣金场景(佣金场景的其中一个))
*/
*/
@TableField
(
"promotion"
)
@TableField
(
"promotion"
)
private
BigDecimal
promotion
;
private
BigDecimal
promotion
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/AgentDetailFyc.java
View file @
4e64db6c
...
@@ -48,17 +48,29 @@ public class AgentDetailFyc implements Serializable {
...
@@ -48,17 +48,29 @@ public class AgentDetailFyc implements Serializable {
private
String
sourceType
;
private
String
sourceType
;
/**
/**
* 积分来源名称
*/
@TableField
(
"source_name"
)
private
String
sourceName
;
/**
* 佣金项目类型
*/
@TableField
(
"commission_type"
)
private
Integer
commissionType
;
/**
* 佣金项目名称
*/
@TableField
(
"commission_name"
)
private
String
commissionName
;
/**
* 积分来源基本法项目配置表唯一业务ID
* 积分来源基本法项目配置表唯一业务ID
*/
*/
@TableField
(
"rule_item_biz_id"
)
@TableField
(
"rule_item_biz_id"
)
private
String
ruleItemBizId
;
private
String
ruleItemBizId
;
// /**
// * 保单发佣批次ID
// */
// @TableField("batch_bizId")
// private String batchBizId;
/**
/**
* 积分提供的保单号
* 积分提供的保单号
*/
*/
...
@@ -66,6 +78,12 @@ public class AgentDetailFyc implements Serializable {
...
@@ -66,6 +78,12 @@ public class AgentDetailFyc implements Serializable {
private
String
policyNo
;
private
String
policyNo
;
/**
/**
* 发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@TableField
(
"fortune_period"
)
private
Integer
fortunePeriod
;
/**
* 积分提供者(客户端用户表唯一业务ID)
* 积分提供者(客户端用户表唯一业务ID)
*/
*/
@TableField
(
"provide_id"
)
@TableField
(
"provide_id"
)
...
@@ -84,10 +102,22 @@ public class AgentDetailFyc implements Serializable {
...
@@ -84,10 +102,22 @@ public class AgentDetailFyc implements Serializable {
private
BigDecimal
afterFyc
;
private
BigDecimal
afterFyc
;
/**
/**
*
变化值(-代表减少)
*
汇率转化前积分值(变化值(-代表减少))
*/
*/
@TableField
(
"change_fyc"
)
@TableField
(
"change_fyc"
)
private
String
changeFyc
;
private
BigDecimal
changeFyc
;
/**
* 汇率(保单币种->港币的汇率)
*/
@TableField
(
"exchange_rate"
)
private
BigDecimal
exchangeRate
;
/**
* 汇率转化后积分值(变化值(-代表减少))
*/
@TableField
(
"change_after_fyc"
)
private
BigDecimal
changeAfterFyc
;
/**
/**
* 积分解冻时间
* 积分解冻时间
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/CalmTask.java
View file @
4e64db6c
...
@@ -58,6 +58,12 @@ public class CalmTask implements Serializable {
...
@@ -58,6 +58,12 @@ public class CalmTask implements Serializable {
private
String
policyNo
;
private
String
policyNo
;
/**
/**
* 积分来源基本法项目配置表唯一业务ID
*/
@TableField
(
"rule_item_biz_id"
)
private
String
ruleItemBizId
;
/**
* 佣金项目
* 佣金项目
*/
*/
@TableField
(
"commission_name"
)
@TableField
(
"commission_name"
)
...
@@ -82,12 +88,24 @@ public class CalmTask implements Serializable {
...
@@ -82,12 +88,24 @@ public class CalmTask implements Serializable {
private
String
brokerName
;
private
String
brokerName
;
/**
/**
* 佣金值(积分值)
*
汇率转换前
佣金值(积分值)
*/
*/
@TableField
(
"fyc"
)
@TableField
(
"fyc"
)
private
BigDecimal
fyc
;
private
BigDecimal
fyc
;
/**
/**
* 汇率(保单币种->港币的汇率)
*/
@TableField
(
"exchange_rate"
)
private
BigDecimal
exchangeRate
;
/**
* 汇率转换后佣金值(积分值)
*/
@TableField
(
"after_fyc"
)
private
BigDecimal
afterFyc
;
/**
* 冷静期结束日期
* 冷静期结束日期
*/
*/
@TableField
(
"cooling_off_end_date"
)
@TableField
(
"cooling_off_end_date"
)
...
...
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