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.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("获取借贷链接失败"); } }