Commit 47a30aef authored by suntao's avatar suntao

放款操作 修改

parent 7acede24
......@@ -92,6 +92,21 @@ public class OrderController {
}
}
/**
* 放款
*
* @return
*/
@Security(authorityId = "Order.secondAudit")
@PostMapping("/secondAudit")
public Result<Boolean> secondAudit(@RequestBody @Valid LendingFormModel lendingFormModel) {
if (debugModel) {
return Result.buildSuccess(this.orderService.secondAudit(lendingFormModel));
} else {
return Result.buildSuccess(false,"无此操作");
}
}
/**
* 贷前关单
*
......
......@@ -162,6 +162,7 @@ public class OrderService {
}
orderVo.setMessage("");
} else {
orderVo.setStatus("未知,稍后查询");
orderVo.setMessage("订单查询错误");
}
} else {
......@@ -299,17 +300,15 @@ public class OrderService {
}
/**
* 放款
* 二次风控
*
* @param lendingFormModel
* @return
*/
@Transactional
public boolean lending(LendingFormModel lendingFormModel) {
public boolean secondAudit(LendingFormModel lendingFormModel) {
boolean result = false;
OrderApprove orderApprove = this.orderApproveRepository.findByChannelOrderNumber(lendingFormModel.getChannelOrderNumber());
boolean result;
ClfOrderMapping orderMapping = this.clfOrderMappingRepository.findByChannelOrderNoAndRegisteredFromLastOne(lendingFormModel.getChannelOrderNumber(), lendingFormModel.getChannelId());
......@@ -332,45 +331,81 @@ public class OrderService {
optHistoryLog.setCreateTime(new Date());
// 更新待放款时间(5分钟之前)
FundLending fundLending = xyqbCenterService.findFundLendingByLoanId(orderMapping.getLoanId());
if (fundLending != null) {
LocalDateTime localDateTime = LocalDateTime.now();
localDateTime.plusMinutes(-5L);
fundLending.setCreateTime(new Date(localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()));
xyqbCenterService.saveFundLending(fundLending);
}
// 二次风控回调
XUser xUser = xyqbUserService.findXUserById(orderMapping.getQgUserId());
if (xUser == null) {
log.info("[order_lending]二次风控失败,未找到user channelOrderNumber={}", lendingFormModel.getChannelOrderNumber());
optHistoryLog.setOptLogDetail("放款操作失败,二次风控失败,未找到user");
log.info("[secendAudit]二次风控失败,未找到user channelOrderNumber={}", lendingFormModel.getChannelOrderNumber());
optHistoryLog.setOptLogDetail("二次风控失败,未找到user");
optHistoryLog.setOptResult(false);
optHistoryLogService.save(optHistoryLog);
return false;
}
ChannelConf channelConf = channelConfRepository.getByChannelId(lendingFormModel.getChannelId());
if (channelConf == null) {
log.info("[order_lending]二次风控失败,未找到channelConf配置 channelOrderNumber={}", lendingFormModel.getChannelOrderNumber());
optHistoryLog.setOptLogDetail("放款操作失败,二次风控失败,未找到channelConf配置");
log.info("[secendAudit]二次风控失败,未找到channelConf配置 channelOrderNumber={}", lendingFormModel.getChannelOrderNumber());
optHistoryLog.setOptLogDetail("二次风控失败,未找到channelConf配置");
optHistoryLog.setOptResult(false);
optHistoryLogService.save(optHistoryLog);
return false;
}
Boolean auditNotify = clothoCenterService.orderAuditNotify(xUser.getUuid(), orderMapping.getLoanId(), true, channelConf.getBizType());
if (auditNotify) {
log.info("[order_lending]放款操作,二次风控成功,继续,channelOrderNumber={}, result={}", lendingFormModel.getChannelOrderNumber(), result);
log.info("[secendAudit]二次风控发起,channelOrderNumber={}, bizType={}", lendingFormModel.getChannelOrderNumber(), channelConf.getBizType());
result = clothoCenterService.orderAuditNotify(xUser.getUuid(), orderMapping.getLoanId(), true, channelConf.getBizType());
if (result) {
log.info("[secendAudit]二次风控成功,channelOrderNumber={}, result={}", lendingFormModel.getChannelOrderNumber(), result);
} else {
log.info("[order_lending]二次风控失败,二次风控失败,clotho返回失败 channelOrderNumber={}", lendingFormModel.getChannelOrderNumber());
optHistoryLog.setOptLogDetail("放款操作失败,二次风控失败,clotho返回失败");
log.info("[secendAudit]二次风控失败,clotho返回失败 channelOrderNumber={}", lendingFormModel.getChannelOrderNumber());
optHistoryLog.setOptLogDetail("二次风控失败,clotho返回失败");
optHistoryLog.setOptResult(false);
optHistoryLogService.save(optHistoryLog);
return false;
}
// 更新待放款时间(5分钟之前)
FundLending fundLending = xyqbCenterService.findFundLendingByLoanId(orderMapping.getLoanId());
if (fundLending != null) {
LocalDateTime localDateTime = LocalDateTime.now();
localDateTime.plusMinutes(-5L);
fundLending.setCreateTime(new Date(localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()));
xyqbCenterService.saveFundLending(fundLending);
}
optHistoryLog.setOptLogDetail("二次风控操作成功");
optHistoryLog.setOptResult(true);
optHistoryLogService.save(optHistoryLog);
log.info("[secendAudit]二次风控操作 最后结果,channelOrderNumber={}, result={}", lendingFormModel.getChannelOrderNumber(), result);
return result;
}
/**
* 放款
*
* @param lendingFormModel
* @return
*/
@Transactional
public boolean lending(LendingFormModel lendingFormModel) {
boolean result = false;
OrderApprove orderApprove = this.orderApproveRepository.findByChannelOrderNumber(lendingFormModel.getChannelOrderNumber());
ClfOrderMapping orderMapping = this.clfOrderMappingRepository.findByChannelOrderNoAndRegisteredFromLastOne(lendingFormModel.getChannelOrderNumber(), lendingFormModel.getChannelId());
// 操作记录
OptHistoryLog optHistoryLog = new OptHistoryLog();
optHistoryLog.setChannelOrderNumber(lendingFormModel.getChannelOrderNumber());
optHistoryLog.setCreditNumber(orderMapping.getApplyNo());
optHistoryLog.setLoanId(orderMapping.getLoanId());
optHistoryLog.setChannelId(orderMapping.getRegisteredFrom());
optHistoryLog.setOptName("放款操作");
optHistoryLog.setCreateTime(new Date());
if (orderApprove.getFundType() == 0) {
// 如果是非存管
result = this.xyqbCenterService.payResultNotify(orderMapping.getLoanId(), lendingFormModel.getResult());
......
......@@ -12,6 +12,7 @@ import cn.quantgroup.cashloanflowboss.spi.xyqb.repository.*;
import cn.quantgroup.cashloanflowboss.spi.xyqb.util.SignUtil;
import cn.quantgroup.cashloanflowboss.utils.DateUtil;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
......@@ -23,6 +24,7 @@ import java.util.Map;
/**
* Created by WeiWei on 2019/8/12.
*/
@Slf4j
@Service
public class XYQBCenterService {
......@@ -195,7 +197,9 @@ public class XYQBCenterService {
paramMap.put("payOrderNo", loanId);
paramMap.put("payTime", "");
paramMap.put("payStatus", expectPayResult ? 3 : 4);
return "success".equals(xyqbCenter.pushLendingResult(paramMap));
String result = xyqbCenter.pushLendingResult(paramMap);
log.info("[放款结果通知]xyqb返回结果result={}", result);
return "success".equals(result);
} else {
return false;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment