Commit 5ca7cef1 by zhangxingmin

Merge remote-tracking branch 'origin/dev_zxm' into test

parents 55f766ad a1f0d2bd
......@@ -4,8 +4,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.product.api.service.ApiExpectedCommissionRatioService;
import com.yd.product.feign.client.expectedcommissionratio.ApiExpectedCommissionRatioFeignClient;
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.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioDetailResponse;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -13,10 +14,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
/**
* 预计来佣比率信息
* 来佣比率规格明细信息
*
* @author zxm
* @since 2025-11-20
......@@ -29,8 +28,9 @@ public class ApiExpectedCommissionRatioController implements ApiExpectedCommissi
@Autowired
private ApiExpectedCommissionRatioService apiExpectedCommissionRatioService;
/**
* 分页列表查询-预计来佣比率信息
* 分页列表查询-来佣比率规格明细信息
* @param request
* @return
*/
......@@ -40,23 +40,52 @@ public class ApiExpectedCommissionRatioController implements ApiExpectedCommissi
}
/**
* 保存-预计来佣比率信息
* 添加-来佣比率规格明细信息
* @param request
* @return
*/
@Override
public Result add(ApiExpectedCommissionRatioAddRequest request) {
return apiExpectedCommissionRatioService.add(request);
}
/**
* 编辑-来佣比率规格明细信息
* @param request
* @return
*/
@Override
public Result save(ApiExpectedCommissionRatioSaveRequest request) {
return apiExpectedCommissionRatioService.save(request);
public Result edit(ApiExpectedCommissionRatioEditRequest request) {
return apiExpectedCommissionRatioService.edit(request);
}
/**
* 详情-来佣比率规格明细信息
* @param expectedSpeciesBizId 来佣比率规格明细表唯一业务ID
* @return
*/
@Override
public Result<ApiExpectedCommissionRatioDetailResponse> detail(String expectedSpeciesBizId) {
return apiExpectedCommissionRatioService.detail(expectedSpeciesBizId);
}
/**
* 详情-预计来佣比率信息
* @param expectedCommissionRatioBizId 预计来佣比率表唯一业务ID
* 删除-来佣比率规格明细信息
* @param expectedSpeciesBizId 来佣比率规格明细表唯一业务ID
* @return
*/
@Override
public Result<ApiExpectedCommissionRatioDetailResponse> detail(String expectedCommissionRatioBizId) {
return apiExpectedCommissionRatioService.detail(expectedCommissionRatioBizId);
public Result del(String expectedSpeciesBizId) {
return apiExpectedCommissionRatioService.del(expectedSpeciesBizId);
}
/**
* 复制-来佣比率规格明细信息
* @param expectedSpeciesBizId 来佣比率规格明细表唯一业务ID
* @return
*/
@Override
public Result copy(String expectedSpeciesBizId) {
return apiExpectedCommissionRatioService.copy(expectedSpeciesBizId);
}
}
package com.yd.product.api.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.product.api.service.ApiExpectedSpeciesService;
import com.yd.product.feign.client.expectedspecies.ApiExpectedSpeciesFeignClient;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
/**
* 来佣比率规格信息
*
* @author zxm
* @since 2025-12-01
*/
@RestController
@RequestMapping("/expectedSpecies")
@Validated
public class ApiExpectedSpeciesController implements ApiExpectedSpeciesFeignClient {
@Autowired
private ApiExpectedSpeciesService apiExpectedSpeciesService;
/**
* 分页列表查询-来佣比率规格信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiExpectedSpeciesPageResponse>> page(ApiExpectedSpeciesPageRequest request) {
return apiExpectedSpeciesService.page(request);
}
/**
* 导入规格数据
* @param request
* @return
*/
@Override
public Result importSpecies(ApiExpectedSpeciesImportRequest request) {
return apiExpectedSpeciesService.importSpecies(request);
}
/**
* 删除规格数据 TODO
* @param expectedSpeciesBizId
* @return
*/
@Override
public Result delSpecies(String expectedSpeciesBizId) {
return apiExpectedSpeciesService.delSpecies(expectedSpeciesBizId);
}
}
......@@ -2,18 +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.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest;
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);
}
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.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);
Result importSpecies(ApiExpectedSpeciesImportRequest request);
Result delSpecies(String expectedSpeciesBizId);
Result<ExpectedSpecies> checkExpectedSpeciesIsExist(String expectedSpeciesBizId);
}
......@@ -12,4 +12,6 @@ public interface ApiSpeciesSettingService {
String productLaunchBizId);
List<ApiSpeciesTypeDto> querySpeciesTypeDtoList(String productLaunchBizId);
String getSpeciesValue(List<ApiSpeciesSettingDto> apiSpeciesSettingDtoList, String typeCode);
}
......@@ -10,8 +10,8 @@ import com.yd.common.utils.RandomStringGenerator;
import com.yd.product.api.service.ApiAnnouncementSpeciesService;
import com.yd.product.api.service.ApiProductLaunchService;
import com.yd.product.api.service.ApiSpeciesPriceService;
import com.yd.product.api.service.ApiSpeciesSettingService;
import com.yd.product.feign.dto.ApiSpeciesPriceDto;
import com.yd.product.feign.dto.ApiSpeciesSettingDto;
import com.yd.product.feign.request.announcementspecies.ApiAnnouncementSpeciesImportRequest;
import com.yd.product.feign.request.announcementspecies.ApiAnnouncementSpeciesPageRequest;
import com.yd.product.feign.response.announcementspecies.ApiAnnouncementSpeciesPageResponse;
......@@ -38,6 +38,9 @@ public class ApiAnnouncementSpeciesServiceImpl implements ApiAnnouncementSpecies
@Autowired
private ApiSpeciesPriceService apiSpeciesPriceService;
@Autowired
private ApiSpeciesSettingService apiSpeciesSettingService;
/**
* 分页列表查询-公告佣比率规格信息
* @param request
......@@ -72,10 +75,10 @@ public class ApiAnnouncementSpeciesServiceImpl implements ApiAnnouncementSpecies
//公告佣比率规格表唯一业务ID
species.setAnnouncementSpeciesBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_ANNOUNCEMENT_SPECIES.getCode()));
//供款年期(5、10、20年期等)(固定规格条件)
species.setPaymentTerm(getSpeciesValue(dto.getApiSpeciesSettingDtoList(), SpeciesTypeEnum.PAYMENT_TERM.getItemValue()));
species.setPaymentTerm(apiSpeciesSettingService.getSpeciesValue(dto.getApiSpeciesSettingDtoList(), SpeciesTypeEnum.PAYMENT_TERM.getItemValue()));
species.setProductLaunchBizId(request.getProductLaunchBizId());
//保障计划(0-64岁等)(固定规格条件)
species.setProtectionPlan(getSpeciesValue(dto.getApiSpeciesSettingDtoList(), SpeciesTypeEnum.PROTECTION_PLAN.getItemValue()));
species.setProtectionPlan(apiSpeciesSettingService.getSpeciesValue(dto.getApiSpeciesSettingDtoList(), SpeciesTypeEnum.PROTECTION_PLAN.getItemValue()));
return species;
}).collect(Collectors.toList());
iAnnouncementSpeciesService.saveOrUpdateBatch(saveList);
......@@ -83,27 +86,6 @@ public class ApiAnnouncementSpeciesServiceImpl implements ApiAnnouncementSpecies
}
/**
* 根据规格类型编码获取apiSpeciesSettingDtoList中的规格值
* @param apiSpeciesSettingDtoList
* @param typeCode
* @return
*/
public String getSpeciesValue(List<ApiSpeciesSettingDto> apiSpeciesSettingDtoList,String typeCode) {
String speciesValue = "";
if (!CollectionUtils.isEmpty(apiSpeciesSettingDtoList)){
List<ApiSpeciesSettingDto> dtoList = apiSpeciesSettingDtoList
.stream()
.filter(d -> d.getTypeCode().equals(typeCode))
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(dtoList)) {
ApiSpeciesSettingDto settingDto = dtoList.get(0);
speciesValue = settingDto.getValue();
}
}
return speciesValue;
}
/**
* 校验公告佣比率规格信息是否存在
* @param announcementSpeciesBizId
* @return
......
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.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest;
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 org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@Service
......@@ -36,10 +29,10 @@ public class ApiExpectedCommissionRatioServiceImpl implements ApiExpectedCommiss
private IExpectedCommissionRatioService iExpectedCommissionRatioService;
@Autowired
private ApiProductLaunchService apiProductLaunchService;
private ApiExpectedSpeciesService apiExpectedSpeciesService;
/**
* 分页列表查询-预计来佣比率信息
* 分页列表查询-来佣比率规格明细信息
* @param request
* @return
*/
......@@ -51,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
*/
......@@ -101,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);
}
......
package com.yd.product.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.base.feign.enums.SpeciesTypeEnum;
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.ApiExpectedSpeciesService;
import com.yd.product.api.service.ApiProductLaunchService;
import com.yd.product.api.service.ApiSpeciesPriceService;
import com.yd.product.api.service.ApiSpeciesSettingService;
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;
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
@Service
public class ApiExpectedSpeciesServiceImpl implements ApiExpectedSpeciesService {
@Autowired
private IExpectedSpeciesService iExpectedSpeciesService;
@Autowired
private ApiProductLaunchService apiProductLaunchService;
@Autowired
private ApiSpeciesPriceService apiSpeciesPriceService;
@Autowired
private ApiSpeciesSettingService apiSpeciesSettingService;
/**
* 分页列表查询-来佣比率规格信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiExpectedSpeciesPageResponse>> page(ApiExpectedSpeciesPageRequest request) {
Page<ApiExpectedSpeciesPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiExpectedSpeciesPageResponse> iPage = iExpectedSpeciesService.page(page, request);
return Result.success(iPage);
}
/**
* 导入规格数据
* @param request
* @return
*/
@Override
public Result importSpecies(ApiExpectedSpeciesImportRequest request) {
//校验产品上架信息是否存在
apiProductLaunchService.checkProductLaunchIsExist(request.getProductLaunchBizId());
//查询规格价格配置列表
List<ApiSpeciesPriceDto> apiSpeciesPriceDtoList = apiSpeciesPriceService.querySpeciesPriceDtoList(request.getProductLaunchBizId());
if (CollectionUtils.isEmpty(apiSpeciesPriceDtoList)) {
throw new BusinessException("导入的数据不存在");
}
//查询规格价格配置列表 -> 新增来佣比率规格数据
List<ExpectedSpecies> saveList = apiSpeciesPriceDtoList.stream().map(dto -> {
ExpectedSpecies species = new ExpectedSpecies();
//规格条件列表JSON串
species.setSpeciesJson(dto.getSpeciesJson());
//来佣比率规格表唯一业务ID
species.setExpectedSpeciesBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_EXPECTED_SPECIES.getCode()));
//供款年期(5、10、20年期等)(固定规格条件)
species.setPaymentTerm(apiSpeciesSettingService.getSpeciesValue(dto.getApiSpeciesSettingDtoList(), SpeciesTypeEnum.PAYMENT_TERM.getItemValue()));
species.setProductLaunchBizId(request.getProductLaunchBizId());
//保障计划(0-64岁等)(固定规格条件)
species.setProtectionPlan(apiSpeciesSettingService.getSpeciesValue(dto.getApiSpeciesSettingDtoList(), SpeciesTypeEnum.PROTECTION_PLAN.getItemValue()));
return species;
}).collect(Collectors.toList());
iExpectedSpeciesService.saveOrUpdateBatch(saveList);
return Result.success();
}
/**
* 删除规格数据
* @param expectedSpeciesBizId
* @return
*/
@Override
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);
}
}
......@@ -99,4 +99,26 @@ public class ApiSpeciesSettingServiceImpl implements ApiSpeciesSettingService {
}
return apiSpeciesTypeDtoList;
}
/**
* 根据规格类型编码获取apiSpeciesSettingDtoList中的规格值
* @param apiSpeciesSettingDtoList
* @param typeCode
* @return
*/
@Override
public String getSpeciesValue(List<ApiSpeciesSettingDto> apiSpeciesSettingDtoList,String typeCode) {
String speciesValue = "";
if (!CollectionUtils.isEmpty(apiSpeciesSettingDtoList)){
List<ApiSpeciesSettingDto> dtoList = apiSpeciesSettingDtoList
.stream()
.filter(d -> d.getTypeCode().equals(typeCode))
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(dtoList)) {
ApiSpeciesSettingDto settingDto = dtoList.get(0);
speciesValue = settingDto.getValue();
}
}
return speciesValue;
}
}
......@@ -2,25 +2,23 @@ package com.yd.product.feign.client.expectedcommissionratio;
import com.yd.common.result.Result;
import com.yd.product.feign.fallback.expectedcommissionratio.ApiExpectedCommissionRatioFeignFallbackFactory;
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.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioDetailResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
/**
* 产品服务-预计来佣比率信息Feign客户端
* 产品服务-来佣比率规格明细信息Feign客户端
*/
@FeignClient(name = "yd-product-api", fallbackFactory = ApiExpectedCommissionRatioFeignFallbackFactory.class)
public interface ApiExpectedCommissionRatioFeignClient {
/**
* 分页列表查询-预计来佣比率信息
* 分页列表查询-来佣比率规格明细信息
* @param request
* @return
*/
......@@ -28,18 +26,42 @@ public interface ApiExpectedCommissionRatioFeignClient {
Result page(@RequestBody ApiExpectedCommissionRatioPageRequest request);
/**
* 保存-预计来佣比率信息
* 添加-来佣比率规格明细信息
* @param request
* @return
*/
@PostMapping("/save")
Result save(@Validated @RequestBody ApiExpectedCommissionRatioSaveRequest request);
@PostMapping("/add")
Result add(@Validated @RequestBody ApiExpectedCommissionRatioAddRequest request);
/**
* 详情-预计来佣比率信息
* @param expectedCommissionRatioBizId 预计来佣比率表唯一业务ID
* 编辑-来佣比率规格明细信息
* @param request
* @return
*/
@PostMapping("/edit")
Result edit(@Validated @RequestBody ApiExpectedCommissionRatioEditRequest request);
/**
* 详情-来佣比率规格明细信息
* @param expectedSpeciesBizId 来佣比率规格明细表唯一业务ID
* @return
*/
@GetMapping("/detail")
Result<ApiExpectedCommissionRatioDetailResponse> detail(@NotBlank(message = "预计来佣比率表唯一业务ID不能为空") @RequestParam(value = "expectedCommissionRatioBizId") String expectedCommissionRatioBizId);
Result<ApiExpectedCommissionRatioDetailResponse> detail(@NotBlank(message = "来佣比率规格明细表唯一业务ID不能为空") @RequestParam(value = "expectedSpeciesBizId") String expectedSpeciesBizId);
/**
* 删除-来佣比率规格明细信息
* @param expectedSpeciesBizId 来佣比率规格明细表唯一业务ID
* @return
*/
@DeleteMapping("/del")
Result del(@NotBlank(message = "来佣比率规格明细表唯一业务ID不能为空") @RequestParam(value = "expectedSpeciesBizId") String expectedSpeciesBizId);
/**
* 复制-来佣比率规格明细信息
* @param expectedSpeciesBizId 来佣比率规格明细表唯一业务ID
* @return
*/
@PutMapping("/copy")
Result copy(@NotBlank(message = "来佣比率规格明细表唯一业务ID不能为空") @RequestParam(value = "expectedSpeciesBizId") String expectedSpeciesBizId);
}
package com.yd.product.feign.client.expectedspecies;
import com.yd.common.result.Result;
import com.yd.product.feign.fallback.expectedspecies.ApiExpectedSpeciesFeignFallbackFactory;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesImportRequest;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotBlank;
/**
* 产品服务-来佣比率规格信息Feign客户端
*/
@FeignClient(name = "yd-product-api", fallbackFactory = ApiExpectedSpeciesFeignFallbackFactory.class)
public interface ApiExpectedSpeciesFeignClient {
/**
* 分页列表查询-来佣比率规格信息
* @param request
* @return
*/
@PostMapping("/page")
Result page(@RequestBody ApiExpectedSpeciesPageRequest request);
/**
* 导入规格数据
* @param request
* @return
*/
@PostMapping("/import/species")
Result importSpecies(@RequestBody ApiExpectedSpeciesImportRequest request);
/**
* 删除规格数据
* @param expectedSpeciesBizId
* @return
*/
@DeleteMapping("/del/species")
Result delSpecies(@NotBlank(message = "来佣比率规格表唯一业务ID不能为空") @RequestParam(value = "expectedSpeciesBizId") String expectedSpeciesBizId);
}
......@@ -2,8 +2,9 @@ package com.yd.product.feign.fallback.expectedcommissionratio;
import com.yd.common.result.Result;
import com.yd.product.feign.client.expectedcommissionratio.ApiExpectedCommissionRatioFeignClient;
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.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioDetailResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
......@@ -26,12 +27,27 @@ public class ApiExpectedCommissionRatioFeignFallbackFactory implements FallbackF
}
@Override
public Result save(ApiExpectedCommissionRatioSaveRequest request) {
public Result add(ApiExpectedCommissionRatioAddRequest request) {
return null;
}
@Override
public Result<ApiExpectedCommissionRatioDetailResponse> detail(String expectedCommissionRatioBizId) {
public Result edit(ApiExpectedCommissionRatioEditRequest request) {
return null;
}
@Override
public Result<ApiExpectedCommissionRatioDetailResponse> detail(String expectedSpeciesBizId) {
return null;
}
@Override
public Result del(String expectedSpeciesBizId) {
return null;
}
@Override
public Result copy(String expectedSpeciesBizId) {
return null;
}
};
......
package com.yd.product.feign.fallback.expectedspecies;
import com.yd.common.result.Result;
import com.yd.product.feign.client.expectedspecies.ApiExpectedSpeciesFeignClient;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesImportRequest;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
/**
* 产品服务-来佣比率规格信息Feign降级处理
*/
@Slf4j
@Component
public class ApiExpectedSpeciesFeignFallbackFactory implements FallbackFactory<ApiExpectedSpeciesFeignClient> {
@Override
public ApiExpectedSpeciesFeignClient create(Throwable cause) {
return new ApiExpectedSpeciesFeignClient() {
@Override
public Result page(ApiExpectedSpeciesPageRequest request) {
return null;
}
@Override
public Result importSpecies(ApiExpectedSpeciesImportRequest request) {
return null;
}
@Override
public Result delSpecies(String expectedSpeciesBizId) {
return null;
}
};
}
}
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 ApiExpectedCommissionRatioAddRequest {
/**
* 来佣比率规格表唯一业务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.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;
}
......@@ -3,21 +3,19 @@ package com.yd.product.feign.request.expectedcommissionratio;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiExpectedCommissionRatioPageRequest extends PageDto {
/**
* 产品上架信息表唯一业务ID
*/
private String productLaunchBizId;
/**
* 保障年限(供款年期,固定规格条件)
* 来佣比率规格表唯一业务ID
*/
private String warrantyPeriod;
@NotBlank(message = "来佣比率规格表唯一业务ID不能为空")
private String expectedSpeciesBizId;
/**
* 期数(第几年,固定规格条件
* 费用名称(转介费等
*/
private String issueNumber;
private String expenseName;
}
package com.yd.product.feign.request.expectedcommissionratio;
package com.yd.product.feign.request.expectedspecies;
import com.yd.product.feign.dto.ApiExpectedCommissionRatioDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Data
public class ApiExpectedCommissionRatioSaveRequest {
public class ApiExpectedSpeciesImportRequest {
/**
* 产品上架信息表唯一业务ID
*/
@NotBlank(message = "产品上架信息表唯一业务ID不能为空")
private String productLaunchBizId;
/**
* 预计来佣比率配置列表信息
*/
@NotEmpty(message = "预计来佣比率配置列表信息不能为空")
private List<ApiExpectedCommissionRatioDto> apiExpectedCommissionRatioDtoList;
}
package com.yd.product.feign.request.expectedspecies;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiExpectedSpeciesPageRequest extends PageDto {
/**
* 产品上架信息表唯一业务ID
*/
@NotBlank(message = "产品上架信息表唯一业务ID不能为空")
private String productLaunchBizId;
/**
* 保障计划(0-64岁等)(固定规格条件)
*/
private String protectionPlan;
/**
* 供款年期(5、10、20年期等)(固定规格条件)
*/
private String paymentTerm;
}
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;
......
package com.yd.product.feign.response.expectedcommissionratio;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
......@@ -9,95 +8,122 @@ import java.time.LocalDateTime;
public class ApiExpectedCommissionRatioPageResponse {
/**
* 预计来佣比率表主键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;
/**
* 保障年限(固定规格条件
* 佣金年限(止
*/
private String warrantyPeriod;
private String endPeriod;
/**
* 期数(固定规格条件
* 标保折算比例(基本保费
*/
private String issueNumber;
private BigDecimal discountRatio;
// /**
// * 缴费年限(起)
// */
// @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;
/**
* 通用备注
*/
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
private Integer isDeleted;
/**
* 创建人ID
*/
private String creatorId;
/**
* 创建人名称
*/
private String creatorName;
/**
* 更新人ID
*/
private String updaterId;
/**
* 更新人名称
*/
private String updaterName;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}
package com.yd.product.feign.response.expectedspecies;
import com.yd.product.feign.dto.ApiSpeciesSettingDto;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class ApiExpectedSpeciesPageResponse {
/**
* 来佣比率规格表主键ID
*/
private Long id;
/**
* 来佣比率规格表唯一业务ID
*/
private String expectedSpeciesBizId;
/**
* 产品上架信息表唯一业务ID
*/
private String productLaunchBizId;
/**
* 产品唯一业务ID
*/
private String productBizId;
/**
* 规格条件列表JSON串
*/
private String speciesJson;
/**
* 上架产品规格配置表信息JSON串对应转化的列表
*/
private List<ApiSpeciesSettingDto> apiSpeciesSettingDtoList;
/**
* 保障计划(0-64岁等)(固定规格条件)
*/
private String protectionPlan;
/**
* 供款年期(5、10、20年期等)(固定规格条件)
*/
private String paymentTerm;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}
package com.yd.product.service.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesPageResponse;
import com.yd.product.service.model.ExpectedSpecies;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 来佣比率规格表 Mapper 接口
* </p>
*
* @author zxm
* @since 2025-12-01
*/
public interface ExpectedSpeciesMapper extends BaseMapper<ExpectedSpecies> {
IPage<ApiExpectedSpeciesPageResponse> page(@Param("page") Page<ApiExpectedSpeciesPageResponse> page,
@Param("request") ApiExpectedSpeciesPageRequest request);
}
......@@ -4,19 +4,20 @@ 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 lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
* 预计来佣比率表(新表)
* 来佣比率规格明细表
* </p>
*
* @author zxm
* @since 2025-11-20
* @since 2025-12-01
*/
@Getter
@Setter
......@@ -32,55 +33,37 @@ public class ExpectedCommissionRatio implements Serializable {
private Long id;
/**
* 预计来佣比率表唯一业务ID
* 来佣比率规格明细表唯一业务ID
*/
@TableField("expected_commission_ratio_biz_id")
private String expectedCommissionRatioBizId;
/**
* 产品上架信息表唯一业务ID
* 来佣比率规格表唯一业务ID
*/
@TableField("product_launch_biz_id")
private String productLaunchBizId;
@TableField("expected_species_biz_id")
private String expectedSpeciesBizId;
/**
* 产品唯一业务ID
* 费用名称(转介费等)
*/
@TableField("product_biz_id")
private String productBizId;
@TableField("expense_name")
private String expenseName;
/**
* 规格条件列表JSON串
* 佣金年限(起)
*/
@TableField("species_json")
private String speciesJson;
@TableField("start_period")
private String startPeriod;
/**
* 保障年限(固定规格条件
* 佣金年限(止
*/
@TableField("warranty_period")
private String warrantyPeriod;
/**
* 期数(固定规格条件)
*/
@TableField("issue_number")
private String issueNumber;
// /**
// * 缴费年限(起)
// */
// @TableField("start_period")
// private String startPeriod;
//
// /**
// * 缴费年限(止)
// */
// @TableField("end_period")
// private String endPeriod;
@TableField("end_period")
private String endPeriod;
/**
* 标保折算比例
* 标保折算比例(基本保费)
*/
@TableField("discount_ratio")
private BigDecimal discountRatio;
......@@ -92,22 +75,10 @@ public class ExpectedCommissionRatio implements Serializable {
private BigDecimal cardinalNumber;
/**
* 来佣类型
* 佣金率
*/
@TableField("commission_type")
private String commissionType;
/**
* 来佣比例
*/
@TableField("commission_ratio")
private BigDecimal commissionRatio;
/**
* 出单渠道
*/
@TableField("channel")
private String channel;
@TableField("commission_rate")
private BigDecimal commissionRate;
/**
* 有效开始时间
......@@ -122,10 +93,34 @@ public class ExpectedCommissionRatio implements Serializable {
private LocalDateTime effectiveEnd;
/**
* 来佣日规则
* 是否受汇率影响 0-否 1-是,字典)
*/
@TableField("rules")
private String rules;
@TableField("is_exchange_rate")
private String isExchangeRate;
/**
* 结算币种(字典)
*/
@TableField("currency")
private String currency;
/**
* 对账公司
*/
@TableField("reconciliation_company")
private String reconciliationCompany;
/**
* 销售组织
*/
@TableField("sales_org")
private String salesOrg;
/**
* 状态(0:停用 1:启用)
*/
@TableField("status")
private Integer status;
/**
* 通用备注
......@@ -146,12 +141,24 @@ public class ExpectedCommissionRatio implements Serializable {
private String creatorId;
/**
* 创建人名称
*/
@TableField("creator_name")
private String creatorName;
/**
* 更新人ID
*/
@TableField("updater_id")
private String updaterId;
/**
* 更新人名称
*/
@TableField("updater_name")
private String updaterName;
/**
* 创建时间
*/
@TableField("create_time")
......
package com.yd.product.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 lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 来佣比率规格表
* </p>
*
* @author zxm
* @since 2025-12-01
*/
@Getter
@Setter
@TableName("expected_species")
public class ExpectedSpecies implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 来佣比率规格表唯一业务ID
*/
@TableField("expected_species_biz_id")
private String expectedSpeciesBizId;
/**
* 产品上架信息表唯一业务ID
*/
@TableField("product_launch_biz_id")
private String productLaunchBizId;
/**
* 产品唯一业务ID
*/
@TableField("product_biz_id")
private String productBizId;
/**
* 规格条件列表JSON串
*/
@TableField("species_json")
private String speciesJson;
/**
* 保障计划(0-64岁等)(固定规格条件)
*/
@TableField("protection_plan")
private String protectionPlan;
/**
* 供款年期(5、10、20年期等)(固定规格条件)
*/
@TableField("payment_term")
private String paymentTerm;
/**
* 状态(0:停用 1:启用)
*/
@TableField("status")
private Integer status;
/**
* 通用备注
*/
@TableField("remark")
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
@TableField("is_deleted")
private Integer isDeleted;
/**
* 创建人ID
*/
@TableField("creator_id")
private String creatorId;
/**
* 创建人名称
*/
@TableField("creator_name")
private String creatorName;
/**
* 更新人ID
*/
@TableField("updater_id")
private String updaterId;
/**
* 更新人名称
*/
@TableField("updater_name")
private String updaterName;
/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;
}
......@@ -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);
}
package com.yd.product.service.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesPageResponse;
import com.yd.product.service.model.ExpectedSpecies;
/**
* <p>
* 来佣比率规格表 服务类
* </p>
*
* @author zxm
* @since 2025-12-01
*/
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;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesPageResponse;
import com.yd.product.service.dao.ExpectedSpeciesMapper;
import com.yd.product.service.model.ExpectedSpecies;
import com.yd.product.service.service.IExpectedSpeciesService;
import org.springframework.stereotype.Service;
/**
* <p>
* 来佣比率规格表 服务实现类
* </p>
*
* @author zxm
* @since 2025-12-01
*/
@Service
public class ExpectedSpeciesServiceImpl extends ServiceImpl<ExpectedSpeciesMapper, ExpectedSpecies> implements IExpectedSpeciesService {
@Override
public IPage<ApiExpectedSpeciesPageResponse> page(Page<ApiExpectedSpeciesPageResponse> page,
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 ")
);
}
}
......@@ -21,7 +21,7 @@ public class MyBatisPlusCodeGenerator {
})
.strategyConfig(builder -> {
builder.addInclude(
"announcement_species","announcement_commission_ratio"
"expected_species","expected_commission_ratio"
)
.entityBuilder()
......
......@@ -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>
......
<?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.product.service.dao.ExpectedSpeciesMapper">
<resultMap id="ExpectedSpeciesPageResultMap"
type="com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesPageResponse">
<id property="id" column="id"/>
<result property="expectedSpeciesBizId" column="expected_species_biz_id"/>
<result property="productLaunchBizId" column="product_launch_biz_id"/>
<result property="productBizId" column="product_biz_id"/>
<result property="speciesJson" column="species_json"/>
<result property="protectionPlan" column="protection_plan"/>
<result property="paymentTerm" column="payment_term"/>
<result property="status" column="status"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<!-- 使用类型处理器转换 species_json 字段 -->
<result property="apiSpeciesSettingDtoList" column="species_json"
typeHandler="com.yd.product.service.handler.JsonToListTypeHandler"/>
</resultMap>
<select id="page" resultMap="ExpectedSpeciesPageResultMap">
select
e.id,
e.expected_species_biz_id,
e.product_launch_biz_id,
e.product_biz_id,
e.species_json,
e.protection_plan,
e.payment_term,
e.status,
e.create_time,
e.update_time
from expected_species e
<where>
<if test="request.productLaunchBizId != null and request.productLaunchBizId != ''">
and e.product_launch_biz_id = #{request.productLaunchBizId}
</if>
<if test="request.protectionPlan != null and request.protectionPlan != ''">
and e.protection_plan like concat('%', #{request.protectionPlan}, '%')
</if>
<if test="request.paymentTerm != null and request.paymentTerm != ''">
and e.payment_term = #{request.paymentTerm}
</if>
and e.is_deleted = 0
</where>
order by e.create_time desc
</select>
</mapper>
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