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
6375ca6e
Commit
6375ca6e
authored
Sep 22, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
来佣接口1
parent
de378866
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
482 additions
and
1 deletions
+482
-1
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
+202
-0
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+2
-1
yd-csf-api/src/main/java/com/yd/csf/api/dto/CommissionExcelDTO.java
+68
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionQueryRequest.java
+47
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionUpdateRequest.java
+40
-0
yd-csf-service/src/main/java/com/yd/csf/service/enums/CommissionStatusEnum.java
+30
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionVO.java
+93
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
0 → 100644
View file @
6375ca6e
package
com
.
yd
.
csf
.
api
.
controller
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
import
com.yd.common.result.Result
;
import
com.yd.csf.api.dto.CommissionExcelDTO
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.CommissionQueryRequest
;
import
com.yd.csf.service.dto.CommissionUpdateRequest
;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.service.CommissionService
;
import
com.yd.csf.service.vo.CommissionVO
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 保单来佣接口
*
* @author jianan
* @since 2025-09-15
*/
@RestController
@RequestMapping
(
"/commission"
)
@Tag
(
name
=
"保单来佣接口"
)
public
class
ApiCommissionController
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
ApiCommissionController
.
class
);
@Resource
private
CommissionService
commissionService
;
@PostMapping
(
"/upload/excel"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
Boolean
>
uploadExcel
(
@RequestParam
(
"file"
)
MultipartFile
file
)
throws
IOException
{
try
{
List
<
CommissionExcelDTO
>
dataList
=
EasyExcel
.
read
(
file
.
getInputStream
())
.
head
(
CommissionExcelDTO
.
class
)
.
sheet
(
"来佣"
)
.
doReadSync
();
// 获取当前登录用户的ID
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
String
loginUserId
=
currentLoginUser
.
getId
().
toString
();
// 数据验证和处理
processData
(
dataList
,
loginUserId
);
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
"Excel读取失败"
,
e
);
}
return
Result
.
success
(
true
);
}
/**
* 处理导入的数据
*/
private
void
processData
(
List
<
CommissionExcelDTO
>
dataList
,
String
loginUserId
)
{
List
<
Commission
>
entities
=
new
ArrayList
<>();
for
(
CommissionExcelDTO
data
:
dataList
)
{
// 数据验证
Commission
entity
=
CommissionExcelDTO
.
convertToEntity
(
data
,
loginUserId
);
entities
.
add
(
entity
);
}
// 批量保存
commissionService
.
saveBatch
(
entities
);
}
/**
* 创建保单来佣
*
* @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(policyFollowService.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 = policyFollowService.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 = policyFollowService.removeById(id);
// ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
// return Result.success(true);
// }
/**
* 更新保单来佣
*
* @param commissionUpdateRequest
* @return
*/
@PostMapping
(
"/update"
)
@Operation
(
summary
=
"更新保单来佣信息"
)
public
Result
<
Boolean
>
updateCommission
(
@RequestBody
CommissionUpdateRequest
commissionUpdateRequest
)
{
if
(
commissionUpdateRequest
==
null
||
commissionUpdateRequest
.
getCommissionBizId
()
==
null
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
ErrorCode
.
PARAMS_ERROR
.
getMessage
());
}
return
Result
.
success
(
commissionService
.
updateCommission
(
commissionUpdateRequest
));
}
/**
* 根据 commissionBizId 获取保单来佣(封装类)
*
* @param commissionBizId
* @return
*/
// @GetMapping("/get/vo")
// @Operation(summary = "根据 policyBizId 获取保单来佣详情")
// public Result<PolicyFollowVO> getPolicyFollowByPolicyBizId(@RequestParam("commissionBizId") String commissionBizId, HttpServletRequest request) {
// if (commissionBizId == null) {
// return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
// }
// // 查询数据库
// PolicyFollow policyFollow = policyFollowService.getByPolicyBizId(policyBizId);
// if (policyFollow == null) {
// return Result.fail(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
// }
//
// // 获取封装类
// return Result.success(policyFollowService.getPolicyFollowVO(policyFollow));
// }
/**
* 分页获取保单来佣列表(仅管理员可用)
*
* @param fnaQueryRequest
* @return
*/
// @PostMapping("/list/page")
// public Result<Page<Customer>> listFnaByPage(@RequestBody FnaQueryRequest fnaQueryRequest) {
// long current = fnaQueryRequest.getPageNo();
// long size = fnaQueryRequest.getPageSize();
// // 查询数据库
// Page<Customer> fnaPage = policyFollowService.page(new Page<>(current, size),
// policyFollowService.getQueryWrapper(fnaQueryRequest));
// return Result.success(fnaPage);
// }
/**
* 分页获取保单来佣列表(VO)
*
* @param commissionQueryRequest
* @param request
* @return
*/
@PostMapping
(
"/list/page/vo"
)
@Operation
(
summary
=
"分页获取保单来佣列表"
)
public
Result
<
Page
<
CommissionVO
>>
listPolicyFollowByPage
(
@RequestBody
CommissionQueryRequest
commissionQueryRequest
,
HttpServletRequest
request
)
{
long
current
=
commissionQueryRequest
.
getPageNo
();
long
size
=
commissionQueryRequest
.
getPageSize
();
// 查询数据库
Page
<
Commission
>
commissionPage
=
commissionService
.
page
(
new
Page
<>(
current
,
size
),
commissionService
.
getQueryWrapper
(
commissionQueryRequest
));
// 获取封装类
return
Result
.
success
(
commissionService
.
getCommissionVOPage
(
commissionPage
));
}
}
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
6375ca6e
...
@@ -2,6 +2,7 @@ package com.yd.csf.api.controller;
...
@@ -2,6 +2,7 @@ package com.yd.csf.api.controller;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.common.enums.CommonEnum
;
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.csf.api.dto.PolicyExcelDTO
;
import
com.yd.csf.api.dto.PolicyExcelDTO
;
...
@@ -90,7 +91,7 @@ public class ApiPolicyFollowController {
...
@@ -90,7 +91,7 @@ public class ApiPolicyFollowController {
for
(
PolicyExcelDTO
policyExcelDTO
:
list
)
{
for
(
PolicyExcelDTO
policyExcelDTO
:
list
)
{
String
policyNo
=
policyExcelDTO
.
getPolicyNo
();
String
policyNo
=
policyExcelDTO
.
getPolicyNo
();
// 生成新单编号
// 生成新单编号
String
policyBizId
=
RandomStringGenerator
.
generateBizId16
(
"policy"
);
String
policyBizId
=
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_POLICY
.
getCode
()
);
// 转换为PolicyFollow对象
// 转换为PolicyFollow对象
PolicyFollow
policyFollow
=
new
PolicyFollow
();
PolicyFollow
policyFollow
=
new
PolicyFollow
();
BeanUtils
.
copyProperties
(
policyExcelDTO
,
policyFollow
);
BeanUtils
.
copyProperties
(
policyExcelDTO
,
policyFollow
);
...
...
yd-csf-api/src/main/java/com/yd/csf/api/dto/CommissionExcelDTO.java
0 → 100644
View file @
6375ca6e
package
com
.
yd
.
csf
.
api
.
dto
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.service.enums.CommissionStatusEnum
;
import
com.yd.csf.service.model.Commission
;
import
lombok.Data
;
import
javax.crypto.SecretKey
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Data
public
class
CommissionExcelDTO
{
@ExcelProperty
(
"保单号"
)
private
String
policyNo
;
@ExcelProperty
(
"对账公司"
)
private
String
reconciliationCompany
;
@ExcelProperty
(
"当前来佣期数"
)
private
Integer
commissionPeriod
;
@ExcelProperty
(
"来佣总期数"
)
private
Integer
totalPeriod
;
@ExcelProperty
(
"来佣项目"
)
private
String
commissionName
;
@ExcelProperty
(
"来佣金额"
)
private
BigDecimal
amount
;
@ExcelProperty
(
"来佣币种"
)
private
String
currency
;
@ExcelProperty
(
"来佣日期"
)
private
Date
commissionDate
;
@ExcelProperty
(
"备注"
)
private
String
remark
;
/**
* 数据转换
*/
public
static
Commission
convertToEntity
(
CommissionExcelDTO
data
,
String
loginUserId
)
{
Commission
entity
=
new
Commission
();
// 字段映射
entity
.
setPolicyNo
(
data
.
getPolicyNo
());
entity
.
setCommissionBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_COMMISSION
.
getCode
()));
entity
.
setReconciliationCompany
(
data
.
getReconciliationCompany
());
entity
.
setCommissionPeriod
(
data
.
getCommissionPeriod
());
entity
.
setTotalPeriod
(
data
.
getTotalPeriod
());
entity
.
setCommissionName
(
data
.
getCommissionName
());
entity
.
setAmount
(
data
.
getAmount
());
entity
.
setCurrency
(
data
.
getCurrency
());
entity
.
setCommissionDate
(
data
.
getCommissionDate
());
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setStatus
(
CommissionStatusEnum
.
UNCOMPARE
.
getItemValue
());
entity
.
setCreatorId
(
loginUserId
);
entity
.
setUpdaterId
(
loginUserId
);
entity
.
setCreateTime
(
new
Date
());
entity
.
setUpdateTime
(
new
Date
());
return
entity
;
}
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionQueryRequest.java
0 → 100644
View file @
6375ca6e
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.common.dto.PageDto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 查询commission请求
*
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
CommissionQueryRequest
extends
PageDto
implements
Serializable
{
/**
* 来佣状态
*/
@Schema
(
description
=
"来佣状态 '0'-'未比对','1'-'已比对', 字典值: csf_commission_status"
)
private
String
status
;
/**
* 保单号
*/
@Schema
(
description
=
"保单号"
)
private
String
policyNo
;
/**
* 对账公司
*/
@Schema
(
description
=
"对账公司"
)
private
String
reconciliationCompany
;
/**
* 来佣日期
*/
@Schema
(
description
=
"来佣日期"
,
example
=
"2023-01-01"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
commissionDate
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionUpdateRequest.java
0 → 100644
View file @
6375ca6e
package
com
.
yd
.
csf
.
service
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Data
public
class
CommissionUpdateRequest
{
/**
* 保单来佣业务id
*/
@Schema
(
description
=
"保单来佣业务id"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
commissionBizId
;
/**
* 来佣金额
*/
@Schema
(
description
=
"来佣金额"
)
private
BigDecimal
amount
;
/**
* 来佣币种
*/
@Schema
(
description
=
"来佣币种"
)
private
String
currency
;
/**
* 来佣日期
*/
@Schema
(
description
=
"来佣日期"
)
private
Date
commissionDate
;
/**
* 备注
*/
@Schema
(
description
=
"备注"
)
private
String
remark
;
}
yd-csf-service/src/main/java/com/yd/csf/service/enums/CommissionStatusEnum.java
0 → 100644
View file @
6375ca6e
package
com
.
yd
.
csf
.
service
.
enums
;
/**
* 来佣状态枚举
*/
public
enum
CommissionStatusEnum
{
//来佣状态枚举
UNCOMPARE
(
"未比对"
,
"0"
),
COMPARED
(
"已比对"
,
"1"
),
;
//字典项标签(名称)
private
String
itemLabel
;
//字典项值
private
String
itemValue
;
//构造函数
CommissionStatusEnum
(
String
itemLabel
,
String
itemValue
)
{
this
.
itemLabel
=
itemLabel
;
this
.
itemValue
=
itemValue
;
}
public
String
getItemLabel
()
{
return
itemLabel
;
}
public
String
getItemValue
()
{
return
itemValue
;
}
}
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionVO.java
0 → 100644
View file @
6375ca6e
package
com
.
yd
.
csf
.
service
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Data
public
class
CommissionVO
implements
Serializable
{
/**
* 保单来佣业务id
*/
private
String
commissionBizId
;
/**
* 保单号
*/
private
String
policyNo
;
/**
* 对账公司
*/
private
String
reconciliationCompany
;
/**
* 佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
private
Integer
commissionPeriod
;
/**
* 总来佣期数
*/
private
Integer
totalPeriod
;
/**
* 来佣名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
private
String
commissionName
;
/**
* 来佣类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
private
String
commissionType
;
/**
* 来佣金额
*/
private
BigDecimal
amount
;
/**
* 来佣币种
*/
private
String
currency
;
/**
* 来佣日期
*/
private
Date
commissionDate
;
/**
* 来佣状态 0=未比对 1=已比对
*/
private
String
status
;
/**
* 通用备注
*/
private
String
remark
;
/**
* 创建人ID
*/
private
String
creatorId
;
/**
* 更新人ID
*/
private
String
updaterId
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
private
static
final
long
serialVersionUID
=
1L
;
}
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