package com.nova.sankuai.service.impl;
|
|
import cn.hutool.core.util.IdUtil;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.nova.sankuai.domain.api.yixin.YXUtil;
|
import com.nova.sankuai.domain.api.yixin.response.YxLoanResponse;
|
import com.nova.sankuai.domain.dto.LvDiLoanUrlDto;
|
import com.nova.sankuai.domain.entity.Customer;
|
import com.nova.sankuai.domain.entity.CustomerCapitalResult;
|
import com.nova.sankuai.domain.vo.LvDiLoanUrlVo;
|
import com.nova.sankuai.infra.config.CommonException;
|
import com.nova.sankuai.infra.mapper.CustomerCapitalResultMapper;
|
import com.nova.sankuai.infra.mapper.CustomerMapper;
|
import com.nova.sankuai.security.UserDetail;
|
import com.nova.sankuai.service.IAppLoanService;
|
import lombok.AllArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* @Description App借贷ServiceImpl
|
* @Author CWR
|
* @Date 2022/3/9 22:36
|
*/
|
@Service
|
@AllArgsConstructor
|
@Slf4j
|
public class AppLoanServiceImpl implements IAppLoanService {
|
|
private final YXUtil yxUtil;
|
|
private final CustomerMapper customerMapper;
|
|
private final CustomerCapitalResultMapper customerCapitalResultMapper;
|
|
/**
|
* 获取借贷链接
|
*
|
* @param loanUrlDto 绿地获取借款链接Dto
|
* @return
|
*/
|
@Override
|
public LvDiLoanUrlVo getLoanUrl(LvDiLoanUrlDto loanUrlDto, UserDetail user) {
|
String logNumber = IdUtil.randomUUID();
|
log.info("日志编号:" + logNumber + "获取借贷链接开始,原始参数:" + loanUrlDto.toString());
|
if (user == null) {
|
throw new CommonException("用户不存在");
|
}
|
Customer customer = customerMapper.getLatestCustomerRecord(user.getPhone());
|
if (customer == null) {
|
throw new CommonException("用户申请记录不存在");
|
}
|
CustomerCapitalResult capitalResult = customerCapitalResultMapper.selectOne(Wrappers.<CustomerCapitalResult>lambdaQuery()
|
.eq(CustomerCapitalResult::getCustomerUserId, user.getId())
|
.eq(CustomerCapitalResult::getCustomerRecordId, customer.getId())
|
.eq(CustomerCapitalResult::getCapitalInfoCode, loanUrlDto.getCapitalCode()));
|
if (capitalResult == null) {
|
throw new CommonException("用户资方对接记录结果不存在");
|
}
|
YxLoanResponse response = yxUtil.yxGetLoanUrl(capitalResult.getCustomerUserId().toString(), capitalResult.getCreditNo(), loanUrlDto.getPlatform(), yxUtil.getFunding(loanUrlDto.getCapitalCode()), log, logNumber);
|
if (response != null) {
|
if (response.isSuccess()) {
|
LvDiLoanUrlVo lvDiLoanUrlVo = new LvDiLoanUrlVo();
|
lvDiLoanUrlVo.setReturnUrl(response.getReturnUrl());
|
lvDiLoanUrlVo.setUrlType(response.getUrlType());
|
return lvDiLoanUrlVo;
|
}
|
}
|
throw new CommonException("获取借贷链接失败");
|
}
|
}
|