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<CapitalInfoMapper, CapitalInfo> 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<CapitalInfoVo> 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<CapitalInfoAppVo> getCapitalList() {
|
List<CapitalInfoAppVo> result = new ArrayList<>();
|
CustomerUser customerUser = customerCapitalResultService.checkUser(request);
|
Customer customer = customerMapper.getLatestCustomerRecord(customerUser.getPhone());
|
List<CustomerCapitalResult> 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<Long> idList = capitalResultList.stream().map(CustomerCapitalResult::getCapitalInfoId).collect(Collectors.toList());
|
List<CapitalInfo> 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<String> 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<CapitalInfo> capitalInfos = capitalInfoMapper.selectList(new LambdaQueryWrapper<CapitalInfo>()
|
.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<OrderExamineShowVo> version3orderExamineShow(Customer customer, CustomerUser customerUser) {
|
List<OrderExamineShowVo> result = new ArrayList<>();
|
List<CustomerCapitalResult> 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<Long> idList = capitalResultList.stream().map(CustomerCapitalResult::getCapitalInfoId).collect(Collectors.toList());
|
List<CapitalInfo> 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<OrderExamineShowVo> 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<OrderExamineShowVo> noAutoPushList = orderExamineShowVos.stream().filter(item -> Objects.equals(item.getAutoPush(), CapitalAutoPushEnum.NOT_ENABLED.getCode())).collect(Collectors.toList());
|
List<OrderExamineShowVo> flag = orderExamineShowVos.stream().filter(item -> Objects.equals(item.getAutoPush(), CapitalAutoPushEnum.ENABLE.getCode())).collect(Collectors.toList());
|
List<OrderExamineShowVo> yesAutoPushList = new ArrayList<>(1);
|
if (!CollectionUtils.isEmpty(flag)) {
|
yesAutoPushList.add(flag.get(0));
|
}
|
OrderExamineShowResultVo resultVo = new OrderExamineShowResultVo();
|
resultVo.setNoAutoPushList(noAutoPushList);
|
resultVo.setYesAutoPushList(yesAutoPushList);
|
//贷超查询
|
//List<LoanSupermarket> 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<LoanSupermarketVo> loanSupermarkets = loanSupermarketMapper.getSupermarketListOfChannel(channelInfo.getId());
|
resultVo.setLoanSupermarkets(loanSupermarkets);
|
return resultVo;
|
}
|
return null;
|
}
|
|
@Override
|
public List<CapitalHomePageShowVo> capitalHomePageShow(UserDetail userDetail) {
|
CustomerUser customerUser = customerUserMapper.selectOne(new LambdaQueryWrapper<CustomerUser>().eq(CustomerUser::getPhone, userDetail.getPhone()));
|
Customer customer = customerMapper.getLatestCustomerRecord(customerUser.getPhone());
|
if (customer == null) {
|
return new ArrayList<>();
|
}
|
List<CustomerCapitalResult> list = customerCapitalResultService.list(new LambdaQueryWrapper<CustomerCapitalResult>()
|
.eq(CustomerCapitalResult::getCustomerUserId, customerUser.getId())
|
.eq(CustomerCapitalResult::getCustomerRecordId, customer.getId())
|
.eq(CustomerCapitalResult::getCheckResult, 1));
|
if (list == null || list.isEmpty()) {
|
return new ArrayList<>();
|
}
|
List<String> codes = list.stream().map(CustomerCapitalResult::getCapitalInfoCode).collect(Collectors.toList());
|
List<CapitalHomePageShowDbVo> capitalHomePageShowDbVos = capitalInfoMapper.capitalHomePageShow(codes);
|
if (capitalHomePageShowDbVos == null || capitalHomePageShowDbVos.isEmpty()) {
|
return new ArrayList<>();
|
}
|
CustomerIpInfo customerIpInfo = aliyunUtil.getCustomerIpInfo(request, customer.getPhone());
|
ArrayList<CapitalHomePageShowVo> 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<City>().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<IsNotificationVo> capitalNotificationShow(UserDetail userDetail) {
|
//根据app登录用户的手机号,获取用户信息
|
CustomerUser customerUser = customerUserMapper.selectOne(new LambdaQueryWrapper<CustomerUser>().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<CustomerCapitalResult> list = customerCapitalResultMapper.selectList(new LambdaQueryWrapper<CustomerCapitalResult>()
|
.eq(CustomerCapitalResult::getCustomerUserId, customerUser.getId())
|
.eq(CustomerCapitalResult::getCustomerRecordId, customer.getId())
|
.eq(CustomerCapitalResult::getCheckResult, 1));
|
if (CollectionUtils.isEmpty(list)) return null;
|
//将资方审批列表的数据,以资方代码分组收集
|
Map<String, List<CustomerCapitalResult>> capitalResultCollections = list.stream().collect(Collectors.groupingBy(CustomerCapitalResult::getCapitalInfoCode));
|
//获取开启了线上贷款和联登的资方列表
|
List<CapitalInfo> capitalInfos = capitalInfoMapper.selectList(new LambdaQueryWrapper<CapitalInfo>()
|
.eq(CapitalInfo::getFundType, CapitalFundTypeEnum.ONLINE.getCode()).eq(CapitalInfo::getIsCollion, 1)
|
.orderByAsc(CapitalInfo::getSeq));
|
if (CollectionUtils.isEmpty(capitalInfos)) return null;
|
//将资方列表以资方代码分组收集
|
Map<String, List<CapitalInfo>> collect = capitalInfos.stream().collect(Collectors.groupingBy(CapitalInfo::getCode));
|
List<CapitalInfo> 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<CapitalInfo> collectResult = capitalInfos1ist.stream().sorted(Comparator.comparing(CapitalInfo::getSeq)).collect(Collectors.toList());
|
|
IsNotificationVo isNotificationVo = new IsNotificationVo();
|
List<IsNotificationVo> 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<CapitalInfo> 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<Object> 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<LoanSupermarket> 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<LoanSupermarketVo> loanSupermarkets = loanSupermarketMapper.findOrdinaryApplyData(channelInfo.getId());
|
if (!loanSupermarkets.isEmpty()) {
|
third = loanSupermarkets.get(0);
|
// if (first != null)
|
// third.setCompany(channelInfo.getCo);
|
}
|
|
List<Object> 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<CapitalInfo> 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<Province> wrapper = new LambdaQueryWrapper<>();
|
// wrapper.eq(Province::getName, liveProvince);
|
// Province pro = provinceMapper.selectOne(wrapper);
|
// if (BeanUtil.isNotEmpty(pro)) {
|
// String proId = pro.getProvinceId();
|
//
|
// List<CapitalInfo> 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<CapitalInfo> 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<Object> findVmOrdinaryApplyData(UserDetail userDetail) {
|
//查询该用户申请的贷款
|
Customer customer = customerMapper.getLatestCustomerRecord(userDetail.getPhone());
|
List<Object> result = new ArrayList<>();
|
// 新增 第0优先级 2023-12-18,银行直贷
|
// 若居住城市不为空
|
// 注:这个也需要撞库
|
/*List<CapitalInfo> 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<Province> wrapper = new LambdaQueryWrapper<>();
|
// wrapper.eq(Province::getName, liveProvince);
|
// Province pro = provinceMapper.selectOne(wrapper);
|
// if (BeanUtil.isNotEmpty(pro)) {
|
// String proId = pro.getProvinceId();
|
//
|
// List<CapitalInfo> 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<LoanSupermarket> 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<LoanSupermarketVo> 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<PlatformCapital> 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<PlatformCapital> 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<PlatformCapital> wr = new LambdaQueryWrapper<>();
|
wr.eq(PlatformCapital::getCustomerId, customer.getId());
|
wr.last(" limit 3 "); // 限制3条记录
|
|
List<PlatformCapital> list = platformCapitalService.list(wr);
|
return list;
|
}
|
|
@Override
|
public List<Object> 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<LoanSupermarket> 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<LoanSupermarketVo> loanSupermarkets = loanSupermarketMapper.findOrdinaryApplyData(channelInfo.getId());
|
if (!loanSupermarkets.isEmpty()) {
|
third = loanSupermarkets.get(0);
|
}
|
|
List<Object> result = new ArrayList<>();
|
result.add(first);
|
result.add(second);
|
result.add(third);
|
return result;
|
}
|
|
private PlatformCapital changeCapitalInfo(Customer customer, CapitalInfo capitalInfo) {
|
LambdaQueryWrapper<PlatformCapital> 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);
|
}
|
}
|
}
|