提交 ccded0e1 authored 作者: aiqingguo's avatar aiqingguo

Merge branch 'v10.7_borrowing_and_repayment_20240118' into test

......@@ -39,7 +39,7 @@ public class OwnerLoanAccountApproveVO {
@ApiModelProperty("审批时间")
private LocalDateTime approveTime;
private String approveTime;
@ApiModelProperty("审批人")
......@@ -55,10 +55,10 @@ public class OwnerLoanAccountApproveVO {
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
private String createTime;
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
private String modifiedTime;
}
package com.clx.performance.vo.pc.loan.carrier;
import com.clx.performance.enums.loan.OwnerLoanAccountRunningWaterRecordEnum;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
......@@ -8,7 +10,6 @@ import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @Author: aiqinguo
......@@ -40,13 +41,27 @@ public class OwnerLoanAccountRunningWaterRecordVO {
private String childNo;
@ApiModelProperty(value = "流水类型 70:运单核销 80:借款", example = "10")
private Integer runningWaterType;
@ApiModelProperty(value = "流水类型 70:运单核销 80:借款", example = "10")
private String runningWaterTypeMsg;
public String getRunningWaterTypeMsg() {
return OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.getMsgByCode(runningWaterType);
}
@MoneyOutConvert
@ApiModelProperty(value = "金额", example = "1.23")
private BigDecimal alterationBalance;
@MoneyOutConvert
@ApiModelProperty(value = "可用余额", example = "1.23")
private BigDecimal useableBalance;
@MoneyOutConvert
@ApiModelProperty(value = "冻结余额", example = "1.23")
private BigDecimal frozenBalance;
@MoneyOutConvert
@ApiModelProperty(value = "账户余额", example = "1.23")
private BigDecimal accountBalance;
@ApiModelProperty(value = "创建人", example = "张三")
private String createBy;
@ApiModelProperty(value = "创建时间", example = "")
private LocalDateTime createTime;
private String createTime;
}
\ No newline at end of file
......@@ -90,7 +90,7 @@ public class OwnerLoanRecordVO {
@ApiModelProperty("审批时间")
private LocalDateTime approveTime;
private String approveTime;
@ApiModelProperty("审批人")
......@@ -102,7 +102,7 @@ public class OwnerLoanRecordVO {
@ApiModelProperty("借款归还时间")
private LocalDateTime loanRepaymentTime;
private String loanRepaymentTime;
@ApiModelProperty("创建人")
......@@ -110,10 +110,10 @@ public class OwnerLoanRecordVO {
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
private String createTime;
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
private String modifiedTime;
}
......@@ -7,6 +7,7 @@ import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @ClassName OwnerRepayment
......@@ -37,6 +38,9 @@ public class OwnerRepaymentVO {
@ApiModelProperty("交易流水号(第三方)")
private Long runningWaterOpenNo;
@ApiModelProperty("商户流水号")
private String merchantRunningWaterNo;
@ApiModelProperty("还款单号")
private Long repaymentNo;
......@@ -53,6 +57,14 @@ public class OwnerRepaymentVO {
@ApiModelProperty("付款账户")
private String paymentAccount;
@ApiModelProperty("生成付款申请单时间")
private String paymentApplicationFormTime;
@ApiModelProperty("汇款识别码")
private String remittanceIdentificationCode;
@ApiModelProperty("收款方")
private String payee;
......
......@@ -57,7 +57,7 @@ public class OrderPaymentDetailVO {
return OwnerRePaymentEnum.Status.getMsgByCode(status);
}
@ApiModelProperty("付款倒计时 (秒)")
public Long paymentCountdown;
@ApiModelProperty("付款最终时间")
public String finalPaymentTime;
}
......@@ -56,8 +56,8 @@ public class TransferPaymentDetailVO {
return OwnerRePaymentEnum.Status.getMsgByCode(status);
}
@ApiModelProperty("付款倒计时 (秒)")
public Long paymentCountdown;
@ApiModelProperty("付款最后时间")
public String finalPaymentTime;
}
......@@ -22,13 +22,16 @@ public class NbBankOrderPayResultVO {
@ApiModelProperty(value = "金额(分)", example = "1")
private Integer amount;
@ApiModelProperty(value = "商户时间", example = "")
@ApiModelProperty(value = "商户时间 (下单时间)", example = "")
private String merDtTm;
@ApiModelProperty(value = "商户流水号", example = "20231129145541")
private String merSeqNo;
@ApiModelProperty(value = "第三方流水号", example = "20231129145541065503563czKTBzy")
private String transSeqNo;
@ApiModelProperty(value = "转账编号 (转账专用)", example = "123456")
private String signNo;
@ApiModelProperty(value = "关单时间 (转账专用)", example = "")
private String closeDtTm;
}
\ No newline at end of file
package com.clx.performance.config.loan;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@Getter
@Setter
@ConfigurationProperties(prefix = "payment.form")
public class PaymentFromConfig {
//模版编号
private Long templateNo;
}
......@@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value="/pc/owner/loanAccountApprove")
@Validated
@Api(tags = "货主端-资金管理")
@Api(tags = "货主端-资金管理(货主借款账户管理(申请借款))")
@AllArgsConstructor
public class OwnerLoanAccountController {
......
......@@ -28,7 +28,7 @@ import java.util.List;
@RestController
@RequestMapping(value="/pc/owner/loanRunWaterRecord")
@Validated
@Api(tags = "货主端-货主借款账户管理")
@Api(tags = "货主端-资金管理(货主借款账户管理(申请借款))")
@AllArgsConstructor
public class OwnerLoanAccountRunningWaterRecordController {
......
......@@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value="/pc/owner/loanRecord")
@Validated
@Api(tags = "货主端-借款管理")
@Api(tags = "货主端-资金管理(货主借款账户管理(申请借款))")
@AllArgsConstructor
public class OwnerLoanRecordController {
......@@ -32,7 +32,7 @@ public class OwnerLoanRecordController {
@ApiOperation(value = "分页搜索货主借款列表",notes = "<br>By:刘海泉")
@ApiOperation(value = "借款列表",notes = "<br>By:刘海泉")
@PostMapping("/pageOwnerLoanRecordOfOwner")
@UnitCovert(param = false)
public Result<PageData<OwnerLoanRecordVO>> pageOwnerLoanRecordOfOwner(@RequestBody @Validated PageOwnerLoanRecordOfOwner param) {
......
......@@ -27,7 +27,7 @@ import javax.validation.constraints.NotNull;
@RestController
@RequestMapping(value="/pc/owner/ownerRepayment")
@Validated
@Api(tags = "货主端-货主借款账户管理(申请借款)")
@Api(tags = "货主端-资金管理(货主借款账户管理(申请借款))")
@AllArgsConstructor
public class OwnerRepaymentController {
......
......@@ -68,7 +68,14 @@ public class OwnerLoanAccountRunningWaterRecord implements HasKey<Integer> {
@ApiModelProperty("金额")
private BigDecimal alterationBalance;
@TableField("useable_balance")
@ApiModelProperty("可用余额")
private BigDecimal useableBalance;
@TableField("frozen_balance")
@ApiModelProperty("冻结余额")
private BigDecimal frozenBalance;
@TableField("account_balance")
@ApiModelProperty("账户余额")
private BigDecimal accountBalance;
......
package com.clx.performance.service.impl.loan;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.config.loan.ClxPayeeConfig;
import com.clx.performance.config.loan.PaymentFromConfig;
import com.clx.performance.dao.loan.OwnerRepaymentDao;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.model.loan.OwnerRepayment;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerRepaymentParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerRepaymentOfOwner;
......@@ -15,15 +19,20 @@ import com.clx.performance.vo.pc.loan.carrier.OwnerRepaymentVO;
import com.clx.performance.vo.pc.loan.owner.CashierInfoVO;
import com.clx.performance.vo.pc.loan.owner.OrderPaymentDetailVO;
import com.clx.performance.vo.pc.loan.owner.TransferPaymentDetailVO;
import com.msl.common.result.Result;
import com.msl.common.utils.DateUtils;
import com.msl.document.api.feign.ContractEvidenceFeign;
import com.msl.document.api.feign.ContractTemplateFeign;
import com.msl.document.api.param.GenerateContractParam;
import com.msl.document.api.vo.ContractEvidenceRecordVo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* @author kavin
......@@ -39,6 +48,7 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService {
private final OwnerRepaymentStruct ownerRepaymentStruct;
private final ContractEvidenceFeign contractEvidenceFeign;
private final ContractTemplateFeign contractTemplateFeign;
private final PaymentFromConfig paymentFromConfig;
@Override
public IPage<OwnerRepaymentVO> pageOwnerRepayment(PageCarrierOwnerRepaymentParam param) {
IPage<OwnerRepayment> page = ownerRepaymentDao.pageOwnerRepayment(param);
......@@ -70,7 +80,7 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService {
PerformanceResultEnum.DATA_NOT_FIND);
OrderPaymentDetailVO vo = ownerRepaymentStruct.convertOrderPaymentDetail(ownerRepayment);
//TODO 设置付款倒计时
vo.setPaymentCountdown(null);
vo.setFinalPaymentTime(null);
return vo;
}
......@@ -81,32 +91,31 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService {
ClxPayeeConfig.PayeeConfig payeeMap = ClxPayeeConfig.getPayeeMap(ClxPayeeConfig.XXH_ID);
//计算倒计时时间,下单时间 + 30天 为截止时间
LocalDateTime startTime = LocalDateTime.now();
LocalDateTime endTime = ownerRepayment.getPaymentApplicationFormTime().plusDays(30);
long seconds = Duration.between(startTime, endTime).getSeconds();
return TransferPaymentDetailVO.builder().payee(payeeMap.getName())
.payeeAccount(payeeMap.getAccount()).payeeBank(payeeMap.getBank()).payeeBankNo(payeeMap.getBankNo())
.repaymentBalance(ownerRepayment.getRepaymentBalance())
.remittanceIdentificationCode(ownerRepayment.getRemittanceIdentificationCode())
.status(ownerRepayment.getStatus()).paymentCountdown(seconds).build();
.status(ownerRepayment.getStatus()).finalPaymentTime(DateUtils.formatDateTime(endTime).get()).build();
}
@Override
public String savePaymentApplicationForm(ExportPaymentApplicationFormParam param) {
/* OwnerRepayment ownerRepayment = ownerRepaymentDao.getEntityByKey(param.getId()).orElseThrow(
OwnerRepayment ownerRepayment = ownerRepaymentDao.getEntityByKey(param.getId()).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND);
OwnerRepaymentVO ownerRepaymentVO = ownerRepaymentStruct.convert(ownerRepayment);
Map<String,String> map = JSON.parseObject(JSONUtil.parse(ownerRepaymentVO).toString(), Map.class);
// 创建合同
GenerateContractParam feignParam = new GenerateContractParam();
feignParam.setTemplateNo(orderContractConfig.getTransportNo());
feignParam.setParametersValueMap(map);
if(Objects.equals(OwnerRePaymentEnum.Channel.ORDER.getCode(),param.getPayWay())){
feignParam.setTemplateNo(paymentFromConfig.getTemplateNo());
}else{
feignParam.setTemplateNo(paymentFromConfig.getTemplateNo());
}
Result<Long> longResult = contractTemplateFeign.generateContract(param);
Result<ContractEvidenceRecordVo> contractEvidenceDetail = contractEvidenceFeign.getContractEvidenceDetail(longResult.getData());*/
//return contractEvidenceDetail.getData().getFileUrl();
return null;
feignParam.setParametersValueMap(map);
Result<Long> longResult = contractTemplateFeign.generateContract(feignParam);
Result<ContractEvidenceRecordVo> contractEvidenceDetail = contractEvidenceFeign.getContractEvidenceDetail(longResult.getData());
return contractEvidenceDetail.getData().getFileUrl();
}
}
......@@ -41,7 +41,8 @@ public class NbBankServiceImpl implements NbBankService {
String merSeqNo = idGenerateSnowFlake.nextIdToString(3L);
String merDtTm = LocalDateTimeUtils.formatTime();
JSONObject data = bankThirdpartyService.directBankTransferOrder(merSeqNo, merDtTm, amount);
String closeDtTm = LocalDateTimeUtils.formatTime(LocalDateTimeUtils.parseTime(merDtTm).plusDays(30));
JSONObject data = bankThirdpartyService.directBankTransferOrder(merSeqNo, merDtTm, closeDtTm, amount);
String transSeqNo = data.getString("transSeqNo");
String cardNo = data.getString("cardNo");
......@@ -53,6 +54,7 @@ public class NbBankServiceImpl implements NbBankService {
result.setMerSeqNo(merSeqNo);
result.setTransSeqNo(transSeqNo);
result.setSignNo(signNo);
result.setCloseDtTm(closeDtTm);
return result;
}
......
......@@ -39,7 +39,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
@Autowired
private NbBankRecordDao nbBankRecordDao;
@PostConstruct
// @PostConstruct
public void bankInit() throws IOException {
File file = new File("/app/nbbank");
file.mkdir();
......@@ -114,7 +114,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
* amount: 订单金额(分)
*/
@Override
public JSONObject directBankTransferOrder(String merSeqNo, String merDtTm, Integer amount) {
public JSONObject directBankTransferOrder(String merSeqNo, String merDtTm, String closeDtTm, Integer amount) {
try {
JSONObject jsonObject = new JSONObject();
jsonObject.put("transId", "IP01"); //交易识别码 必填
......@@ -130,7 +130,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
jsonObject.put("productNum", "1"); //商品数量 必填
// jsonObject.put("closeDtTm", "2023-11-29 13:39:16"); //关单时间
jsonObject.put("closeDtTm", closeDtTm); //关单时间
// jsonObject.put("mobilePhone", "13000000000"); //手机号
HashMap<String,String> httpHeader = new HashMap<>();
......@@ -561,6 +561,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
JSONObject responseJson = JSON.parseObject(JSON.toJSONString(response));
JSONObject responseDataJson = responseJson.getJSONObject("data");
if (responseDataJson == null) {responseDataJson = new JSONObject();}
recordSave(type
, requestDataJson.getString("merId")
......@@ -581,6 +582,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
JSONObject responseJson = JSON.parseObject(JSON.toJSONString(response));
JSONObject responseDataJson = responseJson.getJSONObject("data");
if (responseDataJson == null) {responseDataJson = new JSONObject();}
recordSave(type
, requestDataJson.getString("merId")
......@@ -601,6 +603,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
JSONObject responseJson = JSON.parseObject(JSON.toJSONString(response));
JSONObject responseDataJson = responseJson.getJSONObject("data");
if (responseDataJson == null) {responseDataJson = new JSONObject();}
recordSave(type
, requestDataJson.getString("merId")
......@@ -618,6 +621,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
else if (Objects.equals(type, NbBankRecordEnum.Type.NOTIFY_MERCHANT.getCode())) {
JSONObject responseJson = JSON.parseObject(JSON.toJSONString(response));
JSONObject responseDataJson = responseJson.getJSONObject("data");
if (responseDataJson == null) {responseDataJson = new JSONObject();}
recordSave(type
, responseDataJson.getString("merId")
......@@ -638,6 +642,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
JSONObject responseJson = JSON.parseObject(JSON.toJSONString(response));
JSONObject responseDataJson = responseJson.getJSONObject("data");
if (responseDataJson == null) {responseDataJson = new JSONObject();}
recordSave(type
, requestDataJson.getString("merId")
......@@ -658,6 +663,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
JSONObject responseJson = JSON.parseObject(JSON.toJSONString(response));
JSONObject responseDataJson = responseJson.getJSONObject("data");
if (responseDataJson == null) {responseDataJson = new JSONObject();}
recordSave(type
, requestDataJson.getString("merId")
......
......@@ -6,7 +6,7 @@ import com.nbopen.api.SDKResponse;
public interface NbBankThirdpartyService {
JSONObject directBankTransferOrder(String merSeqNo, String merDtTm, Integer amount);
JSONObject directBankTransferOrder(String merSeqNo, String merDtTm, String closeDtTm, Integer amount);
JSONObject unionPayDirectOrder(String merSeqNo, String merDtTm, Integer amount,
String payAcctOpenBankId, String payAcctNo, String payAcctNm);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论