package com.nova.sankuai.service.impl;
|
|
import cn.hutool.json.JSONUtil;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.nova.sankuai.domain.api.hengyidai.response.HyGetOrderStatusResponse;
|
import com.nova.sankuai.domain.dto.qinghuayoupin.RepayPlan;
|
import com.nova.sankuai.domain.dto.qinghuayoupin.RepayPlanDTO;
|
import com.nova.sankuai.domain.entity.CustomerCapitalResult;
|
import com.nova.sankuai.domain.enums.capitalInfo.CapitalApprovalResultEnum;
|
import com.nova.sankuai.infra.mapper.CustomerCapitalResultMapper;
|
import com.nova.sankuai.infra.utils.qinghuayoupin.QhypUtil;
|
import com.nova.sankuai.service.IQingHuaService;
|
import lombok.AllArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
import org.apache.http.util.TextUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.StringUtils;
|
|
import java.lang.reflect.Type;
|
import java.math.BigDecimal;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Objects;
|
|
@Service
|
@RequiredArgsConstructor
|
public class QingHuaServiceImpl implements IQingHuaService {
|
private final CustomerCapitalResultMapper capitalResultMapper;
|
@Value("${rongbei.qingHuaYouPin.privateKeySelf}")
|
private String privateKeySelf;
|
@Value("${rongbei.qingHuaYouPin.publicKey}")
|
private String publicKey;
|
private static final Logger log = LoggerFactory.getLogger("capitalLogger");
|
|
@Override
|
public String orderStatusPush(Map<String,Object> params) {
|
//解密deskey
|
String result = QhypUtil.decryptDataFromQh(params, (String) params.get("signature"),(String)params.get("data"),publicKey,privateKeySelf);
|
Map<String, Object> resultMap = JSONUtil.parseObj(result).toBean(Map.class);
|
String orderStatus = (String) resultMap.get("orderState");
|
String loanSuccessTime = (String) resultMap.get("loanSuccessTime");
|
String rejectReason = (String) resultMap.get("rejectReason");
|
String freezeDay = (String) resultMap.get("freezeDay");
|
String partnerOrderNo = (String) resultMap.get("partnerOrderNo");
|
String orderId = (String) resultMap.get("orderId");
|
String logNumber = (String) resultMap.get("logNumber");
|
JSONObject object = new JSONObject();
|
try {
|
if (!TextUtils.isEmpty(orderStatus) && !TextUtils.isEmpty(partnerOrderNo)) {
|
CustomerCapitalResult capitalResult = capitalResultMapper.selectOne(Wrappers.<CustomerCapitalResult>lambdaQuery()
|
.eq(CustomerCapitalResult::getCreditNo,partnerOrderNo));
|
if (capitalResult != null) {
|
capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_LOAN.getCode());
|
if (!Objects.equals(orderStatus, capitalResult.getThirdOrderStatus())) {
|
if ("LOAN_FAIL".equals(orderStatus)){
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_LOAN_APPLY_FAIL);
|
}else if ("LOANING".equals(orderStatus)){
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_SIGN_SUCCESS);
|
}else if ("LOAN_PASS".equals(orderStatus)){
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_LOAN_APPLY_SUCCESS);
|
}else if ("CLEAR".equals(orderStatus)){
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_REPAY_CLEAN_NORMAL);
|
}
|
capitalResultMapper.update(null, Wrappers.<CustomerCapitalResult>lambdaUpdate()
|
.set(CustomerCapitalResult::getThirdOrderStatus, capitalResult.getThirdOrderStatus())
|
.eq(CustomerCapitalResult::getId, capitalResult.getId()));
|
}
|
}
|
object.put("code", 200);
|
object.put("msg", "成功");
|
return QhypUtil.respEncrypt("1000", "订单状态回调接口成功", "","","","", publicKey, privateKeySelf,(String) params.get("desKey"));
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
log.error("日志编号:" + logNumber + "订单状态回调接口异常:{}", e);
|
}
|
return QhypUtil.respEncrypt("1001", "订单状态回调接口失败", "","","","", publicKey, privateKeySelf, (String) params.get("desKey"));
|
}
|
|
@Override
|
public String approvalPush(Map<String, Object> params) {
|
String result = QhypUtil.decryptDataFromQh(params, (String) params.get("signature"),(String)params.get("data"),publicKey,privateKeySelf);
|
Map<String, Object> resultMap = JSONUtil.parseObj(result).toBean(Map.class);
|
String partnerOrderNo = (String) resultMap.get("partnerOrderNo");
|
String auditStatus = (String) resultMap.get("approvalStatus");
|
Integer amountInt = (Integer) resultMap.get("amount");
|
BigDecimal amount = new BigDecimal(amountInt);
|
String auditTime = resultMap.get("auditTime") == null ? "" : (String) resultMap.get("auditTime");
|
String approvalRate = resultMap.get("approvalRate") == null ? "" : String.valueOf(resultMap.get("approvalRate"));;
|
// String approvalRate = "";
|
// if (StringUtils.hasLength(approvalRateString)){
|
// Integer approvalRateInt = Integer.parseInt(approvalRateString);
|
// approvalRate = String.valueOf(approvalRateInt);
|
// }
|
String orderId = resultMap.get("orderId").equals(null) ? "" : (String) resultMap.get("orderId");
|
String logNumber = (String) resultMap.get("logNumber");
|
try {
|
if (!TextUtils.isEmpty(partnerOrderNo)) {
|
CustomerCapitalResult capitalResult = capitalResultMapper.selectOne(Wrappers.<CustomerCapitalResult>lambdaQuery()
|
.eq(CustomerCapitalResult::getCreditNo,partnerOrderNo));
|
log.error("日志编号:" + logNumber + "审核结果回调接口capitalResult:{}", capitalResult);
|
if (capitalResult != null) {
|
log.error("日志编号:" + logNumber + "审核结果回调接口查询成auditStatus:{}", auditStatus);
|
if ("AUDITING".equals(auditStatus)){
|
capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_WAIT.getCode());
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_AUDIT_WAIT);
|
}else if ("AUDIT_REJECT".equals(auditStatus)){
|
capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_REFUSE.getCode());
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_AUDIT_FAIL);
|
}else if ("AUDIT_PASS".equals(auditStatus)){
|
capitalResult.setApprovalResult(CapitalApprovalResultEnum.APPROVAL_SUCCESS.getCode());
|
capitalResult.setThirdOrderStatus(HyGetOrderStatusResponse.STATUS_AUDIT_SUCCESS);
|
}
|
capitalResult.setCreditApplyTime(auditTime);
|
capitalResult.setQuotaRate(approvalRate);
|
capitalResult.setTotalCredit(amount.toString());
|
capitalResultMapper.updateById(capitalResult);
|
return QhypUtil.respEncrypt("1000", "进件审批结果回调接口成功", "","","","", publicKey, privateKeySelf,(String) params.get("desKey"));
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
log.error("日志编号:" + logNumber + "审核结果回调接口异常:{}", e);
|
}
|
return QhypUtil.respEncrypt("1001", "进件审批结果回调接口失败", "","","","", publicKey, privateKeySelf,(String) params.get("desKey"));
|
}
|
|
@Override
|
public String pushRepayPlan(Map<String, Object> params) {
|
JSONObject object = new JSONObject();
|
object.put("code", 200);
|
object.put("msg", "成功");
|
return QhypUtil.respEncrypt("1000", "还款计划回调接口", "","","","", publicKey, privateKeySelf,(String) params.get("desKey"));
|
}
|
|
@Override
|
public String pushRepayResult(Map<String, Object> params) {
|
|
return QhypUtil.respEncrypt("1000", "还款结果推送回调接口成功", "","","","", publicKey, privateKeySelf,(String) params.get("desKey"));
|
}
|
|
@Override
|
public String rightsStatusPush(Map<String, Object> params) {
|
return QhypUtil.respEncrypt("1000", "权益扣费计划变更回调接口成功", "","","","", publicKey, privateKeySelf,(String) params.get("desKey"));
|
}
|
|
}
|