Commit 0b4a4568 authored by shangying's avatar shangying

提交部分代码

parent 805cb120
......@@ -27,7 +27,9 @@ public enum LoanStatusEnum {
DIRECT_INVESTMENT_FAILURE(34,"直投打款失败"),
LOAN_REQUEST_FAILED (35,"放款请求失败"),
DIRECT_INVESTMENT_SUCCESS_STATUSNOTRIGHT (36,"直投打款成功,但状态不对"),
FINAL_FUNDED_APPROVAL_FAIL(37,"马上金融放款失败");
FINAL_FUNDED_APPROVAL_FAIL(37,"马上金融放款失败"),
LOAN_REQUEST_NULL(38,"放款结果空"),
LOAN_SCHEDULE_FAIL(39,"定时任务放款也失败了");
private int code;
private String desc;
......
......@@ -40,6 +40,11 @@ public interface OneClickDataRespository extends JpaRepository<OneClickData, Lon
@Query(value = "select * from one_click_data where credit_status = ?1 and type not in (?2) order by id desc", nativeQuery = true)
List<OneClickData> findByCreditStatusAndTypeNotIn(Integer creditStatus,Integer type);
// 通过授信状态查询,申请类型是非1的
@Query(value = "select * from one_click_data where credit_status = ?1 and type not in (?2,?3,?4,?5) and loan_status != 15 order by id desc", nativeQuery = true)
List<OneClickData> findByCreditStatusAndTypeNotIn(Integer creditStatus,Integer type,Integer type1,Integer type2,Integer type3);
// 通过id修改 放款loanid
@Transactional(rollbackFor = Exception.class)
@Modifying
......
......@@ -14,11 +14,11 @@ public interface ApplyLoanService {
public static boolean reslut=true;
Result applyLoan(OneClickModel oneClickModel);
JSONObject apply(OneClickModel oneClickModel,String md5Keywy,String aesKeywy);
Map<String, Object> zhangZhongApply(OneClickModel oneClickModel,String name,String channelUserId);
Map<String, Object> shiGuangFenQiApply(OneClickModel oneClickModel,String name,String channelUserId);
Map<String, Object> xiaoJMApply(OneClickModel oneClickModel,String name,String channelUserId);
Map<String, Object> guoMeiApply(OneClickModel oneClickModel,String name,String channelUserId);
Map<String, Object> weiDianApply(OneClickModel oneClickModel,String name,String channelUserId);
Map<String, Object> zhangZhongApply(OneClickModel oneClickModel,String name,String channelUserId,String orderNo);
Map<String, Object> shiGuangFenQiApply(OneClickModel oneClickModel,String name,String channelUserId,String orderNo);
Map<String, Object> xiaoJMApply(OneClickModel oneClickModel,String name,String channelUserId,String orderNo);
Map<String, Object> guoMeiApply(OneClickModel oneClickModel,String name,String channelUserId,String orderNo);
Map<String, Object> weiDianApply(OneClickModel oneClickModel,String name,String channelUserId,String orderNo);
Map<String, Object> defautApply(OneClickModel oneClickModel,String name,String channelUserId);
}
......@@ -23,6 +23,14 @@ public interface LoanOperationService {
LoanApplicationHistory selectLoanId(Long userId,Integer businessType);
/**
* 查询放款单
* @param id
*/
LoanApplicationHistory selectLoanId(Long id);
/**
* 二次风控
* */
......@@ -47,7 +55,7 @@ public interface LoanOperationService {
Map queryLendingRecordCount(Long fundId);
Long queryLendingRecordSumCount(Long fundId);
Integer queryLendingRecordSumCount(Long fundId);
BigDecimal queryLendingRecordAmountMountSumCount(Long fundId);
......
......@@ -4,32 +4,37 @@ package cn.quantgroup.cashloanflowboss.api.oneclickdata.service;
* Created by shang on 2019/12/12.
*/
public interface OneClickDataOperateJobService {
/*
/**
* 执行授信成功请求
* */
void excuteCreditSuccessJob();
/*
/**
* 执行授信失败请求
* */
void excuteCreditFailJob();
/*
/**
* 执行查询授信状态
* */
void excuteSelectCreditStatusJob();
/*
/**
* 执行放款成功请求
* */
void excuteFundSucessJob();
/*
/**
* 执行放款失败请求
* */
void excuteFundFailJob();
/*
/**
* 执行放款请求
* */
void excuteFundJob();
/**
* 执行查询放款状态
* */
void excuteSelectFundStatusJob();
......
......@@ -12,13 +12,13 @@ import org.springframework.data.domain.Page;
*/
public interface OneClickDataOperateService {
Result OnekeyApply(OneClickModel oneClickModel);
Result onekeyApply(OneClickModel oneClickModel);
Result OneKeyCashWithdrawal(OneClickModel oneClickModel) throws Exception;
Result oneKeyCashWithdrawal(OneClickModel oneClickModel) throws Exception;
Result OneKeyCreditSuccessOrFail(OneClickModel oneClickModel) throws Exception;
Result oneKeyCreditSuccessOrFail(OneClickModel oneClickModel) throws Exception;
Result OneKeyLoanSuccessOrFail(OneClickModel oneClickModel) throws Exception;
Result oneKeyLoanSuccessOrFail(OneClickModel oneClickModel) throws Exception;
Page<OneClickSelectModel> findOneClickSelectModelByCriteriaQueryPage(OneClickSelectModel oneClickSelectModel );
}
package cn.quantgroup.cashloanflowboss.api.oneclickdata.service;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.entity.OneClickData;
import cn.quantgroup.cashloanflowboss.core.base.Result;
import com.alibaba.fastjson.JSONObject;
/**
* Created by shang on 2019/12/19.
*/
public interface OneClickDataQueueOperateService {
void getCreditNotifyIsSucess(String queueMsg);
Result commonFundAssifnSucc(OneClickData oneClickData);
JSONObject applyLendingNotifyOnly(OneClickData oneClickData);
}
package cn.quantgroup.cashloanflowboss.api.oneclickdata.service;
import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.FinanceProduct;
import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.QuotaCredit;
import cn.quantgroup.user.retbean.XUser;
import java.util.List;
/**
* Created by shang on 2019/12/3.
*/
......@@ -108,4 +111,8 @@ public interface PhoneInfoService {
*/
void updat800QouteProductType();
/**
* 通过fundCorpId返回
*/
List<FinanceProduct> getFinanceProduct(Long fundCorpId);
}
package cn.quantgroup.cashloanflowboss.api.oneclickdata.service;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.entity.OneClickData;
import cn.quantgroup.cashloanflowboss.core.base.Result;
import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.RepaymentPlan;
import com.alibaba.fastjson.JSONObject;
......@@ -11,11 +12,11 @@ public interface RepaymentPlatService {
/**
* 是否有未还款计划
**/
RepaymentPlan whetherHaveRepayment0rdersList(OneClickData oneClickData);
Result whetherHaveRepayment0rdersList(OneClickData oneClickData);
/**
* 获取还款计划表
**/
JSONObject getRepaymentOrdersList(String loanID, String token,String repaymentToken,OneClickData oneClickData);
JSONObject getRepaymentOrdersList(String loanID, String token,OneClickData oneClickData);
/**
* 支付中心token获取
**/
......
......@@ -61,19 +61,6 @@ public class ApplyLoanServiceImpl implements ApplyLoanService {
md5Keywy=clfChannelConfiguration.getMd5Key();
aesKeywy=clfChannelConfiguration.getAesKey();
result=apply(oneClickModel,md5Keywy,aesKeywy);
// if(oneClickModel.getChannel().equals(ChannelEnum.ZHANGHZONG.getCode())){
// result= zhangZhongApply(oneClickModel,md5Keywy,aesKeywy);
// }else if(oneClickModel.getChannel().equals(ChannelEnum.SHIGUANGFQ.getCode())){
// result= shiGuangFenQiApply();
// }else if(oneClickModel.getChannel().equals(ChannelEnum.XIAOJUMAO.getCode())){
// result= xiaoJMApply();
// }else if(oneClickModel.getChannel().equals(ChannelEnum.GUOMEI.getCode())){
// result= guoMeiApply();
// }else if(oneClickModel.getChannel().equals(ChannelEnum.WEIDIAN.getCode())){
// result= weiDianApply();
// }else{
// result= defautApply();
// }
String getDecryption = AESUtil.decryptAfterBase64Decode(result.get("context").toString(), aesKeywy);
log.info("解密的getDecryption的结果={}" , getDecryption);
JSONObject getDecryptionResult = (JSONObject) JSONObject.parse(getDecryption);
......@@ -126,48 +113,52 @@ public class ApplyLoanServiceImpl implements ApplyLoanService {
String channelCode="ZHANGZHONG";
String orderNoStart="begin";
//测试
// String url = "http://qapi-arch.liangkebang.net"+"/ex/api/v2/applyLoan/ZHANGZHONG";
orderNo=orderNoStart+"_"+oneClickModel.getPhone()+"_"+System.currentTimeMillis();
String name = "简介";
String channelUserId = orderNoStart+"_"+ oneClickModel.getPhone();
Map<String, Object> paras=new HashMap<String, Object>();
if(oneClickModel.getChannel().equals(ChannelEnum.ZHANGHZONG.getCode())){
channelCode="ZHANGZHONG";
orderNoStart="ZZ";
orderNo=orderNoStart+"_"+oneClickModel.getPhone()+"_"+System.currentTimeMillis();
channelUserId = orderNoStart+"_"+ oneClickModel.getPhone();
paras= zhangZhongApply(oneClickModel,name,channelUserId);
paras= zhangZhongApply(oneClickModel,name,channelUserId,orderNo);
}else if(oneClickModel.getChannel().equals(ChannelEnum.SHIGUANGFQ.getCode())){
channelCode="SHIGUANGFQ";
orderNoStart="SGFQ";
orderNo=orderNoStart+"_"+oneClickModel.getPhone()+"_"+System.currentTimeMillis();
channelUserId = orderNoStart+"_"+ oneClickModel.getPhone();
paras= shiGuangFenQiApply(oneClickModel,name,channelUserId);
paras= shiGuangFenQiApply(oneClickModel,name,channelUserId,orderNo);
}else if(oneClickModel.getChannel().equals(ChannelEnum.XIAOJUMAO.getCode())){
channelCode="XIAOJUMAO";
orderNoStart="XJM";
orderNo=orderNoStart+"_"+oneClickModel.getPhone()+"_"+System.currentTimeMillis();
channelUserId = orderNoStart+"_"+ oneClickModel.getPhone();
paras= xiaoJMApply(oneClickModel,name,channelUserId);
paras= xiaoJMApply(oneClickModel,name,channelUserId,orderNo);
}else if(oneClickModel.getChannel().equals(ChannelEnum.GUOMEI.getCode())){
channelCode="GUOMEI";
orderNoStart="GM";
orderNo=orderNoStart+"_"+oneClickModel.getPhone()+"_"+System.currentTimeMillis();
channelUserId = orderNoStart+"_"+ oneClickModel.getPhone();
paras= guoMeiApply(oneClickModel,name,channelUserId);
paras= guoMeiApply(oneClickModel,name,channelUserId,orderNo);
}else if(oneClickModel.getChannel().equals(ChannelEnum.WEIDIAN.getCode())){
channelCode="WEIDIAN";
orderNoStart="WD";
orderNo=orderNoStart+"_"+oneClickModel.getPhone()+"_"+System.currentTimeMillis();
channelUserId = orderNoStart+"_"+ oneClickModel.getPhone();
paras= weiDianApply(oneClickModel,name,channelUserId);
paras= weiDianApply(oneClickModel,name,channelUserId,orderNo);
}else{
paras= defautApply(oneClickModel,name,channelUserId);
}
log.info("获取进件的值paras={}",paras);
String url = qapiHttp+"/ex/api/v2/applyLoan/"+channelCode;
String encryptContent = GetEncryptContentAndMd5.getEncryptContent(paras, aesKeywy, md5Keywy);
......@@ -180,7 +171,7 @@ public class ApplyLoanServiceImpl implements ApplyLoanService {
@Override
public Map<String, Object> zhangZhongApply(OneClickModel oneClickModel,String name,String channelUserId) {
public Map<String, Object> zhangZhongApply(OneClickModel oneClickModel,String name,String channelUserId,String orderNo) {
Map<String, Object> paras =new HashMap<String, Object>();
paras.put("address", "湖北省恩施州利川团堡");
......@@ -262,7 +253,7 @@ public class ApplyLoanServiceImpl implements ApplyLoanService {
String name = "简介";
String channelUserId = "ZZ_"+ oneClickModel.getPhone();
Map<String, Object> paras =getParas(oneClickModel,name,channelUserId);
Map<String, Object> paras =getParas(oneClickModel,name,channelUserId,orderNo);
String encryptContent = GetEncryptContentAndMd5.getEncryptContent(paras, aesKeywy, md5Keywy);
......@@ -276,7 +267,7 @@ public class ApplyLoanServiceImpl implements ApplyLoanService {
}
public Map<String, Object> getParas ( OneClickModel oneClickModel,String name,String channelUserId){
public Map<String, Object> getParas ( OneClickModel oneClickModel,String name,String channelUserId,String orderNo){
Map<String, Object> paras =new HashMap<String, Object>();
paras.put("address", "湖北省恩施州利川团堡");
......@@ -350,7 +341,7 @@ public class ApplyLoanServiceImpl implements ApplyLoanService {
@Override
public Map<String, Object> shiGuangFenQiApply(OneClickModel oneClickModel,String name,String channelUserId) {
public Map<String, Object> shiGuangFenQiApply(OneClickModel oneClickModel,String name,String channelUserId,String orderNo) {
Map<String, Object> paras =new HashMap<String, Object>();
paras.put("address", "湖北省恩施州利川团堡");
......@@ -422,7 +413,7 @@ public class ApplyLoanServiceImpl implements ApplyLoanService {
}
@Override
public Map<String, Object> xiaoJMApply(OneClickModel oneClickModel,String name,String channelUserId) {
public Map<String, Object> xiaoJMApply(OneClickModel oneClickModel,String name,String channelUserId,String orderNo) {
Map<String, Object> paras =new HashMap<String, Object>();
paras.put("address", "湖北省恩施州利川团堡");
......@@ -494,7 +485,7 @@ public class ApplyLoanServiceImpl implements ApplyLoanService {
}
@Override
public Map<String, Object> guoMeiApply(OneClickModel oneClickModel,String name,String channelUserId) {
public Map<String, Object> guoMeiApply(OneClickModel oneClickModel,String name,String channelUserId,String orderNo) {
Map<String, Object> paras =new HashMap<String, Object>();
paras.put("address", "湖北省恩施州利川团堡");
paras.put("applyAmount", oneClickModel.getAmount());
......@@ -571,7 +562,7 @@ public class ApplyLoanServiceImpl implements ApplyLoanService {
}
@Override
public Map<String, Object> weiDianApply(OneClickModel oneClickModel,String name,String channelUserId) {
public Map<String, Object> weiDianApply(OneClickModel oneClickModel,String name,String channelUserId,String orderNo) {
Map<String, Object> paras =new HashMap<String, Object>();
paras.put("address", "湖北省恩施州利川团堡");
paras.put("applyAmount", oneClickModel.getAmount());
......
......@@ -61,25 +61,12 @@ public class CashWithdrawalServiceImpl implements CashWithdrawalService{
md5Keywy=clfChannelConfiguration.getMd5Key();
aesKeywy=clfChannelConfiguration.getAesKey();
result= applyLoan(oneClickData, md5Keywy, aesKeywy);
// if(oneClickData.getChannelCode().trim().equals(ChannelEnum.ZHANGHZONG.getCode())){
// result= applyZhangZhongLoan(oneClickData, md5Keywy, aesKeywy);
//
// }else if(oneClickData.getChannel().equals(ChannelEnum.SHIGUANGFQ.getCode())){
// result= null;
// }else if(oneClickData.getChannel().equals(ChannelEnum.XIAOJUMAO.getCode())){
// result= null;
// }else if(oneClickData.getChannel().equals(ChannelEnum.GUOMEI.getCode())){
// result= null;
// }else if(oneClickData.getChannel().equals(ChannelEnum.WEIDIAN.getCode())){
// result= null;
// }else{
// result= null;
// }
String context=result.get("context").toString().trim();
if(!StringUtils.isBlank(context)){
String getDecryption = AESUtil.decryptAfterBase64Decode(context, aesKeywy);
log.info("解密的getDecryption的结果={}" + getDecryption);
log.info("解密的getDecryption的结果={}" , getDecryption);
JSONObject getDecryptionResult = (JSONObject) JSONObject.parse(getDecryption);
log.info("打印一下getDecryptionResult={}",getDecryptionResult.get("bizData"));
......@@ -138,17 +125,17 @@ public class CashWithdrawalServiceImpl implements CashWithdrawalService{
if(oneClickData.getChannelCode().trim().equals(ChannelEnum.ZHANGHZONG.getCode())){
channelCode="ZHANGZHONG";
paras= applyZhangZhongLoan(oneClickData,bankCardNumber,bankCode,bankName);
}else if(oneClickData.getChannel().equals(ChannelEnum.SHIGUANGFQ.getCode())){
}else if(oneClickData.getChannelCode().equals(ChannelEnum.SHIGUANGFQ.getCode())){
channelCode="SHIGUANGFQ";
paras= applyShiGuangFenQiLoan(oneClickData, bankCardNumber, bankCode, bankName);
}else if(oneClickData.getChannel().equals(ChannelEnum.XIAOJUMAO.getCode())){
}else if(oneClickData.getChannelCode().equals(ChannelEnum.XIAOJUMAO.getCode())){
channelCode="XIAOJUMAO";
paras= applyXiaoJMLoan(oneClickData, bankCardNumber, bankCode, bankName);
}else if(oneClickData.getChannel().equals(ChannelEnum.GUOMEI.getCode())){
}else if(oneClickData.getChannelCode().equals(ChannelEnum.GUOMEI.getCode())){
channelCode="GUOMEI";
paras= applyGuoMeiLoan(oneClickData, bankCardNumber, bankCode, bankName);
}else if(oneClickData.getChannel().equals(ChannelEnum.WEIDIAN.getCode())){
}else if(oneClickData.getChannelCode().equals(ChannelEnum.WEIDIAN.getCode())){
channelCode="WEIDIAN";
paras= applyWeiDianLoan(oneClickData, bankCardNumber, bankCode, bankName);
......@@ -162,7 +149,7 @@ public class CashWithdrawalServiceImpl implements CashWithdrawalService{
Map<String,String> content_map = new HashMap<String, String>();
content_map.put("content",encryptContent);
log.info("获取当前的paras={}",paras);
log.info("获取当前的paras={}", paras);
JSONObject result = HttpRequest.doPostReturnResponseJson(url, content_map);
return result;
......@@ -172,7 +159,7 @@ public class CashWithdrawalServiceImpl implements CashWithdrawalService{
/**
* 掌众的申请提现
* */
public Map applyZhangZhongLoan(OneClickData oneClickData,String bankCardNumber,String bankCode,String bankName){
public Map<String,String> applyZhangZhongLoan(OneClickData oneClickData,String bankCardNumber,String bankCode,String bankName){
Map<String,String> paras = new HashMap<String, String>();
paras.put("channelOrderNumber",oneClickData.getChannelOrderNo());
paras.put("bankCardNumber",bankCardNumber);
......@@ -195,8 +182,7 @@ public class CashWithdrawalServiceImpl implements CashWithdrawalService{
paras.put("bankCode",bankCode);
paras.put("bankName",bankName);
paras.put("reservePhoneNumber", oneClickData.getPhone());
log.info("获取当前的paras={}",paras);
return paras;
}
......
......@@ -8,6 +8,7 @@ import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.CreditGrantingSer
import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.PhoneInfoService;
import cn.quantgroup.cashloanflowboss.core.base.Result;
import cn.quantgroup.cashloanflowboss.core.dictionary.ApplicationStatus;
import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.FinanceProduct;
import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.QuotaCredit;
import cn.quantgroup.cashloanflowboss.utils.GetBiNoAndFinanceProducts;
import cn.quantgroup.cashloanflowboss.utils.http.HttpRequest;
......@@ -18,10 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.*;
/**
* Created by shang on 2019/12/4.
......@@ -191,49 +189,23 @@ public class CreditGrantingServiceImpl implements CreditGrantingService{
}
public Result applyCreditNotifyMq(OneClickData oneClickData, QuotaCredit quotaCredit,String auditResult) throws Exception {
String url = clothoHttp + "/external/quota/auth_amount_audit/notify";
Map<String, String> paras = new HashMap<String, String>();
ArrayList listPara1 =getPublicInfoMq(oneClickData);
paras.put("code", "0");
paras.put("msg", "success");
paras.put("bizChannel", "1");
log.info("打印quotaCredit={}",quotaCredit);
if (Objects.isNull(quotaCredit)){
return Result.buildFail("授信记录未查询到quotaCredit!!!,请检查数据") ;
}
//通过手机号获取用户信息
XUser xUser=phoneInfoService.selectUserID(oneClickData.getPhone());
log.info("打印一下xUser:{}",xUser);
String uuid=xUser.getUuid();
Long userId=xUser.getId();
paras.put("uuid", uuid);
//通过用户id获取产品信息
log.info("打印一下userid:{},oneClickModel:{}",userId,oneClickData);
if (Objects.isNull(quotaCredit)){
log.info("打印quotaCredit={}",quotaCredit);
return Result.buildFail("授信记录未查询到quotaCredit!!!,请检查数据") ;
}
int productId= Integer.parseInt(quotaCredit.getProductId().toString().trim()) ;
log.info("打印一下userid={},oneClickModel={}",userId,oneClickData); //通过用户id获取产品信息
int productId= Integer.parseInt(quotaCredit.getProductId().toString().trim());
String biNo = String.valueOf(quotaCredit.getProductType());
String quotaRecordOrderNo=quotaCredit.getOrderNo();
//获取产品分配基础信息,默认rate都是0
HashMap<Object, Object> getBiNoAndFinanceProduct = GetBiNoAndFinanceProducts.getBiNoAndFinanceProduct(productId, listPara1);
paras.put("bizNo", quotaRecordOrderNo);
paras.put("bizType", biNo);
paras.put("auditResult", auditResult);
paras.put("amount", oneClickData.getAmount().toString().trim());
paras.put("deadLine", "1607746332000");
paras.put("extData", "null");
paras.put("otherInformation", "");
paras.put("financeProducts", getBiNoAndFinanceProduct.get("financeProducts").toString().trim());
Map<String, String> header = new HashMap<String, String>();
header.put("Content-Type", "application/x-www-form-urlencoded");
// 通过手机号和渠道code获取token
String getToken=phoneInfoService.getToken(oneClickData.getPhone(), oneClickData.getChannelCode());
header.put("x-auth-token", getToken);
log.info("获取paras={},获取header={}",paras,header);
JSONObject result = HttpRequest.doPostReturnResponseJson(url, paras, header);
String getToken=phoneInfoService.getToken(oneClickData.getPhone(), oneClickData.getChannelCode()); // 通过手机号和渠道code获取token
log.info("打印当前的oneClickData={},auditResult={},quotaRecordOrderNo={},uuid={}, biNo={}, productId={},getToken={}",oneClickData,auditResult,quotaRecordOrderNo,uuid, biNo, productId,getToken);
JSONObject result= getCreditNotifyResult(oneClickData,quotaCredit,auditResult,quotaRecordOrderNo,uuid, biNo, productId,getToken);
log.info("打印一下查看当前的授信状态={}",result);
String statusCode=result.get("statusCode").toString().trim();
String statusCodeCompare="200";
String context=result.get("context").toString().trim();
......@@ -254,6 +226,7 @@ public class CreditGrantingServiceImpl implements CreditGrantingService{
boolean fundplan=fundsAllocationplanService.fundPlannedDistribution(oneClickData.getFundCorpId());
if(fundplan){
log.info("自己分配计划ok",oneClickData);
}else{
log.info("自己分配计划失败:{}",oneClickData);
}
......@@ -269,6 +242,41 @@ public class CreditGrantingServiceImpl implements CreditGrantingService{
}
public JSONObject getCreditNotifyResult(OneClickData oneClickData,QuotaCredit quotaCredit,String auditResult,String quotaRecordOrderNo,String uuid,String biNo,int productId,String getToken){
String url = clothoHttp + "/external/quota/auth_amount_audit/notify";
Map<String, String> paras = new HashMap<String, String>();
ArrayList listPara1 =getPublicInfoMq(oneClickData,quotaCredit);
log.info("打印listPara1={}",listPara1);
paras.put("code", "0");
paras.put("msg", "success");
paras.put("bizChannel", "1");
paras.put("uuid", uuid);
//获取产品分配基础信息,默认rate都是0
HashMap<Object, Object> getBiNoAndFinanceProduct = GetBiNoAndFinanceProducts.getBiNoAndFinanceProduct(productId, listPara1);
log.info("打印getBiNoAndFinanceProduct={}", getBiNoAndFinanceProduct.get("financeProducts").toString().trim());
paras.put("bizNo", quotaRecordOrderNo);
paras.put("bizType", biNo);
log.info("打印一下auditResult={}",auditResult);
// paras.put("auditResult",auditResult);
paras.put("auditResult","true");
paras.put("amount", oneClickData.getAmount().toString().trim());
paras.put("deadLine", "1607746332000");
paras.put("extData", "null");
paras.put("otherInformation", "");
paras.put("financeProducts", getBiNoAndFinanceProduct.get("financeProducts").toString().trim());
Map<String, String> header = new HashMap<String, String>();
header.put("Content-Type", "application/x-www-form-urlencoded");
header.put("x-auth-token", getToken);
log.info("获取paras={},获取header={}",paras,header);
JSONObject result = HttpRequest.doPostReturnResponseJson(url, paras, header);
return result;
}
public ArrayList getPublicInfo(OneClickModel oneClickModel){
ArrayList listPara1 = new ArrayList();
listPara1.add(0, oneClickModel.getAmount());
......@@ -280,13 +288,19 @@ public class CreditGrantingServiceImpl implements CreditGrantingService{
}
public ArrayList getPublicInfoMq(OneClickData oneClickData){
public ArrayList getPublicInfoMq(OneClickData oneClickData,QuotaCredit quotaCredit){
ArrayList listPara1 = new ArrayList();
listPara1.add(0, oneClickData.getAmount().toString().trim());
listPara1.add(1, oneClickData.getTermNo());
listPara1.add(2, oneClickData.getFundCorpId());
listPara1.add(3, rate);
listPara1.add(4, txAmount);
String fundProductId="1013";
List<FinanceProduct> getFinanceProduct=phoneInfoService.getFinanceProduct(quotaCredit.getProductId());
if(getFinanceProduct.size()>0){
fundProductId=String.valueOf(getFinanceProduct.get(0).getId());
}
listPara1.add(5, fundProductId);
return listPara1;
}
......
......@@ -44,7 +44,7 @@ public class FundsAllocationplanServiceImpl implements FundsAllocationplanServic
@Override
public String loginOPToken() {
log.info("打印opapiHttp:{}",opapiHttp);
String url = opapiHttp + "/user/login?auth=dXNlcj14dWV6aiZwYXNzd29yZD0xMjMxMjNxd2Vxd2U%3D";
String url = opapiHttp + "/user/login?auth=dXNlcj1xYSZwYXNzd29yZD1xYXRlc3Q%3D";
JSONObject result = HttpRequest.doGetReturnResponseJson(url);
JSONObject resultData = (JSONObject) result.get("data");
String businessCode=result.get("businessCode").toString().trim();
......
......@@ -120,7 +120,7 @@ public class LoanOperationServiceImpl implements LoanOperationService{
* @return Long
*/
@Override
public Long queryLendingRecordSumCount(Long fundId) {
public Integer queryLendingRecordSumCount(Long fundId) {
return xyqbCenterService.queryLendingRecordSumCount(fundId);
}
......@@ -156,6 +156,7 @@ public class LoanOperationServiceImpl implements LoanOperationService{
// 查看当前的放款单的状态是21
LoanApplicationHistory loanApplicationHistory= loanOperationService.selectLoanId(Long.valueOf(oneClickData.getUserId().trim()), oneClickData.getBizType());
String progress=loanApplicationHistory.getProgress().getDescription().trim();
log.info("执行放款之前查看当前的放款状态progress={}",progress);
if(LoanProgress.FINAL_SENDED_TO_FUNDING_CORP.getDescription().trim().equals(progress) ){
//系统自动打款,无需调用打款操作
return payNotify(oneClickData, payStatus);
......@@ -177,13 +178,15 @@ public class LoanOperationServiceImpl implements LoanOperationService{
String amountLimit="";
String assignPeopleNum="";
BigDecimal AmountMountSumCount=queryLendingRecordAmountMountSumCount(Long.parseLong(oneClickData.getFundCorpId()));
Long sumCount=queryLendingRecordSumCount(Long.parseLong(oneClickData.getFundCorpId()));
Integer sumCount=queryLendingRecordSumCount(Long.parseLong(oneClickData.getFundCorpId()));
log.info("获取sql金额为AmountMountSumCount={},sumCount={}",AmountMountSumCount,sumCount);
if(Objects.isNull(AmountMountSumCount) || Objects.isNull(sumCount) ){
if(Objects.isNull(AmountMountSumCount) && sumCount == 0 ){
log.info("直接进行放款请求操作");
// 不需要提现已经进行提现,直接进行放款操作
return payNotify(oneClickData, payStatus);
}else {
log.info("进行提现操作请求");
// 如有有需要提现操作的单,进行提现操作
amountLimit = AmountMountSumCount.toString().trim();
......@@ -202,17 +205,17 @@ public class LoanOperationServiceImpl implements LoanOperationService{
if (ResposeResultEnum.BUSINESSCODE.getDesc().equals(businessCode) && ResposeResultEnum.BUSINESSCODE.getDesc().equals(code)) {
// 需要咨询这个接口
// 待续中。。。。。。
log.info("提现请求成功返回");
if (!fundCorpId.equals(ResposeResultEnum.FUND_CORD210.getDesc())) {
// 查看当前的放款单的状态是21
LoanApplicationHistory loanApplicationHistory = loanOperationService.selectLoanId(Long.valueOf(oneClickData.getUserId().trim()), oneClickData.getBizType());
log.info("放款通知请求完毕后loanApplicationHistory={}", loanApplicationHistory);
log.info("提现完毕后通知请求完毕后loanApplicationHistory={}", loanApplicationHistory);
String progress=loanApplicationHistory.getProgress().getDescription().trim();
if (progress.equals(LoanProgress.FINAL_SENDED_TO_FUNDING_CORP.getDescription().trim())) {
if (progress.equals(LoanProgress.FINAL_SENDED_TO_FUNDING_CORP.getDescription().trim()) || progress.equals(LoanProgress.WAITING_FUND.getDescription().trim())) {
//直投打款完毕进行放款操作
return payNotify(oneClickData, payStatus);
} else {
log.info("走提现路线了,查询库中放款状态不是21");
log.info("走提现路线了,查询库中放款状态不是21、20");
oneClickDataRespository.updateLoanStatusById(LoanStatusEnum.DIRECT_INVESTMENT_FAILURE.getCode(), oneClickData.getId());
}
......@@ -245,8 +248,19 @@ public class LoanOperationServiceImpl implements LoanOperationService{
paras.put("payTime", String.valueOf(payTime));
paras.put("payStatus", payStatus);
Map<String, String> header =new HashMap<String, String>();
header.put("Content-Type", "application/x-www-form-urlencoded");
log.info("查看提现请求参数paras={},header={}", paras,header);
JSONObject result= HttpRequest.doPostReturnResponseJson(url, paras, header);
log.info("查看提现结果={}",result);
return result;
}
/**
* 根据id查看表中的放款单
* */
@Override
public LoanApplicationHistory selectLoanId(Long id){
return loanApplicationHistoryRepository.findById(id);
}
}
package cn.quantgroup.cashloanflowboss.api.oneclickdata.service.impl; import cn.quantgroup.cashloanflowboss.api.oneclickdata.entity.OneClickData;import cn.quantgroup.cashloanflowboss.api.oneclickdata.repository.OneClickDataRespository;import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.CreditGrantingService;import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.OneClickDataOperateJobService;import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.PhoneInfoService;import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.QuotaCredit;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service; import java.util.List;import java.util.Objects; /** * Created by shang on 2019/12/12. */@Slf4j@Servicepublic class OneClickDataOperateJobServiceImpl implements OneClickDataOperateJobService { @Autowired private PhoneInfoService phoneInfoService; @Autowired private OneClickDataRespository oneClickDataRespository; @Autowired private CreditGrantingService creditGrantingService; @Override public void excuteCreditSuccessJob() { } @Override public void excuteCreditFailJob() { } @Override public void excuteSelectCreditStatusJob() { //查找请求类型:2授信成功、4放款成功、5放款失败、6清算的单,并且当前的授信状态是0授信中 List<OneClickData> oneClickDataList=oneClickDataRespository.findByCreditStatusAndTypeNotIn(0, 1); if(oneClickDataList.size()>0 || oneClickDataList !=null) { for (OneClickData oneClickData : oneClickDataList) { // 当前授信中的单在apply_quota 查看状态是apply_status=1 时间倒序,进行授信请求操作 log.info("打印一下oneClickData.getUserId()={},oneClickData.getChannelCode()={}",oneClickData.getUserId(),oneClickData.getChannelCode()); QuotaCredit quotaCredit1 = phoneInfoService.selectUserAuditRecords(Long.parseLong(oneClickData.getUserId()), Long.parseLong(oneClickData.getChannelCode())); if (Objects.isNull(quotaCredit1)) { log.info("不符合授信审核申请的条件"); } else { //如何条件的单进行授信申请请求 log.info("符合授信审核申请的条件oneClickData={},quotaCredit1={}", oneClickData, quotaCredit1); try { creditGrantingService.authAmountAuditNotifyMq(oneClickData, quotaCredit1); } catch (Exception e) { log.info("进入异常e={}", e.getMessage()); } } } }else{ log.info("oneClickDataList为空={}",oneClickDataList); } } @Override public void excuteFundSucessJob() { } @Override public void excuteFundFailJob() { } @Override public void excuteSelectFundStatusJob() { } }
\ No newline at end of file
package cn.quantgroup.cashloanflowboss.api.oneclickdata.service.impl; import cn.quantgroup.cashloanflowboss.api.oneclickdata.entity.OneClickData;import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.LoanStatusEnum;import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.TypeEnum;import cn.quantgroup.cashloanflowboss.api.oneclickdata.repository.OneClickDataRespository;import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.*;import cn.quantgroup.cashloanflowboss.spi.clf.model.LoanProgress;import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.LoanApplicationHistory;import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.QuotaCredit;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service; import java.util.List;import java.util.Objects; /** * Created by shang on 2019/12/12. */@Slf4j@Servicepublic class OneClickDataOperateJobServiceImpl implements OneClickDataOperateJobService { @Autowired private PhoneInfoService phoneInfoService; @Autowired private LoanOperationService loanOperationService; @Autowired private OneClickDataRespository oneClickDataRespository; @Autowired private CreditGrantingService creditGrantingService; @Autowired private OneClickDataQueueOperateService oneClickDataQueueOperateService; @Override public void excuteCreditSuccessJob() { } @Override public void excuteCreditFailJob() { } @Override public void excuteSelectCreditStatusJob() { //查找请求类型:2授信成功、3授信失败、4放款成功、5放款失败、6清算的单,7提现,并且当前的授信状态是0授信中 List<OneClickData> oneClickDataList=oneClickDataRespository.findByCreditStatusAndTypeNotIn(0, 1); if(oneClickDataList.size()>0 || oneClickDataList !=null) { for (OneClickData oneClickData : oneClickDataList) { // 当前授信中的单在apply_quota 查看状态是apply_status=1 时间倒序,进行授信请求操作 log.info("打印一下oneClickData.getUserId()={},oneClickData.getChannelCode()={}",oneClickData.getUserId(),oneClickData.getChannelCode()); QuotaCredit quotaCredit1 = phoneInfoService.selectUserAuditRecords(Long.parseLong(oneClickData.getUserId()), Long.parseLong(oneClickData.getChannelCode())); if (Objects.isNull(quotaCredit1)) { log.info("不符合授信审核申请的条件"); } else { //如何条件的单进行授信申请请求 log.info("符合授信审核申请的条件oneClickData={},quotaCredit1={}", oneClickData, quotaCredit1); try { creditGrantingService.authAmountAuditNotifyMq(oneClickData, quotaCredit1); } catch (Exception e) { log.info("进入异常e={}", e); } } } }else{ log.info("oneClickDataList为空={}",oneClickDataList); } } @Override public void excuteFundSucessJob() { } @Override public void excuteFundFailJob() { } @Override public void excuteFundJob() { //查找请求类型:4放款成功、5放款失败、6清算的单,并且当前的授信状态是0授信中 List<OneClickData> oneClickDataList = oneClickDataRespository.findByCreditStatusAndTypeNotIn(2, 1, 2, 3, 7); if (oneClickDataList.size() > 0 || oneClickDataList != null) { for (OneClickData oneClickData : oneClickDataList) { log.info("打印一下oneClickData.getLoanId={}", oneClickData.getLoanId()); if(StringUtils.isNotEmpty(oneClickData.getLoanId()) ){ LoanApplicationHistory loanApplicationHistory = loanOperationService.selectLoanId(Long.parseLong(oneClickData.getLoanId())); if (Objects.isNull(loanApplicationHistory)) { log.info("不符合放款条件的单"); } else { log.info("符合放款条件loanApplicationHistory={}", loanApplicationHistory); String progress=loanApplicationHistory.getProgress().getDescription().trim(); //提现操作尚未成功,重新操作提现 if(LoanProgress.WAITING_FUND.getDescription().equals(progress) || LoanProgress.START_ORDER.getDescription().equals(progress)){ // 没有成功提现,再次调用提现操作 oneClickDataQueueOperateService.applyLendingNotifyOnly(oneClickData); }else if(LoanProgress.FINAL_SENDED_TO_FUNDING_CORP.getDescription().equals(progress)){ try { String payStatus="3"; if(oneClickData.getType() == TypeEnum.LOANFAIL.getCode() ){ payStatus="4"; }else { payStatus="3"; } loanOperationService.payNotify(oneClickData,payStatus); } catch (Exception e) { log.info("进入异常e={}", e.getMessage()); } }else if(LoanProgress.CHECK_REPAYMENT_PLAN.getDescription().equals(progress)){ log.info("当前已经是放款状态了,直接修改放款成功15"); oneClickDataRespository.updateLoanStatusById(LoanStatusEnum.CHECK_REPAYMENT_PLAN.getCode(), oneClickData.getId()); }else { log.info("当前的放款状态不对,非20 21 ,请查看数据库状态"); oneClickDataRespository.updateLoanStatusById(LoanStatusEnum.LOAN_SCHEDULE_FAIL.getCode(), oneClickData.getId()); } } }else{ log.info("尚未生成放款单,未进入提现环节的错误数据"); } } }else{ log.info("oneClickDataList为空={}",oneClickDataList); } } @Override public void excuteSelectFundStatusJob() { } }
\ No newline at end of file
......
......@@ -36,23 +36,23 @@ public class OneClickDataOperateServiceImpl implements OneClickDataOperateServic
private CreditGrantingService creditGrantingService;
@Override
public Result OnekeyApply(OneClickModel oneClickModel) {
public Result onekeyApply(OneClickModel oneClickModel) {
return applyLoanService.applyLoan(oneClickModel);
}
@Override
public Result OneKeyCashWithdrawal(OneClickModel oneClickModel)throws Exception {
public Result oneKeyCashWithdrawal(OneClickModel oneClickModel)throws Exception {
return OneKeyCreditSuccessOrFail(oneClickModel);
return oneKeyCreditSuccessOrFail(oneClickModel);
}
@Override
public Result OneKeyCreditSuccessOrFail(OneClickModel oneClickModel) throws Exception {
public Result oneKeyCreditSuccessOrFail(OneClickModel oneClickModel) throws Exception {
return applyLoanService.applyLoan(oneClickModel);
}
public Result OneKeyCreditSuccessOrFailOld(OneClickModel oneClickModel) throws Exception {
public Result oneKeyCreditSuccessOrFailOld(OneClickModel oneClickModel) throws Exception {
Result creditResult=applyLoanService.applyLoan(oneClickModel);
if(creditResult.getCode()== ApplicationStatus.SUCCESS.getCode()){
log.info("申请成功后,进入风控回调环境={}",creditResult);
......@@ -66,8 +66,8 @@ public class OneClickDataOperateServiceImpl implements OneClickDataOperateServic
}
@Override
public Result OneKeyLoanSuccessOrFail(OneClickModel oneClickModel)throws Exception {
return OneKeyCreditSuccessOrFail(oneClickModel);
public Result oneKeyLoanSuccessOrFail(OneClickModel oneClickModel)throws Exception {
return oneKeyCreditSuccessOrFail(oneClickModel);
}
public Page<OneClickSelectModel> findOneClickSelectModelByCriteriaQueryPage(OneClickSelectModel oneClickSelectModel){
......
......@@ -4,7 +4,9 @@ package cn.quantgroup.cashloanflowboss.api.oneclickdata.service.impl;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.ResposeResultEnum;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.PhoneInfoService;
import cn.quantgroup.cashloanflowboss.spi.user.service.XyqbUserService;
import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.FinanceProduct;
import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.QuotaCredit;
import cn.quantgroup.cashloanflowboss.spi.xyqb.repository.IFinanceProductRepository;
import cn.quantgroup.cashloanflowboss.spi.xyqb.repository.QuotaCreditRepository;
import cn.quantgroup.cashloanflowboss.utils.GetAuthorization;
import cn.quantgroup.cashloanflowboss.utils.http.HttpRequest;
......@@ -18,6 +20,7 @@ import org.testng.Assert;
import org.testng.annotations.Test;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
......@@ -39,6 +42,8 @@ public class PhoneInfoServiceImpl implements PhoneInfoService {
@Autowired
private QuotaCreditRepository quotaCreditRepository;
@Autowired
private IFinanceProductRepository iFinanceProductRepository;
@Autowired
private XyqbUserService xyqbUserService;
public String getToken(String phone,String createdFrom) throws Exception {
......@@ -174,6 +179,11 @@ public class PhoneInfoServiceImpl implements PhoneInfoService {
}
@Override
public List<FinanceProduct> getFinanceProduct(Long fundCorpId){
return iFinanceProductRepository.findByFundCorpId(fundCorpId);
}
public static void main(String[] args) throws Exception {
PhoneInfoServiceImpl phon = new PhoneInfoServiceImpl();
......
......@@ -5,6 +5,7 @@ import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.ResposeResultEnum;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.repository.OneClickDataRespository;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.PhoneInfoService;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.RepaymentPlatService;
import cn.quantgroup.cashloanflowboss.core.base.Result;
import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.RepaymentPlan;
import cn.quantgroup.cashloanflowboss.spi.xyqb.repository.IRepaymentPlanRepository;
import cn.quantgroup.cashloanflowboss.utils.http.HttpRequest;
......@@ -39,24 +40,36 @@ public class RepaymentPlatServiceImpl implements RepaymentPlatService {
@Value("${pay.http.net}")
private String payHttp;
@Override
public RepaymentPlan whetherHaveRepayment0rdersList(OneClickData oneClickData) {
public Result whetherHaveRepayment0rdersList(OneClickData oneClickData) {
try {
List<RepaymentPlan> repaymentPlanList=greRepaymentList(oneClickData.getLoanId());
if(repaymentPlanList.size()>0){
try {
String token=phoneInfoService.getToken(oneClickData.getPhone(),oneClickData.getChannelCode());
String repayToken= getRepaymentToken( oneClickData.getLoanId(), token);
if(StringUtils.isNotEmpty(repayToken) && StringUtils.isNotEmpty(token)){
getRepaymentOrdersList(oneClickData.getLoanId(), token, repayToken, oneClickData);
String token=phoneInfoService.getToken(oneClickData.getPhone(), oneClickData.getChannelCode());
log.info("获取oneClickData={},token={}",oneClickData,token);
if( StringUtils.isNotEmpty(token)){
JSONObject resultRepaymentOrdersList= getRepaymentOrdersList(oneClickData.getLoanId(), token, oneClickData);
return Result.buildSuccess(resultRepaymentOrdersList,"返回结果值");
}else {
log.info("token信息有问题,token={},repayToken={}",token,repayToken);
log.info("token信息有问题,token={}",token);
return Result.buildFail("token信息有问题");
}
}else {
return Result.buildFail("token信息有问题");
}
}catch (Exception e){
log.info("获取token失败e={}",e);
}
return Result.buildFail("进入异常中。。。");
}
return null;
}
public List<RepaymentPlan> greRepaymentList(String loanId){
......@@ -64,8 +77,9 @@ public class RepaymentPlatServiceImpl implements RepaymentPlatService {
}
@Override
public JSONObject getRepaymentOrdersList(String loanID, String token,String repaymentToken,OneClickData oneClickData) {
public JSONObject getRepaymentOrdersList(String loanID, String token,OneClickData oneClickData) {
String url= mapiHttp+"/xjd/repayment/plans";
Map<String, String> paras =new HashMap<String, String>();
paras.put("id", loanID);
Map<String, String> header =new HashMap<String, String>();
......@@ -74,9 +88,28 @@ public class RepaymentPlatServiceImpl implements RepaymentPlatService {
JSONObject result= HttpRequest.doPostReturnResponseJson(url, paras, header);
String businessCode=result.get("businessCode").toString().trim();
if(businessCode.equals(ResposeResultEnum.BUSINESSCODE.getDesc())){
getCardListInfo(repaymentToken, oneClickData);
String repaymentToken= getRepaymentToken( oneClickData.getLoanId().trim(), token);
if(StringUtils.isNotEmpty(repaymentToken)){
return IsGetCardListInfo( repaymentToken, oneClickData);
}else {
return result;
}
}else {
return result;
}
}
public JSONObject IsGetCardListInfo(String repaymentToken,OneClickData oneClickData){
JSONObject resultGetCardListInfo= getCardListInfo(repaymentToken, oneClickData);
String businessCodeGetCardListInfo=resultGetCardListInfo.get("businessCode").toString().trim();
if(!Objects.isNull(resultGetCardListInfo) && businessCodeGetCardListInfo.equals(ResposeResultEnum.BUSINESSCODE.getDesc())){
return resultGetCardListInfo;
}else {
return resultGetCardListInfo;
}
}
@Override
......@@ -92,6 +125,7 @@ public class RepaymentPlatServiceImpl implements RepaymentPlatService {
header.put("Content-Type", "application/x-www-form-urlencoded");
header.put("X-Auth-Token", token);
JSONObject result= HttpRequest.doPostReturnResponseJson(url, paras, header);
log.info("打印一下result={}",result);
String businessCode=result.get("businessCode").toString().trim();
if(!Objects.isNull(result) && businessCode.equals(ResposeResultEnum.BUSINESSCODE.getDesc())){
if(StringUtils.isNotEmpty(result.get("data").toString().trim())){
......@@ -119,10 +153,12 @@ public class RepaymentPlatServiceImpl implements RepaymentPlatService {
if(!Objects.isNull(result) && businessCode.equals(ResposeResultEnum.BUSINESSCODE.getDesc())){
if (!Objects.isNull(result.get("data"))){
JSONObject data=(JSONObject) result.get("data");
log.info("获取卡信息的reslut={}",result);
boolean isRight=isCardInfo(data, oneClickData.getId());
//是继续调用金额还是重新绑卡确认
isPayMoneyInfo(isRight,repaymentToken,oneClickData);
}else {
return result;
}
......@@ -137,7 +173,7 @@ public class RepaymentPlatServiceImpl implements RepaymentPlatService {
if(isRight){ // 如果获取到了卡信息cardBindInfoId 调用获取金额信息接口
JSONObject payMoneyInfoResult=getPayMoneyInfo(repaymentToken);
// 是否继续走支付确认页面
boolean isOk= isPaymentConfirmation(payMoneyInfoResult,repaymentToken,oneClickData);
isPaymentConfirmation(payMoneyInfoResult,repaymentToken,oneClickData);
}else {
log.info("卡中不存在cardBindInfoId,需要确认绑定");
......@@ -184,11 +220,20 @@ public class RepaymentPlatServiceImpl implements RepaymentPlatService {
String preservePhoneNo=cardListObject.get("preservePhoneNo").toString().trim();
String cardId= cardListObject.get("id").toString().trim();
String cardBindInfoId ="";
log.info("获取当前的cardListObject={}",cardListObject);
if(cardListObject.toString().contains("cardBindInfoId")) {
cardBindInfoId=cardListObject.get("cardBindInfoId").toString().trim();
if(cardBindInfoId.equals("0")){
//修改卡信息保存到表中,并且当前的cardBindInfoId没有值
updateCardInfo(payApproach,preservePhoneNo,cardId,cardBindInfoId,id);
return false;
}else {
//修改卡信息保存到表中
updateCardInfo(payApproach,preservePhoneNo,cardId,cardBindInfoId,id);
return true;
}
}else{
//修改卡信息保存到表中
updateCardInfo(payApproach,preservePhoneNo,cardId,"",id);
......@@ -276,6 +321,7 @@ public class RepaymentPlatServiceImpl implements RepaymentPlatService {
String businessCode= paymentConfirmationResult.get("businessCode").toString().trim();
if(!Objects.isNull(paymentConfirmationResult) && businessCode.equals(ResposeResultEnum.BUSINESSCODE.getDesc())){
JSONObject bankCardAuthenticationInformationResult=bankCardAuthenticationInformation(repaymentToken);
log.info("打印bankCardAuthenticationInformationResult={}",bankCardAuthenticationInformationResult);
String bankCardAuthenticationInformationBusinessCode=bankCardAuthenticationInformationResult.get("businessCode").toString().trim();
if (!Objects.isNull(bankCardAuthenticationInformationResult) && bankCardAuthenticationInformationBusinessCode.equals(ResposeResultEnum.BUSINESSCODE.getDesc())){
......@@ -335,7 +381,6 @@ public class RepaymentPlatServiceImpl implements RepaymentPlatService {
Map<String, String> header =new HashMap<String, String>();
header.put("X-Auth-Token", repaymentToken);
JSONObject result= HttpRequest.doGetReturnResponseJson(url,param, header);
String businessCode =result.get("businessCode").toString().trim();
return result;
}
......@@ -345,7 +390,7 @@ public class RepaymentPlatServiceImpl implements RepaymentPlatService {
Map<String, String> header =new HashMap<String, String>();
header.put("X-Auth-Token", repaymentToken);
JSONObject result= HttpRequest.doGetReturnResponseJson(url,null, header);
Assert.assertEquals(result.get("businessCode").toString().trim(), "0000");
log.info("银行卡信息认证结果result={}",result);
return result;
}
......
......@@ -53,7 +53,7 @@ public class ScheduleServiceImpl implements ScheduleService {
@Override
public void fetchDataLoanJob() throws Exception {
// GetScheduleJob.getScheduleJob(nameSpace, "clotho-elastic-job", "cn.qg.clotho.job.FetchDataLoanJob");
// jolyneService.reloadJob("cn.qg.clotho.job.FetchDataLoanJob");
jolyneService.reloadJob("cn.qg.clotho.job.FetchDataLoanJob");
}
@Override
......
......@@ -14,9 +14,14 @@ public class SelectCreditStatusJobNew {
private OneClickDataOperateJobService oneClickDataOperateJobService;
@Scheduled(cron = "0 0/1 * * * ?")
// @Scheduled(cron = "0 45 20 * * ?")
public void execute() {
System.out.print("hello WORLD");
oneClickDataOperateJobService.excuteSelectCreditStatusJob();
}
@Scheduled(cron = "0 0/1 * * * ?")
public void executeFund() {
System.out.print("状态是21尚未成功放款的到哪");
oneClickDataOperateJobService.excuteFundJob();
}
}
......@@ -12,7 +12,7 @@ public class QueueServiceImpl implements QueueService {
OneClickDataQueueOperateServiceImpl oneClickDataQueueOperateService;
@Override
public void oneClickHandleMessage(String message) {
log.info("[oneClickHandleMessage]message=" + message);
log.info("[oneClickHandleMessage]message={}", message);
oneClickDataQueueOperateService.getCreditNotifyIsSucess(message);
}
}
package cn.quantgroup.cashloanflowboss.spi.xyqb.entity;
import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
/**
* 金融产品
*
* @author PoppyWong
* @since 2019/11/18.
*/
@Entity
@Data
@Table(name = "finance_product")
public class FinanceProduct implements Serializable {
private static final long serialVersionUID = -1L;
/**
* 主键id
*/
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 资方id
*/
@Column(name = "fund_corp_id")
private Long fundCorpId;
/**
* 月利率
*/
@Column(name = "monthly_interest_rate")
private BigDecimal monthlyInterestRate;
/**
* 还款类型:1:等额本金:0:等额本息
*/
@Column(name = "repayment_type")
private Integer repaymentType;
/**
* 计息规则
*/
@Column(name = "repayment_rule")
private String repaymentRule;
/**
* 数据有效性标志位
*/
@Column(name = "is_active")
private Integer isActive;
/**
* 描述
*/
@Column(name = "remark")
private String remark;
/**
* 创建时间
*/
@Column(name = "created_at")
private Timestamp createdAt;
/**
* 更新时间
*/
@Column(name = "updated_at")
private Timestamp updatedAt;
/**
* {1:"0.0001",2:"0.00012",0:"0.00011"}0表示任何其他期
*/
@Column(name = "service_fee_config")
private String serviceFeeConfig;
/**
* 展示日利率
*/
@Column(name = "show_day_interest")
private BigDecimal showDayInterest;
/**
* 展示月利率
*/
@Column(name = "show_month_interest")
private BigDecimal showMonthInterest;
/**
* 展示年利率
*/
@Column(name = "show_year_interest")
private BigDecimal showYearInterest;
}
package cn.quantgroup.cashloanflowboss.spi.xyqb.repository;
import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.FinanceProduct;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
/**
* @author PoppyWong
* @since 2019/11/18.
*/
public interface IFinanceProductRepository extends JpaRepository<FinanceProduct, Long> {
@Query(value = "select * from finance_product where fund_corp_id = ?1 and is_active = 1", nativeQuery = true)
List<FinanceProduct> findByFundCorpId(Long fundCorpId);
@Query(value = "select * from finance_product where id = ?2 and fund_corp_id = ?1 and is_active = 1", nativeQuery = true)
FinanceProduct findByFundCorpIdAndProductId(Long fundCorpId, Long productId);
}
......@@ -48,7 +48,7 @@ public interface WaitingFundingCorpOperatePeopleRepository extends CrudRepositor
* @return
*/
@Query(value = "select count(*) from xyqb.waiting_funding_corp_operate_people where funding_corp_progress=0 and funding_corp_id= ?1", nativeQuery = true)
Long queryCountByFundingCorpProgressAndCorpLoanId(Long fundId);
Integer queryCountByFundingCorpProgressAndCorpLoanId(Long fundId);
......
......@@ -25,7 +25,7 @@ public interface XYQBCenterService {
Map queryLendingRecordCount(Long fundId);
Long queryLendingRecordSumCount(Long fundId);
Integer queryLendingRecordSumCount(Long fundId);
BigDecimal queryLendingRecordAmountMountSumCount(Long fundId);
......
......@@ -99,7 +99,7 @@ public class XYQBCenterServiceImpl implements XYQBCenterService {
* @return
*/
@Override
public Long queryLendingRecordSumCount(Long fundId) {
public Integer queryLendingRecordSumCount(Long fundId) {
return this.waitingFundingCorpOperatePeopleRepository.queryCountByFundingCorpProgressAndCorpLoanId(fundId);
}
......
......@@ -16,7 +16,7 @@ public class GetBiNoAndFinanceProducts {
JSONArray financeProducts=new JSONArray();
JSONArray terms=new JSONArray();
JSONObject para1=new JSONObject();
if (productId == CommonType.PRODUCTTYPEONE.getCode() || productId == CommonType.PRODUCTTYPEFOUR.getCode() || productId==CommonType.PRODUCTID900.getCode() || productId == CommonType.PRODUCTID910.getCode() || productId == CommonType.PRODUCTTYPEONE.getCode()){
if (productId == CommonType.PRODUCTTYPEONE.getCode() || productId == CommonType.PRODUCTTYPEFOUR.getCode() || productId == CommonType.PRODUCTID920.getCode() || productId == CommonType.PRODUCTID900.getCode() || productId == CommonType.PRODUCTID910.getCode() || productId == CommonType.PRODUCTTYPEONE.getCode()){
if(productId == CommonType.PRODUCTID900.getCode()){
getResult.put("biNo", "9");
......@@ -41,6 +41,7 @@ public class GetBiNoAndFinanceProducts {
JSONObject jsonFundInfo=new JSONObject();
jsonFundInfo.put("fundId",listPara1.get(2).toString().trim());
jsonFundInfo.put("rate",listPara1.get(3).toString().trim());
jsonFundInfo.put("fundProductId", listPara1.get(5).toString().trim());
jsonFundInfo.put("rateType","1");
jsonFundInfo.put("priority","1");
jsonFundInfo.put("feeType","1");
......
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