Commit d2637944 by zhangxingmin

产品服务相关接口

parent d438a7bc
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.ApiExpectedCommissionRatioService;
import com.yd.product.feign.client.expectedcommissionratio.ApiExpectedCommissionRatioFeignClient;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse;
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;
/**
* 预计来佣比率信息
*
* @author zxm
* @since 2025-11-20
*/
@RestController
@RequestMapping("/expectedCommissionRatio")
@Validated
public class ApiExpectedCommissionRatioController implements ApiExpectedCommissionRatioFeignClient {
@Autowired
private ApiExpectedCommissionRatioService apiExpectedCommissionRatioService;
/**
* 分页列表查询-预计来佣比率信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiExpectedCommissionRatioPageResponse>> page(ApiExpectedCommissionRatioPageRequest request) {
return apiExpectedCommissionRatioService.page(request);
}
}
package com.yd.product.api.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 预计来佣比率表(新表) 前端控制器
* </p>
*
* @author zxm
* @since 2025-11-20
*/
@RestController
@RequestMapping("/expectedCommissionRatio")
public class ExpectedCommissionRatioController {
}
package com.yd.product.api.service;
import com.yd.common.result.Result;
import com.yd.product.feign.response.productlaunch.ApiAttributeSettingDto;
import java.util.List;
public interface ApiAttributeSettingService {
Result save(List<ApiAttributeSettingDto> apiAttributeSettingDtoList,
String productLaunchBizId);
}
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.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse;
public interface ApiExpectedCommissionRatioService {
Result<IPage<ApiExpectedCommissionRatioPageResponse>> page(ApiExpectedCommissionRatioPageRequest request);
}
...@@ -8,6 +8,7 @@ import com.yd.product.feign.request.productlaunch.ApiProductLaunchSaveRequest; ...@@ -8,6 +8,7 @@ import com.yd.product.feign.request.productlaunch.ApiProductLaunchSaveRequest;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchCategoryAddResponse; import com.yd.product.feign.response.productlaunch.ApiProductLaunchCategoryAddResponse;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse; import com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchPageResponse; import com.yd.product.feign.response.productlaunch.ApiProductLaunchPageResponse;
import com.yd.product.service.model.ProductLaunch;
public interface ApiProductLaunchService { public interface ApiProductLaunchService {
Result<IPage<ApiProductLaunchPageResponse>> page(ApiProductLaunchPageRequest request); Result<IPage<ApiProductLaunchPageResponse>> page(ApiProductLaunchPageRequest request);
...@@ -17,4 +18,6 @@ public interface ApiProductLaunchService { ...@@ -17,4 +18,6 @@ public interface ApiProductLaunchService {
Result<ApiProductLaunchDetailResponse> detail(String productLaunchBizId); Result<ApiProductLaunchDetailResponse> detail(String productLaunchBizId);
Result save(ApiProductLaunchSaveRequest request); Result save(ApiProductLaunchSaveRequest request);
Result<ProductLaunch> checkProductLaunchIsExist(String productBizId);
} }
package com.yd.product.api.service;
import com.yd.common.result.Result;
import com.yd.product.feign.dto.ApiSpeciesPriceDto;
import java.util.List;
public interface ApiSpeciesPriceService {
Result save(List<ApiSpeciesPriceDto> apiSpeciesPriceDtoList,
String productLaunchBizId);
}
package com.yd.product.api.service;
import com.yd.common.result.Result;
import com.yd.product.feign.dto.ApiSpeciesSettingDto;
import java.util.List;
public interface ApiSpeciesSettingService {
Result save(List<ApiSpeciesSettingDto> apiSpeciesSettingDtoList,
String productLaunchBizId);
}
package com.yd.product.api.service.impl;
import com.yd.common.enums.CommonEnum;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.product.api.service.ApiAttributeSettingService;
import com.yd.product.feign.response.productlaunch.ApiAttributeSettingDto;
import com.yd.product.service.model.AttributeSetting;
import com.yd.product.service.service.IAttributeSettingService;
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.List;
import java.util.stream.Collectors;
@Slf4j
@Service
public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingService {
@Autowired
private IAttributeSettingService iAttributeSettingService;
/**
* 保存产品属性(参数)配置信息
* @param apiAttributeSettingDtoList
* @param productLaunchBizId
* @return
*/
@Override
public Result save(List<ApiAttributeSettingDto> apiAttributeSettingDtoList, String productLaunchBizId) {
//先删后新增
iAttributeSettingService.delByProductLaunchBizId(productLaunchBizId);
//新增
if (!CollectionUtils.isEmpty(apiAttributeSettingDtoList)) {
List<AttributeSetting> attributeSettingList = apiAttributeSettingDtoList.stream().map(dto -> {
AttributeSetting attributeSetting = new AttributeSetting();
BeanUtils.copyProperties(dto,attributeSetting);
attributeSetting.setProductLaunchBizId(productLaunchBizId);
attributeSetting.setAttributeSettingBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_ATTRIBUTE_SETTING.getCode()));
return attributeSetting;
}).collect(Collectors.toList());
iAttributeSettingService.saveOrUpdateBatch(attributeSettingList);
}
return Result.success();
}
}
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.common.result.Result;
import com.yd.product.api.service.ApiExpectedCommissionRatioService;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse;
import com.yd.product.service.service.IExpectedCommissionRatioService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class ApiExpectedCommissionRatioServiceImpl implements ApiExpectedCommissionRatioService {
@Autowired
private IExpectedCommissionRatioService iExpectedCommissionRatioService;
/**
* 分页列表查询-预计来佣比率信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiExpectedCommissionRatioPageResponse>> page(ApiExpectedCommissionRatioPageRequest request) {
Page<ApiExpectedCommissionRatioPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiExpectedCommissionRatioPageResponse> iPage = iExpectedCommissionRatioService.page(page, request);
return Result.success(iPage);
}
}
package com.yd.product.api.service.impl; package com.yd.product.api.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.base.feign.client.relobjectcategory.ApiRelObjectCategoryFeignClient; import com.yd.base.feign.client.relobjectcategory.ApiRelObjectCategoryFeignClient;
...@@ -8,10 +9,10 @@ import com.yd.common.enums.CommonEnum; ...@@ -8,10 +9,10 @@ import com.yd.common.enums.CommonEnum;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
import com.yd.product.api.service.ApiProductLaunchService; import com.yd.product.api.service.*;
import com.yd.product.api.service.ApiProductService;
import com.yd.product.feign.dto.ApiProductLaunchDto; import com.yd.product.feign.dto.ApiProductLaunchDto;
import com.yd.product.feign.dto.ApiSpeciesPriceDto; import com.yd.product.feign.dto.ApiSpeciesPriceDto;
import com.yd.product.feign.dto.ApiSpeciesSettingDto;
import com.yd.product.feign.dto.ApiSpeciesTypeDto; import com.yd.product.feign.dto.ApiSpeciesTypeDto;
import com.yd.product.feign.request.product.ApiProductAddRequest; import com.yd.product.feign.request.product.ApiProductAddRequest;
import com.yd.product.feign.request.product.ApiProductEditRequest; import com.yd.product.feign.request.product.ApiProductEditRequest;
...@@ -62,6 +63,15 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService { ...@@ -62,6 +63,15 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
private ISpeciesPriceService iSpeciesPriceService; private ISpeciesPriceService iSpeciesPriceService;
@Autowired @Autowired
private ApiAttributeSettingService apiAttributeSettingService;
@Autowired
private ApiSpeciesSettingService apiSpeciesSettingService;
@Autowired
private ApiSpeciesPriceService apiSpeciesPriceService;
@Autowired
private ApiRelObjectCategoryFeignClient apiRelObjectCategoryFeignClient; private ApiRelObjectCategoryFeignClient apiRelObjectCategoryFeignClient;
@Override @Override
...@@ -180,6 +190,7 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService { ...@@ -180,6 +190,7 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
apiSpeciesPriceDtoList = speciesPriceList.stream().map(dto -> { apiSpeciesPriceDtoList = speciesPriceList.stream().map(dto -> {
ApiSpeciesPriceDto priceDto = new ApiSpeciesPriceDto(); ApiSpeciesPriceDto priceDto = new ApiSpeciesPriceDto();
BeanUtils.copyProperties(dto,priceDto); BeanUtils.copyProperties(dto,priceDto);
priceDto.setApiSpeciesSettingDtoList(StringUtils.isNotBlank(dto.getSpeciesJson()) ? JSON.parseArray(dto.getSpeciesJson(), ApiSpeciesSettingDto.class) : new ArrayList<>());
return priceDto; return priceDto;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
...@@ -195,7 +206,39 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService { ...@@ -195,7 +206,39 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
*/ */
@Override @Override
public Result save(ApiProductLaunchSaveRequest request) { public Result save(ApiProductLaunchSaveRequest request) {
return null; ApiProductLaunchDto apiProductLaunchDto = request.getApiProductLaunchDto();
//校验产品上架信息是否存在
Result<ProductLaunch> result = checkProductLaunchIsExist(apiProductLaunchDto.getProductLaunchBizId());
//更新产品上架主信息
ProductLaunch productLaunch = result.getData();
BeanUtils.copyProperties(apiProductLaunchDto,productLaunch);
productLaunch.setMainUrls(!CollectionUtils.isEmpty(apiProductLaunchDto.getMainUrlsList()) ? String.join(";",apiProductLaunchDto.getMainUrlsList()) : "");
productLaunch.setDetailUrls(!CollectionUtils.isEmpty(apiProductLaunchDto.getDetailUrlsList()) ? String.join(";",apiProductLaunchDto.getDetailUrlsList()) : "");
iProductLaunchService.saveOrUpdate(productLaunch);
//设置产品上架信息参数列表
apiAttributeSettingService.save(request.getApiAttributeSettingDtoList(),productLaunch.getProductLaunchBizId());
//保存产品上架规格配置列表
apiSpeciesSettingService.save(request.getApiSpeciesSettingDtoList(),productLaunch.getProductLaunchBizId());
//保存规格价格配置列表
apiSpeciesPriceService.save(request.getApiSpeciesPriceDtoList(),productLaunch.getProductLaunchBizId());
return Result.success();
} }
/**
* 校验产品上架信息是否存在
* @param productLaunchBizId
* @return
*/
@Override
public Result<ProductLaunch> checkProductLaunchIsExist(String productLaunchBizId) {
ProductLaunch productLaunch = iProductLaunchService.queryOne(productLaunchBizId);
if (Objects.isNull(productLaunch)) {
//数据不存在
throw new BusinessException("产品上架信息数据不存在");
}
return Result.success(productLaunch);
}
} }
package com.yd.product.api.service.impl;
import com.alibaba.fastjson.JSON;
import com.yd.common.enums.CommonEnum;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.product.api.service.ApiSpeciesPriceService;
import com.yd.product.feign.dto.ApiSpeciesPriceDto;
import com.yd.product.service.model.SpeciesPrice;
import com.yd.product.service.service.ISpeciesPriceService;
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.List;
import java.util.stream.Collectors;
@Slf4j
@Service
public class ApiSpeciesPriceServiceImpl implements ApiSpeciesPriceService {
@Autowired
private ISpeciesPriceService iSpeciesPriceService;
/**
* 保存规格价格配置列表
* @param apiSpeciesPriceDtoList
* @param productLaunchBizId
* @return
*/
@Override
public Result save(List<ApiSpeciesPriceDto> apiSpeciesPriceDtoList,
String productLaunchBizId) {
//先删后新增
iSpeciesPriceService.delByProductLaunchBizId(productLaunchBizId);
//新增
if (!CollectionUtils.isEmpty(apiSpeciesPriceDtoList)) {
List<SpeciesPrice> speciesPriceList= apiSpeciesPriceDtoList.stream().map(dto -> {
SpeciesPrice speciesPrice = new SpeciesPrice();
BeanUtils.copyProperties(dto,speciesPrice);
//产品上架信息表唯一业务ID
speciesPrice.setProductLaunchBizId(productLaunchBizId);
//规格价格维护表唯一业务ID
speciesPrice.setSpeciesPriceBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_SPECIES_PRICE.getCode()));
//上架产品规格配置表信息JSON串
speciesPrice.setSpeciesJson(!CollectionUtils.isEmpty(dto.getApiSpeciesSettingDtoList()) ? JSON.toJSONString(dto.getApiSpeciesSettingDtoList()) : "");
return speciesPrice;
}).collect(Collectors.toList());
iSpeciesPriceService.saveOrUpdateBatch(speciesPriceList);
}
return Result.success();
}
}
package com.yd.product.api.service.impl;
import com.yd.common.enums.CommonEnum;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.product.api.service.ApiSpeciesSettingService;
import com.yd.product.feign.dto.ApiSpeciesSettingDto;
import com.yd.product.service.model.SpeciesSetting;
import com.yd.product.service.service.ISpeciesSettingService;
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.List;
import java.util.stream.Collectors;
@Slf4j
@Service
public class ApiSpeciesSettingServiceImpl implements ApiSpeciesSettingService {
@Autowired
private ISpeciesSettingService iSpeciesSettingService;
/**
* 保存产品上架规格配置列表
* @param apiSpeciesSettingDtoList
* @param productLaunchBizId
* @return
*/
@Override
public Result save(List<ApiSpeciesSettingDto> apiSpeciesSettingDtoList,
String productLaunchBizId) {
//先删后新增
iSpeciesSettingService.delByProductLaunchBizId(productLaunchBizId);
//新增
if (!CollectionUtils.isEmpty(apiSpeciesSettingDtoList)) {
List<SpeciesSetting> speciesSettingList= apiSpeciesSettingDtoList.stream().map(dto -> {
SpeciesSetting speciesSetting = new SpeciesSetting();
BeanUtils.copyProperties(dto,speciesSetting);
//产品上架信息表唯一业务ID
speciesSetting.setProductLaunchBizId(productLaunchBizId);
//产品上架规格配置表唯一业务ID
speciesSetting.setSpeciesSettingBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_SPECIES_SETTING.getCode()));
return speciesSetting;
}).collect(Collectors.toList());
iSpeciesSettingService.saveOrUpdateBatch(speciesSettingList);
}
return Result.success();
}
}
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.ApiExpectedCommissionRatioPageRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 产品服务-预计来佣比率信息Feign客户端
*/
@FeignClient(name = "yd-product-api", fallbackFactory = ApiExpectedCommissionRatioFeignFallbackFactory.class)
public interface ApiExpectedCommissionRatioFeignClient {
/**
* 分页列表查询-预计来佣比率信息
* @param request
* @return
*/
@PostMapping("/page")
Result page(@RequestBody ApiExpectedCommissionRatioPageRequest request);
}
package com.yd.product.feign.dto; package com.yd.product.feign.dto;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List; import java.util.List;
@Data @Data
...@@ -9,11 +11,13 @@ public class ApiProductLaunchDto { ...@@ -9,11 +11,13 @@ public class ApiProductLaunchDto {
/** /**
* 产品上架信息表唯一业务ID * 产品上架信息表唯一业务ID
*/ */
@NotBlank(message = "产品上架信息表唯一业务ID不能为空")
private String productLaunchBizId; private String productLaunchBizId;
/** /**
* 关联产品表唯一业务ID(上架的产品) * 关联产品表唯一业务ID(上架的产品)
*/ */
@NotBlank(message = "关联产品表唯一业务ID不能为空")
private String productBizId; private String productBizId;
/** /**
......
...@@ -2,6 +2,7 @@ package com.yd.product.feign.dto; ...@@ -2,6 +2,7 @@ package com.yd.product.feign.dto;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
@Data @Data
public class ApiSpeciesPriceDto { public class ApiSpeciesPriceDto {
...@@ -22,6 +23,11 @@ public class ApiSpeciesPriceDto { ...@@ -22,6 +23,11 @@ public class ApiSpeciesPriceDto {
private String speciesJson; private String speciesJson;
/** /**
* 上架产品规格配置表信息JSON串对应转化的列表
*/
private List<ApiSpeciesSettingDto> apiSpeciesSettingDtoList;
/**
* 价格 * 价格
*/ */
private BigDecimal price; private BigDecimal price;
......
...@@ -16,24 +16,19 @@ public class ApiSpeciesSettingDto { ...@@ -16,24 +16,19 @@ public class ApiSpeciesSettingDto {
private String productLaunchBizId; private String productLaunchBizId;
/** /**
* 规格表唯一业务ID(冗余)
*/
private String speciesBizId;
/**
* 规格类型表唯一业务ID * 规格类型表唯一业务ID
*/ */
private String speciesTypeBizId; private String speciesTypeBizId;
/** /**
* 规格类型编码 * 规格类型名称
*/ */
private String typeCode; private String typeName;
/** /**
* 规格类型名称 * 规格表唯一业务ID(冗余)
*/ */
private String typeName; private String speciesBizId;
/** /**
* 规格值 * 规格值
......
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.ApiExpectedCommissionRatioPageRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
/**
* 产品服务-预计来佣比率信息Feign降级处理
*/
@Slf4j
@Component
public class ApiExpectedCommissionRatioFeignFallbackFactory implements FallbackFactory<ApiExpectedCommissionRatioFeignClient> {
@Override
public ApiExpectedCommissionRatioFeignClient create(Throwable cause) {
return new ApiExpectedCommissionRatioFeignClient() {
@Override
public Result page(ApiExpectedCommissionRatioPageRequest request) {
return null;
}
};
}
}
package com.yd.product.feign.request.expectedcommissionratio;
import com.yd.common.dto.PageDto;
import lombok.Data;
@Data
public class ApiExpectedCommissionRatioPageRequest extends PageDto {
/**
* 产品上架信息表唯一业务ID
*/
private String productLaunchBizId;
/**
* 保障年限(供款年期,固定规格条件)
*/
private String warrantyPeriod;
/**
* 期数(第几年,固定规格条件)
*/
private String issueNumber;
}
...@@ -2,7 +2,7 @@ package com.yd.product.feign.request.productlaunch; ...@@ -2,7 +2,7 @@ package com.yd.product.feign.request.productlaunch;
import com.yd.product.feign.dto.ApiProductLaunchDto; import com.yd.product.feign.dto.ApiProductLaunchDto;
import com.yd.product.feign.dto.ApiSpeciesPriceDto; import com.yd.product.feign.dto.ApiSpeciesPriceDto;
import com.yd.product.feign.dto.ApiSpeciesTypeDto; import com.yd.product.feign.dto.ApiSpeciesSettingDto;
import com.yd.product.feign.response.productlaunch.ApiAttributeSettingDto; import com.yd.product.feign.response.productlaunch.ApiAttributeSettingDto;
import lombok.Data; import lombok.Data;
...@@ -22,9 +22,9 @@ public class ApiProductLaunchSaveRequest { ...@@ -22,9 +22,9 @@ public class ApiProductLaunchSaveRequest {
private List<ApiAttributeSettingDto> apiAttributeSettingDtoList; private List<ApiAttributeSettingDto> apiAttributeSettingDtoList;
/** /**
* 规格信息配置列表 * 设置上架产品规格列表
*/ */
private List<ApiSpeciesTypeDto> apiSpeciesTypeDtoList; private List<ApiSpeciesSettingDto> apiSpeciesSettingDtoList;
/** /**
* 规格价格配置列表 * 规格价格配置列表
......
package com.yd.product.feign.response.expectedcommissionratio;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class ApiExpectedCommissionRatioPageResponse {
/**
* 预计来佣比率表主键ID
*/
private Long id;
/**
* 预计来佣比率表唯一业务ID
*/
private String expectedCommissionRatioBizId;
/**
* 产品上架信息表唯一业务ID
*/
private String productLaunchBizId;
/**
* 产品唯一业务ID
*/
private String productBizId;
/**
* 规格条件列表JSON串
*/
private String speciesJson;
/**
* 保障年限(固定规格条件)
*/
private String warrantyPeriod;
/**
* 期数(固定规格条件)
*/
private String issueNumber;
// /**
// * 缴费年限(起)
// */
// @TableField("start_period")
// private String startPeriod;
//
// /**
// * 缴费年限(止)
// */
// @TableField("end_period")
// private String endPeriod;
/**
* 标保折算比例
*/
private BigDecimal discountRatio;
/**
* 计算基数(保费/保费*折算比例)
*/
private BigDecimal cardinalNumber;
/**
* 来佣类型
*/
private String commissionType;
/**
* 来佣比例
*/
private BigDecimal commissionRatio;
/**
* 出单渠道
*/
private String channel;
/**
* 有效开始时间
*/
private LocalDateTime effectiveStart;
/**
* 有效结束时间
*/
private LocalDateTime effectiveEnd;
/**
* 来佣日规则
*/
private String rules;
/**
* 通用备注
*/
private String remark;
}
package com.yd.product.service.dao; package com.yd.product.service.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse;
import com.yd.product.service.model.ExpectedCommissionRatio; import com.yd.product.service.model.ExpectedCommissionRatio;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/** /**
* <p> * <p>
...@@ -13,4 +18,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -13,4 +18,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface ExpectedCommissionRatioMapper extends BaseMapper<ExpectedCommissionRatio> { public interface ExpectedCommissionRatioMapper extends BaseMapper<ExpectedCommissionRatio> {
IPage<ApiExpectedCommissionRatioPageResponse> page(@Param("page") Page<ApiExpectedCommissionRatioPageResponse> page,
@Param("request") ApiExpectedCommissionRatioPageRequest request);
} }
...@@ -50,28 +50,34 @@ public class ExpectedCommissionRatio implements Serializable { ...@@ -50,28 +50,34 @@ public class ExpectedCommissionRatio implements Serializable {
private String productBizId; private String productBizId;
/** /**
* 规格表唯一业务ID(冗余) * 规格条件列表JSON串
*/ */
@TableField("species_biz_id") @TableField("species_json")
private String speciesBizId; private String speciesJson;
/** /**
* 保障年限 * 保障年限(固定规格条件)
*/ */
@TableField("warranty_period") @TableField("warranty_period")
private String warrantyPeriod; private String warrantyPeriod;
/** /**
* 缴费年限(起 * 期数(固定规格条件
*/ */
@TableField("start_period") @TableField("issue_number")
private String startPeriod; private String issueNumber;
/** // /**
* 缴费年限(止) // * 缴费年限(起)
*/ // */
@TableField("end_period") // @TableField("start_period")
private String endPeriod; // private String startPeriod;
//
// /**
// * 缴费年限(止)
// */
// @TableField("end_period")
// private String endPeriod;
/** /**
* 标保折算比例 * 标保折算比例
...@@ -85,7 +91,7 @@ public class ExpectedCommissionRatio implements Serializable { ...@@ -85,7 +91,7 @@ public class ExpectedCommissionRatio implements Serializable {
@TableField("cardinal_number") @TableField("cardinal_number")
private BigDecimal cardinalNumber; private BigDecimal cardinalNumber;
/**W /**
* 来佣类型 * 来佣类型
*/ */
@TableField("commission_type") @TableField("commission_type")
......
...@@ -43,12 +43,6 @@ public class SpeciesSetting implements Serializable { ...@@ -43,12 +43,6 @@ public class SpeciesSetting implements Serializable {
private String productLaunchBizId; private String productLaunchBizId;
/** /**
* 规格表唯一业务ID(冗余)
*/
@TableField("species_biz_id")
private String speciesBizId;
/**
* 规格类型表唯一业务ID * 规格类型表唯一业务ID
*/ */
@TableField("species_type_biz_id") @TableField("species_type_biz_id")
...@@ -67,6 +61,12 @@ public class SpeciesSetting implements Serializable { ...@@ -67,6 +61,12 @@ public class SpeciesSetting implements Serializable {
private String typeName; private String typeName;
/** /**
* 规格表唯一业务ID(冗余)
*/
@TableField("species_biz_id")
private String speciesBizId;
/**
* 规格值 * 规格值
*/ */
@TableField("value") @TableField("value")
......
...@@ -17,4 +17,6 @@ import java.util.List; ...@@ -17,4 +17,6 @@ import java.util.List;
public interface IAttributeSettingService extends IService<AttributeSetting> { public interface IAttributeSettingService extends IService<AttributeSetting> {
List<AttributeSetting> queryList(AttributeSettingDto dto); List<AttributeSetting> queryList(AttributeSettingDto dto);
Boolean delByProductLaunchBizId(String productLaunchBizId);
} }
package com.yd.product.service.service; package com.yd.product.service.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse;
import com.yd.product.service.model.ExpectedCommissionRatio; import com.yd.product.service.model.ExpectedCommissionRatio;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
...@@ -13,4 +17,6 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -13,4 +17,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/ */
public interface IExpectedCommissionRatioService extends IService<ExpectedCommissionRatio> { public interface IExpectedCommissionRatioService extends IService<ExpectedCommissionRatio> {
IPage<ApiExpectedCommissionRatioPageResponse> page(Page<ApiExpectedCommissionRatioPageResponse> page,
ApiExpectedCommissionRatioPageRequest request);
} }
...@@ -3,7 +3,6 @@ package com.yd.product.service.service; ...@@ -3,7 +3,6 @@ package com.yd.product.service.service;
import com.yd.product.service.dto.SpeciesPriceDto; import com.yd.product.service.dto.SpeciesPriceDto;
import com.yd.product.service.model.SpeciesPrice; import com.yd.product.service.model.SpeciesPrice;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List; import java.util.List;
/** /**
...@@ -17,4 +16,6 @@ import java.util.List; ...@@ -17,4 +16,6 @@ import java.util.List;
public interface ISpeciesPriceService extends IService<SpeciesPrice> { public interface ISpeciesPriceService extends IService<SpeciesPrice> {
List<SpeciesPrice> queryList(SpeciesPriceDto dto); List<SpeciesPrice> queryList(SpeciesPriceDto dto);
Boolean delByProductLaunchBizId(String productLaunchBizId);
} }
...@@ -17,4 +17,6 @@ import java.util.List; ...@@ -17,4 +17,6 @@ import java.util.List;
public interface ISpeciesSettingService extends IService<SpeciesSetting> { public interface ISpeciesSettingService extends IService<SpeciesSetting> {
List<SpeciesSetting> queryList(SpeciesSettingDto dto); List<SpeciesSetting> queryList(SpeciesSettingDto dto);
Boolean delByProductLaunchBizId(String productLaunchBizId);
} }
...@@ -29,4 +29,9 @@ public class AttributeSettingServiceImpl extends ServiceImpl<AttributeSettingMap ...@@ -29,4 +29,9 @@ public class AttributeSettingServiceImpl extends ServiceImpl<AttributeSettingMap
); );
return list; return list;
} }
@Override
public Boolean delByProductLaunchBizId(String productLaunchBizId) {
return this.remove(new LambdaQueryWrapper<AttributeSetting>().eq(AttributeSetting::getProductLaunchBizId,productLaunchBizId));
}
} }
package com.yd.product.service.service.impl; package com.yd.product.service.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest;
import com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse;
import com.yd.product.service.model.ExpectedCommissionRatio; import com.yd.product.service.model.ExpectedCommissionRatio;
import com.yd.product.service.dao.ExpectedCommissionRatioMapper; import com.yd.product.service.dao.ExpectedCommissionRatioMapper;
import com.yd.product.service.service.IExpectedCommissionRatioService; import com.yd.product.service.service.IExpectedCommissionRatioService;
...@@ -17,4 +21,9 @@ import org.springframework.stereotype.Service; ...@@ -17,4 +21,9 @@ import org.springframework.stereotype.Service;
@Service @Service
public class ExpectedCommissionRatioServiceImpl extends ServiceImpl<ExpectedCommissionRatioMapper, ExpectedCommissionRatio> implements IExpectedCommissionRatioService { public class ExpectedCommissionRatioServiceImpl extends ServiceImpl<ExpectedCommissionRatioMapper, ExpectedCommissionRatio> implements IExpectedCommissionRatioService {
@Override
public IPage<ApiExpectedCommissionRatioPageResponse> page(Page<ApiExpectedCommissionRatioPageResponse> page,
ApiExpectedCommissionRatioPageRequest request) {
return baseMapper.page(page,request);
}
} }
package com.yd.product.service.service.impl; package com.yd.product.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yd.common.result.Result;
import com.yd.product.service.dto.SpeciesPriceDto; import com.yd.product.service.dto.SpeciesPriceDto;
import com.yd.product.service.model.SpeciesPrice; import com.yd.product.service.model.SpeciesPrice;
import com.yd.product.service.dao.SpeciesPriceMapper; import com.yd.product.service.dao.SpeciesPriceMapper;
...@@ -28,4 +29,9 @@ public class SpeciesPriceServiceImpl extends ServiceImpl<SpeciesPriceMapper, Spe ...@@ -28,4 +29,9 @@ public class SpeciesPriceServiceImpl extends ServiceImpl<SpeciesPriceMapper, Spe
); );
return list; return list;
} }
@Override
public Boolean delByProductLaunchBizId(String productLaunchBizId) {
return this.remove(new LambdaQueryWrapper<SpeciesPrice>().eq(SpeciesPrice::getProductLaunchBizId,productLaunchBizId));
}
} }
...@@ -29,4 +29,9 @@ public class SpeciesSettingServiceImpl extends ServiceImpl<SpeciesSettingMapper, ...@@ -29,4 +29,9 @@ public class SpeciesSettingServiceImpl extends ServiceImpl<SpeciesSettingMapper,
); );
return list; return list;
} }
@Override
public Boolean delByProductLaunchBizId(String productLaunchBizId) {
return this.remove(new LambdaQueryWrapper<SpeciesSetting>().eq(SpeciesSetting::getProductLaunchBizId,productLaunchBizId));
}
} }
...@@ -2,4 +2,20 @@ ...@@ -2,4 +2,20 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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.ExpectedCommissionRatioMapper"> <mapper namespace="com.yd.product.service.dao.ExpectedCommissionRatioMapper">
<select id="page"
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>
and ecr.is_deleted = 0
</where>
</select>
</mapper> </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