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
1adf7a43
Commit
1adf7a43
authored
Oct 13, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
来佣接口24
parent
eba11680
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
357 additions
and
19 deletions
+357
-19
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
+15
-0
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+59
-7
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiReconciliationCompanyController.java
+134
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CompleteFortuneAccountRequest.java
+18
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneAccountExportDTO.java
+4
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/ReconciliationCompanyQueryRequest.java
+18
-0
yd-csf-service/src/main/java/com/yd/csf/service/enums/PolicyFollowStatusEnum.java
+20
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/Fortune.java
+5
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/FortuneAccount.java
+7
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneAccountService.java
+3
-4
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountServiceImpl.java
+71
-7
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
+1
-0
yd-csf-service/src/main/resources/mappers/FortuneAccountMapper.xml
+2
-1
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
View file @
1adf7a43
...
...
@@ -265,6 +265,21 @@ public class ApiFortuneController {
}
/**
* 完成出账
*
* @param completeFortuneAccountRequest
* @return
*/
@PostMapping
(
"/complete/fortuneAccount"
)
@Operation
(
summary
=
"完成出账"
)
public
Result
<
Boolean
>
completeFortuneAccount
(
@RequestBody
CompleteFortuneAccountRequest
completeFortuneAccountRequest
)
{
if
(
CollectionUtils
.
isEmpty
(
completeFortuneAccountRequest
.
getFortuneAccountBizIdList
()))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"出账数据业务ID列表不能为空"
);
}
return
Result
.
success
(
fortuneAccountService
.
completeFortuneAccount
(
completeFortuneAccountRequest
));
}
/**
* 删除发佣
*
* @param deleteRequest
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
1adf7a43
...
...
@@ -17,6 +17,7 @@ import com.yd.csf.api.dto.PolicyFollowDTO;
import
com.yd.csf.api.listener.PolicyDataListener
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.service.*
;
import
com.yd.csf.service.vo.PolicyFollowVO
;
...
...
@@ -35,10 +36,7 @@ import javax.annotation.Resource;
import
javax.servlet.http.HttpServletRequest
;
import
java.text.DecimalFormat
;
import
java.text.ParseException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -68,7 +66,8 @@ public class ApiPolicyFollowController {
private
CommissionExpectedService
commissionExpectedService
;
@Resource
private
CustomerService
customerService
;
@Resource
private
ReconciliationCompanyService
reconciliationCompanyService
;
@PostMapping
(
"/upload/excel"
)
...
...
@@ -114,8 +113,17 @@ public class ApiPolicyFollowController {
String
validateMsg
=
validate
(
dtoList
);
if
(
StringUtils
.
isNotBlank
(
validateMsg
))
return
Result
.
fail
(
ErrorCode
.
OPERATION_ERROR
.
getCode
(),
validateMsg
);
// 保存对账公司
Set
<
String
>
reconciliationCompanyNames
=
dtoList
.
stream
()
.
map
(
PolicyExcelDTO:
:
getReconciliationCompany
)
.
collect
(
Collectors
.
toSet
());
List
<
ReconciliationCompany
>
reconciliationCompanyList
=
saveReconciliationCompany
(
reconciliationCompanyNames
);
// 关联对账公司
Map
<
String
,
String
>
reconciliationCompanyMap
=
reconciliationCompanyList
.
stream
()
.
collect
(
Collectors
.
toMap
(
ReconciliationCompany:
:
getCompanyName
,
ReconciliationCompany:
:
getReconciliationCompanyBizId
));
// 转换为PolicyFollow对象
List
<
PolicyFollowDTO
>
list
=
convertToObj
(
dtoList
);
List
<
PolicyFollowDTO
>
list
=
convertToObj
(
dtoList
,
reconciliationCompanyMap
);
List
<
PolicyFollow
>
policyFollowList
=
new
ArrayList
<>();
List
<
Policy
>
policyList
=
new
ArrayList
<>();
...
...
@@ -124,6 +132,7 @@ public class ApiPolicyFollowController {
policyFollowList
.
add
(
policyFollow
.
getPolicyFollow
());
policyBrokerList
.
addAll
(
policyFollow
.
getBrokerList
());
// policyList.add(policyFollow.getPolicy());
reconciliationCompanyNames
.
add
(
policyFollow
.
getPolicy
().
getReconciliationCompany
());
}
policyFollowService
.
saveBatch
(
policyFollowList
);
...
...
@@ -137,6 +146,7 @@ public class ApiPolicyFollowController {
List
<
CommissionExpected
>
commissionExpectedList
=
new
ArrayList
<>();
for
(
CommissionExcelDTO
commissionExcelDTO
:
dataList
)
{
CommissionExpected
commissionExpected
=
CommissionExcelDTO
.
convertToCommissionExpectedObj
(
commissionExcelDTO
,
loginUserId
);
commissionExpected
.
setReconciliationCompanyBizId
(
reconciliationCompanyMap
.
get
(
commissionExcelDTO
.
getReconciliationCompany
()));
commissionExpectedList
.
add
(
commissionExpected
);
}
commissionExpectedService
.
saveBatch
(
commissionExpectedList
);
...
...
@@ -144,6 +154,40 @@ public class ApiPolicyFollowController {
return
Result
.
success
(
true
);
}
private
List
<
ReconciliationCompany
>
saveReconciliationCompany
(
Set
<
String
>
reconciliationCompanyNames
)
{
List
<
ReconciliationCompany
>
reconciliationCompanyList
=
new
ArrayList
<>();
// 查询已存在的对账公司
List
<
ReconciliationCompany
>
existingCompanies
=
reconciliationCompanyService
.
lambdaQuery
()
.
in
(
ReconciliationCompany:
:
getCompanyName
,
reconciliationCompanyNames
)
.
list
();
Set
<
String
>
existingCompanyNames
=
existingCompanies
.
stream
()
.
map
(
ReconciliationCompany:
:
getCompanyName
)
.
collect
(
Collectors
.
toSet
());
// 过滤掉已存在的公司名称
Set
<
String
>
newCompanyNames
=
reconciliationCompanyNames
.
stream
()
.
filter
(
name
->
!
existingCompanyNames
.
contains
(
name
))
.
collect
(
Collectors
.
toSet
());
// 只保存新的对账公司
for
(
String
reconciliationCompanyName
:
newCompanyNames
)
{
ReconciliationCompany
reconciliationCompany
=
new
ReconciliationCompany
();
reconciliationCompany
.
setReconciliationCompanyBizId
(
RandomStringGenerator
.
generateBizId16
(
"reconciliation_company"
));
reconciliationCompany
.
setCompanyName
(
reconciliationCompanyName
);
reconciliationCompanyList
.
add
(
reconciliationCompany
);
}
if
(!
reconciliationCompanyList
.
isEmpty
())
{
reconciliationCompanyService
.
saveBatch
(
reconciliationCompanyList
);
}
// 返回所有对账公司(包括已存在的和新建的)
List
<
ReconciliationCompany
>
allCompanies
=
new
ArrayList
<>(
existingCompanies
);
allCompanies
.
addAll
(
reconciliationCompanyList
);
return
allCompanies
;
}
private
String
validate
(
List
<
PolicyExcelDTO
>
dtoList
)
{
String
validateMsg
=
""
;
// 校验保单号是否为空
...
...
@@ -166,7 +210,7 @@ public class ApiPolicyFollowController {
return
validateMsg
;
}
private
List
<
PolicyFollowDTO
>
convertToObj
(
List
<
PolicyExcelDTO
>
list
)
throws
ParseException
{
private
List
<
PolicyFollowDTO
>
convertToObj
(
List
<
PolicyExcelDTO
>
list
,
Map
<
String
,
String
>
reconciliationCompanyMap
)
throws
ParseException
{
List
<
PolicyFollowDTO
>
policyFollowDTOList
=
new
ArrayList
<>();
// 获取所有保单持有人
...
...
@@ -192,11 +236,19 @@ public class ApiPolicyFollowController {
policyFollow
.
setInitialPremium
(
decimalFormat
.
parse
(
policyExcelDTO
.
getInitialPremium
()));
policyFollow
.
setCustomerName
(
policyExcelDTO
.
getPolicyHolder
());
policyFollow
.
setCustomerBizId
(
customerNameToBizIdMap
.
get
(
policyExcelDTO
.
getPolicyHolder
()));
PolicyFollowStatusEnum
policyFollowStatusEnum
=
PolicyFollowStatusEnum
.
getEnumByItemLabel
(
policyExcelDTO
.
getStatus
());
if
(
policyFollowStatusEnum
==
null
)
{
policyFollow
.
setStatus
(
null
);
}
else
{
policyFollow
.
setStatus
(
policyFollowStatusEnum
.
getItemValue
());
}
policyFollow
.
setReconciliationCompanyBizId
(
reconciliationCompanyMap
.
get
(
policyExcelDTO
.
getReconciliationCompany
()));
// 转换为Policy对象
Policy
policy
=
new
Policy
();
BeanUtils
.
copyProperties
(
policyExcelDTO
,
policy
);
policy
.
setPolicyBizId
(
policyBizId
);
policy
.
setReconciliationCompanyBizId
(
policyFollow
.
getReconciliationCompanyBizId
());
// 转换为PolicyBroker对象
List
<
PolicyBroker
>
policyBrokerList
=
new
ArrayList
<>();
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiReconciliationCompanyController.java
0 → 100644
View file @
1adf7a43
package
com
.
yd
.
csf
.
api
.
controller
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.common.result.Result
;
import
com.yd.csf.service.dto.ReconciliationCompanyQueryRequest
;
import
com.yd.csf.service.model.ReconciliationCompany
;
import
com.yd.csf.service.service.ReconciliationCompanyService
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
/**
* 对账公司接口
*
* @author jianan
* @since 2025-09-20
*/
@RestController
@RequestMapping
(
"/reconciliation_company"
)
@Tag
(
name
=
"对账公司接口"
)
public
class
ApiReconciliationCompanyController
{
@Resource
private
ReconciliationCompanyService
reconciliationCompanyService
;
/**
* 创建保单
*
* @param customerAddRequest
* @param request
* @return
*/
// @Operation(summary = "创建保单")
// @PostMapping("/add")
// @Transactional(rollbackFor = Exception.class)
// public Result<Map<String, Object>> addCustomer(@RequestBody CustomerAddRequest customerAddRequest, HttpServletRequest request) {
// if (customerAddRequest == null) {
// return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
// }
// return Result.success(PolicyService.addCustomer(customerAddRequest));
// }
/**
* 删除fna
*
* @param deleteRequest
* @param request
* @return
*/
// @PostMapping("/delete")
// public Result<Boolean> deleteFna(@RequestBody DeleteRequest deleteRequest, HttpServletRequest request) {
// if (deleteRequest == null || deleteRequest.getId() <= 0) {
// throw new BusinessException(ErrorCode.PARAMS_ERROR);
// }
// User user = userService.getLoginUser(request);
// long id = deleteRequest.getId();
// // 判断是否存在
// Customer oldFna = PolicyService.getById(id);
// ThrowUtils.throwIf(oldFna == null, ErrorCode.NOT_FOUND_ERROR);
// // 仅本人或管理员可删除
// if (!oldFna.getUserId().equals(user.getId()) && !userService.isAdmin(request)) {
// throw new BusinessException(ErrorCode.NO_AUTH_ERROR);
// }
// // 操作数据库
// boolean result = PolicyService.removeById(id);
// ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
// return Result.success(true);
// }
/**
* 更新保单
*
* @param PolicyUpdateRequest
* @return
*/
// @PostMapping("/update")
// @Operation(summary = "更新保单信息")
// public Result<Boolean> updatePolicy(@RequestBody PolicyUpdateRequest PolicyUpdateRequest) {
// if (PolicyUpdateRequest == null || PolicyUpdateRequest.getPolicyBizId() == null) {
// return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
// }
// return Result.success(PolicyService.updatePolicy(PolicyUpdateRequest));
// }
/**
* 根据 policyBizId 获取保单(封装类)
*
* @param policyBizId
* @return
*/
// @GetMapping("/get/vo")
// @Operation(summary = "根据 policyBizId 获取保单详情")
// public Result<PolicyVO> getPolicyByPolicyBizId(@RequestParam("policyBizId") String policyBizId, HttpServletRequest request) {
// if (policyBizId == null) {
// return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
// }
// // 查询数据库
// Policy Policy = PolicyService.getByPolicyBizId(policyBizId);
// if (Policy == null) {
// return Result.fail(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
// }
//
// // 获取封装类
// return Result.success(PolicyService.getPolicyVO(Policy));
// }
/**
* 分页获取对账公司列表(VO)
*
* @param reconciliationCompanyQueryRequest
* @param request
* @return
*/
@PostMapping
(
"/list/page"
)
@Operation
(
summary
=
"分页获取对账公司列表"
)
public
Result
<
Page
<
ReconciliationCompany
>>
listReconciliationCompanyByPage
(
@RequestBody
ReconciliationCompanyQueryRequest
reconciliationCompanyQueryRequest
,
HttpServletRequest
request
)
{
long
current
=
reconciliationCompanyQueryRequest
.
getPageNo
();
long
size
=
reconciliationCompanyQueryRequest
.
getPageSize
();
// 查询数据库
Page
<
ReconciliationCompany
>
reconciliationCompanyPage
=
reconciliationCompanyService
.
page
(
new
Page
<>(
current
,
size
),
reconciliationCompanyService
.
getQueryWrapper
(
reconciliationCompanyQueryRequest
));
// 获取封装类
return
Result
.
success
(
reconciliationCompanyPage
);
}
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/CompleteFortuneAccountRequest.java
0 → 100644
View file @
1adf7a43
package
com
.
yd
.
csf
.
service
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
@Data
public
class
CompleteFortuneAccountRequest
implements
Serializable
{
/**
* 出账数据业务ID列表
*/
@Schema
(
description
=
"出账数据业务ID列表"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
List
<
String
>
fortuneAccountBizIdList
;
private
static
final
long
serialVersionUID
=
1L
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneAccountExportDTO.java
View file @
1adf7a43
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.yd.csf.service.model.Fortune
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Data
...
...
@@ -24,6 +26,8 @@ public class FortuneAccountExportDTO implements Serializable {
@ExcelProperty
(
"出账总额"
)
private
BigDecimal
amount
;
private
List
<
Fortune
>
fortuneList
;
// 动态字段,用于存储不同的fortune项目
private
Map
<
String
,
BigDecimal
>
fortuneAmounts
=
new
HashMap
<>();
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/ReconciliationCompanyQueryRequest.java
0 → 100644
View file @
1adf7a43
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.yd.common.dto.PageDto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
ReconciliationCompanyQueryRequest
extends
PageDto
implements
Serializable
{
/**
* 对账公司名称
*/
@Schema
(
description
=
"对账公司名称"
)
private
String
companyName
;
private
static
final
long
serialVersionUID
=
1L
;
}
yd-csf-service/src/main/java/com/yd/csf/service/enums/PolicyFollowStatusEnum.java
View file @
1adf7a43
package
com
.
yd
.
csf
.
service
.
enums
;
import
org.apache.commons.lang3.ObjectUtils
;
/**
* 新单跟进状态枚举 'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消'
*/
...
...
@@ -21,6 +23,24 @@ public enum PolicyFollowStatusEnum {
this
.
itemValue
=
itemValue
;
}
/**
* 根据 itemLabel 获取枚举
*
* @param itemLabel
* @return
*/
public
static
PolicyFollowStatusEnum
getEnumByItemLabel
(
String
itemLabel
)
{
if
(
ObjectUtils
.
isEmpty
(
itemLabel
))
{
return
null
;
}
for
(
PolicyFollowStatusEnum
anEnum
:
PolicyFollowStatusEnum
.
values
())
{
if
(
anEnum
.
itemLabel
.
equals
(
itemLabel
))
{
return
anEnum
;
}
}
return
null
;
}
public
String
getItemLabel
()
{
return
itemLabel
;
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Fortune.java
View file @
1adf7a43
...
...
@@ -100,6 +100,11 @@ public class Fortune implements Serializable {
*/
private
Date
payoutDate
;
/**
* 出账数据业务ID
*/
private
String
fortuneAccountBizId
;
/**
* 是否含税 0=No, 1=Yes
*/
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/FortuneAccount.java
View file @
1adf7a43
...
...
@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
import
lombok.Data
;
/**
...
...
@@ -62,6 +64,11 @@ public class FortuneAccount implements Serializable {
*/
private
String
content
;
/**
* 出账数据列表
*/
private
List
<
Fortune
>
fortuneList
;
/**
* 通用备注
*/
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneAccountService.java
View file @
1adf7a43
...
...
@@ -2,10 +2,7 @@ package com.yd.csf.service.service;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.service.dto.FortuneAccountAddRequest
;
import
com.yd.csf.service.dto.FortuneAccountExportDTO
;
import
com.yd.csf.service.dto.FortuneAccountQueryRequest
;
import
com.yd.csf.service.dto.FortuneAccountUpdateRequest
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.model.FortuneAccount
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.vo.FortuneAccountVO
;
...
...
@@ -31,4 +28,6 @@ public interface FortuneAccountService extends IService<FortuneAccount> {
Map
<
String
,
Object
>
addFortuneAccount
(
FortuneAccountAddRequest
fortuneAccountAddRequest
);
Boolean
updateFortuneAccount
(
FortuneAccountUpdateRequest
fortuneAccountUpdateRequest
);
Boolean
completeFortuneAccount
(
CompleteFortuneAccountRequest
completeFortuneAccountRequest
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneAccountServiceImpl.java
View file @
1adf7a43
...
...
@@ -7,26 +7,27 @@ import com.google.gson.Gson;
import
com.google.gson.reflect.TypeToken
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.FortuneAccountAddRequest
;
import
com.yd.csf.service.dto.FortuneAccountExportDTO
;
import
com.yd.csf.service.dto.FortuneAccountQueryRequest
;
import
com.yd.csf.service.dto.FortuneAccountUpdateRequest
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.enums.FortuneAccountStatusEnum
;
import
com.yd.csf.service.enums.FortuneStatusEnum
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.model.FortuneAccount
;
import
com.yd.csf.service.service.FortuneAccountService
;
import
com.yd.csf.service.dao.FortuneAccountMapper
;
import
com.yd.csf.service.service.FortuneService
;
import
com.yd.csf.service.vo.FortuneAccountVO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @author Zhang Jianan
...
...
@@ -37,6 +38,9 @@ import java.util.*;
public
class
FortuneAccountServiceImpl
extends
ServiceImpl
<
FortuneAccountMapper
,
FortuneAccount
>
implements
FortuneAccountService
{
@Resource
private
FortuneService
fortuneService
;
private
final
Gson
GSON
=
new
Gson
();
@Override
...
...
@@ -77,6 +81,7 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
}
@Override
@Transactional
(
rollbackFor
=
BusinessException
.
class
)
public
void
saveFortuneAccount
(
List
<
FortuneAccountExportDTO
>
accountExportDTOList
)
{
if
(
CollectionUtils
.
isEmpty
(
accountExportDTOList
))
{
return
;
...
...
@@ -108,6 +113,7 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
fortuneList
.
add
(
fortune
);
}
fortuneAccount
.
setContent
(
GSON
.
toJson
(
fortuneList
));
fortuneAccount
.
setFortuneList
(
accountExportDTO
.
getFortuneList
());
fortuneAccount
.
setCreatorId
(
loginUserId
.
toString
());
fortuneAccount
.
setUpdaterId
(
loginUserId
.
toString
());
fortuneAccount
.
setCreateTime
(
currentDate
);
...
...
@@ -115,8 +121,29 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
fortuneAccountList
.
add
(
fortuneAccount
);
}
// 保存出账记录
this
.
saveBatch
(
fortuneAccountList
);
// 处理关联发佣记录
List
<
Fortune
>
updateFortuneList
=
new
ArrayList
<>();
for
(
FortuneAccount
fortuneAccount
:
fortuneAccountList
)
{
String
fortuneAccountBizId
=
fortuneAccount
.
getFortuneAccountBizId
();
List
<
Fortune
>
fortuneList
=
fortuneAccount
.
getFortuneList
();
if
(
CollectionUtils
.
isNotEmpty
(
fortuneList
))
{
for
(
Fortune
item
:
fortuneList
)
{
Fortune
updateFortune
=
new
Fortune
();
updateFortune
.
setId
(
item
.
getId
());
updateFortune
.
setFortuneAccountBizId
(
fortuneAccountBizId
);
updateFortuneList
.
add
(
updateFortune
);
}
}
}
// 更新发佣记录的出账记录id
if
(
CollectionUtils
.
isNotEmpty
(
updateFortuneList
))
{
fortuneService
.
updateBatchById
(
updateFortuneList
);
}
}
@Override
...
...
@@ -171,6 +198,43 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
this
.
updateById
(
fortuneAccount
);
return
true
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
completeFortuneAccount
(
CompleteFortuneAccountRequest
completeFortuneAccountRequest
)
{
List
<
String
>
fortuneAccountBizIdList
=
completeFortuneAccountRequest
.
getFortuneAccountBizIdList
();
List
<
FortuneAccount
>
fortuneAccountList
=
this
.
listByIds
(
fortuneAccountBizIdList
);
if
(
CollectionUtils
.
isEmpty
(
fortuneAccountList
))
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
ResultCode
.
NULL_ERROR
.
getMessage
());
}
// 当前登录用户
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
Long
loginUserId
=
currentLoginUser
.
getId
();
// 更新 FortuneAccount 状态为已出账
for
(
FortuneAccount
fortuneAccount
:
fortuneAccountList
)
{
fortuneAccount
.
setStatus
(
FortuneAccountStatusEnum
.
SENT
.
getItemValue
());
fortuneAccount
.
setUpdaterId
(
loginUserId
.
toString
());
fortuneAccount
.
setUpdateTime
(
new
Date
());
}
this
.
updateBatchById
(
fortuneAccountList
);
// 更新 Fortune 状态为已出账
List
<
String
>
accountBizIdList
=
fortuneAccountList
.
stream
().
map
(
FortuneAccount:
:
getFortuneAccountBizId
).
collect
(
Collectors
.
toList
());
List
<
Fortune
>
updateFortuneList
=
fortuneService
.
list
(
new
QueryWrapper
<
Fortune
>().
in
(
"fortune_account_biz_id"
,
accountBizIdList
));
if
(
CollectionUtils
.
isNotEmpty
(
updateFortuneList
))
{
for
(
Fortune
item
:
updateFortuneList
)
{
item
.
setStatus
(
FortuneStatusEnum
.
SENT
.
getItemValue
());
item
.
setUpdaterId
(
loginUserId
.
toString
());
item
.
setUpdateTime
(
new
Date
());
}
fortuneService
.
updateBatchById
(
updateFortuneList
);
}
return
true
;
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
View file @
1adf7a43
...
...
@@ -154,6 +154,7 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
FortuneAccountExportDTO
accountDTO
=
new
FortuneAccountExportDTO
();
accountDTO
.
setBroker
(
broker
);
accountDTO
.
setFortuneList
(
brokerFortunes
);
// 设置团队、币种(取第一个记录)
if
(
CollUtil
.
isNotEmpty
(
brokerFortunes
))
{
...
...
yd-csf-service/src/main/resources/mappers/FortuneAccountMapper.xml
View file @
1adf7a43
...
...
@@ -10,6 +10,7 @@
<result
property=
"broker"
column=
"broker"
/>
<result
property=
"fortuneAccountDate"
column=
"fortune_account_date"
/>
<result
property=
"content"
column=
"content"
/>
<result
property=
"fortuneBizIdList"
column=
"fortune_biz_id_list"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"isDeleted"
column=
"is_deleted"
/>
<result
property=
"creatorId"
column=
"creator_id"
/>
...
...
@@ -19,7 +20,7 @@
</resultMap>
<sql
id=
"Base_Column_List"
>
id,fortune_account_biz_id,broker,fortune_account_date,content,remark,
id,fortune_account_biz_id,broker,fortune_account_date,content,
fortune_biz_id_list,
remark,
is_deleted,creator_id,updater_id,create_time,update_time
</sql>
</mapper>
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