Commit 1635637b by zhangxingmin

列表查询-来佣比率规格和规格明细信息

parent 758600b3
......@@ -5,7 +5,9 @@ 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.ApiExpectedSpeciesListRequest;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesPageResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
......@@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
* 来佣比率规格信息
......@@ -57,4 +60,14 @@ public class ApiExpectedSpeciesController implements ApiExpectedSpeciesFeignClie
public Result delSpecies(String expectedSpeciesBizId) {
return apiExpectedSpeciesService.delSpecies(expectedSpeciesBizId);
}
/**
* 列表查询-来佣比率规格和规格明细信息
* @param request
* @return
*/
@Override
public Result<List<ApiExpectedSpeciesListResponse>> list(ApiExpectedSpeciesListRequest request) {
return apiExpectedSpeciesService.list(request);
}
}
......@@ -3,10 +3,14 @@ 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.ApiExpectedSpeciesListRequest;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesPageResponse;
import com.yd.product.service.model.ExpectedSpecies;
import java.util.List;
public interface ApiExpectedSpeciesService {
Result<IPage<ApiExpectedSpeciesPageResponse>> page(ApiExpectedSpeciesPageRequest request);
......@@ -14,5 +18,7 @@ public interface ApiExpectedSpeciesService {
Result delSpecies(String expectedSpeciesBizId);
Result<List<ApiExpectedSpeciesListResponse>> list(ApiExpectedSpeciesListRequest request);
Result<ExpectedSpecies> checkExpectedSpeciesIsExist(String expectedSpeciesBizId);
}
......@@ -13,7 +13,9 @@ 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.ApiExpectedSpeciesListRequest;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesPageResponse;
import com.yd.product.service.model.AnnouncementSpecies;
import com.yd.product.service.model.ExpectedSpecies;
......@@ -110,6 +112,17 @@ public class ApiExpectedSpeciesServiceImpl implements ApiExpectedSpeciesService
}
/**
* 列表查询-来佣比率规格和规格明细信息
* @param request
* @return
*/
@Override
public Result<List<ApiExpectedSpeciesListResponse>> list(ApiExpectedSpeciesListRequest request) {
List<ApiExpectedSpeciesListResponse> listResponses = iExpectedSpeciesService.list(request);
return Result.success(listResponses);
}
/**
* 校验来佣比率规格信息是否存在
* @param expectedSpeciesBizId
* @return
......
......@@ -3,7 +3,9 @@ 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.ApiExpectedSpeciesListRequest;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -11,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
* 产品服务-来佣比率规格信息Feign客户端
......@@ -41,4 +44,12 @@ public interface ApiExpectedSpeciesFeignClient {
*/
@DeleteMapping("/del/species")
Result delSpecies(@NotBlank(message = "来佣比率规格表唯一业务ID不能为空") @RequestParam(value = "expectedSpeciesBizId") String expectedSpeciesBizId);
/**
* 列表查询-来佣比率规格和规格明细信息
* @param request
* @return
*/
@PostMapping("/list")
Result<List<ApiExpectedSpeciesListResponse>> list(@RequestBody ApiExpectedSpeciesListRequest request);
}
......@@ -29,4 +29,6 @@ public interface ApiRelProjectProductLaunchFeignClient {
*/
@PostMapping("/parameter/page")
Result parameterPage(@RequestBody ApiProductLaunchParameterPageRequest request);
}
......@@ -3,11 +3,15 @@ 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.ApiExpectedSpeciesListRequest;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 产品服务-来佣比率规格信息Feign降级处理
*/
......@@ -31,6 +35,11 @@ public class ApiExpectedSpeciesFeignFallbackFactory implements FallbackFactory<A
public Result delSpecies(String expectedSpeciesBizId) {
return null;
}
@Override
public Result<List<ApiExpectedSpeciesListResponse>> list(ApiExpectedSpeciesListRequest request) {
return null;
}
};
}
}
package com.yd.product.feign.request.expectedspecies;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiExpectedSpeciesListRequest {
/**
* 产品上架信息表唯一业务ID
*/
@NotBlank(message = "产品上架信息表唯一业务ID不能为空")
private String productLaunchBizId;
}
package com.yd.product.feign.response.expectedspecies;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class ApiExpectedSpeciesListResponse {
/**
* 来佣比率规格表唯一业务ID
*/
private String expectedSpeciesBizId;
/**
* 产品上架信息表唯一业务ID
*/
private String productLaunchBizId;
/**
* 产品唯一业务ID
*/
private String productBizId;
/**
* 规格条件列表JSON串
*/
private String speciesJson;
/**
* 保障计划(0-64岁等)(固定规格条件)
*/
private String protectionPlan;
/**
* 供款年期(5、10、20年期等)(固定规格条件)
*/
private String paymentTerm;
/**
* 来佣比率规格明细表唯一业务ID
*/
private String expectedCommissionRatioBizId;
/**
* 费用名称(转介费等)
*/
private String expenseName;
/**
* 佣金年限(起)
*/
private String startPeriod;
/**
* 佣金年限(止)
*/
private String endPeriod;
/**
* 佣金期数
*/
private String issueNumber;
/**
* 标保折算比例(基本保费)
*/
private BigDecimal discountRatio;
/**
* 计算基数(保费/保费*折算比例)
*/
private BigDecimal cardinalNumber;
/**
* 佣金率
*/
private BigDecimal commissionRate;
/**
* 有效开始时间
*/
private LocalDateTime effectiveStart;
/**
* 有效结束时间
*/
private LocalDateTime effectiveEnd;
/**
* 是否受汇率影响 0-否 1-是,字典)
*/
private String isExchangeRate;
/**
* 结算币种(字典)
*/
private String currency;
/**
* 是否直签 (0-否 1-是,字典)
*/
private String isDirectSign;
/**
* 对账公司id(部门id)
*/
private String reconciliationCompany;
/**
* 对账公司名称(部门名称)
*/
private String reconciliationCompanyName;
/**
* 销售组织id(部门id)
*/
private String salesOrg;
/**
* 销售组织名称(部门名称)
*/
private String salesOrgName;
}
......@@ -3,11 +3,15 @@ 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.ApiExpectedSpeciesListRequest;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesPageResponse;
import com.yd.product.service.model.ExpectedSpecies;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 来佣比率规格表 Mapper 接口
......@@ -20,4 +24,6 @@ public interface ExpectedSpeciesMapper extends BaseMapper<ExpectedSpecies> {
IPage<ApiExpectedSpeciesPageResponse> page(@Param("page") Page<ApiExpectedSpeciesPageResponse> page,
@Param("request") ApiExpectedSpeciesPageRequest request);
List<ApiExpectedSpeciesListResponse> list(@Param("request") ApiExpectedSpeciesListRequest request);
}
......@@ -3,7 +3,9 @@ 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.ApiExpectedSpeciesListRequest;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesPageResponse;
import com.yd.product.service.model.ExpectedSpecies;
......@@ -27,4 +29,6 @@ public interface IExpectedSpeciesService extends IService<ExpectedSpecies> {
List<ExpectedSpecies> queryList(String productLaunchBizId);
Boolean del(String productLaunchBizId);
List<ApiExpectedSpeciesListResponse> list(ApiExpectedSpeciesListRequest request);
}
......@@ -4,7 +4,9 @@ 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.ApiExpectedSpeciesListRequest;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesPageResponse;
import com.yd.product.service.dao.ExpectedSpeciesMapper;
import com.yd.product.service.model.ExpectedSpecies;
......@@ -49,4 +51,9 @@ public class ExpectedSpeciesServiceImpl extends ServiceImpl<ExpectedSpeciesMappe
return this.remove(new LambdaQueryWrapper<ExpectedSpecies>()
.eq(ExpectedSpecies::getProductLaunchBizId,productLaunchBizId));
}
@Override
public List<ApiExpectedSpeciesListResponse> list(ApiExpectedSpeciesListRequest request) {
return baseMapper.list(request);
}
}
......@@ -47,4 +47,58 @@
</where>
order by e.id asc
</select>
<select id="list" resultType="com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse">
SELECT
es.expected_species_biz_id AS expectedSpeciesBizId,
es.product_launch_biz_id AS productLaunchBizId,
es.product_biz_id AS productBizId,
es.species_json AS speciesJson,
es.protection_plan AS protectionPlan,
es.payment_term AS paymentTerm,
ecr.expected_commission_ratio_biz_id AS expectedCommissionRatioBizId,
ecr.expense_name AS expenseName,
ecr.start_period AS startPeriod,
ecr.end_period AS endPeriod,
numbers.n AS issueNumber,
ecr.discount_ratio AS discountRatio,
ecr.cardinal_number AS cardinalNumber,
ecr.commission_rate AS commissionRate,
ecr.effective_start AS effectiveStart,
ecr.effective_end AS effectiveEnd,
ecr.is_exchange_rate AS isExchangeRate,
ecr.currency AS currency,
ecr.is_direct_sign AS isDirectSign,
ecr.reconciliation_company AS reconciliationCompany,
ecr.reconciliation_company_name AS reconciliationCompanyName,
ecr.sales_org AS salesOrg,
ecr.sales_org_name AS salesOrgName
FROM
expected_species es
INNER JOIN
expected_commission_ratio ecr ON es.expected_species_biz_id = ecr.expected_species_biz_id
AND ecr.is_deleted = 0
CROSS JOIN (
WITH RECURSIVE numbers(n) AS (
SELECT 1
UNION ALL
SELECT n + 1 FROM numbers WHERE n &lt; (
SELECT MAX(CAST(end_period AS UNSIGNED))
FROM expected_commission_ratio
WHERE expected_species_biz_id IN (
SELECT expected_species_biz_id
FROM expected_species
WHERE product_launch_biz_id = #{request.productLaunchBizId}
)
)
)
SELECT n FROM numbers
) numbers
WHERE
es.product_launch_biz_id = #{request.productLaunchBizId}
AND es.is_deleted = 0
AND numbers.n BETWEEN CAST(ecr.start_period AS UNSIGNED) AND CAST(ecr.end_period AS UNSIGNED)
ORDER BY
numbers.n asc
</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