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
d063ba5b
Commit
d063ba5b
authored
Sep 23, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
来佣接口5
parent
39fc2df1
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
245 additions
and
22 deletions
+245
-22
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
+20
-0
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
+21
-12
yd-csf-api/src/main/java/com/yd/csf/api/dto/FortuneImportDTO.java
+1
-1
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneDownloadRequest.java
+13
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneExportDTO.java
+42
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneQueryRequest.java
+2
-2
yd-csf-service/src/main/java/com/yd/csf/service/dto/GenerateFortuneRequest.java
+13
-0
yd-csf-service/src/main/java/com/yd/csf/service/enums/FortuneStatusEnum.java
+4
-2
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.java
+3
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneService.java
+6
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+83
-4
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
+36
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneVO.java
+1
-1
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
View file @
d063ba5b
...
@@ -9,11 +9,13 @@ import com.yd.csf.api.dto.CommissionExcelDTO;
...
@@ -9,11 +9,13 @@ import com.yd.csf.api.dto.CommissionExcelDTO;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.CommissionQueryRequest
;
import
com.yd.csf.service.dto.CommissionQueryRequest
;
import
com.yd.csf.service.dto.CommissionUpdateRequest
;
import
com.yd.csf.service.dto.CommissionUpdateRequest
;
import
com.yd.csf.service.dto.GenerateFortuneRequest
;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.service.CommissionService
;
import
com.yd.csf.service.service.CommissionService
;
import
com.yd.csf.service.vo.CommissionVO
;
import
com.yd.csf.service.vo.CommissionVO
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
...
@@ -80,6 +82,24 @@ public class ApiCommissionController {
...
@@ -80,6 +82,24 @@ public class ApiCommissionController {
commissionService
.
saveBatch
(
entities
);
commissionService
.
saveBatch
(
entities
);
}
}
/**
* 生成可出账(发佣)记录,支持手动复选框选择
*
* @param generateFortuneRequest
* @param request
* @return
*/
@PostMapping
(
"/generate/fortune"
)
@Operation
(
summary
=
"生成可出账(发佣)记录,支持手动复选框选择"
)
public
Result
<
Boolean
>
generateFortune
(
@RequestBody
GenerateFortuneRequest
generateFortuneRequest
,
HttpServletRequest
request
)
{
List
<
String
>
commissionBizIdList
=
generateFortuneRequest
.
getCommissionBizIdList
();
if
(
CollectionUtils
.
isEmpty
(
commissionBizIdList
))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"commissionBizIdList不能为空"
);
}
return
Result
.
success
(
commissionService
.
generateFortune
(
generateFortuneRequest
));
}
/**
/**
* 创建保单来佣
* 创建保单来佣
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
View file @
d063ba5b
...
@@ -4,16 +4,24 @@ import com.alibaba.excel.EasyExcel;
...
@@ -4,16 +4,24 @@ import com.alibaba.excel.EasyExcel;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
import
com.yd.auth.core.utils.SecurityUtil
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.csf.api.dto.FortuneImportDTO
;
import
com.yd.csf.api.dto.FortuneImportDTO
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.FortuneDownloadRequest
;
import
com.yd.csf.service.dto.FortuneQueryRequest
;
import
com.yd.csf.service.dto.FortuneQueryRequest
;
import
com.yd.csf.service.dto.FortuneUpdateRequest
;
import
com.yd.csf.service.dto.FortuneUpdateRequest
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.service.FortuneService
;
import
com.yd.csf.service.service.FortuneService
;
import
com.yd.csf.service.vo.FortuneVO
;
import
com.yd.csf.service.vo.FortuneVO
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.media.Content
;
import
io.swagger.v3.oas.annotations.responses.ApiResponse
;
import
io.swagger.v3.oas.annotations.servers.Server
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
io.swagger.v3.oas.models.annotations.OpenAPI30
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
...
@@ -22,6 +30,7 @@ import org.springframework.web.multipart.MultipartFile;
...
@@ -22,6 +30,7 @@ import org.springframework.web.multipart.MultipartFile;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
@@ -81,22 +90,22 @@ public class ApiFortuneController {
...
@@ -81,22 +90,22 @@ public class ApiFortuneController {
}
}
/**
/**
*
创建保单发佣
*
下载选中的发佣数据
*
*
* @param
customerAd
dRequest
* @param
fortuneDownloa
dRequest
* @param re
quest
* @param re
sponse
* @return
* @return
*/
*/
// @Operation(summary = "创建保单发佣")
@Operation
(
summary
=
"下载选中的发佣数据"
)
// @PostMapping("/add")
@PostMapping
(
"/download"
)
// @Transactional(rollbackFor = Exception.class)
public
void
downloadFortune
(
@RequestBody
FortuneDownloadRequest
fortuneDownloadRequest
,
HttpServletResponse
response
)
throws
IOException
{
// public Result<Map<String, Object>> addCustomer(@RequestBody CustomerAddRequest customerAddRequest, HttpServletRequest request) {
if
(
CollectionUtils
.
isEmpty
(
fortuneDownloadRequest
.
getFortuneBizIdList
()))
{
// if (customerAddRequest == null) {
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"请选择要下载的发佣数据"
);
// return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
// }
fortuneService
.
downloadFortune
(
fortuneDownloadRequest
,
response
);
// return Result.success(policyFollowService.addCustomer(customerAddRequest));
}
// }
/**
/**
* 删除fna
* 删除fna
...
...
yd-csf-api/src/main/java/com/yd/csf/api/dto/FortuneImportDTO.java
View file @
d063ba5b
...
@@ -57,7 +57,7 @@ public class FortuneImportDTO {
...
@@ -57,7 +57,7 @@ public class FortuneImportDTO {
entity
.
setBroker
(
data
.
getBroker
());
entity
.
setBroker
(
data
.
getBroker
());
entity
.
setTeam
(
data
.
getTeam
());
entity
.
setTeam
(
data
.
getTeam
());
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setStatus
(
FortuneStatusEnum
.
UNSENT
.
getItemValue
());
entity
.
setStatus
(
FortuneStatusEnum
.
IN_PROCESS
.
getItemValue
());
entity
.
setCreatorId
(
loginUserId
);
entity
.
setCreatorId
(
loginUserId
);
entity
.
setUpdaterId
(
loginUserId
);
entity
.
setUpdaterId
(
loginUserId
);
entity
.
setCreateTime
(
new
Date
());
entity
.
setCreateTime
(
new
Date
());
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneDownloadRequest.java
0 → 100644
View file @
d063ba5b
package
com
.
yd
.
csf
.
service
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
FortuneDownloadRequest
{
@Schema
(
description
=
"发佣数据业务Id列表"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
List
<
String
>
fortuneBizIdList
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneExportDTO.java
0 → 100644
View file @
d063ba5b
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
@Data
public
class
FortuneExportDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ExcelProperty
(
"发佣数据业务id"
)
private
String
fortuneBizId
;
@ExcelProperty
(
"保单号"
)
private
String
policyNo
;
@ExcelProperty
(
"发佣期数"
)
private
Integer
fortunePeriod
;
@ExcelProperty
(
"总发佣期数"
)
private
Integer
fortuneTotalPeriod
;
@ExcelProperty
(
"发佣项目"
)
private
String
fortuneName
;
@ExcelProperty
(
"发佣金额"
)
private
BigDecimal
amount
;
@ExcelProperty
(
"发佣币种"
)
private
String
currency
;
@ExcelProperty
(
"转介人"
)
private
String
broker
;
@ExcelProperty
(
"所属团队"
)
private
String
team
;
@ExcelProperty
(
"备注"
)
private
String
remark
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneQueryRequest.java
View file @
d063ba5b
...
@@ -6,6 +6,7 @@ import lombok.Data;
...
@@ -6,6 +6,7 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.List
;
/**
/**
* 查询fortune请求
* 查询fortune请求
...
@@ -14,11 +15,10 @@ import java.io.Serializable;
...
@@ -14,11 +15,10 @@ import java.io.Serializable;
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@Data
public
class
FortuneQueryRequest
extends
PageDto
implements
Serializable
{
public
class
FortuneQueryRequest
extends
PageDto
implements
Serializable
{
/**
/**
* 发佣状态
* 发佣状态
*/
*/
@Schema
(
description
=
"发佣状态 '0'-'
待发佣','1
'-'已发并关账', 字典值: csf_fortune_status"
)
@Schema
(
description
=
"发佣状态 '0'-'
暂不可发','1'-'可发放','2
'-'已发并关账', 字典值: csf_fortune_status"
)
private
String
status
;
private
String
status
;
/**
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/GenerateFortuneRequest.java
0 → 100644
View file @
d063ba5b
package
com
.
yd
.
csf
.
service
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
GenerateFortuneRequest
{
@Schema
(
description
=
"佣金业务id列表"
)
private
List
<
String
>
commissionBizIdList
;
}
yd-csf-service/src/main/java/com/yd/csf/service/enums/FortuneStatusEnum.java
View file @
d063ba5b
...
@@ -6,8 +6,10 @@ package com.yd.csf.service.enums;
...
@@ -6,8 +6,10 @@ package com.yd.csf.service.enums;
public
enum
FortuneStatusEnum
{
public
enum
FortuneStatusEnum
{
//发佣状态枚举
//发佣状态枚举
UNSENT
(
"待发佣"
,
"0"
),
IN_PROCESS
(
"暂不可发"
,
"0"
),
SENT
(
"已发并关账"
,
"1"
),
CANSEND
(
"可发放"
,
"1"
),
SENT
(
"已发并关账"
,
"2"
),
;
;
//字典项标签(名称)
//字典项标签(名称)
private
String
itemLabel
;
private
String
itemLabel
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.java
View file @
d063ba5b
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.service.dto.CommissionQueryRequest
;
import
com.yd.csf.service.dto.CommissionQueryRequest
;
import
com.yd.csf.service.dto.CommissionUpdateRequest
;
import
com.yd.csf.service.dto.CommissionUpdateRequest
;
import
com.yd.csf.service.dto.GenerateFortuneRequest
;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.model.Commission
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.vo.CommissionVO
;
import
com.yd.csf.service.vo.CommissionVO
;
...
@@ -21,4 +22,6 @@ public interface CommissionService extends IService<Commission> {
...
@@ -21,4 +22,6 @@ public interface CommissionService extends IService<Commission> {
Page
<
CommissionVO
>
getCommissionVOPage
(
Page
<
Commission
>
commissionPage
);
Page
<
CommissionVO
>
getCommissionVOPage
(
Page
<
Commission
>
commissionPage
);
Boolean
updateCommission
(
CommissionUpdateRequest
commissionUpdateRequest
);
Boolean
updateCommission
(
CommissionUpdateRequest
commissionUpdateRequest
);
Boolean
generateFortune
(
GenerateFortuneRequest
generateFortuneRequest
);
}
}
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneService.java
View file @
d063ba5b
...
@@ -2,12 +2,16 @@ package com.yd.csf.service.service;
...
@@ -2,12 +2,16 @@ package com.yd.csf.service.service;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.service.dto.FortuneDownloadRequest
;
import
com.yd.csf.service.dto.FortuneQueryRequest
;
import
com.yd.csf.service.dto.FortuneQueryRequest
;
import
com.yd.csf.service.dto.FortuneUpdateRequest
;
import
com.yd.csf.service.dto.FortuneUpdateRequest
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.model.Fortune
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.vo.FortuneVO
;
import
com.yd.csf.service.vo.FortuneVO
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
/**
/**
* @author Zhang Jianan
* @author Zhang Jianan
* @description 针对表【fortune(保单发佣表)】的数据库操作Service
* @description 针对表【fortune(保单发佣表)】的数据库操作Service
...
@@ -20,4 +24,6 @@ public interface FortuneService extends IService<Fortune> {
...
@@ -20,4 +24,6 @@ public interface FortuneService extends IService<Fortune> {
Page
<
FortuneVO
>
getFortuneVOPage
(
Page
<
Fortune
>
fortunePage
);
Page
<
FortuneVO
>
getFortuneVOPage
(
Page
<
Fortune
>
fortunePage
);
Boolean
updateFortune
(
FortuneUpdateRequest
fortuneUpdateRequest
);
Boolean
updateFortune
(
FortuneUpdateRequest
fortuneUpdateRequest
);
void
downloadFortune
(
FortuneDownloadRequest
fortuneDownloadRequest
,
HttpServletResponse
response
)
throws
IOException
;
}
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
d063ba5b
...
@@ -6,21 +6,29 @@ import cn.hutool.core.collection.CollUtil;
...
@@ -6,21 +6,29 @@ import cn.hutool.core.collection.CollUtil;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.service.dto.CommissionQueryRequest
;
import
com.yd.csf.service.dto.CommissionQueryRequest
;
import
com.yd.csf.service.dto.CommissionUpdateRequest
;
import
com.yd.csf.service.dto.CommissionUpdateRequest
;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.dto.GenerateFortuneRequest
;
import
com.yd.csf.service.model.Customer
;
import
com.yd.csf.service.enums.CommissionStatusEnum
;
import
com.yd.csf.service.enums.FortuneStatusEnum
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.service.CommissionService
;
import
com.yd.csf.service.service.CommissionService
;
import
com.yd.csf.service.dao.CommissionMapper
;
import
com.yd.csf.service.dao.CommissionMapper
;
import
com.yd.csf.service.service.FortuneService
;
import
com.yd.csf.service.service.PolicyBrokerService
;
import
com.yd.csf.service.service.PolicyService
;
import
com.yd.csf.service.vo.CommissionVO
;
import
com.yd.csf.service.vo.CommissionVO
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java
.util.Dat
e
;
import
java
x.annotation.Resourc
e
;
import
java.util.
List
;
import
java.util.
*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -32,6 +40,15 @@ import java.util.stream.Collectors;
...
@@ -32,6 +40,15 @@ import java.util.stream.Collectors;
public
class
CommissionServiceImpl
extends
ServiceImpl
<
CommissionMapper
,
Commission
>
public
class
CommissionServiceImpl
extends
ServiceImpl
<
CommissionMapper
,
Commission
>
implements
CommissionService
{
implements
CommissionService
{
@Resource
private
FortuneService
fortuneService
;
@Resource
private
PolicyService
policyService
;
@Resource
private
PolicyBrokerService
policyBrokerService
;
@Override
@Override
public
QueryWrapper
<
Commission
>
getQueryWrapper
(
CommissionQueryRequest
commissionQueryRequest
)
{
public
QueryWrapper
<
Commission
>
getQueryWrapper
(
CommissionQueryRequest
commissionQueryRequest
)
{
QueryWrapper
<
Commission
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
Commission
>
queryWrapper
=
new
QueryWrapper
<>();
...
@@ -87,6 +104,68 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
...
@@ -87,6 +104,68 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return
this
.
updateById
(
commission
);
return
this
.
updateById
(
commission
);
}
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
generateFortune
(
GenerateFortuneRequest
generateFortuneRequest
)
{
List
<
String
>
commissionBizIdList
=
generateFortuneRequest
.
getCommissionBizIdList
();
List
<
Commission
>
commissionList
=
this
.
list
(
new
QueryWrapper
<
Commission
>().
in
(
"commission_biz_id"
,
commissionBizIdList
));
// 获取所有保单号
Set
<
String
>
policyNoSet
=
commissionList
.
stream
().
map
(
Commission:
:
getPolicyNo
).
collect
(
Collectors
.
toSet
());
// 根据保单号查询所有发佣记录
List
<
Fortune
>
fortuneList
=
fortuneService
.
list
(
new
QueryWrapper
<
Fortune
>().
in
(
"policy_no"
,
policyNoSet
));
// 校验,如果有"可发放或已发并关账"的发佣记录,不能重复生成
for
(
Fortune
item
:
fortuneList
)
{
if
(
StringUtils
.
equals
(
item
.
getStatus
(),
FortuneStatusEnum
.
CANSEND
.
getItemValue
())
||
StringUtils
.
equals
(
item
.
getStatus
(),
FortuneStatusEnum
.
SENT
.
getItemValue
()))
{
throw
new
BusinessException
(
ResultCode
.
FAIL
.
getCode
(),
"该来佣记录已被处理,不能重复生成"
);
}
}
// 1.查询所有保单号对应的保单
List
<
Policy
>
policyList
=
policyService
.
list
(
new
QueryWrapper
<
Policy
>().
in
(
"policy_no"
,
policyNoSet
));
// 构建保单号到保单的映射
Map
<
String
,
Policy
>
policyMap
=
policyList
.
stream
().
collect
(
Collectors
.
toMap
(
Policy:
:
getPolicyNo
,
policy
->
policy
));
// 2.根据保单号查询所有转介人
List
<
PolicyBroker
>
brokerList
=
policyBrokerService
.
list
(
new
QueryWrapper
<
PolicyBroker
>().
in
(
"policy_no"
,
policyNoSet
));
// 构建保单号到转介人的映射
Map
<
String
,
List
<
PolicyBroker
>>
brokerMap
=
brokerList
.
stream
().
collect
(
Collectors
.
groupingBy
(
PolicyBroker:
:
getPolicyNo
));
// 3.删除旧的发佣记录
fortuneService
.
remove
(
new
QueryWrapper
<
Fortune
>().
in
(
"policy_no"
,
policyNoSet
));
// 4. 构建发佣记录
List
<
Fortune
>
newFortuneList
=
new
ArrayList
<>();
for
(
Commission
commission
:
commissionList
)
{
String
policyNo
=
commission
.
getPolicyNo
();
List
<
PolicyBroker
>
policyBrokers
=
brokerMap
.
get
(
policyNo
);
for
(
PolicyBroker
policyBroker
:
policyBrokers
)
{
Fortune
fortune
=
new
Fortune
();
fortune
.
setFortuneBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_FORTUNE
.
getCode
()));
fortune
.
setPolicyNo
(
policyNo
);
fortune
.
setBroker
(
policyBroker
.
getBrokerName
());
fortune
.
setStatus
(
FortuneStatusEnum
.
IN_PROCESS
.
getItemValue
());
fortune
.
setCreateTime
(
new
Date
());
fortune
.
setUpdateTime
(
new
Date
());
newFortuneList
.
add
(
fortune
);
}
}
// 5. 保存发佣记录
if
(
CollUtil
.
isNotEmpty
(
newFortuneList
))
{
boolean
saveSuccess
=
fortuneService
.
saveBatch
(
newFortuneList
);
if
(!
saveSuccess
)
{
throw
new
BusinessException
(
ResultCode
.
FAIL
.
getCode
(),
"保存发佣记录失败"
);
}
}
return
true
;
}
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
View file @
d063ba5b
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
@@ -9,6 +10,8 @@ import com.yd.auth.core.dto.AuthUserDto;
...
@@ -9,6 +10,8 @@ import com.yd.auth.core.dto.AuthUserDto;
import
com.yd.auth.core.utils.SecurityUtil
;
import
com.yd.auth.core.utils.SecurityUtil
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.csf.service.dto.FortuneDownloadRequest
;
import
com.yd.csf.service.dto.FortuneExportDTO
;
import
com.yd.csf.service.dto.FortuneQueryRequest
;
import
com.yd.csf.service.dto.FortuneQueryRequest
;
import
com.yd.csf.service.dto.FortuneUpdateRequest
;
import
com.yd.csf.service.dto.FortuneUpdateRequest
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.model.Fortune
;
...
@@ -19,6 +22,9 @@ import org.apache.commons.lang3.StringUtils;
...
@@ -19,6 +22,9 @@ import org.apache.commons.lang3.StringUtils;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.net.URLEncoder
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -83,6 +89,36 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
...
@@ -83,6 +89,36 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
return
this
.
updateById
(
fortune
);
return
this
.
updateById
(
fortune
);
}
}
@Override
public
void
downloadFortune
(
FortuneDownloadRequest
fortuneDownloadRequest
,
HttpServletResponse
response
)
throws
IOException
{
List
<
String
>
fortuneBizIdList
=
fortuneDownloadRequest
.
getFortuneBizIdList
();
if
(
CollUtil
.
isNotEmpty
(
fortuneBizIdList
))
{
List
<
Fortune
>
fortuneList
=
this
.
list
(
new
QueryWrapper
<
Fortune
>().
in
(
"fortune_biz_id"
,
fortuneBizIdList
));
if
(
CollUtil
.
isNotEmpty
(
fortuneList
))
{
// 转换为导出DTO
List
<
FortuneExportDTO
>
exportDTOList
=
fortuneList
.
stream
().
map
(
fortune
->
{
FortuneExportDTO
exportDTO
=
new
FortuneExportDTO
();
BeanUtils
.
copyProperties
(
fortune
,
exportDTO
);
return
exportDTO
;
}).
collect
(
Collectors
.
toList
());
// 设置响应头
response
.
setContentType
(
"application/vnd.ms-excel;charset=UTF-8"
);
response
.
setCharacterEncoding
(
"utf-8"
);
String
encode
=
URLEncoder
.
encode
(
"保单发佣.xlsx"
,
"UTF-8"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
"fortune_"
+
System
.
currentTimeMillis
()
+
".xlsx"
);
// 导出
try
{
EasyExcel
.
write
(
response
.
getOutputStream
(),
FortuneExportDTO
.
class
).
sheet
(
"保单发佣"
).
doWrite
(
exportDTOList
);
}
catch
(
IOException
e
)
{
log
.
error
(
"导出保单发佣数据失败"
,
e
);
throw
new
BusinessException
(
ResultCode
.
FAIL
.
getCode
(),
"导出失败"
);
}
}
}
}
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneVO.java
View file @
d063ba5b
...
@@ -80,7 +80,7 @@ public class FortuneVO implements Serializable {
...
@@ -80,7 +80,7 @@ public class FortuneVO implements Serializable {
private
String
currency
;
private
String
currency
;
/**
/**
* 佣金发放状态 0=
待发佣 1
=已发并关账
* 佣金发放状态 0=
暂不可发 1=可发放 2
=已发并关账
*/
*/
private
String
status
;
private
String
status
;
...
...
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