提交 b76e556b authored 作者: huyufan's avatar huyufan

Merge remote-tracking branch 'origin/v10.7_borrowing_and_repayment_20240118' into test

# Conflicts: # performance-web/src/main/java/com/clx/performance/controller/temp/TempBankController.java
......@@ -138,6 +138,7 @@ public enum PerformanceResultEnum implements ResultEnum {
OWNER_LOAN_RECORD_PAY_STATUS_ERROR(1850, "状态已变更无法支付"),
OWNER_LOAN_RECORD_CANCEL_STATUS_ERROR(1851, "状态已变更无法取消"),
OWNER_LOAN_RECORD_PAY_WAIT_ERROR(1852,"当前借款单状态不是待付款"),
;
private final int code;
......
......@@ -10,11 +10,11 @@ import java.util.Optional;
public enum OwnerLoanRecordEnum {
;
//“待审批”,“审批通过”,“审批拒绝”,“付款中”,“付款成功”,“付款失败”
@Getter
@AllArgsConstructor
public enum Status {
APPROVE_WAIT(10, "待审批"),
PAY_WAIT(15, "待付款"),
APPROVE_PASS(20, "审批通过"),
APPROVE_REFUSE(30, "审批拒绝"),
PAYING(40, "付款中"),
......
package com.clx.performance.param.pc.loan.carrier;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class OwnerRepaymentParam {
@ApiModelProperty("还款单号")
private Long repaymentNo;
@ApiModelProperty("支付通道:1订单支付 2转账支付")
private Integer payChannel;
}
......@@ -31,6 +31,6 @@ public class PageCarrierOwnerLoanRecordParam extends PageParam {
@ApiModelProperty("借款类型 1:虚拟货币 2:资金")
private Integer loanType;
@ApiModelProperty("10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
@ApiModelProperty("10 待审批 15 待付款 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
private Integer status;
}
......@@ -25,7 +25,7 @@ public class PageOwnerLoanRecordOfOwner extends PageParam {
@ApiModelProperty(value = "借款类型 1:虚拟货币 2:资金", example = "1")
private Integer loanType;
@ApiModelProperty(value = "10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ", example = "1")
@ApiModelProperty(value = "10 待审批 15 待付款 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ", example = "1")
private Integer status;
}
\ No newline at end of file
......@@ -43,7 +43,7 @@ public class CarrierOwnerOrderPaymentDetailVO {
@ApiModelProperty("10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
@ApiModelProperty("10 待审批 15 待付款 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
private Integer status;
@ApiModelProperty("订单支付状态 10 待付款 40 付款中 50 付款成功 60 付款失败")
......
......@@ -59,5 +59,8 @@ public class CarrierTransferPaymentDetailVO {
@ApiModelProperty("付款最后时间")
public String finalPaymentTime;
@ApiModelProperty("借款单号")
private Long loanNo;
}
......@@ -95,11 +95,11 @@ public class ExportOwnerLoanRecordVO {
private String payeeBankCode;
@ApiModelProperty("10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
@ApiModelProperty("10 待审批 15 待付款 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
private Integer status;
@ApiModelProperty("10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
@ApiModelProperty("10 待审批 15 待付款 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
private String statusMsg;
public String getStatusMsg(){
......
......@@ -91,11 +91,11 @@ public class OwnerLoanRecordVO {
private String payeeBankCode;
@ApiModelProperty("10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
@ApiModelProperty("10 待审批 15 待付款 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
private Integer status;
@ApiModelProperty("10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
@ApiModelProperty("10 待审批 15 待付款 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
private String statusMsg;
public String getStatusMsg(){
......
......@@ -26,6 +26,9 @@ public class OwnerOrderPaymentDetailVO {
@ApiModelProperty("还款单号")
private Long repaymentNo;
@ApiModelProperty("借款单号")
private Long loanNo;
@ApiModelProperty("付款方")
private String payment;
......
......@@ -22,6 +22,16 @@ import java.math.BigDecimal;
@Builder
public class OwnerTransferPaymentDetailVO {
@ApiModelProperty("还款单号")
private Long repaymentNo;
@ApiModelProperty("借款单号")
private Long loanNo;
@ApiModelProperty("收款户名")
private String payee;
......@@ -60,4 +70,5 @@ public class OwnerTransferPaymentDetailVO {
public String finalPaymentTime;
}
......@@ -200,4 +200,24 @@ public class RabbitBeanConfig {
public Binding ownerLoanBind() {
return BindingBuilder.bind(ownerLoanQueue()).to(ownerLoanExchange()).with(RabbitKeyConstants.OWNER_LOAN_ROUTE_KEY);
}
/**
* 货主还款队列
* @return
*/
@Bean
public Queue ownerRepaymentQueue() {
return new Queue(RabbitKeyConstants.OWNER_REPAYMENT_QUEUE, true, false, false);
}
/**
* 货主还款bind
* @return
*/
@Bean
public Binding ownerRepaymentBind() {
return BindingBuilder.bind(ownerLoanQueue()).to(ownerLoanExchange()).with(RabbitKeyConstants.OWNER_REPAYMENT_ROUTE_KEY);
}
}
......@@ -93,4 +93,8 @@ public class RabbitKeyConstants {
public static final String OWNER_LOAN_ROUTE_KEY ="clx-performance.loan.route.key";
public static final String OWNER_LOAN_QUEUE ="clx-performance.loan.queue";
public static final String OWNER_REPAYMENT_QUEUE ="clx-performance.owner.repayment.queue";
public static final String OWNER_REPAYMENT_ROUTE_KEY ="clx-performance.owner.repayment.route.key";
}
......@@ -41,13 +41,20 @@ public class CarrierOwnerLoanRecordController {
return Result.page(page.getRecords(),page.getTotal(),page.getPages());
}
@ApiOperation(value = "借款审批",notes = "<br>By:胡宇帆")
@ApiOperation(value = "借款审批(虚拟币直接增加,资金需要跳收银台提交申请)",notes = "<br>By:胡宇帆")
@PostMapping("/ownerLoanRecordApprove")
public Result<Object> ownerLoanRecordApprove(@RequestBody @Validated CarrierOwnerLoanRecordApproveParam param) {
ownerLoanRecordService.ownerLoanRecordApprove(param);
return Result.ok();
}
@ApiOperation(value = "借款提交申请(调用宁波银行)",notes = "<br>By:胡宇帆")
@PostMapping("/ownerLoanRecordSubmitNbBank")
public Result<Object> ownerLoanRecordSubmitNbBank(@RequestBody @Validated CarrierOwnerLoanRecordApproveParam param) {
ownerLoanRecordService.ownerLoanRecordSubmitNbBank(param);
return Result.ok();
}
@ApiOperation(value = "借款重新支付(只更改借款状态)",notes = "<br>By:胡宇帆")
@GetMapping("/ownerLoanRecordRetryPay")
public Result<Object> ownerLoanRecordRetryPay(@RequestParam(value = "loanNo") @NotBlank String loanNo) {
......@@ -132,5 +139,14 @@ public class CarrierOwnerLoanRecordController {
return Result.ok(token);
}
@ApiOperation(value = "订单支付短信", notes = "<br>By:姜文业")
@GetMapping("/sendOrderPaySms")
public Result<String> sendOrderPaySms(@RequestParam("mobile") @NotBlank(message = "通知的手机号码不能为空") String mobile,
@Param("payee") @NotBlank(message = "收款方不能为空") String payee,
@Param("payeeAccount") @NotBlank(message = "收款账户不能为空") String payeeAccount) {
String token = ownerLoanRecordService.sendOrderPaySms(mobile,payee,payeeAccount);
return Result.ok(token);
}
}
package com.clx.performance.controller.pc.loan.owner;
import com.clx.performance.param.pc.loan.carrier.OwnerRepaymentParam;
import com.clx.performance.param.pc.loan.owner.OwnerLoanRecordParam;
import com.clx.performance.service.loan.OwnerLoanAccountApproveService;
import com.clx.performance.service.loan.OwnerLoanAccountService;
......@@ -54,4 +55,11 @@ public class OwnerLoanAccountController {
OwnerAccountVO ownerAccount = ownerLoanAccountService.getOwnerLoanAccount();
return Result.ok(ownerAccount);
}
@ApiOperation(value = "货主还款",notes = "<br>By:胡宇帆")
@GetMapping("/ownerRepayment")
public Result<OwnerAccountVO> ownerRepayment(@RequestBody OwnerRepaymentParam param) {
ownerLoanAccountService.ownerRepayment(param);
return Result.ok();
}
}
......@@ -87,6 +87,15 @@ public class OwnerRepaymentController {
return Result.ok(token);
}
@ApiOperation(value = "订单支付短信", notes = "<br>By:姜文业")
@GetMapping("/sendOrderPaySms")
public Result<String> sendOrderPaySms(@RequestParam("mobile") @NotBlank(message = "通知的手机号码不能为空") String mobile,
@Param("payee") @NotBlank(message = "收款方不能为空") String payee,
@Param("payeeAccount") @NotBlank(message = "收款账户不能为空") String payeeAccount) {
String token = ownerRepaymentService.sendOrderPaySms(mobile,payee,payeeAccount);
return Result.ok(token);
}
}
......@@ -39,20 +39,16 @@ public class TempBankController {
// return Result.ok(bankService.orderDirectPay(null,2,"313332082914","86041110000076809", "黑玫瑰"));
// return Result.ok(bankService.orderDirectPay(null,2,"313332082914","86041110000075926", "客户客户"));
return Result.ok(bankService.orderDirectPay(null,1,"313332082914","86031110000180611", "槟榔王"));
return Result.ok(bankService.orderDirectPay(null,"",1,"313332082914","86031110000180611", "槟榔王"));
}
@ApiOperation(value = "订单支付1", notes = "<br>By:艾庆国")
@RequestMapping(value = "/orderDirectPay1", method = RequestMethod.POST)
public Result<NbBankOrderPayResultVO> orderDirectPay1(String payAcctNo, String payAcctNm) {
return Result.ok(bankService.orderDirectPay(null,1,"313332082914",payAcctNo, payAcctNm));
}
@ApiOperation(value = "订单支付2", notes = "<br>By:艾庆国")
@RequestMapping(value = "/orderDirectPay2", method = RequestMethod.POST)
public Result<NbBankOrderPayResultVO> orderDirectPay2(String payAcctOpenBankId, String payAcctNo, String payAcctNm) {
return Result.ok(bankService.orderDirectPay(null,1,payAcctOpenBankId,payAcctNo, payAcctNm));
// return Result.ok(bankService.orderDirectPay(null,2,"313332082914","86041110000076809", "黑玫瑰"));
// return Result.ok(bankService.orderDirectPay(null,2,"313332082914","86041110000075926", "客户客户"));
return Result.ok(bankService.orderDirectPay(null,"",1,"313332082914",payAcctNo, payAcctNm));
}
@ApiOperation(value = "查询", notes = "<br>By:艾庆国")
......
......@@ -90,7 +90,7 @@ public class OwnerLoanRecordDaoImpl extends BaseDaoImpl<OwnerLoanRecordMapper, O
.set(OwnerLoanRecord::getMerchantRunningWaterNo, item.getMerchantRunningWaterNo())
.set(OwnerLoanRecord::getRemittanceIdentificationCode, item.getRemittanceIdentificationCode())
.set(OwnerLoanRecord::getLoanResidueBalance, item.getLoanResidueBalance())
.set(OwnerLoanRecord::getRemittanceIdentificationCode, item.getRemittanceIdentificationCode())
.set(OwnerLoanRecord::getLendingParty, item.getLendingParty())
.set(OwnerLoanRecord::getLendingPartyAccount, item.getLendingPartyAccount())
);
......
......@@ -4,6 +4,7 @@ import cn.hutool.json.JSONUtil;
import com.clx.performance.param.OwnerLoanPayNotifyMqParam;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.enums.nbbank.NbBankStatusEnum;
import com.clx.performance.service.loan.OwnerLoanAccountService;
import com.clx.performance.service.loan.OwnerLoanRecordService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
......@@ -22,6 +23,8 @@ public class OwnerLoanPayNotifyListener {
private final OwnerLoanRecordService ownerLoanRecordService;
private final OwnerLoanAccountService ownerLoanAccountService;
@RabbitListener(queues = RabbitKeyConstants.OWNER_LOAN_PAY_QUEUE)
public void onMessage(String message) {
log.info("处理货主借款支付监听器执行,数据为{}", message);
......@@ -30,6 +33,7 @@ public class OwnerLoanPayNotifyListener {
if (Objects.equals(param.getPayStatus(), NbBankStatusEnum.Status.SUCCESS.getCode())) {
// 支付成功
ownerLoanRecordService.paySuccess(param.getMerSeqNo());
}
else if (Objects.equals(param.getPayStatus(), NbBankStatusEnum.Status.FAIL.getCode())) {
// 支付失败
......
......@@ -68,6 +68,7 @@ public class OwnerLoanRecord implements HasKey<Integer> {
@ApiModelProperty("借款剩余金额")
private BigDecimal loanResidueBalance;
@TableField("borrower_id")
@ApiModelProperty("借出方Id")
private Integer borrowerId;
......@@ -76,10 +77,23 @@ public class OwnerLoanRecord implements HasKey<Integer> {
@ApiModelProperty("借出方")
private String borrower;
@ApiModelProperty("借方账户")
@ApiModelProperty("借方账户")
@TableField("borrower_account")
private String borrowerAccount;
@TableField("borrower_bank")
@ApiModelProperty("借出方银行")
private String borrowerBank;
@TableField("borrower_bank_code")
@ApiModelProperty("借出方银行行号")
private String borrowerBankCode;
@TableField("borrower_open_bank")
@ApiModelProperty("借出方开户行")
private String borrowerOpenBank;
@TableField("remittance_identification_code")
@ApiModelProperty("汇款识别码")
private String remittanceIdentificationCode;
......@@ -93,6 +107,20 @@ public class OwnerLoanRecord implements HasKey<Integer> {
@ApiModelProperty("借款方账户")
private String lendingPartyAccount;
@TableField("lending_party_bank")
@ApiModelProperty("借款方银行")
private String lendingPartyBank;
@TableField("lending_party_bank_code")
@ApiModelProperty("借款方银行行号")
private String lendingPartyBankCode;
@TableField("lending_party_open_bank")
@ApiModelProperty("借款方开户行")
private String lendingPartyOpenBank;
@TableField("payee")
@ApiModelProperty("收款方")
private String payee;
......@@ -110,7 +138,7 @@ public class OwnerLoanRecord implements HasKey<Integer> {
private String payeeBankCode;
@TableField("status")
@ApiModelProperty("10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
@ApiModelProperty("10 待审批 15 待付款 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
private Integer status;
@TableField("approve_time")
......
......@@ -94,6 +94,10 @@ public class OwnerRepayment implements HasKey<Integer> {
@ApiModelProperty("借款单号")
private Long loanNo;
@TableField("loan_type")
@ApiModelProperty("借款类型 1:虚拟货币 2:资金")
private Long loanType;
@TableField("status")
@ApiModelProperty("10 待付款 40 付款中 50 付款成功 60 付款失败")
private Integer status;
......
......@@ -5,26 +5,31 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.component.OrderChildLoanComponent;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.loan.OrderChildLoanRetryRecordDao;
import com.clx.performance.dao.loan.OwnerLoanAccountDao;
import com.clx.performance.dao.loan.*;
import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.OwnerLoanMqDTO;
import com.clx.performance.enums.loan.BankTradeEnum;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriver;
import com.clx.performance.model.loan.OrderChildLoanRetryRecord;
import com.clx.performance.model.loan.OwnerLoanAccount;
import com.clx.performance.model.loan.*;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.pc.loan.carrier.OwnerRepaymentParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountParam;
import com.clx.performance.service.loan.OwnerLoanAccountService;
import com.clx.performance.service.thirdparty.nbbank.NbBankService;
import com.clx.performance.struct.loan.OwnerLoanAccountStruct;
import com.clx.performance.vo.pc.loan.carrier.CarrierOwnerLoanAccountVO;
import com.clx.performance.vo.pc.loan.owner.OwnerAccountVO;
import com.clx.performance.vo.pc.nbbank.NbBankOrderPayResultVO;
import com.msl.common.base.Optional;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
......@@ -34,6 +39,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
......@@ -60,6 +66,14 @@ public class OwnerLoanAccountServiceImpl implements OwnerLoanAccountService {
private final RabbitTemplate rabbitTemplate;
private final OwnerRepaymentDao ownerRepaymentDao;
private final NbBankService bankService;
private final BankTradeDao bankTradeDao;
private final OwnerLoanRecordDao ownerLoanRecordDao;
@Transactional(rollbackFor = Exception.class)
@Override
public void openOwnerLoanAccount(Long ownerUserNo, String ownerUserName, String mobile) {
......@@ -99,30 +113,42 @@ public class OwnerLoanAccountServiceImpl implements OwnerLoanAccountService {
return ownerAccountVO;
}
/**
* 货主借款后执行阻塞流程的相关运单
*
* @param ownerUserNo
*/
@Override
public void orderChildLoanProcess(Long ownerUserNo) {
List<OrderChildLoanRetryRecord> orderChildLoanRetryRecordList = orderChildLoanRetryRecordDao.selectListByIdAsc();
for (OrderChildLoanRetryRecord retryRecord : orderChildLoanRetryRecordList) {
//生成借款标识
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao.getEntityByKey(retryRecord.getSettlementDriverId()).get();
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao.getEntityByKey(retryRecord.getSettlementOwnerId()).get();
OrderChild orderChild = orderChildDao.getByChildNo(settlementDriverDetail.getChildNo()).get();
OwnerLoanMqDTO dto = new OwnerLoanMqDTO();
dto.setSettlementOwnerDetail(settlementOwnerDetail);
dto.setSettlementDriverDetail(settlementDriverDetail);
dto.setOrderChild(orderChild);
//货主借款监听器处理
Message message = MessageBuilder.withBody(JSONUtil.parse(dto).toString().getBytes()).build();
rabbitTemplate.send(
RabbitKeyConstants.OWNER_LOAN_EXCHANGE, RabbitKeyConstants.OWNER_LOAN_ROUTE_KEY, message
);
orderChildLoanRetryRecordDao.deleteByKey(retryRecord.getId());
public void ownerRepayment(OwnerRepaymentParam param) {
OwnerRepayment ownerRepayment = ownerRepaymentDao.getOneByField(OwnerRepayment::getRepaymentNo, param.getRepaymentNo()).get();
OwnerLoanRecord ownerLoanRecord = ownerLoanRecordDao.getOneByField(OwnerLoanRecord::getLoanNo, ownerRepayment.getLoanNo()).get();
BankTrade bankTrade = new BankTrade();
if (OwnerLoanRecordEnum.PayChannel.ORDER_DIRECT_PAY.getCode().equals(param.getPayChannel())) {
// 订单支付
NbBankOrderPayResultVO orderPayResultVO = bankService.orderDirectPay(ownerRepayment.getRepaymentNo(), "还款单",
ownerRepayment.getRepaymentBalance().intValue(), ownerLoanRecord.getPayeeBankCode(),
ownerLoanRecord.getPayeeAccount(), ownerLoanRecord.getPayee());
ownerRepayment.setRunningWaterOpenNo(orderPayResultVO.getTransSeqNo());
ownerRepayment.setMerchantRunningWaterNo(orderPayResultVO.getMerSeqNo());
bankTrade.setTradeType(BankTradeEnum.TradeType.ORDER_DIRECT_PAY.getCode());
} else {
//TODO 是否转账是部分支付
// 转账支付
NbBankOrderPayResultVO orderPayResultVO = bankService.orderTransferPay(ownerLoanRecord.getLoanBalance().intValue());
bankTrade.setTradeType(BankTradeEnum.TradeType.ORDER_TRANSFER_PAY.getCode());
}
ownerRepayment.setStatus(OwnerLoanRecordEnum.Status.PAYING.getCode());
// 更新还款支付信息
//ownerRepaymentDao.updatePay(ownerLoanRecord);
bankTrade.setRelationNo(ownerRepayment.getRepaymentNo().toString());
bankTrade.setOrderType(BankTradeEnum.OrderType.OWNER_LOAN_RECORD.getCode());
bankTrade.setAmount(ownerLoanRecord.getLoanBalance());
bankTrade.setMerchantRunningWaterNo(ownerLoanRecord.getMerchantRunningWaterNo());
bankTrade.setRunningWaterOpenNo(ownerLoanRecord.getRunningWaterOpenNo());
bankTrade.setRemark("还款单");
// 保存银行交易记录
bankTradeDao.saveEntity(bankTrade);
}
}
......
......@@ -26,6 +26,7 @@ import com.clx.performance.vo.pc.loan.owner.ExportOwnerRepaymentVO;
import com.clx.performance.vo.pc.loan.owner.OwnerCashierInfoVO;
import com.clx.performance.vo.pc.loan.owner.OwnerOrderPaymentDetailVO;
import com.clx.performance.vo.pc.loan.owner.OwnerTransferPaymentDetailVO;
import com.clx.user.vo.feign.OwnerInfoFeignVO;
import com.clx.user.vo.pc.owner.OwnerBindCardVO;
import com.msl.common.result.Result;
import com.msl.common.utils.DateUtils;
......@@ -106,14 +107,14 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService {
PerformanceResultEnum.DATA_NOT_FIND);
OwnerCashierInfoVO vo = ownerRepaymentStruct.convertCashierInfo(ownerRepayment);
OwnerBindCardVO bindCard = ownerInfoService.getOwnerBindCard(ownerRepayment.getOwnerUserNo());
String ownerAccountBank = bindCard.getOwnerAccountBank();
OwnerInfoFeignVO ownerInfoFeignVO = ownerInfoService.getOwnerInfo(ownerRepayment.getOwnerUserNo());
String ownerAccountBank = ownerInfoFeignVO.getOwnerAccountBank();
vo.setOrderPayWay(false);
if(nbBankConfig.getOrderSupportBank().contains(ownerAccountBank)){
vo.setOrderPayWay(true);
}
vo.setBankName(ownerAccountBank);
vo.setPayAccount(bindCard.getOwnerBankAccount());
vo.setPayAccount(ownerInfoFeignVO.getOwnerBankAccount());
return vo;
}
......@@ -122,6 +123,10 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService {
OwnerRepayment ownerRepayment = ownerRepaymentDao.getEntityByKey(id).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND);
OwnerOrderPaymentDetailVO vo = ownerRepaymentStruct.convertOrderPaymentDetail(ownerRepayment);
ClxPayeeConfig.PayeeConfig payeeMap = ClxPayeeConfig.getPayee(ClxPayeeConfig.XXH_ID);
vo.setPayee(payeeMap.getName());
vo.setPayeeAccount(payeeMap.getAccount());
//计算倒计时时间,下单时间 + 30天 为截止时间
LocalDateTime endTime = ownerRepayment.getCreateTime().plusDays(30);
vo.setFinalPaymentTime(DateUtils.formatDateTime(endTime).get());
......@@ -137,7 +142,8 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService {
.payeeAccount(payeeMap.getAccount()).payeeBank(payeeMap.getBank()).payeeBankNo(payeeMap.getBankNo())
.repaymentBalance(ownerRepayment.getRepaymentBalance())
.remittanceIdentificationCode(ownerRepayment.getRemittanceIdentificationCode())
.status(ownerRepayment.getStatus()).finalPaymentTime(ownerRepayment.getCloseOrderTime()).build();
.status(ownerRepayment.getStatus()).finalPaymentTime(ownerRepayment.getCloseOrderTime())
.repaymentNo(ownerRepayment.getRepaymentNo()).build();
}
@Override
......@@ -165,7 +171,6 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService {
AliSmsMessageReq req = new AliSmsMessageReq();
req.setTemplateCode(messageConfig.getRepaymentTemplateCode());
JSONObject jsonObject = new JSONObject();
//随机生成4位数字
jsonObject.set("repaymentNo", repaymentNo);
req.setChannelId(messageConfig.getChannelId());
req.setAppId(messageConfig.getAppId().toString());
......@@ -176,4 +181,23 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService {
return UUID.randomUUID().toString();
}
@Override
public String sendOrderPaySms(String mobile,String payee, String payeeAccount) {
AliSmsMessageReq req = new AliSmsMessageReq();
req.setTemplateCode(messageConfig.getOrderPayTemplateCode());
JSONObject jsonObject = new JSONObject();
jsonObject.set("companyName", payee);
jsonObject.set("bankAccount", payeeAccount);
jsonObject.set("bankName", "");
req.setChannelId(messageConfig.getChannelId());
req.setAppId(messageConfig.getAppId().toString());
req.setMobile(mobile);
req.setContent(jsonObject.toString());
req.setExpire(300L);
clxMessageOpenapiFeign.sendAliSms(req);
return UUID.randomUUID().toString();
}
}
......@@ -83,7 +83,7 @@ public class NbBankServiceImpl implements NbBankService {
* @param payAcctNm 付款户名
*/
@Override
public NbBankOrderPayResultVO orderDirectPay(Long loanNo, Integer amount,
public NbBankOrderPayResultVO orderDirectPay(Long loanNo, String remark, Integer amount,
String payAcctOpenBankId, String payAcctNo, String payAcctNm) {
String merSeqNo = idGenerateSnowFlake.nextIdToString(1L);
......@@ -94,7 +94,7 @@ public class NbBankServiceImpl implements NbBankService {
String transSeqNo = data.getString("transSeqNo");
if (StringUtils.isBlank(transSeqNo)) {
log.info("宁波银行订单支付失败,借款单号{},返回结果:{}", loanNo, data);
log.info("宁波银行订单支付失败,单号{},返回结果:{}", loanNo, data);
throw new ServiceSystemException(PerformanceResultEnum.NB_BANK_ORDER_PAY_ERROR);
}
NbBankOrderPayResultVO result = new NbBankOrderPayResultVO();
......@@ -242,10 +242,13 @@ public class NbBankServiceImpl implements NbBankService {
param.setPayStatus(transStatus);
Message message = MessageBuilder.withBody(JSONUtil.parse(param).toString().getBytes()).build();
//执行解绑自有车辆处理逻辑,将绑定记录正常改为取消
rabbitTemplate.send(
RabbitKeyConstants.OWNER_LOAN_EXCHANGE, RabbitKeyConstants.OWNER_LOAN_PAY_ROUTE_KEY, message
);
if ("借款单".equals(bankTrade.getRemark())) {
//执行借款支付成功通知
rabbitTemplate.send(
RabbitKeyConstants.OWNER_LOAN_EXCHANGE, RabbitKeyConstants.OWNER_LOAN_PAY_ROUTE_KEY, message
);
}
}
......
package com.clx.performance.service.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.loan.carrier.OwnerRepaymentParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountParam;
import com.clx.performance.vo.pc.loan.carrier.CarrierOwnerLoanAccountVO;
import com.clx.performance.vo.pc.loan.owner.OwnerAccountVO;
......@@ -18,5 +19,5 @@ public interface OwnerLoanAccountService {
OwnerAccountVO getOwnerLoanAccount();
void orderChildLoanProcess(Long ownerUserNo);
void ownerRepayment(OwnerRepaymentParam param);
}
......@@ -51,4 +51,10 @@ public interface OwnerLoanRecordService {
void ownerLoanRecordCancelPay(String loanNo);
String sendLoanSms(String mobile,Long loanNo);
String sendOrderPaySms(String mobile,String payee, String payeeAccount);
void ownerLoanRecordSubmitNbBank(CarrierOwnerLoanRecordApproveParam param);
void orderChildLoanProcess(Long ownerUserNo);
}
......@@ -31,4 +31,5 @@ public interface OwnerRepaymentService {
String savePaymentApplicationForm(ExportPaymentApplicationFormParam param);
String sendPaymentSms(String mobile,Long repaymentNo);
String sendOrderPaySms(String mobile,String payee, String payeeAccount);
}
......@@ -10,7 +10,7 @@ public interface NbBankService {
NbBankOrderPayResultVO orderTransferPay(Integer amount);
NbBankOrderPayResultVO orderDirectPay(Long loanNo,Integer amount,
NbBankOrderPayResultVO orderDirectPay(Long loanNo, String remark, Integer amount,
String payAcctOpenBankId, String payAcctNo, String payAcctNm);
NbBankOrderResultVO getResult(String merSeqNo);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论