提交 4dd12042 authored 作者: liuhaiquan's avatar liuhaiquan

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

Merge remote-tracking branch 'origin/v10.7_borrowing_and_repayment_20240118' into v10.7_borrowing_and_repayment_20240118 # Conflicts: # performance-api/src/main/java/com/clx/performance/param/pc/loan/carrier/BorrowerConfigAddParam.java # performance-api/src/main/java/com/clx/performance/param/pc/loan/carrier/BorrowerConfigUpdateParam.java
...@@ -119,6 +119,7 @@ public enum PerformanceResultEnum implements ResultEnum { ...@@ -119,6 +119,7 @@ public enum PerformanceResultEnum implements ResultEnum {
NB_BANK_API_ERROR(1800, "宁波银行api调用失败"), NB_BANK_API_ERROR(1800, "宁波银行api调用失败"),
NB_BANK_NOTIFY_ERROR(1801, "宁波银行回调失败"), NB_BANK_NOTIFY_ERROR(1801, "宁波银行回调失败"),
NB_BANK_PAY_TYPE_ERROR(1802, "支付方式不支持"), NB_BANK_PAY_TYPE_ERROR(1802, "支付方式不支持"),
NB_BANK_ORDER_PAY_ERROR(1803, "宁波银行订单支付失败"),
; ;
private final int code; private final int code;
......
...@@ -19,7 +19,9 @@ public enum RunningWaterTypeEnum { ...@@ -19,7 +19,9 @@ public enum RunningWaterTypeEnum {
TAKE_OUT(40, "扣除"), TAKE_OUT(40, "扣除"),
CASE_OUT_FROZEN(50, "提现冻结"), CASE_OUT_FROZEN(50, "提现冻结"),
CASE_OUT_SUCCESS(60, "提现成功"), CASE_OUT_SUCCESS(60, "提现成功"),
CASE_OUT_FAIL(70, "提现失败") CASE_OUT_FAIL(70, "提现失败"),
ORDER_CHILD_WRITE_OFF(80, "运单核销"),
LOAN(90, "借款"),
; ;
private final Integer code; private final Integer code;
private final String msg; private final String msg;
......
...@@ -6,6 +6,8 @@ import lombok.NoArgsConstructor; ...@@ -6,6 +6,8 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import javax.validation.constraints.NotNull;
/** /**
* @Author: aiqingguo * @Author: aiqingguo
* @Date: 2023-10-11 17:30:57 * @Date: 2023-10-11 17:30:57
...@@ -18,10 +20,13 @@ import lombok.ToString; ...@@ -18,10 +20,13 @@ import lombok.ToString;
public class BorrowerConfigAddParam { public class BorrowerConfigAddParam {
@ApiModelProperty(value = "借出方id", example = "1") @ApiModelProperty(value = "借出方id", example = "1")
@NotNull(message = "借出方id不能为空")
private Integer borrowerId; private Integer borrowerId;
@ApiModelProperty(value = "类型:1虚拟货币 2 资金", example = "1") @ApiModelProperty(value = "类型:1虚拟货币 2 资金", example = "1")
@NotNull(message = "类型不能为空")
private Integer type; private Integer type;
@ApiModelProperty(value = "借款天数", example = "1") @ApiModelProperty(value = "借款天数", example = "1")
@NotNull(message = "借款天数不能为空")
private Integer day; private Integer day;
} }
...@@ -23,10 +23,13 @@ public class BorrowerConfigUpdateParam { ...@@ -23,10 +23,13 @@ public class BorrowerConfigUpdateParam {
@NotNull(message = "id不能为空") @NotNull(message = "id不能为空")
private Integer id; private Integer id;
@ApiModelProperty(value = "借出方id", example = "1") @ApiModelProperty(value = "借出方id", example = "1")
@NotNull(message = "借出方id不能为空")
private Integer borrowerId; private Integer borrowerId;
@ApiModelProperty(value = "类型:1虚拟货币 2 资金", example = "1") @ApiModelProperty(value = "类型:1虚拟货币 2 资金", example = "1")
@NotNull(message = "类型方不能为空")
private Integer type; private Integer type;
@ApiModelProperty(value = "借款天数", example = "1") @ApiModelProperty(value = "借款天数", example = "1")
@NotNull(message = "借款天数不能为空")
private Integer day; private Integer day;
} }
...@@ -19,7 +19,7 @@ public class PageOwnerLoanAccountWaterRecordOfOwnerParam extends PageParam { ...@@ -19,7 +19,7 @@ public class PageOwnerLoanAccountWaterRecordOfOwnerParam extends PageParam {
private Long runningWaterNo; private Long runningWaterNo;
@ApiModelProperty(value = "运单编号", example = "10000") @ApiModelProperty(value = "运单编号", example = "10000")
private String childNo; private String childNo;
@ApiModelProperty(value = "流水类型 10:运单核销 20:借款", example = "10") @ApiModelProperty(value = "流水类型 70:运单核销 80:借款", example = "10")
private Integer runningWaterType; private Integer runningWaterType;
} }
\ No newline at end of file
...@@ -38,7 +38,7 @@ public class OwnerLoanAccountRunningWaterRecordVO { ...@@ -38,7 +38,7 @@ public class OwnerLoanAccountRunningWaterRecordVO {
private Long loanNo; private Long loanNo;
@ApiModelProperty(value = "运单编号", example = "100000") @ApiModelProperty(value = "运单编号", example = "100000")
private String childNo; private String childNo;
@ApiModelProperty(value = "流水类型 10:运单核销 20:借款", example = "10") @ApiModelProperty(value = "流水类型 70:运单核销 80:借款", example = "10")
private Integer runningWaterType; private Integer runningWaterType;
@ApiModelProperty(value = "金额", example = "1.23") @ApiModelProperty(value = "金额", example = "1.23")
private BigDecimal alterationBalance; private BigDecimal alterationBalance;
......
...@@ -37,7 +37,7 @@ public class TempBankController { ...@@ -37,7 +37,7 @@ public class TempBankController {
@RequestMapping(value = "/orderDirectPay", method = RequestMethod.POST) @RequestMapping(value = "/orderDirectPay", method = RequestMethod.POST)
public Result<NbBankOrderPayResultVO> orderDirectPay() { public Result<NbBankOrderPayResultVO> orderDirectPay() {
return Result.ok(bankService.orderDirectPay(2,"313332082914","86041110000076809", "黑玫瑰")); return Result.ok(bankService.orderDirectPay(null,2,"313332082914","86041110000076809", "黑玫瑰"));
} }
@ApiOperation(value = "查询", notes = "<br>By:艾庆国") @ApiOperation(value = "查询", notes = "<br>By:艾庆国")
......
...@@ -65,10 +65,11 @@ public class BorrowerConfigDaoImpl extends BaseDaoImpl<BorrowerConfigMapper, Bor ...@@ -65,10 +65,11 @@ public class BorrowerConfigDaoImpl extends BaseDaoImpl<BorrowerConfigMapper, Bor
} }
@Override @Override
public Optional<BorrowerConfig> selectByBorrowerId(Integer borrowerId) { public Optional<BorrowerConfig> selectByBorrowerIdAndType(Integer borrowerId, Integer type) {
return Optional.of(borrowerId) return Optional.of(borrowerId)
.map(item -> lQrWrapper() .map(item -> lQrWrapper()
.eq(BorrowerConfig::getBorrowerId, item) .eq(BorrowerConfig::getBorrowerId, item)
.eq(BorrowerConfig::getType, type)
.eq(BorrowerConfig::getDeleteStatus, BorrowerConfigEnum.DeleteStatus.NO.getCode()) .eq(BorrowerConfig::getDeleteStatus, BorrowerConfigEnum.DeleteStatus.NO.getCode())
.last("limit 1") .last("limit 1")
) )
......
...@@ -23,7 +23,7 @@ public interface BorrowerConfigDao extends BaseDao<BorrowerConfigMapper, Borrowe ...@@ -23,7 +23,7 @@ public interface BorrowerConfigDao extends BaseDao<BorrowerConfigMapper, Borrowe
boolean updateStatus(BorrowerConfig item); boolean updateStatus(BorrowerConfig item);
boolean updateDelete(BorrowerConfig item); boolean updateDelete(BorrowerConfig item);
Optional<BorrowerConfig> selectByBorrowerId(Integer borrowerId); Optional<BorrowerConfig> selectByBorrowerIdAndType(Integer borrowerId, Integer type);
List<BorrowerConfig> listEnable(); List<BorrowerConfig> listEnable();
......
...@@ -32,7 +32,7 @@ public class OwnerLoanAccountRunningWaterRecord implements HasKey<Integer> { ...@@ -32,7 +32,7 @@ public class OwnerLoanAccountRunningWaterRecord implements HasKey<Integer> {
@ExcelProperty("货主编码") @ExcelProperty("货主编码")
@TableField("owner_user_no") @TableField("owner_user_no")
@ApiModelProperty("货主编码") @ApiModelProperty("货主编码")
private String ownerUserNo; private Long ownerUserNo;
@ExcelProperty("货主名称") @ExcelProperty("货主名称")
@TableField("owner_user_name") @TableField("owner_user_name")
...@@ -61,7 +61,7 @@ public class OwnerLoanAccountRunningWaterRecord implements HasKey<Integer> { ...@@ -61,7 +61,7 @@ public class OwnerLoanAccountRunningWaterRecord implements HasKey<Integer> {
@ExcelProperty("流水类型") @ExcelProperty("流水类型")
@TableField("running_water_type") @TableField("running_water_type")
@ApiModelProperty("流水类型 10:运单核销 20:借款") @ApiModelProperty("流水类型 70:运单核销 80:借款")
private Integer runningWaterType; private Integer runningWaterType;
@ExcelProperty("金额") @ExcelProperty("金额")
......
...@@ -49,7 +49,7 @@ public class BorrowerConfigServiceImpl implements BorrowerConfigService { ...@@ -49,7 +49,7 @@ public class BorrowerConfigServiceImpl implements BorrowerConfigService {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
// 重复验证 // 重复验证
Optional<BorrowerConfig> borrowerConfigOptional = borrowerConfigDao.selectByBorrowerId(param.getBorrowerId()); Optional<BorrowerConfig> borrowerConfigOptional = borrowerConfigDao.selectByBorrowerIdAndType(param.getBorrowerId(), param.getType());
if (borrowerConfigOptional.isPresent()) { if (borrowerConfigOptional.isPresent()) {
throw new ServiceSystemException(PerformanceResultEnum.BORROWER_CONFIG_BORROWER_ID_EXIST); throw new ServiceSystemException(PerformanceResultEnum.BORROWER_CONFIG_BORROWER_ID_EXIST);
} }
...@@ -76,7 +76,7 @@ public class BorrowerConfigServiceImpl implements BorrowerConfigService { ...@@ -76,7 +76,7 @@ public class BorrowerConfigServiceImpl implements BorrowerConfigService {
BorrowerConfig borrowerConfig = borrowerConfigDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); BorrowerConfig borrowerConfig = borrowerConfigDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 重复验证 // 重复验证
Optional<BorrowerConfig> borrowerConfigOptional = borrowerConfigDao.selectByBorrowerId(param.getBorrowerId()); Optional<BorrowerConfig> borrowerConfigOptional = borrowerConfigDao.selectByBorrowerIdAndType(param.getBorrowerId(), param.getType());
if (borrowerConfigOptional.isPresent() && !Objects.equals(borrowerConfig.getId(), borrowerConfigOptional.get().getId())) { if (borrowerConfigOptional.isPresent() && !Objects.equals(borrowerConfig.getId(), borrowerConfigOptional.get().getId())) {
throw new ServiceSystemException(PerformanceResultEnum.BORROWER_CONFIG_BORROWER_ID_EXIST); throw new ServiceSystemException(PerformanceResultEnum.BORROWER_CONFIG_BORROWER_ID_EXIST);
} }
......
...@@ -7,12 +7,15 @@ import com.clx.performance.config.loan.ClxPayeeConfig; ...@@ -7,12 +7,15 @@ import com.clx.performance.config.loan.ClxPayeeConfig;
import com.clx.performance.dao.OwnerBindCardRecordDao; import com.clx.performance.dao.OwnerBindCardRecordDao;
import com.clx.performance.dao.loan.BorrowerDao; import com.clx.performance.dao.loan.BorrowerDao;
import com.clx.performance.dao.loan.OwnerLoanAccountDao; import com.clx.performance.dao.loan.OwnerLoanAccountDao;
import com.clx.performance.dao.loan.OwnerLoanAccountRunningWaterRecordDao;
import com.clx.performance.dao.loan.OwnerLoanRecordDao; import com.clx.performance.dao.loan.OwnerLoanRecordDao;
import com.clx.performance.dao.loan.OwnerRepaymentDao; import com.clx.performance.dao.loan.OwnerRepaymentDao;
import com.clx.performance.enums.RunningWaterTypeEnum;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum; import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum; import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.model.OwnerBindCardRecord; import com.clx.performance.model.OwnerBindCardRecord;
import com.clx.performance.model.loan.OwnerLoanAccount; import com.clx.performance.model.loan.OwnerLoanAccount;
import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord;
import com.clx.performance.model.loan.OwnerLoanRecord; import com.clx.performance.model.loan.OwnerLoanRecord;
import com.clx.performance.model.loan.OwnerRepayment; import com.clx.performance.model.loan.OwnerRepayment;
import com.clx.performance.param.pc.loan.carrier.CarrierOwnerLoanRecordApproveParam; import com.clx.performance.param.pc.loan.carrier.CarrierOwnerLoanRecordApproveParam;
...@@ -68,6 +71,8 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -68,6 +71,8 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
private final NbBankService bankService; private final NbBankService bankService;
private final OwnerLoanAccountRunningWaterRecordDao ownerLoanAccountRunningWaterRecordDao;
private final BorrowerDao borrowerDao; private final BorrowerDao borrowerDao;
private final OwnerFeign ownerFeign; private final OwnerFeign ownerFeign;
...@@ -122,53 +127,76 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -122,53 +127,76 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
if (OwnerLoanRecordEnum.LoanType.FUND.getCode().equals(param.getLoanType())) { if (OwnerLoanRecordEnum.LoanType.FUND.getCode().equals(param.getLoanType())) {
//资金 TODO 调中信银企直连的产品,从诚联信账户中给鑫祥和执行转账 //资金 TODO 调中信银企直连的产品,从诚联信账户中给鑫祥和执行转账
NbBankOrderPayResultVO orderPayResultVO = bankService.orderDirectPay(null, "", "", ""); NbBankOrderPayResultVO orderPayResultVO = bankService.orderDirectPay(param.getLoanNo() ,
ownerLoanRecord.getLoanBalance().intValue(), "", "", "");
ownerLoanRecord.setRunningWaterOpenNo(orderPayResultVO.getTransSeqNo()); ownerLoanRecord.setRunningWaterOpenNo(orderPayResultVO.getTransSeqNo());
ownerLoanRecord.setMerchantRunningWaterNo(orderPayResultVO.getMerSeqNo()); ownerLoanRecord.setMerchantRunningWaterNo(orderPayResultVO.getMerSeqNo());
ownerLoanRecord.setStatus(OwnerLoanRecordEnum.Status.PAYING.getCode()); ownerLoanRecord.setStatus(OwnerLoanRecordEnum.Status.PAYING.getCode());
//创建还款记录
OwnerRepayment ownerRepayment = initOwnerRepayment(ownerLoanRecord);
ownerRepaymentDao.saveEntity(ownerRepayment);
ownerLoanRecordDao.updateEntityByKey(ownerLoanRecord);
} else { } else {
// 虚拟币 直接增加 更改状态审批通过
ownerLoanRecord.setStatus(OwnerLoanRecordEnum.Status.APPROVE_PASS.getCode()); ownerLoanRecord.setStatus(OwnerLoanRecordEnum.Status.APPROVE_PASS.getCode());
}
// 虚拟币 直接增加
Long ownerUserNo = ownerLoanRecord.getOwnerUserNo();
BigDecimal loanBalance = ownerLoanRecord.getLoanBalance();
while (true) { while (true) {
OwnerLoanAccount ownerLoanAccount = ownerLoanAccountDao.getOneByField(OwnerLoanAccount::getOwnerUserNo, ownerUserNo).get(); OwnerLoanAccount ownerLoanAccount = ownerLoanAccountDao.getOneByField(OwnerLoanAccount::getOwnerUserNo,
ownerLoanRecord.getOwnerUserNo()).get();
OwnerLoanAccount entity = new OwnerLoanAccount(); OwnerLoanAccount entity = new OwnerLoanAccount();
entity.setId(ownerLoanAccount.getId()); entity.setId(ownerLoanAccount.getId());
entity.setVirtuallyAmount(loanBalance); entity.setVirtuallyAmount(ownerLoanRecord.getLoanBalance());
entity.setFundingAmount(BigDecimal.ZERO); entity.setFundingAmount(BigDecimal.ZERO);
entity.setModifiedTime(ownerLoanAccount.getModifiedTime()); entity.setModifiedTime(ownerLoanAccount.getModifiedTime());
Integer flag = ownerLoanAccountDao.updateAccountCAS(entity, LocalDateTime.now(), true); Integer flag = ownerLoanAccountDao.updateAccountCAS(entity, LocalDateTime.now(), true);
if (flag == 1) { if (flag == 1) {
ownerLoanRecordDao.updateEntityByKey(ownerLoanRecord); //生成借款流水
return; initOwnerLoanRunningWaterRecord(ownerLoanRecord);
//生成还款记录
initOwnerRepayment(ownerLoanRecord);
break;
} }
} }
}
} else { } else {
//拒绝 //拒绝
ownerLoanRecord.setLoanType(param.getLoanType());
ownerLoanRecord.setStatus(OwnerLoanRecordEnum.Status.APPROVE_REFUSE.getCode());
} }
//更新借款记录
ownerLoanRecordDao.updateEntityByKey(ownerLoanRecord);
} }
@Override @Override
public IPage<OwnerLoanRecordVO> pageOwnerLoanRecordOfOwner(PageOwnerLoanRecordOfOwner param) { public IPage<OwnerLoanRecordVO> pageOwnerLoanRecordOfOwner(PageOwnerLoanRecordOfOwner param) {
return ownerLoanRecordDao.pageByParam(param); return ownerLoanRecordDao.pageByParam(param);
} }
private OwnerRepayment initOwnerRepayment(OwnerLoanRecord ownerLoanRecord) { /**
* 生成借款流水
* @param ownerLoanRecord
*/
private void initOwnerLoanRunningWaterRecord(OwnerLoanRecord ownerLoanRecord) {
OwnerLoanAccount ownerLoanAccount;
ownerLoanAccount = ownerLoanAccountDao.getOneByField(OwnerLoanAccount::getOwnerUserNo, ownerLoanRecord.getOwnerUserNo()).get();
ownerLoanRecordDao.updateEntityByKey(ownerLoanRecord);
OwnerLoanAccountRunningWaterRecord record = new OwnerLoanAccountRunningWaterRecord()
.setOwnerUserNo(ownerLoanRecord.getOwnerUserNo())
.setOwnerUserName(ownerLoanRecord.getOwnerUserName())
.setMobile(ownerLoanRecord.getMobile())
.setRunningWaterNo(idGenerateSnowFlake.nextId(2L))
.setLoanNo(ownerLoanRecord.getLoanNo())
.setRunningWaterType(RunningWaterTypeEnum.Status.LOAN.getCode())
.setAlterationBalance(ownerLoanRecord.getLoanBalance())
.setAccountBalance(ownerLoanAccount.getFundingAmount().add(ownerLoanAccount.getVirtuallyAmount()))
.setCreateBy("系统");
ownerLoanAccountRunningWaterRecordDao.saveEntity(record);
}
/**
* 生成还款记录
* @param ownerLoanRecord
*/
private void initOwnerRepayment(OwnerLoanRecord ownerLoanRecord) {
OwnerRepayment ownerRepayment = new OwnerRepayment(); OwnerRepayment ownerRepayment = new OwnerRepayment();
ownerRepayment.setLoanRepaymentTime(ownerLoanRecord.getLoanRepaymentTime()); ownerRepayment.setLoanRepaymentTime(ownerLoanRecord.getLoanRepaymentTime());
ownerRepayment.setMobile(ownerLoanRecord.getMobile()); ownerRepayment.setMobile(ownerLoanRecord.getMobile());
...@@ -179,7 +207,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -179,7 +207,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
ownerRepayment.setRepaymentBalance(ownerLoanRecord.getLoanBalance()); ownerRepayment.setRepaymentBalance(ownerLoanRecord.getLoanBalance());
ownerRepayment.setRepaymentNo(idGenerateSnowFlake.nextId(2L)); ownerRepayment.setRepaymentNo(idGenerateSnowFlake.nextId(2L));
ownerRepayment.setPayment(ownerLoanRecord.getBorrower()); ownerRepayment.setPayment(ownerLoanRecord.getBorrower());
ownerRepayment.setPayeeAccount(ownerLoanRecord.getBorrowerAccount()); ownerRepayment.setPaymentAccount(ownerLoanRecord.getBorrowerAccount());
ownerRepayment.setPayee(ownerRepayment.getPayee()); ownerRepayment.setPayee(ownerRepayment.getPayee());
ownerRepayment.setPayeeAccount(ownerLoanRecord.getPayeeAccount()); ownerRepayment.setPayeeAccount(ownerLoanRecord.getPayeeAccount());
ownerRepayment.setPayChannel(OwnerRePaymentEnum.Channel.ORDER.getCode()); ownerRepayment.setPayChannel(OwnerRePaymentEnum.Channel.ORDER.getCode());
...@@ -188,7 +216,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -188,7 +216,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
ownerRepayment.setBeOverdue(OwnerRePaymentEnum.BeOverdue.NO.getCode()); ownerRepayment.setBeOverdue(OwnerRePaymentEnum.BeOverdue.NO.getCode());
ownerRepayment.setCreateBy("系统"); ownerRepayment.setCreateBy("系统");
ownerRepayment.setStatus(OwnerRePaymentEnum.Status.PAY_WAIT.getCode()); ownerRepayment.setStatus(OwnerRePaymentEnum.Status.PAY_WAIT.getCode());
return ownerRepayment; ownerRepaymentDao.saveEntity(ownerRepayment);
} }
@Override @Override
......
...@@ -2,11 +2,13 @@ package com.clx.performance.service.impl.thirdparty.nbbank; ...@@ -2,11 +2,13 @@ package com.clx.performance.service.impl.thirdparty.nbbank;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.clx.performance.component.IdGenerateSnowFlake; import com.clx.performance.component.IdGenerateSnowFlake;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.service.thirdparty.nbbank.NbBankService; import com.clx.performance.service.thirdparty.nbbank.NbBankService;
import com.clx.performance.service.thirdparty.nbbank.NbBankThirdpartyService; import com.clx.performance.service.thirdparty.nbbank.NbBankThirdpartyService;
import com.clx.performance.utils.LocalDateTimeUtils; import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.vo.pc.nbbank.NbBankOrderPayResultVO; import com.clx.performance.vo.pc.nbbank.NbBankOrderPayResultVO;
import com.clx.performance.vo.pc.nbbank.NbBankOrderResultVO; import com.clx.performance.vo.pc.nbbank.NbBankOrderResultVO;
import com.msl.common.exception.ServiceSystemException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -36,7 +38,7 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -36,7 +38,7 @@ public class NbBankServiceImpl implements NbBankService {
*/ */
@Override @Override
public NbBankOrderPayResultVO orderTransferPay(Integer amount) { public NbBankOrderPayResultVO orderTransferPay(Integer amount) {
String merSeqNo = merSeqNoGenerate(); String merSeqNo = idGenerateSnowFlake.nextIdToString(3L);
String merDtTm = LocalDateTimeUtils.formatTime(); String merDtTm = LocalDateTimeUtils.formatTime();
JSONObject data = bankThirdpartyService.directBankTransferOrder(merSeqNo, merDtTm, amount); JSONObject data = bankThirdpartyService.directBankTransferOrder(merSeqNo, merDtTm, amount);
...@@ -56,13 +58,14 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -56,13 +58,14 @@ public class NbBankServiceImpl implements NbBankService {
/** /**
* 订单支付 * 订单支付
* @param loanNo 借款单号
* @param amount 金额分 * @param amount 金额分
* @param payAcctOpenBankId 开户行号 * @param payAcctOpenBankId 开户行号
* @param payAcctNo 付款账号 * @param payAcctNo 付款账号
* @param payAcctNm 付款户名 * @param payAcctNm 付款户名
*/ */
@Override @Override
public NbBankOrderPayResultVO orderDirectPay(Integer amount, public NbBankOrderPayResultVO orderDirectPay(Long loanNo, Integer amount,
String payAcctOpenBankId, String payAcctNo, String payAcctNm) { String payAcctOpenBankId, String payAcctNo, String payAcctNm) {
String merSeqNo = idGenerateSnowFlake.nextIdToString(3L); String merSeqNo = idGenerateSnowFlake.nextIdToString(3L);
...@@ -71,6 +74,10 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -71,6 +74,10 @@ public class NbBankServiceImpl implements NbBankService {
payAcctOpenBankId,payAcctNo, payAcctNm); payAcctOpenBankId,payAcctNo, payAcctNm);
String transSeqNo = data.getString("transSeqNo"); String transSeqNo = data.getString("transSeqNo");
if (StringUtils.isBlank(transSeqNo)) {
log.info("宁波银行订单支付失败,借款单号{},返回结果:{}", loanNo, data);
throw new ServiceSystemException(PerformanceResultEnum.NB_BANK_ORDER_PAY_ERROR);
}
NbBankOrderPayResultVO result = new NbBankOrderPayResultVO(); NbBankOrderPayResultVO result = new NbBankOrderPayResultVO();
result.setAmount(amount); result.setAmount(amount);
result.setMerDtTm(merDtTm); result.setMerDtTm(merDtTm);
...@@ -152,7 +159,7 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -152,7 +159,7 @@ public class NbBankServiceImpl implements NbBankService {
*/ */
@Override @Override
public NbBankOrderResultVO refund(String orgMerSeqNo, Integer amount, String orgTransSeqNo) { public NbBankOrderResultVO refund(String orgMerSeqNo, Integer amount, String orgTransSeqNo) {
String merSeqNo = merSeqNoGenerate(); String merSeqNo = idGenerateSnowFlake.nextIdToString(3L);
String merDtTm = LocalDateTimeUtils.formatTime(); String merDtTm = LocalDateTimeUtils.formatTime();
JSONObject data = bankThirdpartyService.refund(merSeqNo, merDtTm, amount, JSONObject data = bankThirdpartyService.refund(merSeqNo, merDtTm, amount,
...@@ -217,11 +224,4 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -217,11 +224,4 @@ public class NbBankServiceImpl implements NbBankService {
} }
/**
* 创建流水号
*/
private String merSeqNoGenerate(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
}
} }
...@@ -10,7 +10,7 @@ public interface NbBankService { ...@@ -10,7 +10,7 @@ public interface NbBankService {
NbBankOrderPayResultVO orderTransferPay(Integer amount); NbBankOrderPayResultVO orderTransferPay(Integer amount);
NbBankOrderPayResultVO orderDirectPay(Integer amount, NbBankOrderPayResultVO orderDirectPay(Long loanNo,Integer amount,
String payAcctOpenBankId, String payAcctNo, String payAcctNm); String payAcctOpenBankId, String payAcctNo, String payAcctNm);
NbBankOrderResultVO getResult(String merSeqNo); NbBankOrderResultVO getResult(String merSeqNo);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论