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
c57b0ab4
Commit
c57b0ab4
authored
Sep 22, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
来佣接口3
parent
232f47c0
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
1027 additions
and
0 deletions
+1027
-0
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
+202
-0
yd-csf-api/src/main/java/com/yd/csf/api/dto/FortuneImportDTO.java
+67
-0
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionMapper.java
+18
-0
yd-csf-service/src/main/java/com/yd/csf/service/dao/FortuneMapper.java
+18
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneQueryRequest.java
+32
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneUpdateRequest.java
+52
-0
yd-csf-service/src/main/java/com/yd/csf/service/enums/FortuneStatusEnum.java
+30
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/Fortune.java
+173
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.java
+24
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneService.java
+23
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+94
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
+90
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneVO.java
+158
-0
yd-csf-service/src/main/resources/mappers/FortuneMapper.xml
+46
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
0 → 100644
View file @
c57b0ab4
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.FortuneImportDTO
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.FortuneQueryRequest
;
import
com.yd.csf.service.dto.FortuneUpdateRequest
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.service.FortuneService
;
import
com.yd.csf.service.vo.FortuneVO
;
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
(
"/fortune"
)
@Tag
(
name
=
"保单发佣接口"
)
public
class
ApiFortuneController
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
ApiFortuneController
.
class
);
@Resource
private
FortuneService
fortuneService
;
@PostMapping
(
"/upload/excel"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<
Boolean
>
uploadExcel
(
@RequestParam
(
"file"
)
MultipartFile
file
)
throws
IOException
{
try
{
List
<
FortuneImportDTO
>
dataList
=
EasyExcel
.
read
(
file
.
getInputStream
())
.
head
(
FortuneImportDTO
.
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
<
FortuneImportDTO
>
dataList
,
String
loginUserId
)
{
List
<
Fortune
>
entities
=
new
ArrayList
<>();
for
(
FortuneImportDTO
data
:
dataList
)
{
// 数据验证
Fortune
entity
=
FortuneImportDTO
.
convertToEntity
(
data
,
loginUserId
);
entities
.
add
(
entity
);
}
// 批量保存
fortuneService
.
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 fortuneUpdateRequest
* @return
*/
@PostMapping
(
"/update"
)
@Operation
(
summary
=
"更新保单发佣信息"
)
public
Result
<
Boolean
>
updateFortune
(
@RequestBody
FortuneUpdateRequest
fortuneUpdateRequest
)
{
if
(
fortuneUpdateRequest
==
null
||
fortuneUpdateRequest
.
getFortuneBizId
()
==
null
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
ErrorCode
.
PARAMS_ERROR
.
getMessage
());
}
return
Result
.
success
(
fortuneService
.
updateFortune
(
fortuneUpdateRequest
));
}
/**
* 根据 fortuneBizId 获取保单发佣(封装类)
*
* @param fortuneBizId
* @return
*/
// @GetMapping("/get/vo")
// @Operation(summary = "根据 policyBizId 获取保单发佣详情")
// public Result<PolicyFollowVO> getPolicyFollowByPolicyBizId(@RequestParam("fortuneBizId") String fortuneBizId, HttpServletRequest request) {
// if (fortuneBizId == 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 fortuneQueryRequest
* @param request
* @return
*/
@PostMapping
(
"/list/page/vo"
)
@Operation
(
summary
=
"分页获取保单发佣列表"
)
public
Result
<
Page
<
FortuneVO
>>
listFortuneByPage
(
@RequestBody
FortuneQueryRequest
fortuneQueryRequest
,
HttpServletRequest
request
)
{
long
current
=
fortuneQueryRequest
.
getPageNo
();
long
size
=
fortuneQueryRequest
.
getPageSize
();
// 查询数据库
Page
<
Fortune
>
fortunePage
=
fortuneService
.
page
(
new
Page
<>(
current
,
size
),
fortuneService
.
getQueryWrapper
(
fortuneQueryRequest
));
// 获取封装类
return
Result
.
success
(
fortuneService
.
getFortuneVOPage
(
fortunePage
));
}
}
yd-csf-api/src/main/java/com/yd/csf/api/dto/FortuneImportDTO.java
0 → 100644
View file @
c57b0ab4
package
com
.
yd
.
csf
.
api
.
dto
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.service.enums.CommissionStatusEnum
;
import
com.yd.csf.service.enums.FortuneStatusEnum
;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.model.Fortune
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Data
public
class
FortuneImportDTO
{
@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
;
/**
* 转换为 entity
*/
public
static
Fortune
convertToEntity
(
FortuneImportDTO
data
,
String
loginUserId
)
{
Fortune
entity
=
new
Fortune
();
// 字段映射
entity
.
setPolicyNo
(
data
.
getPolicyNo
());
entity
.
setFortuneBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_FORTUNE
.
getCode
()));
entity
.
setFortunePeriod
(
data
.
getFortunePeriod
());
entity
.
setFortuneTotalPeriod
(
data
.
getFortuneTotalPeriod
());
entity
.
setFortuneName
(
data
.
getFortuneName
());
entity
.
setAmount
(
data
.
getAmount
());
entity
.
setCurrency
(
data
.
getCurrency
());
entity
.
setBroker
(
data
.
getBroker
());
entity
.
setTeam
(
data
.
getTeam
());
entity
.
setRemark
(
data
.
getRemark
());
entity
.
setStatus
(
FortuneStatusEnum
.
UNSENT
.
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/dao/CommissionMapper.java
0 → 100644
View file @
c57b0ab4
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.yd.csf.service.model.Commission
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* @author Zhang Jianan
* @description 针对表【commission(保单来佣表)】的数据库操作Mapper
* @createDate 2025-09-19 16:08:05
* @Entity generator.domain.Commission
*/
public
interface
CommissionMapper
extends
BaseMapper
<
Commission
>
{
}
yd-csf-service/src/main/java/com/yd/csf/service/dao/FortuneMapper.java
0 → 100644
View file @
c57b0ab4
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.yd.csf.service.model.Fortune
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* @author Zhang Jianan
* @description 针对表【fortune(保单发佣表)】的数据库操作Mapper
* @createDate 2025-09-22 13:22:08
* @Entity generator.domain.Fortune
*/
public
interface
FortuneMapper
extends
BaseMapper
<
Fortune
>
{
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneQueryRequest.java
0 → 100644
View file @
c57b0ab4
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.yd.common.dto.PageDto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
/**
* 查询fortune请求
*
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
FortuneQueryRequest
extends
PageDto
implements
Serializable
{
/**
* 发佣状态
*/
@Schema
(
description
=
"发佣状态 '0'-'待发佣','1'-'已发并关账', 字典值: csf_fortune_status"
)
private
String
status
;
/**
* 保单号
*/
@Schema
(
description
=
"保单号"
)
private
String
policyNo
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneUpdateRequest.java
0 → 100644
View file @
c57b0ab4
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
FortuneUpdateRequest
{
/**
* 保单发佣业务id
*/
@Schema
(
description
=
"保单发佣业务id"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
fortuneBizId
;
/**
* 发佣名称
*/
@Schema
(
description
=
"发佣名称"
)
private
String
fortuneName
;
/**
* 发佣类型
*/
@Schema
(
description
=
"发佣类型"
)
private
String
fortuneType
;
/**
* 发佣金额
*/
@Schema
(
description
=
"发佣金额"
)
private
BigDecimal
amount
;
/**
* 发佣币种
*/
@Schema
(
description
=
"发佣币种"
)
private
String
currency
;
/**
* 发佣日期
*/
@Schema
(
description
=
"发佣日期"
)
private
Date
payoutDate
;
/**
* 备注
*/
@Schema
(
description
=
"备注"
)
private
String
remark
;
}
yd-csf-service/src/main/java/com/yd/csf/service/enums/FortuneStatusEnum.java
0 → 100644
View file @
c57b0ab4
package
com
.
yd
.
csf
.
service
.
enums
;
/**
* 发佣状态枚举
*/
public
enum
FortuneStatusEnum
{
//发佣状态枚举
UNSENT
(
"待发佣"
,
"0"
),
SENT
(
"已发并关账"
,
"1"
),
;
//字典项标签(名称)
private
String
itemLabel
;
//字典项值
private
String
itemValue
;
//构造函数
FortuneStatusEnum
(
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/model/Fortune.java
0 → 100644
View file @
c57b0ab4
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 保单发佣表
* @TableName fortune
*/
@TableName
(
value
=
"fortune"
)
@Data
public
class
Fortune
implements
Serializable
{
/**
* serial id
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 保单发佣业务id
*/
private
String
fortuneBizId
;
/**
* 保单号
*/
private
String
policyNo
;
/**
* 发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
private
Integer
fortunePeriod
;
/**
* 发佣总期数
*/
private
Integer
fortuneTotalPeriod
;
/**
* 转介人
*/
private
String
broker
;
/**
* 转介人业务ID
*/
private
String
brokerBizId
;
/**
* 所属团队
*/
private
String
team
;
/**
* 所属团队业务ID
*/
private
String
teamBizId
;
/**
* 个人职级佣金率
*/
private
BigDecimal
gradeCommissionRate
;
/**
* 多个代理人财富分摊比例
*/
private
BigDecimal
shareRate
;
/**
* 来佣名称
*/
private
String
fortuneName
;
/**
* 发佣类型
*/
private
String
fortuneType
;
/**
* 发佣金额
*/
private
BigDecimal
amount
;
/**
* 发佣币种
*/
private
String
currency
;
/**
* 佣金发放状态 0=待发佣 1=已发并关账
*/
private
String
status
;
/**
* 发佣日期
*/
private
Date
payoutDate
;
/**
* 是否含税 0=No, 1=Yes
*/
private
Integer
isTax
;
/**
* 应缴税额
*/
private
BigDecimal
taxAmount
;
/**
* 税后发佣
*/
private
BigDecimal
netAmount
;
/**
* 薪资单业务id
*/
private
String
salaryBizId
;
/**
* 基本法id
*/
private
String
baseRuleBizId
;
/**
* 计算规则id
*/
private
String
settlementBizId
;
/**
* 计算公式
*/
private
String
calculationFormula
;
/**
* 通用备注
*/
private
String
remark
;
/**
* 删除标识: 0-正常, 1-删除
*/
private
Integer
isDeleted
;
/**
* 创建人ID
*/
private
String
creatorId
;
/**
* 更新人ID
*/
private
String
updaterId
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionService.java
0 → 100644
View file @
c57b0ab4
package
com
.
yd
.
csf
.
service
.
service
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.service.dto.CommissionQueryRequest
;
import
com.yd.csf.service.dto.CommissionUpdateRequest
;
import
com.yd.csf.service.model.Commission
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.vo.CommissionVO
;
/**
* @author Zhang Jianan
* @description 针对表【commission(保单来佣表)】的数据库操作Service
* @createDate 2025-09-19 16:08:05
*/
public
interface
CommissionService
extends
IService
<
Commission
>
{
QueryWrapper
<
Commission
>
getQueryWrapper
(
CommissionQueryRequest
commissionQueryRequest
);
Page
<
CommissionVO
>
getCommissionVOPage
(
Page
<
Commission
>
commissionPage
);
Boolean
updateCommission
(
CommissionUpdateRequest
commissionUpdateRequest
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/FortuneService.java
0 → 100644
View file @
c57b0ab4
package
com
.
yd
.
csf
.
service
.
service
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.service.dto.FortuneQueryRequest
;
import
com.yd.csf.service.dto.FortuneUpdateRequest
;
import
com.yd.csf.service.model.Fortune
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.vo.FortuneVO
;
/**
* @author Zhang Jianan
* @description 针对表【fortune(保单发佣表)】的数据库操作Service
* @createDate 2025-09-22 13:22:09
*/
public
interface
FortuneService
extends
IService
<
Fortune
>
{
Wrapper
<
Fortune
>
getQueryWrapper
(
FortuneQueryRequest
fortuneQueryRequest
);
Page
<
FortuneVO
>
getFortuneVOPage
(
Page
<
Fortune
>
fortunePage
);
Boolean
updateFortune
(
FortuneUpdateRequest
fortuneUpdateRequest
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
0 → 100644
View file @
c57b0ab4
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
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.model.Customer
;
import
com.yd.csf.service.service.CommissionService
;
import
com.yd.csf.service.dao.CommissionMapper
;
import
com.yd.csf.service.vo.CommissionVO
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author Zhang Jianan
* @description 针对表【commission(保单来佣表)】的数据库操作Service实现
* @createDate 2025-09-19 16:08:05
*/
@Service
public
class
CommissionServiceImpl
extends
ServiceImpl
<
CommissionMapper
,
Commission
>
implements
CommissionService
{
@Override
public
QueryWrapper
<
Commission
>
getQueryWrapper
(
CommissionQueryRequest
commissionQueryRequest
)
{
QueryWrapper
<
Commission
>
queryWrapper
=
new
QueryWrapper
<>();
if
(
commissionQueryRequest
==
null
)
{
return
queryWrapper
;
}
String
status
=
commissionQueryRequest
.
getStatus
();
String
policyNo
=
commissionQueryRequest
.
getPolicyNo
();
String
reconciliationCompany
=
commissionQueryRequest
.
getReconciliationCompany
();
Date
commissionDate
=
commissionQueryRequest
.
getCommissionDate
();
queryWrapper
.
eq
(
StringUtils
.
isNotBlank
(
status
),
"status"
,
status
);
queryWrapper
.
like
(
StringUtils
.
isNotBlank
(
policyNo
),
"policy_no"
,
policyNo
);
queryWrapper
.
like
(
StringUtils
.
isNotBlank
(
reconciliationCompany
),
"reconciliation_company"
,
reconciliationCompany
);
queryWrapper
.
eq
(
commissionDate
!=
null
,
"commission_date"
,
commissionDate
);
queryWrapper
.
orderByDesc
(
"id"
);
return
queryWrapper
;
}
@Override
public
Page
<
CommissionVO
>
getCommissionVOPage
(
Page
<
Commission
>
commissionPage
)
{
List
<
Commission
>
commissionList
=
commissionPage
.
getRecords
();
Page
<
CommissionVO
>
commissionVOPage
=
new
Page
<>(
commissionPage
.
getCurrent
(),
commissionPage
.
getSize
());
if
(
CollUtil
.
isEmpty
(
commissionList
))
{
return
commissionVOPage
;
}
List
<
CommissionVO
>
commissionVOList
=
commissionList
.
stream
().
map
(
commission
->
{
CommissionVO
commissionVO
=
new
CommissionVO
();
BeanUtils
.
copyProperties
(
commission
,
commissionVO
);
return
commissionVO
;
}).
collect
(
Collectors
.
toList
());
commissionVOPage
.
setRecords
(
commissionVOList
);
return
commissionVOPage
;
}
@Override
public
Boolean
updateCommission
(
CommissionUpdateRequest
commissionUpdateRequest
)
{
String
commissionBizId
=
commissionUpdateRequest
.
getCommissionBizId
();
Commission
commission
=
this
.
getOne
(
new
QueryWrapper
<
Commission
>().
eq
(
"commission_biz_id"
,
commissionBizId
));
if
(
commission
==
null
)
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"未找到该来佣记录"
);
}
BeanUtils
.
copyProperties
(
commissionUpdateRequest
,
commission
);
// 获取当前登录用户
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
String
loginUserId
=
currentLoginUser
.
getId
().
toString
();
commission
.
setUpdaterId
(
loginUserId
);
commission
.
setUpdateTime
(
new
Date
());
return
this
.
updateById
(
commission
);
}
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
0 → 100644
View file @
c57b0ab4
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.auth.core.dto.AuthUserDto
;
import
com.yd.auth.core.utils.SecurityUtil
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.csf.service.dto.FortuneQueryRequest
;
import
com.yd.csf.service.dto.FortuneUpdateRequest
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.service.FortuneService
;
import
com.yd.csf.service.dao.FortuneMapper
;
import
com.yd.csf.service.vo.FortuneVO
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author Zhang Jianan
* @description 针对表【fortune(保单发佣表)】的数据库操作Service实现
* @createDate 2025-09-22 13:22:08
*/
@Service
public
class
FortuneServiceImpl
extends
ServiceImpl
<
FortuneMapper
,
Fortune
>
implements
FortuneService
{
@Override
public
Wrapper
<
Fortune
>
getQueryWrapper
(
FortuneQueryRequest
fortuneQueryRequest
)
{
QueryWrapper
<
Fortune
>
queryWrapper
=
new
QueryWrapper
<>();
if
(
fortuneQueryRequest
==
null
)
{
return
queryWrapper
;
}
String
status
=
fortuneQueryRequest
.
getStatus
();
String
policyNo
=
fortuneQueryRequest
.
getPolicyNo
();
queryWrapper
.
eq
(
StringUtils
.
isNotBlank
(
status
),
"status"
,
status
);
queryWrapper
.
eq
(
StringUtils
.
isNotBlank
(
policyNo
),
"policy_no"
,
policyNo
);
queryWrapper
.
orderByAsc
(
"id"
);
return
queryWrapper
;
}
@Override
public
Page
<
FortuneVO
>
getFortuneVOPage
(
Page
<
Fortune
>
fortunePage
)
{
List
<
Fortune
>
fortuneList
=
fortunePage
.
getRecords
();
Page
<
FortuneVO
>
fortuneVOPage
=
new
Page
<>(
fortunePage
.
getCurrent
(),
fortunePage
.
getSize
());
if
(
CollUtil
.
isEmpty
(
fortuneList
))
{
return
fortuneVOPage
;
}
List
<
FortuneVO
>
fortuneVOList
=
fortuneList
.
stream
().
map
(
fortune
->
{
FortuneVO
fortuneVO
=
new
FortuneVO
();
BeanUtils
.
copyProperties
(
fortune
,
fortuneVO
);
return
fortuneVO
;
}).
collect
(
Collectors
.
toList
());
fortuneVOPage
.
setRecords
(
fortuneVOList
);
return
fortuneVOPage
;
}
@Override
public
Boolean
updateFortune
(
FortuneUpdateRequest
fortuneUpdateRequest
)
{
String
fortuneBizId
=
fortuneUpdateRequest
.
getFortuneBizId
();
Fortune
fortune
=
this
.
getOne
(
new
QueryWrapper
<
Fortune
>().
eq
(
"fortune_biz_id"
,
fortuneBizId
));
if
(
fortune
==
null
)
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"发佣数据不存在"
);
}
BeanUtils
.
copyProperties
(
fortuneUpdateRequest
,
fortune
);
// 获取当前登录用户
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
String
loginUserId
=
currentLoginUser
.
getId
().
toString
();
fortune
.
setUpdaterId
(
loginUserId
);
fortune
.
setUpdateTime
(
new
Date
());
return
this
.
updateById
(
fortune
);
}
}
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneVO.java
0 → 100644
View file @
c57b0ab4
package
com
.
yd
.
csf
.
service
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Data
public
class
FortuneVO
implements
Serializable
{
/**
* 保单发佣业务id
*/
private
String
fortuneBizId
;
/**
* 保单号
*/
private
String
policyNo
;
/**
* 发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
private
Integer
fortunePeriod
;
/**
* 发佣总期数
*/
private
Integer
fortuneTotalPeriod
;
/**
* 转介人
*/
private
String
broker
;
/**
* 转介人业务ID
*/
private
String
brokerBizId
;
/**
* 所属团队
*/
private
String
team
;
/**
* 所属团队业务ID
*/
private
String
teamBizId
;
/**
* 个人职级佣金率
*/
private
BigDecimal
gradeCommissionRate
;
/**
* 多个代理人财富分摊比例
*/
private
BigDecimal
shareRate
;
/**
* 来佣名称
*/
private
String
fortuneName
;
/**
* 发佣类型
*/
private
String
fortuneType
;
/**
* 发佣金额
*/
private
BigDecimal
amount
;
/**
* 发佣币种
*/
private
String
currency
;
/**
* 佣金发放状态 0=待发佣 1=已发并关账
*/
private
String
status
;
/**
* 发佣日期
*/
private
Date
payoutDate
;
/**
* 是否含税 0=No, 1=Yes
*/
private
Integer
isTax
;
/**
* 应缴税额
*/
private
BigDecimal
taxAmount
;
/**
* 税后发佣
*/
private
BigDecimal
netAmount
;
/**
* 薪资单业务id
*/
private
String
salaryBizId
;
/**
* 基本法id
*/
private
String
baseRuleBizId
;
/**
* 计算规则id
*/
private
String
settlementBizId
;
/**
* 计算公式
*/
private
String
calculationFormula
;
/**
* 通用备注
*/
private
String
remark
;
/**
* 删除标识: 0-正常, 1-删除
*/
private
Integer
isDeleted
;
/**
* 创建人ID
*/
private
String
creatorId
;
/**
* 更新人ID
*/
private
String
updaterId
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
private
static
final
long
serialVersionUID
=
1L
;
}
yd-csf-service/src/main/resources/mappers/FortuneMapper.xml
0 → 100644
View file @
c57b0ab4
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yd.csf.service.dao.FortuneMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.yd.csf.service.model.Fortune"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"fortuneBizId"
column=
"fortune_biz_id"
/>
<result
property=
"policyNo"
column=
"policy_no"
/>
<result
property=
"fortunePeriod"
column=
"fortune_period"
/>
<result
property=
"fortuneTotalPeriod"
column=
"fortune_total_period"
/>
<result
property=
"brokerBizId"
column=
"broker_biz_id"
/>
<result
property=
"teamBizId"
column=
"team_biz_id"
/>
<result
property=
"gradeCommissionRate"
column=
"grade_commission_rate"
/>
<result
property=
"shareRate"
column=
"share_rate"
/>
<result
property=
"fortuneName"
column=
"fortune_name"
/>
<result
property=
"fortuneType"
column=
"fortune_type"
/>
<result
property=
"amount"
column=
"amount"
/>
<result
property=
"currency"
column=
"currency"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"payoutDate"
column=
"payout_date"
/>
<result
property=
"isTax"
column=
"is_tax"
/>
<result
property=
"taxAmount"
column=
"tax_amount"
/>
<result
property=
"netAmount"
column=
"net_amount"
/>
<result
property=
"salaryBizId"
column=
"salary_biz_id"
/>
<result
property=
"baseRuleBizId"
column=
"base_rule_biz_id"
/>
<result
property=
"settlementBizId"
column=
"settlement_biz_id"
/>
<result
property=
"calculationFormula"
column=
"calculation_formula"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"isDeleted"
column=
"is_deleted"
/>
<result
property=
"creatorId"
column=
"creator_id"
/>
<result
property=
"updaterId"
column=
"updater_id"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id,fortune_biz_id,policy_no,fortune_period,fortune_total_period,broker_biz_id,
team_biz_id,grade_commission_rate,share_rate,fortune_name,fortune_type,
amount,currency,status,payout_date,is_tax,
tax_amount,net_amount,salary_biz_id,base_rule_biz_id,settlement_biz_id,
calculation_formula,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