Commit 4e27e083 authored by suntao's avatar suntao

结清操作

parent 5e1c5c71
...@@ -201,6 +201,20 @@ public class OrderController { ...@@ -201,6 +201,20 @@ public class OrderController {
} }
/**
* 订单还款计划
*
* @param channelOrderNumber
* @return
*/
@Security(authorityId = "Order.settle")
@CheckChannelRole(channelOrderNumberSPEL = "#this[0]")
@GetMapping("/settle")
public Result settle(String channelOrderNumber) {
return Result.buildSuccess(orderService.settle(channelOrderNumber));
}
......
package cn.quantgroup.cashloanflowboss.api.order.model; package cn.quantgroup.cashloanflowboss.api.order.model;
import cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.StringUtils;
/** /**
* function: * function:
...@@ -12,4 +14,13 @@ import lombok.Data; ...@@ -12,4 +14,13 @@ import lombok.Data;
public class QueryXyqbOrderStatus { public class QueryXyqbOrderStatus {
private String status; private String status;
private Long updateTime; private Long updateTime;
private KANoticeType kaNoticeType;
public KANoticeType getKaNoticeType() {
if (StringUtils.isEmpty(this.status)) {
return null;
}
return KANoticeType.valueOf(this.status);
}
} }
...@@ -52,4 +52,11 @@ public interface OrderService { ...@@ -52,4 +52,11 @@ public interface OrderService {
Object findRepaymentPlan(String channelOrderNumber, Long loanId); Object findRepaymentPlan(String channelOrderNumber, Long loanId);
void loadSecondAuditJob(); void loadSecondAuditJob();
/**
* 结清
* @param channelOrderNumber
* @return
*/
Tuple<Boolean,String> settle(String channelOrderNumber);
} }
...@@ -5,6 +5,7 @@ import cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogServiceImp ...@@ -5,6 +5,7 @@ import cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogServiceImp
import cn.quantgroup.cashloanflowboss.core.annotation.opt.OperationAnno; import cn.quantgroup.cashloanflowboss.core.annotation.opt.OperationAnno;
import cn.quantgroup.cashloanflowboss.core.base.Tuple; import cn.quantgroup.cashloanflowboss.core.base.Tuple;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackFailRecord; import cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackFailRecord;
import cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType;
import cn.quantgroup.cashloanflowboss.spi.clf.model.LoanProgress; import cn.quantgroup.cashloanflowboss.spi.clf.model.LoanProgress;
import cn.quantgroup.cashloanflowboss.api.channel.entity.ChannelConf; import cn.quantgroup.cashloanflowboss.api.channel.entity.ChannelConf;
...@@ -443,8 +444,7 @@ public class OrderServiceImpl implements OrderService{ ...@@ -443,8 +444,7 @@ public class OrderServiceImpl implements OrderService{
ArrayList<Object> cancel_list = Lists.newArrayList(); ArrayList<Object> cancel_list = Lists.newArrayList();
cancel_list.add("update xyqb.quota_credit set is_active=0 where user_id=" + userId); cancel_list.add("update xyqb.quota_credit set is_active=0 where user_id=" + userId);
cancel_list.add("update xyqb.quota_account set is_active=0 where user_id=" + userId); cancel_list.add("update xyqb.quota_account set is_active=0 where user_id=" + userId);
cancel_list.add("update xyqb.loan_application_history set progress=16 where user_id=" + userId); cancel_list.add("update xyqb.loan_application_history set progress=16,is_active=0 where user_id=" + userId);
cancel_list.add("update xyqb.loan_application_history set is_active=0 where user_id=" + userId);
cancel_list.add("delete from apply_quota_record where user_id=" + userId); cancel_list.add("delete from apply_quota_record where user_id=" + userId);
cancel_list.add("delete from user_operation_history where user_id=" + userId); cancel_list.add("delete from user_operation_history where user_id=" + userId);
data.put("sql", cancel_list); data.put("sql", cancel_list);
...@@ -531,7 +531,7 @@ public class OrderServiceImpl implements OrderService{ ...@@ -531,7 +531,7 @@ public class OrderServiceImpl implements OrderService{
} }
/** /**
* 贷后关单 * 贷后提现超时关单
* *
* @param * @param
* @return * @return
...@@ -539,7 +539,15 @@ public class OrderServiceImpl implements OrderService{ ...@@ -539,7 +539,15 @@ public class OrderServiceImpl implements OrderService{
@OperationAnno(channelNo = "#this[0]", opt = OptEnumName.LOAN_CANCEL, succSPEL = "#this.key", optDetailSPEL = "#this.value") @OperationAnno(channelNo = "#this[0]", opt = OptEnumName.LOAN_CANCEL, succSPEL = "#this.key", optDetailSPEL = "#this.value")
@Override @Override
public Tuple<Boolean,String> cancelAfterLoan(String channelOrderNumber) { public Tuple<Boolean,String> cancelAfterLoan(String channelOrderNumber) {
return huijinsuoCloseOrder72(channelOrderNumber);
}
/**
* 惠金所 72 小时提现超时
* @param channelOrderNumber
* @return
*/
private Tuple<Boolean,String> huijinsuoCloseOrder72(String channelOrderNumber) {
ClfOrderMapping orderMapping = this.clfOrderMappingRepository.findByChannelOrderNoLastOne(channelOrderNumber); ClfOrderMapping orderMapping = this.clfOrderMappingRepository.findByChannelOrderNoLastOne(channelOrderNumber);
if (orderMapping == null) { if (orderMapping == null) {
...@@ -649,6 +657,30 @@ public class OrderServiceImpl implements OrderService{ ...@@ -649,6 +657,30 @@ public class OrderServiceImpl implements OrderService{
jolyneService.loanDataJob(); jolyneService.loanDataJob();
} }
@OperationAnno(channelNo = "#this[0]", opt = OptEnumName.ALL_REPAID, succSPEL = "#this.key", optDetailSPEL = "#this.value")
@Override
public Tuple<Boolean,String> settle(String channelOrderNumber) {
OrderApprove approve = orderApproveRepository.findByChannelOrderNumber(channelOrderNumber);
ClfOrderMapping orderMapping = clfCenterService.findOrderMappingByChannelOrderNo(channelOrderNumber);
if (orderMapping != null && StringUtils.isNotEmpty(orderMapping.getApplyNo())) {
ServiceResult<XyqbCurrentOrderStatusServiceResultModel> xyqbOrderStatus = xyqbCenterService.getXyqbOrderStatus(orderMapping.getApplyNo(), orderMapping.getLoanId());
if (xyqbOrderStatus.isSuccess() && xyqbOrderStatus.getData() != null) {
if (KANoticeType.FUND_WAITING_WITHDRAW.equals(xyqbOrderStatus.getData().getCurrentStatus().getKaNoticeType())) {
// 如果是 存管待提现状态
return huijinsuoCloseOrder72(channelOrderNumber);
}
}
// 普通 订单 关单
return new Tuple<>(true, "操作成功");
} else {
return new Tuple<>(false, "订单不存在");
}
}
/** /**
* 查询订单状态 * 查询订单状态
......
...@@ -32,10 +32,14 @@ public enum KANoticeType { ...@@ -32,10 +32,14 @@ public enum KANoticeType {
ADD_CARD_SUCCESS("ADD_CARD_SUCCESS", "添加银行卡成功,非提现页面绑卡"), //23 ADD_CARD_SUCCESS("ADD_CARD_SUCCESS", "添加银行卡成功,非提现页面绑卡"), //23
REPAY_FAIL("REPAY_FAIL", "还款失败"), //24 REPAY_FAIL("REPAY_FAIL", "还款失败"), //24
UNKNOWN("UNKNOWN", "没有逻辑意义的数据库兼容的值"),
RP_INIT_F_SUCC("REPAYMENT_INIT_FUND_SUCC", "放款成功推送还款计划"),
APPROVE_ING("APPROVE_ING", "审批中"), APPROVE_ING("APPROVE_ING", "审批中"),
PAY_ING("PAY_ING", "放款中"), PAY_ING("PAY_ING", "放款中"),
WITHDRAW_APPROVING("WITHDRAW_APPROVING", "提现审批中"), //对应loan状态50,等待二次审核
FUND_WAITING_WITHDRAW("FUND_WAITING_WITHDRAW", "放款成功,等待二次提现"),
UNKNOWN("UNKNOWN", "没有逻辑意义的数据库兼容的值"),
RP_INIT_F_SUCC("REPAYMENT_INIT_FUND_SUCC", "放款成功推送还款计划"),
TEST("TEST", "test"); TEST("TEST", "test");
......
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