Commit a1f0d2bd by zhangxingmin

来佣比率规格明细信息

parent 9e4f1095
......@@ -29,33 +29,63 @@ public class ApiExpectedCommissionRatioController implements ApiExpectedCommissi
private ApiExpectedCommissionRatioService apiExpectedCommissionRatioService;
/**
* 分页列表查询-来佣比率规格明细信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiExpectedCommissionRatioPageResponse>> page(ApiExpectedCommissionRatioPageRequest request) {
return null;
return apiExpectedCommissionRatioService.page(request);
}
/**
* 添加-来佣比率规格明细信息
* @param request
* @return
*/
@Override
public Result add(ApiExpectedCommissionRatioAddRequest request) {
return null;
return apiExpectedCommissionRatioService.add(request);
}
/**
* 编辑-来佣比率规格明细信息
* @param request
* @return
*/
@Override
public Result edit(ApiExpectedCommissionRatioEditRequest request) {
return null;
return apiExpectedCommissionRatioService.edit(request);
}
/**
* 详情-来佣比率规格明细信息
* @param expectedSpeciesBizId 来佣比率规格明细表唯一业务ID
* @return
*/
@Override
public Result<ApiExpectedCommissionRatioDetailResponse> detail(String expectedSpeciesBizId) {
return null;
return apiExpectedCommissionRatioService.detail(expectedSpeciesBizId);
}
/**
* 删除-来佣比率规格明细信息
* @param expectedSpeciesBizId 来佣比率规格明细表唯一业务ID
* @return
*/
@Override
public Result del(String expectedSpeciesBizId) {
return null;
return apiExpectedCommissionRatioService.del(expectedSpeciesBizId);
}
/**
* 复制-来佣比率规格明细信息
* @param expectedSpeciesBizId 来佣比率规格明细表唯一业务ID
* @return
*/
@Override
public Result copy(String expectedSpeciesBizId) {
return null;
return apiExpectedCommissionRatioService.copy(expectedSpeciesBizId);
}
}
......@@ -2,17 +2,26 @@ package com.yd.product.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioAddRequest;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioEditRequest;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioDetailResponse;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse;
import com.yd.product.service.model.ExpectedCommissionRatio;
public interface ApiExpectedCommissionRatioService {
Result<IPage<ApiExpectedCommissionRatioPageResponse>> page(ApiExpectedCommissionRatioPageRequest request);
Result save(ApiExpectedCommissionRatioSaveRequest request);
Result add(ApiExpectedCommissionRatioAddRequest request);
Result edit(ApiExpectedCommissionRatioEditRequest request);
Result<ApiExpectedCommissionRatioDetailResponse> detail(String expectedSpeciesBizId);
Result del(String expectedSpeciesBizId);
Result<ApiExpectedCommissionRatioDetailResponse> detail(String expectedCommissionRatioBizId);
Result copy(String expectedSpeciesBizId);
Result<ExpectedCommissionRatio> checkExpectedCommissionRatioIsExist(String expectedCommissionRatioBizId);
}
......@@ -5,6 +5,7 @@ import com.yd.common.result.Result;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesImportRequest;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesPageResponse;
import com.yd.product.service.model.ExpectedSpecies;
public interface ApiExpectedSpeciesService {
Result<IPage<ApiExpectedSpeciesPageResponse>> page(ApiExpectedSpeciesPageRequest request);
......@@ -12,4 +13,6 @@ public interface ApiExpectedSpeciesService {
Result importSpecies(ApiExpectedSpeciesImportRequest request);
Result delSpecies(String expectedSpeciesBizId);
Result<ExpectedSpecies> checkExpectedSpeciesIsExist(String expectedSpeciesBizId);
}
package com.yd.product.api.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.enums.CommonEnum;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.product.api.service.ApiExpectedCommissionRatioService;
import com.yd.product.api.service.ApiProductLaunchService;
import com.yd.product.feign.dto.ApiSpeciesSettingDto;
import com.yd.product.api.service.ApiExpectedSpeciesService;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioAddRequest;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioEditRequest;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioDetailResponse;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse;
import com.yd.product.service.model.ExpectedCommissionRatio;
import com.yd.product.service.model.ProductLaunch;
import com.yd.product.service.service.IExpectedCommissionRatioService;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@Service
......@@ -34,10 +29,10 @@ public class ApiExpectedCommissionRatioServiceImpl implements ApiExpectedCommiss
private IExpectedCommissionRatioService iExpectedCommissionRatioService;
@Autowired
private ApiProductLaunchService apiProductLaunchService;
private ApiExpectedSpeciesService apiExpectedSpeciesService;
/**
* 分页列表查询-预计来佣比率信息
* 分页列表查询-来佣比率规格明细信息
* @param request
* @return
*/
......@@ -49,48 +44,89 @@ public class ApiExpectedCommissionRatioServiceImpl implements ApiExpectedCommiss
}
/**
* 保存-预计来佣比率信息
* 添加-来佣比率规格明细信息
* @param request
* @return
*/
@Override
public Result save(ApiExpectedCommissionRatioSaveRequest request) {
//校验产品上架信息是否存在
Result<ProductLaunch> result = apiProductLaunchService.checkProductLaunchIsExist(request.getProductLaunchBizId());
ProductLaunch productLaunch = result.getData();
//先删后新增
//删除
iExpectedCommissionRatioService.delByProductLaunchBizId(request.getProductLaunchBizId());
public Result add(ApiExpectedCommissionRatioAddRequest request) {
//校验来佣比率规格信息是否存在
apiExpectedSpeciesService.checkExpectedSpeciesIsExist(request.getExpectedSpeciesBizId());
//入参校验,佣金年限校验不同条件下的唯一性 TODO
//新增
List<ExpectedCommissionRatio> expectedCommissionRatioList = request.getApiExpectedCommissionRatioDtoList()
.stream().map(dto -> {
ExpectedCommissionRatio ratio = new ExpectedCommissionRatio();
BeanUtils.copyProperties(dto,ratio);
ratio.setSpeciesJson(!CollectionUtils.isEmpty(dto.getApiSpeciesSettingDtoList()) ? JSON.toJSONString(dto.getApiSpeciesSettingDtoList()) : "");
return ratio;
}).collect(Collectors.toList());
iExpectedCommissionRatioService.saveBatch(expectedCommissionRatioList);
BeanUtils.copyProperties(request,ratio);
ratio.setExpectedCommissionRatioBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_EXPECTED_COMMISSION_RATIO.getCode()));
iExpectedCommissionRatioService.saveOrUpdate(ratio);
return Result.success();
}
/**
* 编辑-来佣比率规格明细信息
* @param request
* @return
*/
@Override
public Result edit(ApiExpectedCommissionRatioEditRequest request) {
//校验来佣比率规格明细信息是否存在
Result<ExpectedCommissionRatio> result = checkExpectedCommissionRatioIsExist(request.getExpectedCommissionRatioBizId());
ExpectedCommissionRatio ratio = result.getData();
//校验来佣比率规格信息是否存在
apiExpectedSpeciesService.checkExpectedSpeciesIsExist(request.getExpectedSpeciesBizId());
//入参校验,佣金年限校验不同条件下的唯一性 TODO
//编辑
BeanUtils.copyProperties(request,ratio);
iExpectedCommissionRatioService.saveOrUpdate(ratio);
return Result.success();
}
/**
* 详情-预计来佣比率信息
* @param expectedCommissionRatioBizId 预计来佣比率表唯一业务ID
* 详情-来佣比率规格明细信息
* @param expectedSpeciesBizId 来佣比率规格明细表唯一业务ID
* @return
*/
@Override
public Result<ApiExpectedCommissionRatioDetailResponse> detail(String expectedCommissionRatioBizId) {
Result<ExpectedCommissionRatio> result = checkExpectedCommissionRatioIsExist(expectedCommissionRatioBizId);
ExpectedCommissionRatio expectedCommissionRatio = result.getData();
public Result<ApiExpectedCommissionRatioDetailResponse> detail(String expectedSpeciesBizId) {
//校验来佣比率规格明细信息是否存在
Result<ExpectedCommissionRatio> result = checkExpectedCommissionRatioIsExist(expectedSpeciesBizId);
ExpectedCommissionRatio ratio = result.getData();
ApiExpectedCommissionRatioDetailResponse response = new ApiExpectedCommissionRatioDetailResponse();
BeanUtils.copyProperties(expectedCommissionRatio,response);
response.setApiSpeciesSettingDtoList(StringUtil.isNotBlank(expectedCommissionRatio.getSpeciesJson()) ? JSON.parseArray(expectedCommissionRatio.getSpeciesJson(), ApiSpeciesSettingDto.class) : new ArrayList<>());
BeanUtils.copyProperties(ratio,response);
return Result.success(response);
}
/**
* 校验预计来佣比率信息是否存在
* 删除-来佣比率规格明细信息
* @param expectedSpeciesBizId 来佣比率规格明细表唯一业务ID
* @return
*/
@Override
public Result del(String expectedSpeciesBizId) {
//校验来佣比率规格明细信息是否存在
Result<ExpectedCommissionRatio> result = checkExpectedCommissionRatioIsExist(expectedSpeciesBizId);
ExpectedCommissionRatio ratio = result.getData();
iExpectedCommissionRatioService.removeById(ratio.getId());
return Result.success();
}
/**
* 复制-来佣比率规格明细信息
* @param expectedSpeciesBizId 来佣比率规格明细表唯一业务ID
* @return
*/
@Override
public Result copy(String expectedSpeciesBizId) {
//校验来佣比率规格明细信息是否存在
Result<ExpectedCommissionRatio> result = checkExpectedCommissionRatioIsExist(expectedSpeciesBizId);
ExpectedCommissionRatio ratio = result.getData();
ratio.setId(null);
ratio.setExpectedCommissionRatioBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_EXPECTED_COMMISSION_RATIO.getCode()));
iExpectedCommissionRatioService.saveOrUpdate(ratio);
return Result.success();
}
/**
* 校验来佣比率规格明细信息是否存在
* @param expectedCommissionRatioBizId
* @return
*/
......@@ -99,7 +135,7 @@ public class ApiExpectedCommissionRatioServiceImpl implements ApiExpectedCommiss
ExpectedCommissionRatio expectedCommissionRatio = iExpectedCommissionRatioService.queryOne(expectedCommissionRatioBizId);
if (Objects.isNull(expectedCommissionRatio)) {
//数据不存在
throw new BusinessException("预计来佣比率信息不存在");
throw new BusinessException("来佣比率规格明细信息不存在");
}
return Result.success(expectedCommissionRatio);
}
......
......@@ -15,6 +15,7 @@ import com.yd.product.feign.dto.ApiSpeciesPriceDto;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesImportRequest;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesPageResponse;
import com.yd.product.service.model.AnnouncementSpecies;
import com.yd.product.service.model.ExpectedSpecies;
import com.yd.product.service.service.IExpectedSpeciesService;
import lombok.extern.slf4j.Slf4j;
......@@ -22,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
......@@ -93,4 +95,19 @@ public class ApiExpectedSpeciesServiceImpl implements ApiExpectedSpeciesService
public Result delSpecies(String expectedSpeciesBizId) {
return null;
}
/**
* 校验来佣比率规格信息是否存在
* @param expectedSpeciesBizId
* @return
*/
@Override
public Result<ExpectedSpecies> checkExpectedSpeciesIsExist(String expectedSpeciesBizId) {
ExpectedSpecies species = iExpectedSpeciesService.queryOne(expectedSpeciesBizId);
if (Objects.isNull(species)) {
//数据不存在
throw new BusinessException("来佣比率规格信息不存在");
}
return Result.success(species);
}
}
package com.yd.product.feign.request.expectedcommissionratio;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
......@@ -12,53 +12,61 @@ public class ApiExpectedCommissionRatioAddRequest {
/**
* 来佣比率规格表唯一业务ID
*/
@NotBlank(message = "来佣比率规格表唯一业务ID")
@NotBlank(message = "来佣比率规格表唯一业务ID不能为空")
private String expectedSpeciesBizId;
/**
* 费用名称(转介费等)
*/
@NotBlank(message = "来佣比率规格表唯一业务ID")
@NotBlank(message = "费用名称(转介费等)不能为空")
private String expenseName;
/**
* 佣金年限(起)
*/
@NotBlank(message = "佣金年限(起)不能为空")
private String startPeriod;
/**
* 佣金年限(止)
*/
@NotBlank(message = "佣金年限(止)不能为空")
private String endPeriod;
/**
* 标保折算比例(基本保费)
*/
@NotNull(message = "标保折算比例(基本保费)不能为空")
private BigDecimal discountRatio;
/**
* 佣金率
*/
@NotNull(message = "佣金率不能为空")
private BigDecimal commissionRate;
/**
* 有效开始时间
*/
@NotNull(message = "有效开始时间不能为空")
private LocalDateTime effectiveStart;
/**
* 有效结束时间
*/
@NotNull(message = "有效结束时间不能为空")
private LocalDateTime effectiveEnd;
/**
* 是否受汇率影响 0-否 1-是,字典)
*/
@NotBlank(message = "是否受汇率影响不能为空")
private String isExchangeRate;
/**
* 结算币种(字典)
*/
@NotBlank(message = "结算币种不能为空")
private String currency;
/**
......@@ -74,5 +82,6 @@ public class ApiExpectedCommissionRatioAddRequest {
/**
* 状态(0:停用 1:启用)
*/
@NotNull(message = "状态不能为空")
private Integer status;
}
......@@ -2,6 +2,93 @@ package com.yd.product.feign.request.expectedcommissionratio;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class ApiExpectedCommissionRatioEditRequest {
/**
* 来佣比率规格明细表唯一业务ID
*/
@NotBlank(message = "来佣比率规格明细表唯一业务ID不能为空")
private String expectedCommissionRatioBizId;
/**
* 来佣比率规格表唯一业务ID
*/
@NotBlank(message = "来佣比率规格表唯一业务ID不能为空")
private String expectedSpeciesBizId;
/**
* 费用名称(转介费等)
*/
@NotBlank(message = "费用名称(转介费等)不能为空")
private String expenseName;
/**
* 佣金年限(起)
*/
@NotBlank(message = "佣金年限(起)不能为空")
private String startPeriod;
/**
* 佣金年限(止)
*/
@NotBlank(message = "佣金年限(止)不能为空")
private String endPeriod;
/**
* 标保折算比例(基本保费)
*/
@NotNull(message = "标保折算比例(基本保费)不能为空")
private BigDecimal discountRatio;
/**
* 佣金率
*/
@NotNull(message = "佣金率不能为空")
private BigDecimal commissionRate;
/**
* 有效开始时间
*/
@NotNull(message = "有效开始时间不能为空")
private LocalDateTime effectiveStart;
/**
* 有效结束时间
*/
@NotNull(message = "有效结束时间不能为空")
private LocalDateTime effectiveEnd;
/**
* 是否受汇率影响 0-否 1-是,字典)
*/
@NotBlank(message = "是否受汇率影响不能为空")
private String isExchangeRate;
/**
* 结算币种(字典)
*/
@NotBlank(message = "结算币种不能为空")
private String currency;
/**
* 对账公司
*/
private String reconciliationCompany;
/**
* 销售组织
*/
private String salesOrg;
/**
* 状态(0:停用 1:启用)
*/
@NotNull(message = "状态不能为空")
private Integer status;
}
package com.yd.product.feign.response.expectedcommissionratio;
import com.yd.product.feign.dto.ApiSpeciesSettingDto;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class ApiExpectedCommissionRatioDetailResponse {
/**
* 预计来佣比率表主键ID
* 来佣比率规格明细表主键ID
*/
private Long id;
/**
* 预计来佣比率表唯一业务ID
* 来佣比率规格明细表唯一业务ID
*/
private String expectedCommissionRatioBizId;
/**
* 产品上架信息表唯一业务ID
* 来佣比率规格表唯一业务ID
*/
private String productLaunchBizId;
private String expectedSpeciesBizId;
/**
* 产品唯一业务ID
* 费用名称(转介费等)
*/
private String productBizId;
private String expenseName;
/**
* 规格条件列表JSON串
* 佣金年限(起)
*/
private String speciesJson;
private String startPeriod;
/**
* 上架产品规格配置表信息JSON串对应转化的列表
* 佣金年限(止)
*/
private List<ApiSpeciesSettingDto> apiSpeciesSettingDtoList;
private String endPeriod;
/**
* 保障年限(固定规格条件
* 标保折算比例(基本保费
*/
private String warrantyPeriod;
private BigDecimal discountRatio;
/**
* 期数(固定规格条件
* 计算基数(保费/保费*折算比例
*/
private String issueNumber;
// /**
// * 缴费年限(起)
// */
// @TableField("start_period")
// private String startPeriod;
//
// /**
// * 缴费年限(止)
// */
// @TableField("end_period")
// private String endPeriod;
private BigDecimal cardinalNumber;
/**
* 标保折算比例
* 佣金率
*/
private BigDecimal discountRatio;
private BigDecimal commissionRate;
/**
* 计算基数(保费/保费*折算比例)
* 有效开始时间
*/
private BigDecimal cardinalNumber;
private LocalDateTime effectiveStart;
/**
* 来佣类型
* 有效结束时间
*/
private String commissionType;
private LocalDateTime effectiveEnd;
/**
* 来佣比例
* 是否受汇率影响 0-否 1-是,字典)
*/
private BigDecimal commissionRatio;
private String isExchangeRate;
/**
* 出单渠道
* 结算币种(字典)
*/
private String channel;
private String currency;
/**
* 有效开始时间
* 对账公司
*/
private LocalDateTime effectiveStart;
private String reconciliationCompany;
/**
* 有效结束时间
* 销售组织
*/
private LocalDateTime effectiveEnd;
private String salesOrg;
/**
* 来佣日规则
* 状态(0:停用 1:启用)
*/
private String rules;
private Integer status;
/**
* 通用备注
......@@ -117,11 +103,21 @@ public class ApiExpectedCommissionRatioDetailResponse {
private String creatorId;
/**
* 创建人名称
*/
private String creatorName;
/**
* 更新人ID
*/
private String updaterId;
/**
* 更新人名称
*/
private String updaterName;
/**
* 创建时间
*/
private LocalDateTime createTime;
......
......@@ -20,7 +20,5 @@ public interface IExpectedCommissionRatioService extends IService<ExpectedCommis
IPage<ApiExpectedCommissionRatioPageResponse> page(Page<ApiExpectedCommissionRatioPageResponse> page,
ApiExpectedCommissionRatioPageRequest request);
Boolean delByProductLaunchBizId(String productLaunchBizId);
ExpectedCommissionRatio queryOne(String expectedCommissionRatioBizId);
}
......@@ -19,4 +19,6 @@ public interface IExpectedSpeciesService extends IService<ExpectedSpecies> {
IPage<ApiExpectedSpeciesPageResponse> page(Page<ApiExpectedSpeciesPageResponse> page,
ApiExpectedSpeciesPageRequest request);
ExpectedSpecies queryOne(String expectedSpeciesBizId);
}
......@@ -29,11 +29,6 @@ public class ExpectedCommissionRatioServiceImpl extends ServiceImpl<ExpectedComm
}
@Override
public Boolean delByProductLaunchBizId(String productLaunchBizId) {
return this.remove(new LambdaQueryWrapper<ExpectedCommissionRatio>().eq(ExpectedCommissionRatio::getProductLaunchBizId,productLaunchBizId));
}
@Override
public ExpectedCommissionRatio queryOne(String expectedCommissionRatioBizId) {
return this.getOne(new LambdaQueryWrapper<ExpectedCommissionRatio>().eq(ExpectedCommissionRatio::getExpectedCommissionRatioBizId,expectedCommissionRatioBizId));
}
......
package com.yd.product.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -26,4 +27,12 @@ public class ExpectedSpeciesServiceImpl extends ServiceImpl<ExpectedSpeciesMappe
ApiExpectedSpeciesPageRequest request) {
return baseMapper.page(page,request);
}
@Override
public ExpectedSpecies queryOne(String expectedSpeciesBizId) {
return this.getOne(new LambdaQueryWrapper<ExpectedSpecies>()
.eq(ExpectedSpecies::getExpectedSpeciesBizId,expectedSpeciesBizId)
.last(" limit 1 ")
);
}
}
......@@ -6,15 +6,10 @@
resultType="com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse">
select ecr.* from expected_commission_ratio ecr
<where>
<if test="request.productLaunchBizId != null and request.productLaunchBizId != ''">
and ecr.product_launch_biz_id = #{request.productLaunchBizId}
</if>
<if test="request.warrantyPeriod != null and request.warrantyPeriod != ''">
and ecr.warranty_period = #{request.warrantyPeriod}
</if>
<if test="request.issueNumber != null and request.issueNumber != ''">
and ecr.issue_number = #{request.issueNumber}
<if test="request.expenseName != null and request.expenseName != ''">
and ecr.expense_name = #{request.expenseName}
</if>
and ecr.expected_species_biz_id = #{request.expectedSpeciesBizId}
and ecr.is_deleted = 0
</where>
</select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment