多个区域(省、市、区)匹配少个区域(省、市、区)问题解决方案
前情提要
- 产品有两个分类,主产品与资金方产品(产品表:loan_base_product),先配置产品的信息(产品分类,涉及区域等)
- 每个产品都可以选择一个或多个涉及区域(省市区)(产品区域表:loan_base_product_region)
- 资金方产品表,每个资金方可以设置拥有多个资金方产品(副产品客户表:funding_product)
需求:一个流程项目中(项目主表:loan_item_apply)需要根据主产品筛选出适合的资金方,先选择主产品A,然后根据A产品配置的区域,可以查询出匹配区域的资金方产品,哪个资金方配置了资金方产品B,就可以供流程项目选择
筛选规则:资金方产品的涉及区域包含主产品的涉及区域,比如主产品的涉及区域为:广东省广州市、湖南省长沙市芙蓉区,有四个资金方,资金方一的资金方产品一的涉及区域为:广东省广州市、广东省深圳市、湖南省长沙市;资金方二的资金方产品二的涉及区域为:广东省广州市、广东省深圳市福田区、湖南省郴州市;资金方三的资金方产品三的涉及区域为:广东省、湖南省长沙市;资金方四的资金方产品四涉及区域为:广东省广州市、广东省深圳市龙华区、福建省厦门市;则应该筛选出资金方一的资金方产品一、资金方三的资金方产品三
项目表:loan_item_apply
项目id:item_apply_id(主键)
产品id:product_id
资金方产品表:funding_product
主键id:ccc_id
资金方id:funding_id
产品id:product_id
产品表:loan_base_product
产品id:product_id(主键)
产品分类:product_class
产品区域表:loan_base_product_region
主键:bbbId
产品id:prouctId
省:province
市:city
区:area
解决思路1
- 先获取资金方产品表中的所有信息(即资金方配置的资金方产品)(funding_product表中的所有数据:fundingProductList),获取项目选中的主产品的所有涉及区域(loan_base_product_region,根据主产品id获取的所有数据:regionList)
- 循环遍历fundingProductList,根据产品id获取资金方涉及的区域(loan_base_product_region,根据fundingProductList每一个元素的productId获取的所有数据:fundingRegionList)
- 定义一个匹配表示数count,循环遍历资金方产品区域List(fundingRegionList),在循环里面遍历主产品区域List(regionList),比较省、市、区,如果匹配上则count++,资金方产品的区域如果包含了主产品的区域,那么count的长度就是regionList.size()
- 然后去做相关操作即可
系统代码
/**
* 资金方产品区域匹配
* @param fundingProductList 资金方产品列表
* @param regionList 主产品区域列表
* @return
*/
public List<Long> fundMatching(List<FundingProduct> fundingProductList, List<LoanBaseProductRegion> regionList) {
List<Long> productIdList = new ArrayList<>();
if (null != fundingProductList){

最低0.47元/天 解锁文章
4581

被折叠的 条评论
为什么被折叠?



