Commit 47a30aef authored by suntao's avatar suntao

放款操作 修改

parent 7acede24
...@@ -92,6 +92,21 @@ public class OrderController { ...@@ -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 { ...@@ -162,6 +162,7 @@ public class OrderService {
} }
orderVo.setMessage(""); orderVo.setMessage("");
} else { } else {
orderVo.setStatus("未知,稍后查询");
orderVo.setMessage("订单查询错误"); orderVo.setMessage("订单查询错误");
} }
} else { } else {
...@@ -299,17 +300,15 @@ public class OrderService { ...@@ -299,17 +300,15 @@ public class OrderService {
} }
/** /**
* 放款 * 二次风控
* *
* @param lendingFormModel * @param lendingFormModel
* @return * @return
*/ */
@Transactional @Transactional
public boolean lending(LendingFormModel lendingFormModel) { public boolean secondAudit(LendingFormModel lendingFormModel) {
boolean result = false; boolean result;
OrderApprove orderApprove = this.orderApproveRepository.findByChannelOrderNumber(lendingFormModel.getChannelOrderNumber());
ClfOrderMapping orderMapping = this.clfOrderMappingRepository.findByChannelOrderNoAndRegisteredFromLastOne(lendingFormModel.getChannelOrderNumber(), lendingFormModel.getChannelId()); ClfOrderMapping orderMapping = this.clfOrderMappingRepository.findByChannelOrderNoAndRegisteredFromLastOne(lendingFormModel.getChannelOrderNumber(), lendingFormModel.getChannelId());
...@@ -332,45 +331,81 @@ public class OrderService { ...@@ -332,45 +331,81 @@ public class OrderService {
optHistoryLog.setCreateTime(new Date()); 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()); XUser xUser = xyqbUserService.findXUserById(orderMapping.getQgUserId());
if (xUser == null) { if (xUser == null) {
log.info("[order_lending]二次风控失败,未找到user channelOrderNumber={}", lendingFormModel.getChannelOrderNumber()); log.info("[secendAudit]二次风控失败,未找到user channelOrderNumber={}", lendingFormModel.getChannelOrderNumber());
optHistoryLog.setOptLogDetail("放款操作失败,二次风控失败,未找到user"); optHistoryLog.setOptLogDetail("二次风控失败,未找到user");
optHistoryLog.setOptResult(false); optHistoryLog.setOptResult(false);
optHistoryLogService.save(optHistoryLog); optHistoryLogService.save(optHistoryLog);
return false; return false;
} }
ChannelConf channelConf = channelConfRepository.getByChannelId(lendingFormModel.getChannelId()); ChannelConf channelConf = channelConfRepository.getByChannelId(lendingFormModel.getChannelId());
if (channelConf == null) { if (channelConf == null) {
log.info("[order_lending]二次风控失败,未找到channelConf配置 channelOrderNumber={}", lendingFormModel.getChannelOrderNumber()); log.info("[secendAudit]二次风控失败,未找到channelConf配置 channelOrderNumber={}", lendingFormModel.getChannelOrderNumber());
optHistoryLog.setOptLogDetail("放款操作失败,二次风控失败,未找到channelConf配置"); optHistoryLog.setOptLogDetail("二次风控失败,未找到channelConf配置");
optHistoryLog.setOptResult(false); optHistoryLog.setOptResult(false);
optHistoryLogService.save(optHistoryLog); optHistoryLogService.save(optHistoryLog);
return false; return false;
} }
Boolean auditNotify = clothoCenterService.orderAuditNotify(xUser.getUuid(), orderMapping.getLoanId(), true, channelConf.getBizType()); log.info("[secendAudit]二次风控发起,channelOrderNumber={}, bizType={}", lendingFormModel.getChannelOrderNumber(), channelConf.getBizType());
if (auditNotify) { result = clothoCenterService.orderAuditNotify(xUser.getUuid(), orderMapping.getLoanId(), true, channelConf.getBizType());
log.info("[order_lending]放款操作,二次风控成功,继续,channelOrderNumber={}, result={}", lendingFormModel.getChannelOrderNumber(), result); if (result) {
log.info("[secendAudit]二次风控成功,channelOrderNumber={}, result={}", lendingFormModel.getChannelOrderNumber(), result);
} else { } else {
log.info("[order_lending]二次风控失败,二次风控失败,clotho返回失败 channelOrderNumber={}", lendingFormModel.getChannelOrderNumber()); log.info("[secendAudit]二次风控失败,clotho返回失败 channelOrderNumber={}", lendingFormModel.getChannelOrderNumber());
optHistoryLog.setOptLogDetail("放款操作失败,二次风控失败,clotho返回失败"); optHistoryLog.setOptLogDetail("二次风控失败,clotho返回失败");
optHistoryLog.setOptResult(false); optHistoryLog.setOptResult(false);
optHistoryLogService.save(optHistoryLog); optHistoryLogService.save(optHistoryLog);
return false; 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) { if (orderApprove.getFundType() == 0) {
// 如果是非存管 // 如果是非存管
result = this.xyqbCenterService.payResultNotify(orderMapping.getLoanId(), lendingFormModel.getResult()); result = this.xyqbCenterService.payResultNotify(orderMapping.getLoanId(), lendingFormModel.getResult());
......
...@@ -12,6 +12,7 @@ import cn.quantgroup.cashloanflowboss.spi.xyqb.repository.*; ...@@ -12,6 +12,7 @@ import cn.quantgroup.cashloanflowboss.spi.xyqb.repository.*;
import cn.quantgroup.cashloanflowboss.spi.xyqb.util.SignUtil; import cn.quantgroup.cashloanflowboss.spi.xyqb.util.SignUtil;
import cn.quantgroup.cashloanflowboss.utils.DateUtil; import cn.quantgroup.cashloanflowboss.utils.DateUtil;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -23,6 +24,7 @@ import java.util.Map; ...@@ -23,6 +24,7 @@ import java.util.Map;
/** /**
* Created by WeiWei on 2019/8/12. * Created by WeiWei on 2019/8/12.
*/ */
@Slf4j
@Service @Service
public class XYQBCenterService { public class XYQBCenterService {
...@@ -195,7 +197,9 @@ public class XYQBCenterService { ...@@ -195,7 +197,9 @@ public class XYQBCenterService {
paramMap.put("payOrderNo", loanId); paramMap.put("payOrderNo", loanId);
paramMap.put("payTime", ""); paramMap.put("payTime", "");
paramMap.put("payStatus", expectPayResult ? 3 : 4); 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 { } else {
return false; 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