package com.nova.sankuai.service.impl; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nova.sankuai.domain.api.aliyunIP.AliyunUtil; import com.nova.sankuai.domain.api.aliyunIP.CustomerIpInfo; import com.nova.sankuai.domain.api.hengyidai.response.HyGetOrderStatusResponse; import com.nova.sankuai.domain.api.zhongzan.RbResponse; import com.nova.sankuai.domain.dto.CapitalInfoDto; import com.nova.sankuai.domain.dto.CapitalInfoPageDto; import com.nova.sankuai.domain.entity.*; import com.nova.sankuai.domain.enums.CapitalShowPageTypeEnum; import com.nova.sankuai.domain.enums.CustomerInfoStatusEnum; import com.nova.sankuai.domain.enums.capitalInfo.*; import com.nova.sankuai.domain.vo.*; import com.nova.sankuai.domain.vo.capitalresult.CapitalInfoAppVo; import com.nova.sankuai.domain.vo.capitalresult.CapitalInfoVo; import com.nova.sankuai.domain.vo.capitalresult.OrderExamineShowVo; import com.nova.sankuai.infra.config.CommonException; import com.nova.sankuai.infra.mapper.*; import com.nova.sankuai.infra.utils.PageUtil; import com.nova.sankuai.infra.utils.UserUtil; import com.nova.sankuai.infra.utils.qinghuayoupin.QingHuaYouPinUtil; import com.nova.sankuai.security.UserDetail; import com.nova.sankuai.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletRequest; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; /** * @author weikangdi 2022/4/29 */ @Service @AllArgsConstructor @Slf4j public class CapitalInfoServiceImpl extends ServiceImpl implements ICapitalInfoService { private final CapitalInfoMapper capitalInfoMapper; private final PageUtil pageUtil; private final ICustomerCapitalResultService customerCapitalResultService; private final CustomerMapper customerMapper; private final CustomerCapitalResultMapper customerCapitalResultMapper; private final ICityService cityService; private final AliyunUtil aliyunUtil; private final CustomerUserMapper customerUserMapper; private final LoanSupermarketMapper loanSupermarketMapper; private final HttpServletRequest request; private final IChannelInfoService channelInfoService; // private final ProvinceMapper provinceMapper; private final IPlatformCapitalService platformCapitalService; private final QingHuaYouPinUtil qingHuaYouPinUtil; @Override public IPage pageModel(CapitalInfoPageDto pageDto) { Page page = pageUtil.getPage(pageDto); return capitalInfoMapper.pageModel(page, pageDto); } @Override @Transactional(rollbackFor = Exception.class) public void edit(CapitalInfoDto capitalInfoDto) { CapitalInfo capitalInfo = getById(capitalInfoDto.getId()); if (capitalInfo == null) { throw new CommonException("该资方信息不存在"); } capitalInfo.setEnableFlag(capitalInfoDto.getEnableFlag()); capitalInfo.setIconUrl(capitalInfoDto.getIconUrl()); capitalInfo.setLastUpdatedDate(new Date()); capitalInfo.setName(capitalInfoDto.getName()); capitalInfo.setIsShowPage(capitalInfoDto.getIsShowPage()); capitalInfo.setSeq(capitalInfoDto.getSeq()); capitalInfo.setFundType(capitalInfoDto.getFundType()); capitalInfo.setAutoPush(capitalInfoDto.getAutoPush()); capitalInfo.setPageDisplayType(capitalInfoDto.getPageDisplayType()); capitalInfo.setCityLimit(capitalInfoDto.getCityLimit()); capitalInfo.setAgeLowerLimit(capitalInfoDto.getAgeLowerLimit()); capitalInfo.setAgeUpperLimit(capitalInfoDto.getAgeUpperLimit()); capitalInfo.setMarriageLimit(capitalInfoDto.getMarriageLimit()); capitalInfo.setSesameLimit(capitalInfoDto.getSesameLimit()); capitalInfo.setSocialSecurityLimit(capitalInfoDto.getSocialSecurityLimit()); capitalInfo.setProvidentFundLimit(capitalInfoDto.getProvidentFundLimit()); capitalInfo.setHouseLimit(capitalInfoDto.getHouseLimit()); capitalInfo.setCarLimit(capitalInfoDto.getCarLimit()); capitalInfo.setPolicyLimit(capitalInfoDto.getPolicyLimit()); capitalInfo.setCreditCardLimit(capitalInfoDto.getCreditCardLimit()); capitalInfo.setAmountLowerLimit(capitalInfoDto.getAmountLowerLimit()); capitalInfo.setAmountUpperLimit(capitalInfoDto.getAmountUpperLimit()); capitalInfo.setMonthlyIncomeLimit(capitalInfoDto.getMonthlyIncomeLimit()); capitalInfo.setEducationLimit(capitalInfoDto.getEducationLimit()); capitalInfo.setIsCollion(capitalInfoDto.getIsCollion()); capitalInfo.setChannelConfig(capitalInfoDto.getChannelConfig()); capitalInfo.setChannelIds(capitalInfoDto.getChannelIds()); capitalInfo.setIsPopUp(capitalInfoDto.getIsPopUp()); capitalInfo.setAuditSwitch(capitalInfoDto.getAuditSwitch()); // 于2022-10-24新增:是否一直显示 capitalInfo.setAlwayShow(capitalInfoDto.getAlwayShow()); // 新增 完 // 于2024-1-29新增:公司名称 capitalInfo.setCompany(capitalInfoDto.getCompany()); // 新增 完 capitalInfo.setIsTopView(capitalInfoDto.getIsTopView()); capitalInfo.setCollionMode(capitalInfoDto.getCollionMode()); capitalInfo.setIosLink(capitalInfoDto.getIosLink()); capitalInfo.setAndroidLink(capitalInfoDto.getAndroidLink()); //ab新增于2024-10-16 参与 H5 匹配资金方 1是 0否 capitalInfo.setH5Match(capitalInfoDto.getH5Match()); capitalInfo.setExternalSwitch(capitalInfoDto.getExternalSwitch()); capitalInfo.setAcquisitionSwitch(capitalInfoDto.getAcquisitionSwitch()); updateById(capitalInfo); } /** * 获取资方列表 * @return */ @Override public List getCapitalList() { List result = new ArrayList<>(); CustomerUser customerUser = customerCapitalResultService.checkUser(request); Customer customer = customerMapper.getLatestCustomerRecord(customerUser.getPhone()); List capitalResultList = new ArrayList<>(); if (customer != null) { capitalResultList = customerCapitalResultService.lambdaQuery() .eq(CustomerCapitalResult::getCustomerUserId, customerUser.getId()) .eq(CustomerCapitalResult::getCustomerRecordId, customer.getId()).list(); } if (capitalResultList == null || capitalResultList.isEmpty()) { return result; } List idList = capitalResultList.stream().map(CustomerCapitalResult::getCapitalInfoId).collect(Collectors.toList()); List capitalInfoList = capitalInfoMapper.selectBatchIds(idList); if (capitalInfoList.isEmpty()) { return result; } // 于2022-10-24新增:是否一直显示 // 获取当前日期 String todayStr = LocalDate.now().atStartOfDay().atZone(ZoneId.systemDefault()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); // 修改 完 // 2022-11-28新增:是否要判断撞库是否通过,1为是,null或0为否 String isNotCollision = request.getParameter("isNotCollision"); for (CapitalInfo capitalInfo : capitalInfoList) { // 于2022-10-24新增:若不为空表示不一直显示,判断是否等于当天日期,若不等于当天日期,是不显示 if (capitalInfo.getAlwayShow() != null) { String alwayShowDateStr = capitalInfo.getAlwayShow(); // 获取到第二天的时间 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; String tomorowDateStr = null;// 第二天时间 try { date = simpleDateFormat.parse(alwayShowDateStr); Calendar calendar = new GregorianCalendar(); calendar.setTime(date); calendar.add(Calendar.DATE, 1);//1表示明天,-1表示昨天 date = calendar.getTime(); //这个时间就是明天 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); tomorowDateStr = formatter.format(date); } catch (Exception ex) { } // 逻辑 当天25号操作的时候,录入表的值是25号,然后26也可以显示,但是27号以后就不可以显示了 if (!todayStr.equals(capitalInfo.getAlwayShow())) {// 如果当前时间不等于数据表的,判断是否和第二天的时间相等 if (tomorowDateStr == null) { continue; } else { if (!tomorowDateStr.equals(todayStr)) {// 若第二天的时间和当前时间也不相等,跳过 continue; } } } } // 修改 完 CapitalInfoAppVo capitalInfoAppVo = new CapitalInfoAppVo(); capitalInfoAppVo.setId(capitalInfo.getId()); capitalInfoAppVo.setCode(capitalInfo.getCode()); capitalInfoAppVo.setName(capitalInfo.getName()); capitalInfoAppVo.setIconUrl(capitalInfo.getIconUrl()); capitalInfoAppVo.setQuota(customerUser.getFirstQuota()); capitalInfoAppVo.setFundType(capitalInfo.getFundType()); // 于2022-11-28新增:联登模式 capitalInfoAppVo.setCollionMode(capitalInfo.getCollionMode()); CustomerCapitalResult capitalResult = capitalResultList.stream() .filter(i -> capitalInfo.getId().equals(i.getCapitalInfoId())).findFirst().orElse(null); if (capitalResult != null) { // 2022-11-28修改:新增了 && !"1".equals(isNotCollision),是否需要判断撞库通过,1为是 if (CustomerCapitalResult.CHECK_FAIL.equals(capitalResult.getCheckResult()) && !"1".equals(isNotCollision)) { continue; } if (CapitalResultStatusEnum.CHECK.getCode().equals(capitalResult.getStatus())) { capitalInfoAppVo.setStatus(CapitalInfoStatusEnum.PREPARE_APPROVAL.getCode()); } else if (Objects.equals(CapitalFundTypeEnum.BANK.getCode(), capitalInfo.getFundType()) && CapitalResultStatusEnum.APPLY.getCode().equals(capitalResult.getStatus())) { capitalInfoAppVo.setStatus(CapitalInfoStatusEnum.FIRST_APPROVAL.getCode()); } else { List sceneFlagList = capitalInfo.parseUseSceneFlagList(); if (sceneFlagList != null && sceneFlagList.contains(CapitalInfoUserSceneEnum.WITHOUT_APPROVAL_RESULT.getCode())) { capitalInfoAppVo.setStatus(CapitalInfoStatusEnum.APPLY_PASS.getCode()); } else { if (CapitalApprovalResultEnum.APPROVAL_SUCCESS.getCode().equals(capitalResult.getApprovalResult())) { capitalInfoAppVo.setStatus(CapitalInfoStatusEnum.APPLY_PASS.getCode()); if (capitalResult.getTotalCredit() != null) { Double value = Double.valueOf(capitalResult.getTotalCredit()); capitalInfoAppVo.setQuota(value.intValue()); } if (CapitalInfoTypeCodeEnum.HENG_YI_DAI.getCode().equals(capitalInfo.getCode())) { if (HyGetOrderStatusResponse.STATUS_ORDER_CANCEL.equals(capitalResult.getThirdOrderStatus()) || HyGetOrderStatusResponse.STATUS_EMERGENCY_BACK.equals(capitalResult.getThirdOrderStatus()) ) { capitalInfoAppVo.setStatus(CapitalInfoStatusEnum.LOAN_FAIL.getCode()); } } } else { capitalInfoAppVo.setStatus(CapitalInfoStatusEnum.APPLY_WAIT.getCode()); } } } capitalInfoAppVo.setCapitalResultId(capitalResult.getId()); } else { continue; } result.add(capitalInfoAppVo); } return result; } @Override public Integer orderExamineNum() { List capitalInfos = capitalInfoMapper.selectList(new LambdaQueryWrapper() .eq(CapitalInfo::getIsShowPage, 1) .eq(CapitalInfo::getDeleteFlag, 0) .eq(CapitalInfo::getEnableFlag, 1) .orderByAsc(CapitalInfo::getSeq) ); if (capitalInfos == null || capitalInfos.isEmpty()) { return 0; } else { return capitalInfos.size(); } } private List version3orderExamineShow(Customer customer, CustomerUser customerUser) { List result = new ArrayList<>(); List capitalResultList = new ArrayList<>(); if (Objects.nonNull(customer)) { capitalResultList = customerCapitalResultService.lambdaQuery() .eq(CustomerCapitalResult::getCustomerUserId, customerUser.getId()) .eq(CustomerCapitalResult::getCustomerRecordId, customer.getId()) .list(); } if (CollectionUtils.isEmpty(capitalResultList)) return result; List idList = capitalResultList.stream().map(CustomerCapitalResult::getCapitalInfoId).collect(Collectors.toList()); List capitalInfoList = capitalInfoMapper.selectBatchIds(idList); if (CollectionUtils.isEmpty(capitalInfoList)) return result; //筛选启用的资方 capitalInfoList = capitalInfoList.stream().filter(e -> e.getEnableFlag().equals(1)).collect(Collectors.toList()); // 按照seq字段排序从小到大排序 capitalInfoList = capitalInfoList.stream().sorted(Comparator.comparing(CapitalInfo::getSeq)) .collect(Collectors.toList()); // 于2022-10-24新增:是否一直显示 // 获取当前日期 String todayStr = LocalDate.now().atStartOfDay().atZone(ZoneId.systemDefault()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); // 修改 完 for (CapitalInfo capitalInfo : capitalInfoList) { // 于2022-10-24新增:若不为空表示不一直显示,判断是否等于当天日期,若不等于当天日期,是不显示 if (capitalInfo.getAlwayShow() != null) { String alwayShowDateStr = capitalInfo.getAlwayShow(); // 获取到第二天的时间 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date; String tomorowDateStr = null;// 第二天时间 try { date = simpleDateFormat.parse(alwayShowDateStr); Calendar calendar = new GregorianCalendar(); calendar.setTime(date); calendar.add(Calendar.DATE, 1);//1表示明天,-1表示昨天 date = calendar.getTime(); //这个时间就是明天 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); tomorowDateStr = formatter.format(date); } catch (Exception ex) { log.error(ex.getMessage(), ex); } // 逻辑 当天25号操作的时候,录入表的值是25号,然后26也可以显示,但是27号以后就不可以显示了 if (!todayStr.equals(capitalInfo.getAlwayShow())) {// 如果当前时间不等于数据表的,判断是否和第二天的时间相等 if (tomorowDateStr == null) { continue; } else { if (!tomorowDateStr.equals(todayStr)) {// 若第二天的时间和当前时间也不相等,跳过 continue; } } } } // 修改 完 CustomerCapitalResult capitalResult = capitalResultList.stream() .filter(i -> capitalInfo.getId().equals(i.getCapitalInfoId())).findFirst().orElse(null); //撞库失败的跳过循环 if (Objects.isNull(capitalResult) || Objects.equals(CustomerCapitalResult.CHECK_FAIL, capitalResult.getCheckResult())) continue; // 2023-12-1新增流程:当显示主界面顶部为是时,IsTopView值1 // 1.1)资金类型=线上贷款 fundType 0 // 1.2)自动推送=启用 autoPush 0 // 1.3)联登模式=非半流;collionMode 0 // 1.4) 审批通过或审批中; OrderExamineShowVo vo = new OrderExamineShowVo(); if (Objects.equals(capitalInfo.getIsTopView(), CapitalTopViewEnum.ENABLE.getCode()) && Objects.equals(capitalInfo.getFundType(), CapitalFundTypeEnum.ONLINE.getCode()) && Objects.equals(capitalInfo.getAutoPush(), CapitalAutoPushEnum.ENABLE.getCode() ) && Objects.equals(capitalInfo.getCollionMode(), CapitalCollionModeParamEnum.NOT_ENABLED.getCode())) { vo = getOrderExamineShowVo(customerUser, capitalInfo, capitalResult); if (Objects.equals(capitalResult.getApprovalResult(), CapitalApprovalResultEnum.APPROVAL_SUCCESS.getCode())){ vo.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_SUCCESS.getCode()); }else if (Objects.equals(capitalResult.getApprovalResult(), CapitalApprovalResultEnum.APPROVAL_WAIT.getCode())){ vo.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_WAIT.getCode()); }else if (Objects.equals(capitalResult.getApprovalResult(), CapitalApprovalResultEnum.APPROVAL_REFUSE.getCode())){ vo.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REFUSE.getCode()); } } // 完 else { if (Objects.equals(capitalInfo.getAutoPush(), CapitalAutoPushEnum.NOT_ENABLED.getCode()) && Objects.equals(capitalInfo.getIsTopView(), CapitalTopViewEnum.ENABLE.getCode())) { //判断 自动推送:不启用 置顶:启用 vo = getOrderExamineShowVo(customerUser, capitalInfo, capitalResult); } else if (Objects.equals(capitalInfo.getAutoPush(), CapitalAutoPushEnum.ENABLE.getCode()) && Objects.equals(capitalInfo.getIsTopView(), CapitalTopViewEnum.ENABLE.getCode())) { //判断 自动推送:启用 置顶:启用 vo = getOrderExamineShowVo(customerUser, capitalInfo, capitalResult); if (Objects.equals(CapitalFundTypeEnum.ONLINE.getCode(), capitalInfo.getFundType())) { if (capitalResult.getApprovalResult() == null || Objects.equals(capitalResult.getApprovalResult(), CapitalApprovalResultEnum.APPROVAL_WAIT.getCode())) { vo.setApprovalResult(CapitalInfoStatusEnum.APPLY_WAIT.getCode()); } else if (Objects.equals(capitalResult.getApprovalResult(), CapitalApprovalResultEnum.APPROVAL_SUCCESS.getCode())) { vo.setApprovalResult(CapitalInfoStatusEnum.APPLY_PASS.getCode()); } else { vo.setApprovalResult(CapitalInfoStatusEnum.APPLY_REFUSE.getCode()); } } } } if (capitalResult.getCapitalInfoId() == 4L && vo.getApprovalResult() == null && capitalResult.getApprovalResult() != null){ RbResponse loanResult = qingHuaYouPinUtil.queryLoan(customerUser.getCreditNo()); if (loanResult.getCode().equals("200")){ JSONObject loanJsonObject = loanResult.getData(); //判断今天是否是借款日 LocalDate now = LocalDate.now(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String modifyTime = (String) loanJsonObject.get("modifyTime"); Date modifyDate = null; try { modifyDate = simpleDateFormat.parse(modifyTime); } catch (ParseException e) { log.error("日期转换异常{}",e); } if ("LOAN_PASS".equals(loanJsonObject.get("orderState"))){ RbResponse repayPlan = qingHuaYouPinUtil.queryRepayPlan(customerUser.getCreditNo());//查询还款计划 log.info("轻花资方查询今天是否是还款日修改状态"+customerUser.getCreditNo()); if (repayPlan.getCode().equals("200")) { JSONObject jsonObject = repayPlan.getData(); JSONArray repayPlanList = jsonObject.getJSONArray("repayPlanList"); repayPlanList.sort(Comparator.comparing(repayPlan2 -> { JSONObject plan = (JSONObject) repayPlan2; String dateStr = plan.getStr("planRepayDate"); LocalDate date = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd")); return date; })); //如果今天日期大于放款日,并且小于第一期的还款日,则显示待还款 if (now.isAfter(LocalDate.parse(simpleDateFormat.format(modifyDate))) && now.isBefore(LocalDate.parse(repayPlanList.getJSONObject(0).get("planRepayDate").toString()))){ vo.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REPAY.getCode()); vo.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_REPAY_FAIL);//待还款 result.add(vo); return result; } log.info("轻花资方查询今天是还款日,{}",repayPlanList); for (int i = 0; i < repayPlanList.size(); i++) { JSONObject jsonObject1 = repayPlanList.getJSONObject(i); String dateStr = (String) jsonObject1.get("planRepayDate"); try{ long time = simpleDateFormat.parse((dateStr)).getTime(); long doDayTime = simpleDateFormat.parse(now.toString()).getTime(); if (doDayTime > time && !"REPAID".equals(jsonObject1.get("custRepayState"))){//逾期 vo.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REPAY.getCode()); vo.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_REPAY_OVER); break; } }catch (ParseException e){ log.error("时间转换异常{}",e); } //今天是否还款日 if (now.toString().equals(jsonObject1.get("planRepayDate"))){ //已经还 vo.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REPAY.getCode()); if ("REPAID".equals(jsonObject1.get("custRepayState"))){ vo.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_REPAY_SUCCESS); }else{//去还款 vo.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_REPAY_FAIL); } break; }else { SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM"); Date planRepay = null; try { planRepay = simpleDateFormat1.parse(dateStr); } catch (ParseException e) { log.error("时间转换异常{}",e); } String monthString = simpleDateFormat1.format(planRepay); if (now.toString().contains(monthString)){//不是还款日,但是还款月,走到这里说明没有逾期。已还款 vo.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REPAY.getCode()); vo.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_REPAY_SUCCESS); break; } } } } }else { vo.setApprovalResult(capitalResult.getApprovalResult()); } } if (vo.getApprovalResult() == null){ vo.setApprovalResult(capitalResult.getApprovalResult()); } } result.add(vo); } return result; } @NotNull private static OrderExamineShowVo getOrderExamineShowVo(CustomerUser customerUser, CapitalInfo capitalInfo, CustomerCapitalResult capitalResult) { OrderExamineShowVo vo = new OrderExamineShowVo(); vo.setCustomerCapitalResultId(capitalResult.getId()); vo.setCapitalName(capitalInfo.getName()); vo.setTotalCredit(customerUser.getFirstQuota()); vo.setCapitalFundType(capitalInfo.getFundType()); vo.setCapitalCode(capitalInfo.getCode()); vo.setCapitalId(capitalInfo.getId().intValue()); vo.setAutoPush(capitalInfo.getAutoPush()); vo.setThirdOrderStatus(capitalResult.getThirdOrderStatus()); return vo; } @Override public OrderExamineShowResultVo orderExamineShow(UserDetail userDetail) { CustomerUser customerUser = customerCapitalResultService.checkUser(request); Customer customer = customerMapper.getLatestCustomerRecord(customerUser.getPhone()); List orderExamineShowVos; if (customer != null) { // 于2022-11-21新增:是否只是app3.0 String isVersion3 = request.getParameter("isVersion3"); if ("1".equals(isVersion3)) {// app3.0开启逻辑 orderExamineShowVos = version3orderExamineShow(customer, customerUser); } else { orderExamineShowVos = customerCapitalResultMapper.orderExamineShow(customerUser.getId(), customer.getId()); } // 完 List noAutoPushList = orderExamineShowVos.stream().filter(item -> Objects.equals(item.getAutoPush(), CapitalAutoPushEnum.NOT_ENABLED.getCode())).collect(Collectors.toList()); List flag = orderExamineShowVos.stream().filter(item -> Objects.equals(item.getAutoPush(), CapitalAutoPushEnum.ENABLE.getCode())).collect(Collectors.toList()); List yesAutoPushList = new ArrayList<>(1); if (!CollectionUtils.isEmpty(flag)) { yesAutoPushList.add(flag.get(0)); } OrderExamineShowResultVo resultVo = new OrderExamineShowResultVo(); resultVo.setNoAutoPushList(noAutoPushList); resultVo.setYesAutoPushList(yesAutoPushList); //贷超查询 //List loanSupermarkets = loanSupermarketMapper.selectList(Wrappers.lambdaQuery(LoanSupermarket.class).eq(LoanSupermarket::getDeleteFlag, 0).eq(LoanSupermarket::getIsTopView, 1).eq(LoanSupermarket::getEnableFlag, 1).orderByDesc(LoanSupermarket::getSerialNumber)); CustomerUser user = customerUserMapper.selectOne(Wrappers.lambdaQuery(CustomerUser.class).eq(CustomerUser::getPhone, userDetail.getPhone())); ChannelInfo channelInfo = channelInfoService.lambdaQuery().eq(ChannelInfo::getCode, user.getSourceChannel()).eq(ChannelInfo::getType, ChannelInfo.TYPE_IMPORT).one(); List loanSupermarkets = loanSupermarketMapper.getSupermarketListOfChannel(channelInfo.getId()); resultVo.setLoanSupermarkets(loanSupermarkets); return resultVo; } return null; } @Override public List capitalHomePageShow(UserDetail userDetail) { CustomerUser customerUser = customerUserMapper.selectOne(new LambdaQueryWrapper().eq(CustomerUser::getPhone, userDetail.getPhone())); Customer customer = customerMapper.getLatestCustomerRecord(customerUser.getPhone()); if (customer == null) { return new ArrayList<>(); } List list = customerCapitalResultService.list(new LambdaQueryWrapper() .eq(CustomerCapitalResult::getCustomerUserId, customerUser.getId()) .eq(CustomerCapitalResult::getCustomerRecordId, customer.getId()) .eq(CustomerCapitalResult::getCheckResult, 1)); if (list == null || list.isEmpty()) { return new ArrayList<>(); } List codes = list.stream().map(CustomerCapitalResult::getCapitalInfoCode).collect(Collectors.toList()); List capitalHomePageShowDbVos = capitalInfoMapper.capitalHomePageShow(codes); if (capitalHomePageShowDbVos == null || capitalHomePageShowDbVos.isEmpty()) { return new ArrayList<>(); } CustomerIpInfo customerIpInfo = aliyunUtil.getCustomerIpInfo(request, customer.getPhone()); ArrayList capitalHomePageShowVos = new ArrayList<>(); log.info("customerIpInfo:{}", customerIpInfo.toString()); log.info("getSysCityId:{}", customerIpInfo.getSysCityId()); if (StringUtils.isEmpty(customerIpInfo.getSysCityId())) { capitalHomePageShowDbVos.stream().map(item -> { CapitalHomePageShowVo capitalHomePageShowVo = new CapitalHomePageShowVo(); setCapitalHomePageShowVoInit(capitalHomePageShowVo); capitalHomePageShowVo.setId(item.getId()); capitalHomePageShowVo.setName(item.getName()); capitalHomePageShowVo.setFirstQuota(customerUser.getFirstQuota()); String pageDisplayType = item.getPageDisplayType(); String deliveryCity = item.getCityLimit(); if (StringUtils.isNotEmpty(deliveryCity)) { return item; } setCapitalHomePageShowVo(capitalHomePageShowVo, pageDisplayType); capitalHomePageShowVos.add(capitalHomePageShowVo); return item; }).collect(Collectors.toList()); } else { City city = cityService.getOne(new LambdaQueryWrapper().eq(City::getCityId, customerIpInfo.getSysCityId())); capitalHomePageShowDbVos.stream().map(item -> { CapitalHomePageShowVo capitalHomePageShowVo = new CapitalHomePageShowVo(); capitalHomePageShowVo.setId(item.getId()); capitalHomePageShowVo.setName(item.getName()); capitalHomePageShowVo.setFirstQuota(customerUser.getFirstQuota()); setCapitalHomePageShowVoInit(capitalHomePageShowVo); String pageDisplayType = item.getPageDisplayType(); String deliveryCity = item.getCityLimit(); log.info("deliveryCity:{}", deliveryCity); setCapitalHomePageShowVo(capitalHomePageShowVo, pageDisplayType); if (StringUtils.isNotEmpty(deliveryCity) && city != null && StringUtils.isNotEmpty(city.getCityId())) { if (!deliveryCity.contains(city.getCityId()) && !deliveryCity.contains(city.getProvinceId())) { capitalHomePageShowVo.setIsTimeLimit(0); capitalHomePageShowVo.setIsFeatured(0); capitalHomePageShowVo.setIsBankLine(0); } } capitalHomePageShowVos.add(capitalHomePageShowVo); return item; }).collect(Collectors.toList()); } return capitalHomePageShowVos; } @Override public List capitalNotificationShow(UserDetail userDetail) { //根据app登录用户的手机号,获取用户信息 CustomerUser customerUser = customerUserMapper.selectOne(new LambdaQueryWrapper().eq(CustomerUser::getPhone, userDetail.getPhone()).eq(CustomerUser::getDeleteFlag, 0)); //根据app登录用户的手机号获取申请贷款最新一条数据 Customer customer = customerMapper.getLatestCustomerRecord(customerUser.getPhone()); if (Objects.isNull(customer)) return null; if (Objects.equals(CustomerInfoStatusEnum.BASE_INFO.getCode(), customer.getStatus()) || Objects.isNull(customer.getStatus())) return null; //获取审批给登录用户和最新的申请贷款的审批列表 List list = customerCapitalResultMapper.selectList(new LambdaQueryWrapper() .eq(CustomerCapitalResult::getCustomerUserId, customerUser.getId()) .eq(CustomerCapitalResult::getCustomerRecordId, customer.getId()) .eq(CustomerCapitalResult::getCheckResult, 1)); if (CollectionUtils.isEmpty(list)) return null; //将资方审批列表的数据,以资方代码分组收集 Map> capitalResultCollections = list.stream().collect(Collectors.groupingBy(CustomerCapitalResult::getCapitalInfoCode)); //获取开启了线上贷款和联登的资方列表 List capitalInfos = capitalInfoMapper.selectList(new LambdaQueryWrapper() .eq(CapitalInfo::getFundType, CapitalFundTypeEnum.ONLINE.getCode()).eq(CapitalInfo::getIsCollion, 1) .orderByAsc(CapitalInfo::getSeq)); if (CollectionUtils.isEmpty(capitalInfos)) return null; //将资方列表以资方代码分组收集 Map> collect = capitalInfos.stream().collect(Collectors.groupingBy(CapitalInfo::getCode)); List capitalInfos1ist = new ArrayList<>(); list.forEach(item -> { if (Objects.nonNull(item.getCapitalInfoCode()) && Objects.nonNull(collect.get(item.getCapitalInfoCode())) && Objects.nonNull(collect.get(item.getCapitalInfoCode()).get(0))) { capitalInfos1ist.add(collect.get(item.getCapitalInfoCode()).get(0)); } }); if (CollectionUtils.isEmpty(capitalInfos1ist)) return null; //排序 List collectResult = capitalInfos1ist.stream().sorted(Comparator.comparing(CapitalInfo::getSeq)).collect(Collectors.toList()); IsNotificationVo isNotificationVo = new IsNotificationVo(); List isNotificationVos = new ArrayList<>(); isNotificationVo.setId(collectResult.get(0).getId()); isNotificationVo.setIsPopUp(collectResult.get(0).getIsPopUp()); // if (Objects.equals(collectResult.get(0).getIsTopView(), CapitalTopViewEnum.ENABLE.getCode()) && Objects.equals(collectResult.get(0).getCollionMode(), CapitalCollionModeParamEnum.ENABLE.getCode())) { // isNotificationVo.setCollionMode(1); // } else { // isNotificationVo.setCollionMode(0); // } isNotificationVo.setCollionMode(collectResult.get(0).getCollionMode()); if (capitalResultCollections != null && capitalResultCollections.get(collectResult.get(0).getCode()) != null && capitalResultCollections.get(collectResult.get(0).getCode()).get(0) != null) { isNotificationVo.setCapitalResultId((capitalResultCollections.get(collectResult.get(0).getCode()).get(0).getId().toString())); } isNotificationVos.add(isNotificationVo); List returnNotifications = collectResult.stream().filter(i -> i.getIsPopUp() == 1).collect(Collectors.toList()); if (returnNotifications.size() > 0) { if (!returnNotifications.get(0).getId().equals(isNotificationVo.getId())) { IsNotificationVo isNotification = new IsNotificationVo(); isNotification.setId(returnNotifications.get(0).getId()); isNotification.setIsPopUp(returnNotifications.get(0).getIsPopUp()); // if (Objects.equals(returnNotifications.get(0).getIsTopView(), CapitalTopViewEnum.ENABLE.getCode()) && Objects.equals(returnNotifications.get(0).getCollionMode(), CapitalCollionModeParamEnum.ENABLE.getCode())) { // isNotificationVo.setCollionMode(1); // } else { // isNotificationVo.setCollionMode(0); // } isNotificationVo.setCollionMode(returnNotifications.get(0).getCollionMode()); if (capitalResultCollections != null && capitalResultCollections.get(returnNotifications.get(0).getCode()) != null && capitalResultCollections.get(returnNotifications.get(0).getCode()).get(0) != null) { isNotification.setCapitalResultId(capitalResultCollections.get(returnNotifications.get(0).getCode()).get(0).getId().toString()); } isNotificationVos.add(isNotification); } else if (returnNotifications.get(0).getId().equals(isNotificationVo.getId()) && returnNotifications.size() > 1) { IsNotificationVo isNotification = new IsNotificationVo(); isNotification.setId(returnNotifications.get(1).getId()); isNotification.setIsPopUp(returnNotifications.get(1).getIsPopUp()); // if (Objects.equals(returnNotifications.get(1).getIsTopView(), CapitalTopViewEnum.ENABLE.getCode()) && Objects.equals(returnNotifications.get(1).getCollionMode(), CapitalCollionModeParamEnum.ENABLE.getCode())) { // isNotificationVo.setCollionMode(1); // } else { // isNotificationVo.setCollionMode(0); // } isNotificationVo.setCollionMode(returnNotifications.get(1).getCollionMode()); if (capitalResultCollections != null && capitalResultCollections.get(returnNotifications.get(1).getCode()) != null && capitalResultCollections.get(returnNotifications.get(1).getCode()).get(0) != null) { isNotification.setCapitalResultId(capitalResultCollections.get(returnNotifications.get(1).getCode()).get(0).getId().toString()); } isNotificationVos.add(isNotification); } } return isNotificationVos; } @Override public List findOrdinaryApplyData(UserDetail userDetail) { //查询该用户申请的贷款 Customer customer = customerMapper.getLatestCustomerRecord(userDetail.getPhone()); //拿到资方符合条件的资方信息 第一优先级 联登模式弹窗开关 0 非半流程 1 半流程 // 1.1)资金类型=线上贷款 //1.2)自动推送=启用 //1.3)联登模式=非半流; //1.4)审批通过; // 注:这个有撞库 CapitalInfo first = baseMapper.selectOrdinaryApplyData(customer.getId(), CapitalAutoPushEnum.ENABLE.getCode(), 0, 1); //拿到资方符合条件的资方信息 第二优先级 联登模式弹窗开关 0 非半流程 1 半流程 // 2.1)资金类型=线上贷款 // 2.2)自动推送=不启用 // 2.3)联登模式=半流程 // 注:这个有撞库 CapitalInfo second = baseMapper.selectOrdinaryApplyData(customer.getId(), CapitalAutoPushEnum.NOT_ENABLED.getCode(), 1, null); //拿到贷超符合条件的贷超产品 第三优先级 third //List supermarketList = loanSupermarketMapper.selectList(Wrappers.lambdaQuery(LoanSupermarket.class).eq(LoanSupermarket::getOrdinarySwitch, 1).eq(LoanSupermarket::getEnableFlag, 1).orderByDesc(LoanSupermarket::getSerialNumber)); LoanSupermarketVo third = null; CustomerUser user = customerUserMapper.selectOne(Wrappers.lambdaQuery(CustomerUser.class).eq(CustomerUser::getPhone, userDetail.getPhone())); ChannelInfo channelInfo = channelInfoService.lambdaQuery().eq(ChannelInfo::getCode, user.getSourceChannel()).eq(ChannelInfo::getType, ChannelInfo.TYPE_IMPORT).one(); // 获取到对应的贷款超市 List loanSupermarkets = loanSupermarketMapper.findOrdinaryApplyData(channelInfo.getId()); if (!loanSupermarkets.isEmpty()) { third = loanSupermarkets.get(0); // if (first != null) // third.setCompany(channelInfo.getCo); } List result = new ArrayList<>(); result.add(first); result.add(second); result.add(third); // 新增 第0优先级 2023-12-18,银行直贷 // 先从非虚拟库中获取,没有再从虚拟库获取 CapitalInfo zeroCapital = zero(customer, false); if (zeroCapital == null) { zeroCapital = zero(customer, true); if (zeroCapital != null) { result.add(zeroCapital); } } else { result.add(zeroCapital); } // List fours = baseMapper.zeroPriorityVm(customer.getId()); // if (fours != null && fours.size() > 0 && StringUtils.isNotBlank(customer.getCity())) { // for (CapitalInfo capitalInfo : fours) { // if (StringUtils.isNotBlank(capitalInfo.getCityLimit())) { // String cityId = customer.getCity(); // City city = cityService.lambdaQuery().eq(City::getCityId, cityId).one(); // String deliveryCity = capitalInfo.getCityLimit(); // String provinceId = city.getProvinceId(); // if (!deliveryCity.contains(cityId) && !deliveryCity.equals(provinceId) // && !deliveryCity.contains("," + provinceId + ",") // && !deliveryCity.endsWith("," + provinceId) // && !deliveryCity.contains(provinceId + ",")) { // continue; // } // result.add(capitalInfo); // break; // } // } // } // // 新增 第0优先级 2023-12-18,银行直贷 // // 若居住省份不为空 // // 注:这个也需要撞库 // String liveProvince = customer.getLiveProvince(); // if (StringUtils.isNotBlank(liveProvince)) { // // // 获取省份ID // LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); // wrapper.eq(Province::getName, liveProvince); // Province pro = provinceMapper.selectOne(wrapper); // if (BeanUtil.isNotEmpty(pro)) { // String proId = pro.getProvinceId(); // // List fours = baseMapper.zeroPriority(customer.getId()); // if (fours != null && fours.size() > 0 && StringUtils.isNotBlank(proId)) { // for (CapitalInfo info : fours) { // String cityLimit = info.getCityLimit(); // if (StringUtils.isNotBlank(cityLimit)) { // if (cityLimit.contains(proId)) {// 若包含 // result.add(info); // break; // } // } // } // } // } // } // 第0优先级 完 return result; } /** * 第0优先级 2023-12-18,银行直贷 * @param isZeroVm 是否从虚拟撞库中获取 * @return */ private CapitalInfo zero(Customer customer, boolean isZeroVm) { CapitalInfo capital = null; // 若居住城市不为空 // 注:这个也需要撞库 List fours = isZeroVm ? baseMapper.zeroPriorityVm(customer.getId()) : baseMapper.zeroPriority(customer.getId()); if (fours != null && fours.size() > 0) { for (CapitalInfo capitalInfo : fours) { if (capitalInfo.getId().intValue() == 36 || capitalInfo.getId().intValue() == 41 || capitalInfo.getId().intValue() == 22) {// 随易花或好汇推 // 查找该用户还有就是该capitalId下的有没有第三方平台推送过来的机构,有的话,替换机构logo,公司名称和产品名称 PlatformCapital pc = changeCapitalInfo(customer, capitalInfo); if (Objects.isNull(pc)) { capitalInfo = null; } capital = capitalInfo; break; } if (StringUtils.isNotBlank(capitalInfo.getCityLimit()) && StringUtils.isNotBlank(customer.getCity())) { String cityId = customer.getCity(); City city = cityService.lambdaQuery().eq(City::getCityId, cityId).one(); String deliveryCity = capitalInfo.getCityLimit(); String provinceId = city.getProvinceId(); if (!deliveryCity.contains(cityId) && !deliveryCity.equals(provinceId) && !deliveryCity.contains("," + provinceId + ",") && !deliveryCity.endsWith("," + provinceId) && !deliveryCity.contains(provinceId + ",")) { continue; } // 查找该用户还有就是该capitalId下的有没有第三方平台推送过来的机构,有的话,替换机构logo,公司名称和产品名称 // changeCapitalInfo(customer, capitalInfo); capital = capitalInfo; break; } } } return capital; } /** * 获取虚拟撞库资方列表 */ @Override public List findVmOrdinaryApplyData(UserDetail userDetail) { //查询该用户申请的贷款 Customer customer = customerMapper.getLatestCustomerRecord(userDetail.getPhone()); List result = new ArrayList<>(); // 新增 第0优先级 2023-12-18,银行直贷 // 若居住城市不为空 // 注:这个也需要撞库 /*List fours = baseMapper.zeroPriorityVm(customer.getId()); if (fours != null && fours.size() > 0) { for (CapitalInfo capitalInfo : fours) { if (StringUtils.isNotBlank(capitalInfo.getCityLimit())) { String cityId = customer.getCity(); City city = cityService.lambdaQuery().eq(City::getCityId, cityId).one(); String deliveryCity = capitalInfo.getCityLimit(); String provinceId = city.getProvinceId(); if (!deliveryCity.contains(cityId) && !deliveryCity.equals(provinceId) && !deliveryCity.contains("," + provinceId + ",") && !deliveryCity.endsWith("," + provinceId) && !deliveryCity.contains(provinceId + ",")) { continue; } // 查找该用户还有就是该capitalId下的有没有第三方平台推送过来的机构,有的话,替换机构logo,公司名称和产品名称 changeCapitalInfo(customer, capitalInfo); result.add(capitalInfo); break; } else { // 查找该用户还有就是该capitalId下的有没有第三方平台推送过来的机构,有的话,替换机构logo,公司名称和产品名称 changeCapitalInfo(customer, capitalInfo); result.add(capitalInfo); break; } } }*/ CapitalInfo zeroCapital = zero(customer, true); // String liveProvince = customer.getLiveProvince(); // if (StringUtils.isNotBlank(liveProvince)) { // // // 获取省份ID // LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); // wrapper.eq(Province::getName, liveProvince); // Province pro = provinceMapper.selectOne(wrapper); // if (BeanUtil.isNotEmpty(pro)) { // String proId = pro.getProvinceId(); // // List fours = baseMapper.zeroPriority(customer.getId()); // if (fours != null && fours.size() > 0 && StringUtils.isNotBlank(proId)) { // for (CapitalInfo info : fours) { // String cityLimit = info.getCityLimit(); // if (StringUtils.isNotBlank(cityLimit)) { // if (cityLimit.contains(proId)) {// 若包含 // result.add(info); // break; // } // } // } // } // } // } //拿到资方符合条件的资方信息 第一优先级 联登模式弹窗开关 0 非半流程 1 半流程 // 1.1)资金类型=线上贷款 //1.2)自动推送=启用 //1.3)联登模式=非半流; //1.4)审批通过; // 注:这个有撞库 if (zeroCapital != null) { result.add(zeroCapital); result.add(null); result.add(null); result.add(null); return result; } CapitalInfo first = baseMapper.selectOrdinaryApplyDataVm(customer.getId(), CapitalAutoPushEnum.ENABLE.getCode(), 0, 1); if (first != null) { result.add(null); result.add(first); result.add(null); result.add(null); return result; } //拿到资方符合条件的资方信息 第二优先级 联登模式弹窗开关 0 非半流程 1 半流程 // 2.1)资金类型=线上贷款 // 2.2)自动推送=不启用 // 2.3)联登模式=半流程 // 注:这个有撞库 CapitalInfo second = baseMapper.selectOrdinaryApplyDataVm(customer.getId(), CapitalAutoPushEnum.NOT_ENABLED.getCode(), 1, null); if (second != null) { result.add(null); result.add(null); result.add(second); result.add(null); return result; } //拿到贷超符合条件的贷超产品 第三优先级 third //List supermarketList = loanSupermarketMapper.selectList(Wrappers.lambdaQuery(LoanSupermarket.class).eq(LoanSupermarket::getOrdinarySwitch, 1).eq(LoanSupermarket::getEnableFlag, 1).orderByDesc(LoanSupermarket::getSerialNumber)); LoanSupermarketVo third = null; CustomerUser user = customerUserMapper.selectOne(Wrappers.lambdaQuery(CustomerUser.class).eq(CustomerUser::getPhone, userDetail.getPhone())); ChannelInfo channelInfo = channelInfoService.lambdaQuery().eq(ChannelInfo::getCode, user.getSourceChannel()).eq(ChannelInfo::getType, ChannelInfo.TYPE_IMPORT).one(); // 获取到对应的贷款超市 List loanSupermarkets = loanSupermarketMapper.findOrdinaryApplyData(channelInfo.getId()); if (!loanSupermarkets.isEmpty()) { third = loanSupermarkets.get(0); // if (first != null) // third.setCompany(channelInfo.getCo); } result.add(null); result.add(null); result.add(null); result.add(third); return result; } /** * 银行直贷推送是否成功 */ @Override public Boolean pushIsSucc(HttpServletRequest request, Long capitalId) { String token = request.getHeader("Authorization"); if (StringUtils.isBlank(token)) { throw new CommonException("用户Token为空!"); } UserDetail user = UserUtil.getUser(token); if (Objects.isNull(user)) { throw new CommonException("用户Token无效!"); } String phone = user.getPhone(); if (StringUtils.isBlank(phone)) { throw new CommonException("用户Token无效!"); } Customer customer = customerMapper.getLatestCustomerRecord(user.getPhone()); if (Objects.isNull(user)) { throw new CommonException("用户不存在!"); } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PlatformCapital::getCustomerId, customer.getId()); wrapper.eq(PlatformCapital::getCapitalId, capitalId); wrapper.last(" limit 1 "); PlatformCapital pc = platformCapitalService.getOne(wrapper); if (Objects.isNull(pc)) { return false; } return true; } @Override public List findPlatformCapital(UserDetail userDetail) { String phone = userDetail.getPhone(); if (StringUtils.isBlank(phone)) { throw new CommonException("用户Token无效!"); } Customer customer = customerMapper.getLatestCustomerRecord(phone); if (Objects.isNull(customer)) { throw new CommonException("用户不存在!"); } LambdaQueryWrapper wr = new LambdaQueryWrapper<>(); wr.eq(PlatformCapital::getCustomerId, customer.getId()); wr.last(" limit 3 "); // 限制3条记录 List list = platformCapitalService.list(wr); return list; } @Override public List findAppOrdinaryApplyData(UserDetail userDetail) { //查询该用户申请的贷款 Customer customer = customerMapper.getLatestCustomerRecord(userDetail.getPhone()); //拿到资方符合条件的资方信息 第一优先级 联登模式弹窗开关 0 非半流程 1 半流程 // 1.1)资金类型=线上贷款 //1.2)自动推送=启用 //1.3)联登模式=非半流; //1.4)审批通过; // 注:这个有撞库 CapitalInfo first = baseMapper.selectOrdinaryApplyData(customer.getId(), CapitalAutoPushEnum.ENABLE.getCode(), 0, 1); //拿到资方符合条件的资方信息 第二优先级 联登模式弹窗开关 0 非半流程 1 半流程 // 2.1)资金类型=线上贷款 // 2.2)自动推送=不启用 // 2.3)联登模式=半流程 // 注:这个有撞库 CapitalInfo second = baseMapper.selectOrdinaryApplyData(customer.getId(), CapitalAutoPushEnum.NOT_ENABLED.getCode(), 1, null); //拿到贷超符合条件的贷超产品 第三优先级 third //List supermarketList = loanSupermarketMapper.selectList(Wrappers.lambdaQuery(LoanSupermarket.class).eq(LoanSupermarket::getOrdinarySwitch, 1).eq(LoanSupermarket::getEnableFlag, 1).orderByDesc(LoanSupermarket::getSerialNumber)); LoanSupermarketVo third = null; CustomerUser user = customerUserMapper.selectOne(Wrappers.lambdaQuery(CustomerUser.class).eq(CustomerUser::getPhone, userDetail.getPhone())); ChannelInfo channelInfo = channelInfoService.lambdaQuery().eq(ChannelInfo::getCode, user.getSourceChannel()).eq(ChannelInfo::getType, ChannelInfo.TYPE_IMPORT).one(); // 获取到对应的贷款超市 List loanSupermarkets = loanSupermarketMapper.findOrdinaryApplyData(channelInfo.getId()); if (!loanSupermarkets.isEmpty()) { third = loanSupermarkets.get(0); } List result = new ArrayList<>(); result.add(first); result.add(second); result.add(third); return result; } private PlatformCapital changeCapitalInfo(Customer customer, CapitalInfo capitalInfo) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PlatformCapital::getCustomerId, customer.getId()); wrapper.eq(PlatformCapital::getCapitalId, capitalInfo.getId()); wrapper.last(" limit 1 "); PlatformCapital pc = platformCapitalService.getOne(wrapper); if (Objects.isNull(pc)) { return pc; } capitalInfo.setCompany(pc.getCompanyName()); capitalInfo.setName(pc.getProductName()); capitalInfo.setIconUrl(pc.getLogoUrl()); capitalInfo.setChannelIds(String.valueOf(pc.getId())); return pc; } public void setCapitalHomePageShowVoInit(CapitalHomePageShowVo capitalHomePageShowVo) { capitalHomePageShowVo.setIsTimeLimit(0); capitalHomePageShowVo.setIsFeatured(0); capitalHomePageShowVo.setIsBankLine(0); } public void setCapitalHomePageShowVo(CapitalHomePageShowVo capitalHomePageShowVo, String pageDisplayType) { if (StringUtils.isNotEmpty(pageDisplayType) && pageDisplayType.contains(CapitalShowPageTypeEnum.TIME_LIMIT.getCode())) { capitalHomePageShowVo.setIsTimeLimit(1); } if (StringUtils.isNotEmpty(pageDisplayType) && pageDisplayType.contains(CapitalShowPageTypeEnum.FEATURED.getCode())) { capitalHomePageShowVo.setIsFeatured(1); } if (StringUtils.isNotEmpty(pageDisplayType) && pageDisplayType.contains(CapitalShowPageTypeEnum.BANK_LINE.getCode())) { capitalHomePageShowVo.setIsBankLine(1); } } }