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
bee5ff89
Commit
bee5ff89
authored
Nov 20, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
680c1f5d
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
38 additions
and
4 deletions
+38
-4
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiExpectedFortuneController.java
+12
-1
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiExpectedFortuneService.java
+2
-1
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
+24
-2
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiExpectedFortuneController.java
View file @
bee5ff89
package
com
.
yd
.
csf
.
api
.
controller
;
package
com
.
yd
.
csf
.
api
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yd.common.constant.RedisConstants
;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.RedisUtil
;
import
com.yd.csf.api.service.ApiExpectedFortuneService
;
import
com.yd.csf.api.service.ApiExpectedFortuneService
;
import
com.yd.csf.feign.client.expectedfortune.ApiExpectedFortuneFeignClient
;
import
com.yd.csf.feign.client.expectedfortune.ApiExpectedFortuneFeignClient
;
import
com.yd.csf.feign.request.expectedfortune.ApiGenerateExpectedFortuneRequest
;
import
com.yd.csf.feign.request.expectedfortune.ApiGenerateExpectedFortuneRequest
;
...
@@ -29,6 +31,9 @@ public class ApiExpectedFortuneController implements ApiExpectedFortuneFeignClie
...
@@ -29,6 +31,9 @@ public class ApiExpectedFortuneController implements ApiExpectedFortuneFeignClie
@Autowired
@Autowired
private
ApiExpectedFortuneService
apiExpectedFortuneService
;
private
ApiExpectedFortuneService
apiExpectedFortuneService
;
@Autowired
private
RedisUtil
redisUtil
;
/**
/**
* 生成预计发佣
* 生成预计发佣
* @param request
* @param request
...
@@ -36,7 +41,13 @@ public class ApiExpectedFortuneController implements ApiExpectedFortuneFeignClie
...
@@ -36,7 +41,13 @@ public class ApiExpectedFortuneController implements ApiExpectedFortuneFeignClie
*/
*/
@Override
@Override
public
Result
<
ApiGenerateExpectedFortuneResponse
>
generate
(
ApiGenerateExpectedFortuneRequest
request
)
{
public
Result
<
ApiGenerateExpectedFortuneResponse
>
generate
(
ApiGenerateExpectedFortuneRequest
request
)
{
return
apiExpectedFortuneService
.
generate
(
request
);
try
{
return
apiExpectedFortuneService
.
generate
(
request
);
}
catch
(
Exception
e
)
{
//抛出异常,销毁redis缓存
redisUtil
.
deleteObject
(
RedisConstants
.
EXPECTED_FORTUNE
+
request
.
getPolicyNo
());
return
Result
.
fail
(
e
.
getMessage
());
}
}
}
/**
/**
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiExpectedFortuneService.java
View file @
bee5ff89
...
@@ -17,7 +17,8 @@ public interface ApiExpectedFortuneService {
...
@@ -17,7 +17,8 @@ public interface ApiExpectedFortuneService {
@Async
(
"asyncQueryExecutor"
)
@Async
(
"asyncQueryExecutor"
)
Result
execute
(
List
<
QueryPolicyAndBrokerDto
>
queryPolicyAndBrokerDtoList
,
Result
execute
(
List
<
QueryPolicyAndBrokerDto
>
queryPolicyAndBrokerDtoList
,
List
<
CommissionRuleBinding
>
commissionRuleBindingList
);
List
<
CommissionRuleBinding
>
commissionRuleBindingList
,
String
policyNo
);
Result
<
IPage
<
ApiExpectedFortunePageResponse
>>
page
(
ApiExpectedFortunePageRequest
request
);
Result
<
IPage
<
ApiExpectedFortunePageResponse
>>
page
(
ApiExpectedFortunePageRequest
request
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
View file @
bee5ff89
...
@@ -2,12 +2,14 @@ package com.yd.csf.api.service.impl;
...
@@ -2,12 +2,14 @@ package com.yd.csf.api.service.impl;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.common.constant.RedisConstants
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.ProjectEnum
;
import
com.yd.common.enums.ProjectEnum
;
import
com.yd.common.enums.TenantEnum
;
import
com.yd.common.enums.TenantEnum
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.common.utils.RedisUtil
;
import
com.yd.csf.api.dto.*
;
import
com.yd.csf.api.dto.*
;
import
com.yd.csf.api.service.ApiBasicLawCalculateService
;
import
com.yd.csf.api.service.ApiBasicLawCalculateService
;
import
com.yd.csf.api.service.ApiExpectedFortuneService
;
import
com.yd.csf.api.service.ApiExpectedFortuneService
;
...
@@ -24,6 +26,7 @@ import com.yd.csf.service.service.ICommissionRuleBindingService;
...
@@ -24,6 +26,7 @@ import com.yd.csf.service.service.ICommissionRuleBindingService;
import
com.yd.csf.service.service.IExpectedFortuneService
;
import
com.yd.csf.service.service.IExpectedFortuneService
;
import
com.yd.csf.service.service.PolicyService
;
import
com.yd.csf.service.service.PolicyService
;
import
com.yd.user.feign.client.clientuser.ApiClientUserFeignClient
;
import
com.yd.user.feign.client.clientuser.ApiClientUserFeignClient
;
import
jodd.util.StringUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContext
;
...
@@ -33,6 +36,8 @@ import org.springframework.transaction.PlatformTransactionManager;
...
@@ -33,6 +36,8 @@ import org.springframework.transaction.PlatformTransactionManager;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.support.TransactionTemplate
;
import
org.springframework.transaction.support.TransactionTemplate
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
...
@@ -68,6 +73,9 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
...
@@ -68,6 +73,9 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
@Autowired
@Autowired
private
TransactionTemplate
transactionTemplate
;
private
TransactionTemplate
transactionTemplate
;
@Autowired
private
RedisUtil
redisUtil
;
/**
/**
* 生成预计发佣
* 生成预计发佣
* @param request
* @param request
...
@@ -75,6 +83,15 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
...
@@ -75,6 +83,15 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
*/
*/
@Override
@Override
public
Result
<
ApiGenerateExpectedFortuneResponse
>
generate
(
ApiGenerateExpectedFortuneRequest
request
)
{
public
Result
<
ApiGenerateExpectedFortuneResponse
>
generate
(
ApiGenerateExpectedFortuneRequest
request
)
{
//查询当前保单号是否正在执行预计发佣的缓存,有值就说明正在执行,无值说明执行完毕或者没有执行。
String
value
=
redisUtil
.
getCacheObject
(
RedisConstants
.
EXPECTED_FORTUNE
+
request
.
getPolicyNo
());
if
(
StringUtil
.
isNotBlank
(
value
))
{
//有值正在执行,提示
throw
new
BusinessException
(
"生成预计发佣正在执行中,无需再次执行"
);
}
else
{
//无值设置值,表示正在执行
redisUtil
.
setCacheObject
(
RedisConstants
.
EXPECTED_FORTUNE
+
request
.
getPolicyNo
(),
request
.
getPolicyNo
());
}
List
<
ExpectedFortune
>
list
=
iExpectedFortuneService
.
queryList
(
request
.
getPolicyNo
());
List
<
ExpectedFortune
>
list
=
iExpectedFortuneService
.
queryList
(
request
.
getPolicyNo
());
if
(!
CollectionUtils
.
isEmpty
(
list
))
{
if
(!
CollectionUtils
.
isEmpty
(
list
))
{
throw
new
BusinessException
(
"当前保单已经生成过预计发佣数据,无需再次生成"
);
throw
new
BusinessException
(
"当前保单已经生成过预计发佣数据,无需再次生成"
);
...
@@ -100,7 +117,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
...
@@ -100,7 +117,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表
//遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表
// 通过代理对象调用
// 通过代理对象调用
getSelf
().
execute
(
queryPolicyAndBrokerDtoList
,
commissionRuleBindingList
);
getSelf
().
execute
(
queryPolicyAndBrokerDtoList
,
commissionRuleBindingList
,
request
.
getPolicyNo
()
);
return
Result
.
success
(
null
,
"生成预计发佣正在处理....,稍后查看预计发佣列表"
);
return
Result
.
success
(
null
,
"生成预计发佣正在处理....,稍后查看预计发佣列表"
);
}
}
...
@@ -114,7 +131,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
...
@@ -114,7 +131,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
@Override
@Override
@Async
(
"commonAsyncExecutor"
)
@Async
(
"commonAsyncExecutor"
)
public
Result
execute
(
List
<
QueryPolicyAndBrokerDto
>
queryPolicyAndBrokerDtoList
,
public
Result
execute
(
List
<
QueryPolicyAndBrokerDto
>
queryPolicyAndBrokerDtoList
,
List
<
CommissionRuleBinding
>
commissionRuleBindingList
)
{
List
<
CommissionRuleBinding
>
commissionRuleBindingList
,
String
policyNo
)
{
// 使用编程式事务,确保异步方法内的事务一致性
// 使用编程式事务,确保异步方法内的事务一致性
return
transactionTemplate
.
execute
(
status
->
{
return
transactionTemplate
.
execute
(
status
->
{
...
@@ -142,8 +160,12 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
...
@@ -142,8 +160,12 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
}
}
}
}
}
}
//执行成功完毕,也要销毁redis缓存
redisUtil
.
deleteObject
(
RedisConstants
.
EXPECTED_FORTUNE
+
policyNo
);
return
Result
.
success
();
return
Result
.
success
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
//抛出异常,销毁redis缓存
redisUtil
.
deleteObject
(
RedisConstants
.
EXPECTED_FORTUNE
+
policyNo
);
status
.
setRollbackOnly
();
// 标记回滚
status
.
setRollbackOnly
();
// 标记回滚
log
.
error
(
"异步执行预计发佣失败,已回滚所有操作"
,
e
);
log
.
error
(
"异步执行预计发佣失败,已回滚所有操作"
,
e
);
throw
new
BusinessException
(
"异步处理失败: "
+
e
.
getMessage
());
throw
new
BusinessException
(
"异步处理失败: "
+
e
.
getMessage
());
...
...
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