Commit 6d80433d authored by shangying's avatar shangying

渠道查询接口

parent b51ec9dd
package cn.quantgroup.cashloanflowboss.api.oneclickdata.controller;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.OneClickModel;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.OneClickReslut;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.OneClickSelectModel;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.TypeEnum;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.*;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.CommMethod;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.OneClickDataOperateService;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.OneClickDataQueueOperateService;
import cn.quantgroup.cashloanflowboss.core.base.Result;
......@@ -14,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import java.util.logging.Logger;
/**
......@@ -28,7 +27,8 @@ public class OneClickDataController {
private OneClickDataOperateService oneClickDataOperateService;
@Autowired
private OneClickDataQueueOperateService oneClickDataQueueOperateService;
@Autowired
CommMethod commMethod;
private OneClickModel oneClickModelNew;
@PostMapping("/v1/type")
......@@ -69,6 +69,15 @@ public class OneClickDataController {
return Result.buildSuccess("ok");
}
@GetMapping("/v1/channelCode")
public Result OneClickDataChannelCodeList(){
List<OneClickChannelCodeModel> oneClickChannelCodeModelList= commMethod.getChannelCodeList();
return Result.buildSuccess(commMethod);
}
public Result OnekeyApply(OneClickModel oneClickModel) {
return oneClickDataOperateService.OnekeyApply(oneClickModel);
......
......@@ -9,9 +9,9 @@ import lombok.Getter;
public enum ChannelEnum {
ZHANGHZONG("159858","掌众"),
SHIGUANGFQ("159865","时光分期"),
XIAOJUMAO("159869","时光分期"),
GUOMEI("159865","时光分期"),
WEIDIAN("159865","时光分期");
XIAOJUMAO("159869","小桔猫"),
GUOMEI("159843","国美"),
WEIDIAN("159849","微店");
private String code;
......
......@@ -26,7 +26,8 @@ public enum LoanStatusEnum {
BIND_SUCC_NOTHAVEFUNDORDER(34,"提现成功,未查询到放款单"),
DIRECT_INVESTMENT_FAILURE(34,"直投打款失败"),
LOAN_REQUEST_FAILED (35,"放款请求失败"),
DIRECT_INVESTMENT_SUCCESS_STATUSNOTRIGHT (36,"直投打款成功,但状态不对");
DIRECT_INVESTMENT_SUCCESS_STATUSNOTRIGHT (36,"直投打款成功,但状态不对"),
FINAL_FUNDED_APPROVAL_FAIL(37,"马上金融放款失败");
private int code;
private String desc;
......
package cn.quantgroup.cashloanflowboss.api.oneclickdata.model;
import lombok.Data;
/**
* Created by shang on 2020/1/3.
*/
@Data
public class OneClickChannelCodeModel {
private String channel;
private String channelCode;
public OneClickChannelCodeModel(){}
public OneClickChannelCodeModel(String channel,String channelCode){
this.channel=channel;
this.channelCode=channelCode;
}
}
......@@ -13,7 +13,12 @@ public enum ResposeResultEnum {
CONTEXT(4, "success"),
FUAD_ASSIFN_SUCC(5,"FUAD_ASSIFN_SUCC"),
FUND_SUCC(6,"FUND_SUCC"),
FUND_CORD210(7,"210");
FUND_CORD210(7,"210"),
CREDIT_SUCC(8,"true"),
CREDIT_FAIL(9,"false"),
CONTEXT_FAIL(10, "FAIL"),
CONTEXT_SUCCESS(11, "SUCCESS"),
STATUSCODEONE(12,"0");
private int code;
private String desc;
......
......@@ -74,4 +74,14 @@ public interface OneClickDataRespository extends JpaRepository<OneClickData, Lon
@Modifying
@Query(value = "update one_click_data set quota_record_order_no= ?1,order_no= ?2,product_id= ?3,token= ?4,biz_type= ?5 where id= ?6", nativeQuery = true)
int updateById(String quotaRecordOrderNo,String orderNo,String productId,String token,Integer bizType ,Long id);
// 通过id修改 添加支付方式 预留手机号、卡号、绑卡信息id
@Transactional(rollbackFor = Exception.class)
@Modifying
@Query(value = "update one_click_data set pay_approach= ?1,preserve_phone_no= ?2,card_id= ?3,card_bind_info_id= ?4 where id= ?5", nativeQuery = true)
int updateBankInfoById(String payApproach,String preservePhoneNo,String cardId,String cardBindInfoId,Long id);
}
......@@ -5,17 +5,20 @@ import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.OneClickReslut;
import cn.quantgroup.cashloanflowboss.core.base.Result;
import com.alibaba.fastjson.JSONObject;
import java.util.Map;
/**
* Created by shang on 2019/12/3.
*/
public interface ApplyLoanService {
public static boolean reslut=true;
Result applyLoan(OneClickModel oneClickModel);
JSONObject zhangZhongApply(OneClickModel oneClickModel,String md5Keywy,String aesKeywy);
JSONObject shiGuangFenQiApply();
JSONObject xiaoJMApply();
JSONObject guoMeiApply();
JSONObject weiDianApply();
JSONObject defautApply();
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> defautApply(OneClickModel oneClickModel,String name,String channelUserId);
}
package cn.quantgroup.cashloanflowboss.api.oneclickdata.service;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.OneClickChannelCodeModel;
import java.util.List;
/**
* Created by shang on 2020/1/3.
*/
public interface CommMethod {
/**
* 查询当前可用的渠道code 和操的codeName
*/
List<OneClickChannelCodeModel> getChannelCodeList();
}
package cn.quantgroup.cashloanflowboss.api.oneclickdata.service;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.entity.OneClickData;
import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.RepaymentPlan;
import com.alibaba.fastjson.JSONObject;
......@@ -10,11 +11,11 @@ public interface RepaymentPlatService {
/**
* 是否有未还款计划
**/
RepaymentPlan whetherHaveRepayment0rdersList(String loanId);
RepaymentPlan whetherHaveRepayment0rdersList(OneClickData oneClickData);
/**
* 获取还款计划表
**/
void getRepayment0rdersList(String loanID,String token);
JSONObject getRepaymentOrdersList(String loanID, String token,String repaymentToken,OneClickData oneClickData);
/**
* 支付中心token获取
**/
......@@ -23,48 +24,48 @@ public interface RepaymentPlatService {
* 获取卡信息
*
* */
JSONObject getCardListInfo(String repaymentToken);
JSONObject getCardListInfo(String repaymentToken,OneClickData oneClickData);
/**
* 获取金额信息
*
* * */
void getPayMoneyInfo(String repaymentToken);
JSONObject getPayMoneyInfo(String repaymentToken);
/**
* 支付确认页面
* */
void paymentConfirmation(String cardBindInfoId1,String cardId);
JSONObject paymentConfirmation(OneClickData oneClickData,String repaymentToken);
/**
* 银行卡认证信息
* */
void bankCardAuthenticationInformation(String repaymentToken);
JSONObject bankCardAuthenticationInformation(String repaymentToken);
/**
* 发送验证码
* */
void sendSMS(String repaymentToken);
JSONObject sendSMS(String repaymentToken);
/**
* 确认支付
* */
void confirmPayment(String repaymentToken);
JSONObject confirmPayment(String repaymentToken);
/**
* 绑卡操作
* */
void bingCard(String repaymentToken,JSONObject info);
JSONObject bingCard(String repaymentToken, String cardId ,String preservePhoneNo,String payApproach);
/**
* 绑卡操作-获取短信验证码
* */
void bingCardSms(String repaymentToken,JSONObject info);
JSONObject bingCardSms(String repaymentToken,String cardId,String preservePhoneNo,String payApproach);
/**
* 绑卡操作-确认绑卡
* */
void bingCardSmsConfirm(String repaymentToken,JSONObject info);
JSONObject bingCardSmsConfirm(String repaymentToken, String cardId,String payApproach);
}
......@@ -60,21 +60,21 @@ public class CashWithdrawalServiceImpl implements CashWithdrawalService{
log.info("oneClickData={}",oneClickData);
md5Keywy=clfChannelConfiguration.getMd5Key();
aesKeywy=clfChannelConfiguration.getAesKey();
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;
}
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);
......@@ -128,10 +128,120 @@ public class CashWithdrawalServiceImpl implements CashWithdrawalService{
return applicationHistory;
}
/**
* 掌众的申请提现
public JSONObject applyLoan(OneClickData oneClickData,String md5Keywy,String aesKeywy){
Map<String,String> paras = new HashMap<String, String>();
String bankCardNumber= BankCardNumberGenerator.generate(BankNameEnum.CCB, BankCardTypeEnum.DEBIT);
String bankCode="CCB";
String bankName="建设银行";
String url ="";
if(oneClickData.getChannelCode().trim().equals(ChannelEnum.ZHANGHZONG.getCode())){
url=qapiHttp+"/ex/api/v2/withdraw/ZHANGZHONG";
paras= applyZhangZhongLoan(oneClickData,bankCardNumber,bankCode,bankName);
}else if(oneClickData.getChannel().equals(ChannelEnum.SHIGUANGFQ.getCode())){
url=qapiHttp+"/ex/api/v2/withdraw/SHIGUANGFQ";
paras= applyShiGuangFenQiLoan(oneClickData, bankCardNumber, bankCode, bankName);
}else if(oneClickData.getChannel().equals(ChannelEnum.XIAOJUMAO.getCode())){
url=qapiHttp+"/ex/api/v2/withdraw/XIAOJUMAO";
paras= applyXiaoJMLoan(oneClickData, bankCardNumber, bankCode, bankName);
}else if(oneClickData.getChannel().equals(ChannelEnum.GUOMEI.getCode())){
url=qapiHttp+"/ex/api/v2/withdraw/GUOMEI";
paras= applyGuoMeiLoan(oneClickData, bankCardNumber, bankCode, bankName);
}else if(oneClickData.getChannel().equals(ChannelEnum.WEIDIAN.getCode())){
url=qapiHttp+"/ex/api/v2/withdraw/WEIDIAN";
paras= applyWeiDianLoan(oneClickData, bankCardNumber, bankCode, bankName);
}else{
}
String encryptContent = GetEncryptContentAndMd5.getEncryptContent(paras, aesKeywy, md5Keywy);
Map<String,String> content_map = new HashMap<String, String>();
content_map.put("content",encryptContent);
log.info("获取当前的paras={}",paras);
JSONObject result = HttpRequest.doPostReturnResponseJson(url, content_map);
return result;
}
/**
* 掌众的申请提现
* */
public Map 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);
paras.put("bankCode",bankCode);
paras.put("bankName",bankName);
paras.put("reservePhoneNumber", oneClickData.getPhone());
return paras;
}
/**
* 时光分期的申请提现
* */
public Map applyShiGuangFenQiLoan(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);
paras.put("bankCode",bankCode);
paras.put("bankName",bankName);
paras.put("reservePhoneNumber", oneClickData.getPhone());
return paras;
}
/**
* 小桔猫的申请提现
* */
public Map applyXiaoJMLoan(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);
paras.put("bankCode",bankCode);
paras.put("bankName",bankName);
paras.put("reservePhoneNumber", oneClickData.getPhone());
return paras;
}
/**
* 国美的申请提现
* */
public Map applyGuoMeiLoan(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);
paras.put("bankCode",bankCode);
paras.put("bankName",bankName);
paras.put("reservePhoneNumber", oneClickData.getPhone());
return paras;
}
/**
* 微店的申请提现
* */
public Map applyWeiDianLoan(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);
paras.put("bankCode",bankCode);
paras.put("bankName",bankName);
paras.put("reservePhoneNumber", oneClickData.getPhone());
return paras;
}
/**
* 掌众老的申请提现
* */
public JSONObject applyZhangZhongLoan(OneClickData oneClickData,String md5Keywy,String aesKeywy){
public JSONObject applyZhangZhongLoanOld(OneClickData oneClickData,String md5Keywy,String aesKeywy){
String url = qapiHttp+"/ex/api/v2/withdraw/ZHANGZHONG";
......@@ -157,4 +267,34 @@ public class CashWithdrawalServiceImpl implements CashWithdrawalService{
return result;
}
/**
* 时光分期老的申请提现
* */
public JSONObject applyShiGuangFenQiLoanOld(OneClickData oneClickData,String md5Keywy,String aesKeywy){
String url = qapiHttp+"/ex/api/v2/withdraw/SHIGUANGFQ";
String bankCardNumber= BankCardNumberGenerator.generate(BankNameEnum.CCB, BankCardTypeEnum.DEBIT);
String bankCode="CCB";
String bankName="建设银行";
Map<String,String> paras = new HashMap<String, String>();
paras.put("channelOrderNumber",oneClickData.getChannelOrderNo());
paras.put("bankCardNumber",bankCardNumber);
paras.put("bankCode",bankCode);
paras.put("bankName",bankName);
paras.put("reservePhoneNumber",oneClickData.getPhone());
String encryptContent = GetEncryptContentAndMd5.getEncryptContent(paras, aesKeywy, md5Keywy);
Map<String,String> content_map = new HashMap<String, String>();
content_map.put("content",encryptContent);
log.info("获取当前的paras={}",paras);
JSONObject result = HttpRequest.doPostReturnResponseJson(url, content_map);
return result;
}
}
package cn.quantgroup.cashloanflowboss.api.oneclickdata.service.impl;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.ChannelEnum;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.model.OneClickChannelCodeModel;
import cn.quantgroup.cashloanflowboss.api.oneclickdata.service.CommMethod;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* Created by shang on 2020/1/3.
*/
@Slf4j
@Service
public class CommMethodImpl implements CommMethod {
@Override
public List<OneClickChannelCodeModel> getChannelCodeList() {
List<OneClickChannelCodeModel> oneClickChannelCodeModelList=new ArrayList<OneClickChannelCodeModel>();
for(ChannelEnum channelEnum:ChannelEnum.values()){
OneClickChannelCodeModel oneClickChannelCodeModel=new OneClickChannelCodeModel(channelEnum.getCode(),channelEnum.getDesc());
oneClickChannelCodeModelList.add(oneClickChannelCodeModel);
}
return oneClickChannelCodeModelList;
}
}
......@@ -65,7 +65,7 @@ public class CreditGrantingServiceImpl implements CreditGrantingService{
String auditResult="true";
if(TypeEnum.CREDITSUCCESS.getCode() == oneClickData.getType() || TypeEnum.LOANSUCCESS.getCode() == oneClickData.getType() || TypeEnum.LOANFAIL.getCode() == oneClickData.getType() || TypeEnum.LIQUIDATION.getCode() == oneClickData.getType() || TypeEnum.CASHWITHDRAWAL.getCode() == oneClickData.getType()){
auditResult="true";
}else if(String.valueOf(TypeEnum.CREDITFAIL.getCode()).equals(oneClickData.getType())){
}else if(TypeEnum.CREDITFAIL.getCode() == oneClickData.getType()){
auditResult="false";
}else {
log.info("非授信需要的状态,打印一下oneClickModel.getType()={}",oneClickData.getType());
......@@ -243,7 +243,13 @@ public class CreditGrantingServiceImpl implements CreditGrantingService{
//把授信请求通知的数据存放到表one_click_data中
int update= oneClickDataRespository.updateById(quotaRecordOrderNo.toString().trim(), quotaRecordOrderNo.toString().trim(), String.valueOf(productId).toString().trim(), getToken.toString().trim(),quotaCredit.getProductType(), oneClickData.getId());
// 修改授信状态授信成功CreditStatusEnum.CREDIT_SUCC
oneClickDataRespository.updateCreditStatusById(CreditStatusEnum.CREDIT_SUCC.getCode(), oneClickData.getId());
if(auditResult.equals(ResposeResultEnum.CREDIT_SUCC.getDesc())){
oneClickDataRespository.updateCreditStatusById(CreditStatusEnum.CREDIT_SUCC.getCode(), oneClickData.getId());
}else{
oneClickDataRespository.updateCreditStatusById(CreditStatusEnum.CREDIT_FAIL.getCode(), oneClickData.getId());
}
// 跑一遍计划
boolean fundplan=fundsAllocationplanService.fundPlannedDistribution(oneClickData.getFundCorpId());
if(fundplan){
......
......@@ -35,7 +35,8 @@ public class OneClickDataQueueOperateServiceImpl implements OneClickDataQueueOpe
@Autowired
private CreditGrantingService creditGrantingService;
@Autowired
private PhoneInfoService phoneInfoService;
private RepaymentPlatService repaymentPlatService;
@Override
public void getCreditNotifyIsSucess(String queueMsg) {
JSONObject queueMsgJson=(JSONObject)JSONObject.parse(queueMsg);
......@@ -53,7 +54,9 @@ public class OneClickDataQueueOperateServiceImpl implements OneClickDataQueueOpe
} else if(ResposeResultEnum.FUND_SUCC.getDesc().equals(noticeType)){
// 提现成功了,收到放款成功消息,修改oneClickData的放款状态
oneClickDataRespository.updateLoanStatusById(LoanStatusEnum.CHECK_REPAYMENT_PLAN.getCode(), oneClickData.getId());
if(oneClickData.getType() == TypeEnum.LIQUIDATION.getCode()){
}
}else{
log.info("没有找到对应需要处理的订单");
}
......@@ -210,8 +213,8 @@ public class OneClickDataQueueOperateServiceImpl implements OneClickDataQueueOpe
String businessCode=result.get("businessCode").toString().trim();
String code=result.get("code").toString().trim();
String statusCode=result.get("statusCode").toString().trim();
String success=result.get("success").toString().trim();
boolean isOk=(businessCode.equals(ResposeResultEnum.BUSINESSCODE.getDesc()) && code.equals(ResposeResultEnum.BUSINESSCODE.getDesc())) || (statusCode.equals(ResposeResultEnum.STATUSCODE.getDesc()) && success.equals(ResposeResultEnum.CONTEXT.getDesc()));
String context=result.get("context").toString().trim();
boolean isOk=(businessCode.equals(ResposeResultEnum.BUSINESSCODE.getDesc()) && code.equals(ResposeResultEnum.BUSINESSCODE.getDesc())) || (statusCode.equals(ResposeResultEnum.STATUSCODE.getDesc()) && context.equals(ResposeResultEnum.CONTEXT_SUCCESS.getDesc())) || (statusCode.equals(ResposeResultEnum.STATUSCODE.getDesc()) && context.equals(ResposeResultEnum.CONTEXT_FAIL.getDesc()));
if (isOk) {
log.info("获取当前的isOk={}",isOk);
// 查看当前的放款单的状态是21
......@@ -226,11 +229,16 @@ public class OneClickDataQueueOperateServiceImpl implements OneClickDataQueueOpe
// 提现成功了,收到放款成功消息,修改oneClickData的放款状态
oneClickDataRespository.updateLoanStatusById(LoanStatusEnum.CHECK_REPAYMENT_PLAN.getCode(), oneClickData.getId());
} else {
} else if(LoanProgress.FINAL_FUNDED_APPROVAL_FAIL.getDescription().equals(progress1)){
// 提现成功了,收到放款失败消息,修改oneClickData的放款状态
oneClickDataRespository.updateLoanStatusById(LoanStatusEnum.FINAL_FUNDED_APPROVAL_FAIL.getCode(), oneClickData.getId());
}else {
log.info("放款请求成功,但是查询库中的状态不对progress1={}",progress1);
//直投打款成功,但状态不对
oneClickDataRespository.updateLoanStatusById(LoanStatusEnum.DIRECT_INVESTMENT_SUCCESS_STATUSNOTRIGHT.getCode(), oneClickData.getId());
}
//放款失败的逻辑需要添加
} else {
log.info("返回结果不对isOk");
......@@ -240,6 +248,9 @@ public class OneClickDataQueueOperateServiceImpl implements OneClickDataQueueOpe
}
public static void main(String[] arg){
// String queueMsg="{\"data\":{\"applyNo\":\"FM624168161855715731904356\",\"loanId\":0,\"loanProgress\":\"LOAN_APPLICATION_MANIFEST_COMPLETE\",\"termNo\":-1},\"extraData\":\"{\\\"amount\\\":\\\"10000.00\\\",\\\"annualInterest\\\":\\\"0.36\\\",\\\"assignTime\\\":1577153040895,\\\"term\\\":\\\"12\\\"}\",\"noticeType\":\"FUAD_ASSIFN_SUCC\"}\n";
System.out.print(LoanProgress.WAITING_FUND.toString());
......
......@@ -2,9 +2,11 @@ package cn.quantgroup.cashloanflowboss.spi.xyqb.repository;
import cn.quantgroup.cashloanflowboss.spi.xyqb.entity.RepaymentPlan;
import cn.quantgroup.cashloanflowboss.spi.xyqb.source.XYQBDataSource;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.sql.Timestamp;
import java.util.List;
......@@ -13,6 +15,8 @@ import java.util.List;
/**
* Created by root on 15-7-23.
*/
@XYQBDataSource
@Repository
public interface IRepaymentPlanRepository extends JpaRepository<RepaymentPlan, Long> {
List<RepaymentPlan> findByLoanApplicationHistoryIdOrderByTermNoAsc(Long loanApplicationHistoryId);
......@@ -21,8 +25,8 @@ public interface IRepaymentPlanRepository extends JpaRepository<RepaymentPlan, L
List<RepaymentPlan> findByUserId(long userid);
@Query(value = "SELECT * FROM xyqb.repayment_plan t WHERE t.loan_application_history_id = ?1 AND t.repayment_status in (0,2) order by t.term_no asc", nativeQuery = true)
List<RepaymentPlan> findByLoanIdAndStatus(Long loanId);
@Query(value = "SELECT * FROM xyqb.repayment_plan t WHERE t.loan_application_history_id = ?1 AND t.repayment_status in (0,2) AND current_repayment=0.00 order by t.term_no asc", nativeQuery = true)
List<RepaymentPlan> findByLoanIdAndRepaymentStatusAndCurrentRepayment(Long loanId);
List<RepaymentPlan> findByLoanApplicationHistoryIdAndTermNo(Long loanId, Integer termNo);
......
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