提交 093c2aec 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/TempController.java # performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java # performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementServiceImpl.java Former-commit-id: 93d6b926
...@@ -26,7 +26,7 @@ public enum OwnerLoanAccountApproveEnum { ...@@ -26,7 +26,7 @@ public enum OwnerLoanAccountApproveEnum {
return Arrays.stream(values()).filter(e -> Objects.equals(e.code , code)).findFirst(); return Arrays.stream(values()).filter(e -> Objects.equals(e.code , code)).findFirst();
} }
public static String getMsgByCode(int code) { public static String getMsgByCode(Integer code) {
return getByCode(code).map(OwnerLoanAccountApproveEnum.Status::getMsg).orElse(null); return getByCode(code).map(OwnerLoanAccountApproveEnum.Status::getMsg).orElse(null);
} }
} }
......
...@@ -14,8 +14,10 @@ public enum OwnerLoanAccountRunningWaterRecordEnum { ...@@ -14,8 +14,10 @@ public enum OwnerLoanAccountRunningWaterRecordEnum {
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum RunWaterType { public enum RunWaterType {
APPROVE_WAIT(10, "运单核销"), APPROVE_WAIT(10, "借款"),
APPROVE_PASS(20, "借款"), APPROVE_FROZEN(20, "冻结"),
APPROVE_CHILD_WRITE_OFF(30, "运单核销"),
APPROVE_THAW(40, "解冻"),
; ;
private final Integer code; private final Integer code;
......
...@@ -27,7 +27,7 @@ public enum OwnerPaymentEnum { ...@@ -27,7 +27,7 @@ public enum OwnerPaymentEnum {
return Arrays.stream(values()).filter(e -> Objects.equals(e.code , code)).findFirst(); return Arrays.stream(values()).filter(e -> Objects.equals(e.code , code)).findFirst();
} }
public static String getMsgByCode(int code) { public static String getMsgByCode(Integer code) {
return getByCode(code).map(OwnerPaymentEnum.Status::getMsg).orElse(null); return getByCode(code).map(OwnerPaymentEnum.Status::getMsg).orElse(null);
} }
} }
......
...@@ -43,11 +43,11 @@ public enum OwnerRePaymentEnum { ...@@ -43,11 +43,11 @@ public enum OwnerRePaymentEnum {
private final Integer code; private final Integer code;
private final String msg; private final String msg;
public static Optional<OwnerRePaymentEnum.Channel> getByCode(int code) { public static Optional<OwnerRePaymentEnum.Channel> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst(); return Arrays.stream(values()).filter(e -> Objects.equals(e.code , code)).findFirst();
} }
public static String getMsgByCode(int code) { public static String getMsgByCode(Integer code) {
return getByCode(code).map(OwnerRePaymentEnum.Channel::getMsg).orElse(null); return getByCode(code).map(OwnerRePaymentEnum.Channel::getMsg).orElse(null);
} }
} }
...@@ -64,11 +64,11 @@ public enum OwnerRePaymentEnum { ...@@ -64,11 +64,11 @@ public enum OwnerRePaymentEnum {
private final Integer code; private final Integer code;
private final String msg; private final String msg;
public static Optional<OwnerRePaymentEnum.BeOverdue> getByCode(int code) { public static Optional<OwnerRePaymentEnum.BeOverdue> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst(); return Arrays.stream(values()).filter(e -> Objects.equals(e.code , code)).findFirst();
} }
public static String getMsgByCode(int code) { public static String getMsgByCode(Integer code) {
return getByCode(code).map(OwnerRePaymentEnum.BeOverdue::getMsg).orElse(null); return getByCode(code).map(OwnerRePaymentEnum.BeOverdue::getMsg).orElse(null);
} }
} }
......
package com.clx.performance.enums.nbbank;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum NbBankStatusEnum {
;
@Getter
@AllArgsConstructor
public enum Status {
TEMP(0, "中间态"),
SUCCESS(1, "交易成功"),
FAIL(2, "交易失败"),
ACCEPT(3, "交易已受理"),
INIT(4, "订单初始状态"),
NOT_FOUND(5, "交易不存在"),
TIMEOUT(6, "交易超时,须发起交易结果查询"),
;
private final Integer code;
private final String msg;
public static Optional<Status> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(Status::getMsg).orElse(null);
}
}
}
package com.clx.performance.vo.pc.loan.carrier;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.math.BigDecimal;
import java.util.List;
/**
* @ClassName CashierInfoVO
* @Description
* @Author kavin
* @Date 2024/1/24 16:24
* @Version 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CashierInfoVO {
@ApiModelProperty("借款单号")
private Long loanNo;
@ApiModelProperty("货物名称")
private String goodsName;
@ApiModelProperty("交易流水号(第三方)")
private String runningWaterOpenNo;
@MoneyOutConvert
@ApiModelProperty("订单金额")
private BigDecimal loanBalance;
@ApiModelProperty("支付方式")
private List<Integer> payWay;
@ApiModelProperty("付款账户")
private String payAccount;
}
package com.clx.performance.vo.pc.loan.carrier;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.math.BigDecimal;
/**
* @ClassName OrderPaymentDetailVO
* @Description
* @Author kavin
* @Date 2024/1/24 16:45
* @Version 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class OrderPaymentDetailVO {
@ApiModelProperty("借款单号")
private Long loanNo;
@ApiModelProperty("付款方")
private String lendingParty;
@ApiModelProperty("付款账户")
private String lendingPartyAccount;
@ApiModelProperty("收款方")
private String borrower;
@ApiModelProperty("收款账户")
private String borrowerAccount;
@MoneyOutConvert
@ApiModelProperty("订单金额")
private BigDecimal loanBalance;
@ApiModelProperty("10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
private Integer status;
@ApiModelProperty("订单支付状态 10 待付款 40 付款中 50 付款成功 60 付款失败")
private String statusMsg;
public String getStatusMsg(){
return OwnerLoanRecordEnum.Status.getMsgByCode(status);
}
@ApiModelProperty("付款最终时间")
public String finalPaymentTime;
@ApiModelProperty("订单创建时间")
public String createTime;
}
...@@ -37,7 +37,7 @@ public class OwnerLoanAccountVO { ...@@ -37,7 +37,7 @@ public class OwnerLoanAccountVO {
@ApiModelProperty(value = "账户余额 (元) ", example = "1.23") @ApiModelProperty(value = "账户余额 (元) ", example = "1.23")
private BigDecimal amount; private BigDecimal amount;
public BigDecimal getAmount() { public BigDecimal getAmount() {
return BigDecimal.ZERO.add(fundingAmount==null? BigDecimal.ZERO : fundingAmount).add(virtuallyAmount==null? BigDecimal.ZERO : virtuallyAmount); return BigDecimal.ZERO.add(fundingAccountBalance==null? BigDecimal.ZERO : fundingAccountBalance).add(virtuallyAccountBalance==null? BigDecimal.ZERO : virtuallyAccountBalance);
} }
@ApiModelProperty(value = "欠款金额 (元)", example = "1.23") @ApiModelProperty(value = "欠款金额 (元)", example = "1.23")
...@@ -52,13 +52,30 @@ public class OwnerLoanAccountVO { ...@@ -52,13 +52,30 @@ public class OwnerLoanAccountVO {
private String createTime; private String createTime;
@JsonIgnore @JsonIgnore
@ApiModelProperty(value = "资金金额", example = "1.23", hidden = true) @ApiModelProperty(value = "资金账户余额", example = "", hidden = true)
@MoneyOutConvert @MoneyOutConvert
private BigDecimal fundingAmount; private BigDecimal fundingAccountBalance;
@JsonIgnore @JsonIgnore
@ApiModelProperty(value = "虚拟币金额", example = "1.23", hidden = true) @ApiModelProperty(value = "资金可用余额", example = "", hidden = true)
@MoneyOutConvert @MoneyOutConvert
private BigDecimal virtuallyAmount; private BigDecimal fundingUsableBalance;
@JsonIgnore
@ApiModelProperty(value = "资金冻结余额", example = "", hidden = true)
@MoneyOutConvert
private BigDecimal fundingFrozenBalance;
@JsonIgnore
@ApiModelProperty(value = "虚拟币账户余额", example = "", hidden = true)
@MoneyOutConvert
private BigDecimal virtuallyAccountBalance;
@JsonIgnore
@ApiModelProperty(value = "虚拟币可用余额", example = "", hidden = true)
@MoneyOutConvert
private BigDecimal virtuallyUsableBalance;
@JsonIgnore
@ApiModelProperty(value = "虚拟币冻结余额", example = "", hidden = true)
@MoneyOutConvert
private BigDecimal virtuallyFrozenBalance;
@JsonIgnore @JsonIgnore
@ApiModelProperty(value = "资金欠款", example = "1.23", hidden = true) @ApiModelProperty(value = "资金欠款", example = "1.23", hidden = true)
@MoneyOutConvert @MoneyOutConvert
......
...@@ -37,6 +37,12 @@ public class OwnerLoanRecordVO { ...@@ -37,6 +37,12 @@ public class OwnerLoanRecordVO {
@ApiModelProperty("交易流水号(第三方)") @ApiModelProperty("交易流水号(第三方)")
private Long runningWaterOpenNo; private Long runningWaterOpenNo;
@ApiModelProperty("商户流水号")
private String merchantRunningWaterNo;
@ApiModelProperty("汇款识别码")
private String remittanceIdentificationCode;
@ApiModelProperty("借款单号") @ApiModelProperty("借款单号")
private Long loanNo; private Long loanNo;
......
...@@ -57,9 +57,6 @@ public class OwnerRepaymentVO { ...@@ -57,9 +57,6 @@ public class OwnerRepaymentVO {
@ApiModelProperty("付款账户") @ApiModelProperty("付款账户")
private String paymentAccount; private String paymentAccount;
@ApiModelProperty("生成付款申请单时间")
private String paymentApplicationFormTime;
@ApiModelProperty("汇款识别码") @ApiModelProperty("汇款识别码")
private String remittanceIdentificationCode; private String remittanceIdentificationCode;
...@@ -132,7 +129,7 @@ public class OwnerRepaymentVO { ...@@ -132,7 +129,7 @@ public class OwnerRepaymentVO {
private String createBy; private String createBy;
@ApiModelProperty("创建时间") @ApiModelProperty("生成付款申请单时间")
private String createTime; private String createTime;
......
package com.clx.performance.vo.pc.loan.carrier;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.math.BigDecimal;
/**
* @ClassName TransferPaymentDetailVO
* @Description
* @Author kavin
* @Date 2024/1/24 16:57
* @Version 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class TransferPaymentDetailVO {
@ApiModelProperty("收款户名")
private String payee;
@ApiModelProperty("收款账号")
private String payeeAccount;
@ApiModelProperty("汇款识别码")
private String remittanceIdentificationCode;
@ApiModelProperty("收款银行")
private String payeeBank;
@ApiModelProperty("收款行号")
private String payeeBankNo;
@MoneyOutConvert
@ApiModelProperty("订单金额")
private BigDecimal loanBalance;
@ApiModelProperty("订单支付状态 10 待付款 40 付款中 50 付款成功 60 付款失败")
private Integer status;
@ApiModelProperty("订单支付状态 10 待付款 40 付款中 50 付款成功 60 付款失败")
private String statusMsg;
public String getStatusMsg(){
return OwnerLoanRecordEnum.Status.getMsgByCode(status);
}
@ApiModelProperty("付款最后时间")
public String finalPaymentTime;
}
...@@ -23,12 +23,10 @@ import java.time.LocalDateTime; ...@@ -23,12 +23,10 @@ import java.time.LocalDateTime;
@Builder @Builder
public class OrderPaymentDetailVO { public class OrderPaymentDetailVO {
@ApiModelProperty("还款单号") @ApiModelProperty("还款单号")
private Long repaymentNo; private Long repaymentNo;
@ApiModelProperty("订单创建时间")
private LocalDateTime paymentApplicationFormTime;
@ApiModelProperty("付款方") @ApiModelProperty("付款方")
private String payment; private String payment;
...@@ -60,4 +58,8 @@ public class OrderPaymentDetailVO { ...@@ -60,4 +58,8 @@ public class OrderPaymentDetailVO {
@ApiModelProperty("付款最终时间") @ApiModelProperty("付款最终时间")
public String finalPaymentTime; public String finalPaymentTime;
@ApiModelProperty("订单创建时间")
public String createTime;
} }
...@@ -18,14 +18,17 @@ import java.util.List; ...@@ -18,14 +18,17 @@ import java.util.List;
@Setter @Setter
public class OwnerLoanRecordDetail { public class OwnerLoanRecordDetail {
@ApiModelProperty("借款方下拉选")
@ApiModelProperty("公司名称(借款方)")
private String companyName;
@ApiModelProperty("借出方下拉选")
private List<BorrowerSelectVO> borrowerList; private List<BorrowerSelectVO> borrowerList;
@ApiModelProperty("借款方下拉选") @ApiModelProperty("收款方")
private List<PayeeVO> payeeList; private List<PayeeVO> payeeList;
@ApiModelProperty("公司名称")
private String companyName;
......
...@@ -31,7 +31,7 @@ public class NbBankOrderPayResultVO { ...@@ -31,7 +31,7 @@ public class NbBankOrderPayResultVO {
private String transSeqNo; private String transSeqNo;
@ApiModelProperty(value = "转账编号 (转账专用)", example = "123456") @ApiModelProperty(value = "转账编号 (转账专用)", example = "123456")
private String signNo; private String signNo;
@ApiModelProperty(value = "关单时间 (转账专用)", example = "") @ApiModelProperty(value = "关单时间", example = "")
private String closeDtTm; private String closeDtTm;
} }
\ No newline at end of file
...@@ -34,6 +34,6 @@ public class NbBankOrderResultVO { ...@@ -34,6 +34,6 @@ public class NbBankOrderResultVO {
private String signNo; private String signNo;
@ApiModelProperty(value = "交易状态:1交易成功 2交易失败 3交易已受理 4订单初始状态 5交易不存在 6交易超时", example = "1") @ApiModelProperty(value = "交易状态:1交易成功 2交易失败 3交易已受理 4订单初始状态 5交易不存在 6交易超时", example = "1")
private Integer transStatus; private Integer status;
} }
\ No newline at end of file
...@@ -7,6 +7,7 @@ import com.msl.common.exception.ServiceSystemException; ...@@ -7,6 +7,7 @@ import com.msl.common.exception.ServiceSystemException;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
......
...@@ -11,8 +11,9 @@ import org.springframework.context.annotation.Configuration; ...@@ -11,8 +11,9 @@ import org.springframework.context.annotation.Configuration;
@ConfigurationProperties(prefix = "payment.form") @ConfigurationProperties(prefix = "payment.form")
public class PaymentFromConfig { public class PaymentFromConfig {
//模版编号 //借款模版编号
private Long templateNo; private Long loanTemplateNo;
//还款模版编号
private Long repaymentTemplateNo;
} }
...@@ -4,8 +4,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,8 +4,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.loan.carrier.CarrierOwnerLoanRecordApproveParam; import com.clx.performance.param.pc.loan.carrier.CarrierOwnerLoanRecordApproveParam;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerLoanRecordParam; import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerLoanRecordParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner; import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner;
import com.clx.performance.param.pc.loan.owner.ExportPaymentApplicationFormParam;
import com.clx.performance.service.loan.OwnerLoanRecordService; import com.clx.performance.service.loan.OwnerLoanRecordService;
import com.clx.performance.vo.pc.loan.carrier.CashierInfoVO;
import com.clx.performance.vo.pc.loan.carrier.OrderPaymentDetailVO;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO; import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import com.clx.performance.vo.pc.loan.carrier.TransferPaymentDetailVO;
import com.msl.common.base.PageData; import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert; import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result; import com.msl.common.result.Result;
...@@ -13,11 +17,11 @@ import io.swagger.annotations.Api; ...@@ -13,11 +17,11 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import javax.validation.constraints.NotNull;
import org.springframework.web.bind.annotation.RestController;
@Slf4j @Slf4j
@RestController @RestController
...@@ -53,4 +57,37 @@ public class CarrierOwnerLoanRecordController { ...@@ -53,4 +57,37 @@ public class CarrierOwnerLoanRecordController {
return Result.page(page.getRecords(), page.getTotal(), page.getPages()); return Result.page(page.getRecords(), page.getTotal(), page.getPages());
} }
@ApiOperation(value = "收银台信息",notes = "<br>By:刘海泉")
@GetMapping("/getCashierInfo")
@UnitCovert(param = false)
public Result<CashierInfoVO> getCashierInfo(@Param("id") @NotNull(message = "id不能为空") Integer id) {
CashierInfoVO vo = ownerLoanRecordService.getCashierInfo(id);
return Result.ok(vo);
}
@ApiOperation(value = "订单支付详情",notes = "<br>By:刘海泉")
@GetMapping("/getOrderPaymentDetail")
@UnitCovert(param = false)
public Result<OrderPaymentDetailVO> getOrderPaymentDetail(@Param("id") @NotNull(message = "id不能为空") Integer id) {
OrderPaymentDetailVO vo = ownerLoanRecordService.getOrderPaymentDetail(id);
return Result.ok(vo);
}
@ApiOperation(value = "转账支付详情",notes = "<br>By:刘海泉")
@GetMapping("/getTransferPaymentDetail")
@UnitCovert(param = false)
public Result<TransferPaymentDetailVO> getTransferPaymentDetail(@Param("id") @NotNull(message = "id不能为空") Integer id) {
TransferPaymentDetailVO vo = ownerLoanRecordService.getTransferPaymentDetail(id);
return Result.ok(vo);
}
@ApiOperation(value = "生成付款申请单",notes = "<br>By:刘海泉")
@GetMapping("/savePaymentApplicationForm")
public Result<String> savePaymentApplicationForm(@RequestBody @Validated ExportPaymentApplicationFormParam param) {
String url = ownerLoanRecordService.savePaymentApplicationForm(param);
return Result.ok(url);
}
} }
...@@ -2,9 +2,13 @@ package com.clx.performance.controller.pc.loan.owner; ...@@ -2,9 +2,13 @@ package com.clx.performance.controller.pc.loan.owner;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner; import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner;
import com.clx.performance.param.pc.loan.owner.ExportPaymentApplicationFormParam;
import com.clx.performance.service.loan.OwnerLoanRecordService; import com.clx.performance.service.loan.OwnerLoanRecordService;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO; import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import com.clx.performance.vo.pc.loan.carrier.CashierInfoVO;
import com.clx.performance.vo.pc.loan.carrier.OrderPaymentDetailVO;
import com.clx.performance.vo.pc.loan.owner.OwnerLoanRecordDetail; import com.clx.performance.vo.pc.loan.owner.OwnerLoanRecordDetail;
import com.clx.performance.vo.pc.loan.carrier.TransferPaymentDetailVO;
import com.msl.common.base.PageData; import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert; import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result; import com.msl.common.result.Result;
...@@ -14,11 +18,11 @@ import io.swagger.annotations.Api; ...@@ -14,11 +18,11 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import javax.validation.constraints.NotNull;
import org.springframework.web.bind.annotation.RestController;
@Slf4j @Slf4j
@RestController @RestController
...@@ -44,10 +48,13 @@ public class OwnerLoanRecordController { ...@@ -44,10 +48,13 @@ public class OwnerLoanRecordController {
@ApiOperation(value = "借款详情",notes = "<br>By:刘海泉") @ApiOperation(value = "借款详情",notes = "<br>By:刘海泉")
@PostMapping("/getOwnerLoanRecordDetail") @GetMapping("/getOwnerLoanRecordDetail")
public Result<OwnerLoanRecordDetail> getOwnerLoanRecordDetail() { public Result<OwnerLoanRecordDetail> getOwnerLoanRecordDetail() {
OwnerLoanRecordDetail detail = ownerLoanRecordService.getOwnerLoanRecordDetail(); OwnerLoanRecordDetail detail = ownerLoanRecordService.getOwnerLoanRecordDetail();
return Result.ok(detail); return Result.ok(detail);
} }
} }
...@@ -80,7 +80,7 @@ public class TempBankController { ...@@ -80,7 +80,7 @@ public class TempBankController {
@RequestMapping(value = "/notify", method = RequestMethod.POST) @RequestMapping(value = "/notify", method = RequestMethod.POST)
public Result notify(NbBankOrderResultVO param) { public Result notify(NbBankOrderResultVO param) {
bankService.orderPayCallback(param.getMerSeqNo(), param.getTransSeqNo(), bankService.orderPayCallback(param.getMerSeqNo(), param.getTransSeqNo(),
param.getAmount(), param.getAmount(), param.getTransStatus(), param.getSignNo()); param.getAmount(), param.getAmount(), param.getStatus(), param.getSignNo());
return Result.ok(); return Result.ok();
} }
......
...@@ -57,19 +57,29 @@ public class TempController { ...@@ -57,19 +57,29 @@ public class TempController {
public Result<Void> updateInvoiceType(String childNo, Integer invoiceType) { public Result<Void> updateInvoiceType(String childNo, Integer invoiceType) {
tempService.updateInvoiceType(childNo, invoiceType); tempService.updateInvoiceType(childNo, invoiceType);
public Result test() {
return Result.ok(); return Result.ok();
} }
// @ApiOperation(value = "更新网运标识", notes = "<br>By:艾庆国")
// @RequestMapping(value = "/updateInvoiceType", method = RequestMethod.POST)
// public Result<Void> updateInvoiceType(String childNo, Integer invoiceType) {
//
// tempService.updateInvoiceType(childNo, invoiceType);
//
// return Result.ok();
// }
@ApiOperation(value = "司机违约结算单完成 (临时接口)", notes = "<br>By:艾庆国")
@RequestMapping(value = "/updateBreakContractDriverSettlementFinish", method = RequestMethod.POST)
public Result<Void> updateBreakContractDriverSettlementFinish(String settlementNo) {
tempService.updateBreakContractDriverSettlementFinish(settlementNo);
return Result.ok(); // @ApiOperation(value = "司机违约结算单完成 (临时接口)", notes = "<br>By:艾庆国")
} // @RequestMapping(value = "/updateBreakContractDriverSettlementFinish", method = RequestMethod.POST)
// public Result<Void> updateBreakContractDriverSettlementFinish(String settlementNo) {
//
// tempService.updateBreakContractDriverSettlementFinish(settlementNo);
//
// return Result.ok();
// }
@ApiOperation(value = "测试支付划账 (临时接口)", notes = "<br>By:胡宁宁") @ApiOperation(value = "测试支付划账 (临时接口)", notes = "<br>By:胡宁宁")
@RequestMapping(value = "/paymentTest", method = RequestMethod.GET) @RequestMapping(value = "/paymentTest", method = RequestMethod.GET)
...@@ -94,35 +104,35 @@ public class TempController { ...@@ -94,35 +104,35 @@ public class TempController {
// return Result.ok(); // return Result.ok();
// } // }
@ApiOperation(value = "运单支付运费同步 (临时接口)", notes = "<br>By:艾庆国") // @ApiOperation(value = "运单支付运费同步 (临时接口)", notes = "<br>By:艾庆国")
@RequestMapping(value = "/orderChildPaySync", method = RequestMethod.POST) // @RequestMapping(value = "/orderChildPaySync", method = RequestMethod.POST)
public Result<Void> orderChildPaySync(@RequestBody OrderChildPaySyncParam param) { // public Result<Void> orderChildPaySync(@RequestBody OrderChildPaySyncParam param) {
//
HttpDTO httpDTO = transportFeignService.orderChildPaySync(param); // HttpDTO httpDTO = transportFeignService.orderChildPaySync(param);
String decrypt = ThirdComponent.decrypt(httpDTO.getData()); // String decrypt = ThirdComponent.decrypt(httpDTO.getData());
log.info("{}", decrypt); // log.info("{}", decrypt);
return Result.ok(); // return Result.ok();
} // }
@ApiOperation(value = "货主结算单同步 (临时接口)", notes = "<br>By:艾庆国")
@RequestMapping(value = "/ownerSettlementSync", method = RequestMethod.POST)
public Result<Void> ownerSettlementSync(@RequestBody OwnerSettlementSyncParam param) {
HttpDTO httpDTO = transportFeignService.ownerSettlementSync(param); // @ApiOperation(value = "货主结算单同步 (临时接口)", notes = "<br>By:艾庆国")
String decrypt = ThirdComponent.decrypt(httpDTO.getData()); // @RequestMapping(value = "/ownerSettlementSync", method = RequestMethod.POST)
log.info("{}", decrypt); // public Result<Void> ownerSettlementSync(@RequestBody OwnerSettlementSyncParam param) {
return Result.ok(); //
} // HttpDTO httpDTO = transportFeignService.ownerSettlementSync(param);
// String decrypt = ThirdComponent.decrypt(httpDTO.getData());
// log.info("{}", decrypt);
// return Result.ok();
// }
@ApiOperation(value = "获取风控状态 (临时接口)", notes = "<br>By:艾庆国") // @ApiOperation(value = "获取风控状态 (临时接口)", notes = "<br>By:艾庆国")
@RequestMapping(value = "/getRiskStatus", method = RequestMethod.POST) // @RequestMapping(value = "/getRiskStatus", method = RequestMethod.POST)
public Result<Void> getRiskStatus(String childNo) { // public Result<Void> getRiskStatus(String childNo) {
ThirdOrderChildRiskStatusParam param = ThirdOrderChildRiskStatusParam.builder().build(); // ThirdOrderChildRiskStatusParam param = ThirdOrderChildRiskStatusParam.builder().build();
param.setChildNo(childNo); // param.setChildNo(childNo);
HttpDTO httpDTO = transportFeignService.getRiskStatus(param); // HttpDTO httpDTO = transportFeignService.getRiskStatus(param);
String decrypt = ThirdComponent.decrypt(httpDTO.getData()); // String decrypt = ThirdComponent.decrypt(httpDTO.getData());
log.info("{}", decrypt); // log.info("{}", decrypt);
return Result.ok(); // return Result.ok();
} // }
} }
...@@ -7,6 +7,7 @@ import com.nbopen.api.*; ...@@ -7,6 +7,7 @@ import com.nbopen.api.*;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -37,7 +38,7 @@ public class NbBankController { ...@@ -37,7 +38,7 @@ public class NbBankController {
nbBankNotifyService.payNotify(JSON.toJSONString(body)); nbBankNotifyService.payNotify(JSON.toJSONString(body));
return getResultSuc(); return getResultSuc();
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); log.info("宁波银行回调失败:{}", ExceptionUtils.getStackTrace(e));
return getResultFail(); return getResultFail();
} }
} }
......
...@@ -27,8 +27,7 @@ public class OwnerLoanAccountDaoImpl extends BaseDaoImpl<OwnerLoanAccountMapper, ...@@ -27,8 +27,7 @@ public class OwnerLoanAccountDaoImpl extends BaseDaoImpl<OwnerLoanAccountMapper,
if (flag) { if (flag) {
return baseMapper.addAccount(account, nowStr); return baseMapper.addAccount(account, nowStr);
} else { } else {
return null; return baseMapper.subAccount(account, nowStr);
// return baseMapper.subAccount(account, nowStr);
} }
} }
......
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.loan.OwnerLoanRecordDao; import com.clx.performance.dao.loan.OwnerLoanRecordDao;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.mapper.loan.OwnerLoanRecordMapper; import com.clx.performance.mapper.loan.OwnerLoanRecordMapper;
import com.clx.performance.model.loan.OwnerLoanRecord; import com.clx.performance.model.loan.OwnerLoanRecord;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerLoanRecordParam; import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerLoanRecordParam;
...@@ -13,6 +14,7 @@ import com.msl.common.dao.impl.BaseDaoImpl; ...@@ -13,6 +14,7 @@ import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -53,4 +55,19 @@ public class OwnerLoanRecordDaoImpl extends BaseDaoImpl<OwnerLoanRecordMapper, O ...@@ -53,4 +55,19 @@ public class OwnerLoanRecordDaoImpl extends BaseDaoImpl<OwnerLoanRecordMapper, O
return baseMapper.pageByParam(page,param); return baseMapper.pageByParam(page,param);
} }
/**
* 查询审批通过并且未用完的借款
* @param userNo
* @return
*/
@Override
public List<OwnerLoanRecord> selectLoanBalance(Long userNo) {
return baseMapper.selectList(
lQrWrapper().eq(OwnerLoanRecord::getStatus, OwnerLoanRecordEnum.Status.APPROVE_PASS.getCode())
.eq(OwnerLoanRecord::getOwnerUserNo , userNo)
.gt(OwnerLoanRecord::getLoanResidueBalance, 0)
.orderByAsc(OwnerLoanRecord::getId)
);
}
} }
...@@ -8,6 +8,8 @@ import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner; ...@@ -8,6 +8,8 @@ import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO; import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
import java.util.List;
/** /**
* @author kavin * @author kavin
...@@ -19,4 +21,5 @@ public interface OwnerLoanRecordDao extends BaseDao<OwnerLoanRecordMapper, Owner ...@@ -19,4 +21,5 @@ public interface OwnerLoanRecordDao extends BaseDao<OwnerLoanRecordMapper, Owner
IPage<OwnerLoanRecordVO> pageByParam(PageOwnerLoanRecordOfOwner param); IPage<OwnerLoanRecordVO> pageByParam(PageOwnerLoanRecordOfOwner param);
List<OwnerLoanRecord> selectLoanBalance(Long userNo);
} }
...@@ -127,6 +127,9 @@ public class OrderChildSyncTransportListener { ...@@ -127,6 +127,9 @@ public class OrderChildSyncTransportListener {
if (subtract.compareTo(BigDecimal.ZERO) <= 0 || ans.compareTo(BigDecimal.ZERO) == 0) { if (subtract.compareTo(BigDecimal.ZERO) <= 0 || ans.compareTo(BigDecimal.ZERO) == 0) {
settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO); settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO);
settlementDriverDetail.setPrepayFreightFlag(SettlementDriverEnum.PrepayFreightFlag.NO_PAY.getCode()); settlementDriverDetail.setPrepayFreightFlag(SettlementDriverEnum.PrepayFreightFlag.NO_PAY.getCode());
BigDecimal settlementFreight = settlementOwnerDetail.getSettlementFreight();
//生成借款标识
} else { } else {
if (subtract.subtract(ans).compareTo(BigDecimal.ZERO) >= 0) { if (subtract.subtract(ans).compareTo(BigDecimal.ZERO) >= 0) {
//账户扣钱并生成扣除流水 //账户扣钱并生成扣除流水
......
...@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.loan.BorrowerConfig; import com.clx.performance.model.loan.BorrowerConfig;
import com.clx.performance.param.pc.loan.carrier.PageBorrowerConfigParam; import com.clx.performance.param.pc.loan.carrier.PageBorrowerConfigParam;
import com.clx.performance.sqlProvider.borrower.BorrowerConfigSqlProvider; import com.clx.performance.sqlProvider.loan.BorrowerConfigSqlProvider;
import com.clx.performance.vo.pc.loan.carrier.BorrowerConfigVO; import com.clx.performance.vo.pc.loan.carrier.BorrowerConfigVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
......
...@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.loan.Borrower; import com.clx.performance.model.loan.Borrower;
import com.clx.performance.param.pc.loan.carrier.PageBorrowerParam; import com.clx.performance.param.pc.loan.carrier.PageBorrowerParam;
import com.clx.performance.sqlProvider.borrower.BorrowerSqlProvider; import com.clx.performance.sqlProvider.loan.BorrowerSqlProvider;
import com.clx.performance.vo.pc.loan.carrier.BorrowerVO; import com.clx.performance.vo.pc.loan.carrier.BorrowerVO;
import com.clx.performance.vo.pc.loan.owner.BorrowerSelectVO; import com.clx.performance.vo.pc.loan.owner.BorrowerSelectVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
......
...@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.loan.OwnerLoanAccount; import com.clx.performance.model.loan.OwnerLoanAccount;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountParam; import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountParam;
import com.clx.performance.sqlProvider.borrower.OwnerLoanAccountSqlProvider; import com.clx.performance.sqlProvider.loan.OwnerLoanAccountSqlProvider;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountVO; import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.annotations.SelectProvider;
...@@ -25,12 +25,14 @@ public interface OwnerLoanAccountMapper extends BaseMapper<OwnerLoanAccount> { ...@@ -25,12 +25,14 @@ public interface OwnerLoanAccountMapper extends BaseMapper<OwnerLoanAccount> {
) )
Integer addAccount(@Param("account") OwnerLoanAccount account, @Param("now") String nowStr); Integer addAccount(@Param("account") OwnerLoanAccount account, @Param("now") String nowStr);
// @Update("update owner_account set funding_amount = funding_amount - #{account.fundingAmount}," + @Update("update owner_loan_account set funding_account_balance = funding_account_balance - #{account.fundingAccountBalance}," +
// "frozen_balance = frozen_balance + #{account.frozenBalance},account_balance = account_balance - #{account.accountBalance}," + ",funding_usable_balance = funding_usable_balance - #{account.fundingUsableBalance},funding_frozen_balance = funding_frozen_balance - #{account.fundingFrozenBalance}," +
// "modified_time=#{now}" ",virtually_account_balance = virtually_account_balance - #{account.virtuallyAccountBalance},virtually_usable_balance = virtually_usable_balance - #{account.virtuallyUsableBalance}," +
// + "where id = #{account.id} and modified_time = #{account.modifiedTime}" ",virtually_frozen_balance = virtually_frozen_balance - #{account.virtuallyFrozenBalance}," +
// ) "modified_time=#{now}"
// Integer subAccount(@Param("account") OwnerAccount account, @Param("now") String now); + "where id = #{account.id} and modified_time = #{account.modifiedTime}"
)
Integer subAccount(@Param("account") OwnerLoanAccount account, @Param("now") String now);
/** /**
* @see OwnerLoanAccountSqlProvider#pageByParam(Page, PageOwnerLoanAccountParam) * @see OwnerLoanAccountSqlProvider#pageByParam(Page, PageOwnerLoanAccountParam)
......
...@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord; import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountWaterRecordOfOwnerParam; import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountWaterRecordOfOwnerParam;
import com.clx.performance.sqlProvider.borrower.OwnerLoanAccountRunningWaterRecordSqlProvider; import com.clx.performance.sqlProvider.loan.OwnerLoanAccountRunningWaterRecordSqlProvider;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountRunningWaterRecordVO; import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountRunningWaterRecordVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.annotations.SelectProvider;
......
...@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.loan.OwnerLoanRecord; import com.clx.performance.model.loan.OwnerLoanRecord;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner; import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner;
import com.clx.performance.sqlProvider.borrower.OwnerLoanRecordSqlProvider; import com.clx.performance.sqlProvider.loan.OwnerLoanRecordSqlProvider;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO; import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.annotations.SelectProvider;
......
...@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.loan.OwnerRepayment; import com.clx.performance.model.loan.OwnerRepayment;
import com.clx.performance.param.pc.loan.carrier.PageOwnerRepaymentOfOwner; import com.clx.performance.param.pc.loan.carrier.PageOwnerRepaymentOfOwner;
import com.clx.performance.sqlProvider.borrower.OwnerRepaymentSqlProvider; import com.clx.performance.sqlProvider.loan.OwnerRepaymentSqlProvider;
import com.clx.performance.vo.pc.loan.carrier.OwnerRepaymentVO; import com.clx.performance.vo.pc.loan.carrier.OwnerRepaymentVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.annotations.SelectProvider;
......
package com.clx.performance.model.loan; package com.clx.performance.model.loan;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn; import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey; import com.msl.common.model.HasKey;
...@@ -8,11 +10,9 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -8,11 +10,9 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.io.Serializable;
/** /**
* @author kavin * @author kavin
...@@ -44,13 +44,29 @@ public class OwnerLoanAccount implements HasKey<Integer> { ...@@ -44,13 +44,29 @@ public class OwnerLoanAccount implements HasKey<Integer> {
@ApiModelProperty("账户类型: 默认3 借款账户") @ApiModelProperty("账户类型: 默认3 借款账户")
private Integer accountType; private Integer accountType;
@TableField("funding_amount") @TableField("funding_account_balance")
@ApiModelProperty("资金金额") @ApiModelProperty("资金账户金额")
private BigDecimal fundingAmount; private BigDecimal fundingAccountBalance;
@TableField("funding_usable_balance")
@ApiModelProperty("资金可用金额")
private BigDecimal fundingUsableBalance;
@TableField("funding_frozen_balance")
@ApiModelProperty("资金冻结金额")
private BigDecimal fundingFrozenBalance;
@TableField("virtually_account_balance")
@ApiModelProperty("虚拟币账户金额")
private BigDecimal virtuallyAccountBalance;
@TableField("virtually_usable_balance")
@ApiModelProperty("虚拟币可用余额")
private BigDecimal virtuallyUsableBalance;
@TableField("virtually_amount") @TableField("virtually_frozen_balance")
@ApiModelProperty("虚拟币额") @ApiModelProperty("虚拟币冻结余额")
private BigDecimal virtuallyAmount; private BigDecimal virtuallyFrozenBalance;
@TableField("funding_arrears") @TableField("funding_arrears")
@ApiModelProperty("资金欠款") @ApiModelProperty("资金欠款")
......
...@@ -40,6 +40,10 @@ public class OwnerLoanRecord implements HasKey<Integer> { ...@@ -40,6 +40,10 @@ public class OwnerLoanRecord implements HasKey<Integer> {
@ApiModelProperty("联系电话") @ApiModelProperty("联系电话")
private String mobile; private String mobile;
@TableField("goods_name")
@ApiModelProperty("货物名称")
private String goodsName;
@TableField("running_water_open_no") @TableField("running_water_open_no")
@ApiModelProperty("交易流水号(第三方)") @ApiModelProperty("交易流水号(第三方)")
private String runningWaterOpenNo; private String runningWaterOpenNo;
...@@ -60,6 +64,10 @@ public class OwnerLoanRecord implements HasKey<Integer> { ...@@ -60,6 +64,10 @@ public class OwnerLoanRecord implements HasKey<Integer> {
@ApiModelProperty("借款金额") @ApiModelProperty("借款金额")
private BigDecimal loanBalance; private BigDecimal loanBalance;
@TableField("loan_residue_balance")
@ApiModelProperty("借款剩余金额")
private BigDecimal loanResidueBalance;
@TableField("borrower") @TableField("borrower")
@ApiModelProperty("借款方") @ApiModelProperty("借款方")
private String borrower; private String borrower;
...@@ -68,6 +76,10 @@ public class OwnerLoanRecord implements HasKey<Integer> { ...@@ -68,6 +76,10 @@ public class OwnerLoanRecord implements HasKey<Integer> {
@TableField("borrower_account") @TableField("borrower_account")
private String borrowerAccount; private String borrowerAccount;
@TableField("remittance_identification_code")
@ApiModelProperty("汇款识别码")
private String remittanceIdentificationCode;
@TableField("lending_party") @TableField("lending_party")
@ApiModelProperty("借出方") @ApiModelProperty("借出方")
private String lendingParty; private String lendingParty;
...@@ -109,6 +121,12 @@ public class OwnerLoanRecord implements HasKey<Integer> { ...@@ -109,6 +121,12 @@ public class OwnerLoanRecord implements HasKey<Integer> {
@ApiModelProperty("支付渠道 10 订单支付 20 转账支付") @ApiModelProperty("支付渠道 10 订单支付 20 转账支付")
private Integer payChannel; private Integer payChannel;
@TableField("close_order_time")
@ApiModelProperty("[转账支付]时有关单时间字段 yyyy-MM-dd HH:mm:ss")
private String closeOrderTime;
@TableField("create_by") @TableField("create_by")
@ApiModelProperty("创建人") @ApiModelProperty("创建人")
private String createBy; private String createBy;
......
...@@ -65,11 +65,6 @@ public class OwnerRepayment implements HasKey<Integer> { ...@@ -65,11 +65,6 @@ public class OwnerRepayment implements HasKey<Integer> {
private String paymentAccount; private String paymentAccount;
@TableField("payment_application_form_time")
@ApiModelProperty("生成付款申请单时间")
private LocalDateTime paymentApplicationFormTime;
@TableField("remittance_identification_code") @TableField("remittance_identification_code")
@ApiModelProperty("汇款识别码") @ApiModelProperty("汇款识别码")
private String remittanceIdentificationCode; private String remittanceIdentificationCode;
...@@ -107,6 +102,10 @@ public class OwnerRepayment implements HasKey<Integer> { ...@@ -107,6 +102,10 @@ public class OwnerRepayment implements HasKey<Integer> {
@ApiModelProperty("借款归还时间") @ApiModelProperty("借款归还时间")
private LocalDateTime loanRepaymentTime; private LocalDateTime loanRepaymentTime;
@TableField("close_order_time")
@ApiModelProperty("[转账支付]时有关单时间字段 yyyy-MM-dd HH:mm:ss")
private String closeOrderTime;
@TableField("operate_time") @TableField("operate_time")
@ApiModelProperty("操作时间") @ApiModelProperty("操作时间")
private LocalDateTime operateTime; private LocalDateTime operateTime;
......
...@@ -8,6 +8,7 @@ import com.clx.order.feign.OrderFeign; ...@@ -8,6 +8,7 @@ import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignAddressVO; import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.order.vo.feign.FeignOrderInfoVO; import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.performance.component.GoodsOrderTruckRecordComponent; import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.component.OrderChildLoanComponent;
import com.clx.performance.constant.RedisConstants; import com.clx.performance.constant.RedisConstants;
import com.clx.performance.constant.RedissonConstants; import com.clx.performance.constant.RedissonConstants;
import com.clx.performance.dao.*; import com.clx.performance.dao.*;
...@@ -156,7 +157,6 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -156,7 +157,6 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired @Autowired
private FeignPaymentService feignPaymentService; private FeignPaymentService feignPaymentService;
@Autowired @Autowired
private TruckService truckService; private TruckService truckService;
...@@ -169,10 +169,12 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -169,10 +169,12 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired @Autowired
SettlementOwnerDetailDao settlementOwnerDetailDao; SettlementOwnerDetailDao settlementOwnerDetailDao;
@Autowired @Autowired
private OwnerRunningWaterRecordDao ownerRunningWaterRecordDao; private OwnerRunningWaterRecordDao ownerRunningWaterRecordDao;
@Autowired
private OrderChildLoanComponent orderChildLoanComponent;
@Override @Override
public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) { public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) {
...@@ -324,6 +326,9 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -324,6 +326,9 @@ public class OrderChildServiceImpl implements OrderChildService {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK); throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK);
} }
//接单判断
orderChildLoanComponent.getChildDetermine(orderInfo, ownerInfo, orderGoods, childNo);
OrderChild orderChild = new OrderChild(); OrderChild orderChild = new OrderChild();
orderChild.setChildNo(childNo); orderChild.setChildNo(childNo);
orderChild.setUserNo(userNo); orderChild.setUserNo(userNo);
......
...@@ -39,10 +39,15 @@ public class OwnerLoanAccountServiceImpl implements OwnerLoanAccountService { ...@@ -39,10 +39,15 @@ public class OwnerLoanAccountServiceImpl implements OwnerLoanAccountService {
entity.setOwnerUserNo(ownerUserNo); entity.setOwnerUserNo(ownerUserNo);
entity.setMobile(mobile); entity.setMobile(mobile);
entity.setOwnerUserName(ownerUserName); entity.setOwnerUserName(ownerUserName);
entity.setFundingAmount(BigDecimal.ZERO); entity.setFundingAccountBalance(BigDecimal.ZERO);
entity.setFundingAmount(BigDecimal.ZERO); entity.setFundingFrozenBalance(BigDecimal.ZERO);
entity.setVirtuallyAmount(BigDecimal.ZERO); entity.setFundingUsableBalance(BigDecimal.ZERO);
entity.setFundingArrears(BigDecimal.ZERO);
entity.setVirtuallyArrears(BigDecimal.ZERO); entity.setVirtuallyArrears(BigDecimal.ZERO);
entity.setVirtuallyAccountBalance(BigDecimal.ZERO);
entity.setVirtuallyUsableBalance(BigDecimal.ZERO);
entity.setVirtuallyFrozenBalance(BigDecimal.ZERO);
ownerLoanAccountDao.saveEntity(entity); ownerLoanAccountDao.saveEntity(entity);
} }
......
package com.clx.performance.service.impl.loan; 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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.component.IdGenerateSnowFlake; import com.clx.performance.component.IdGenerateSnowFlake;
import com.clx.performance.config.loan.ClxPayeeConfig; import com.clx.performance.config.loan.ClxPayeeConfig;
import com.clx.performance.config.loan.PaymentFromConfig;
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.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.PerformanceResultEnum;
import com.clx.performance.enums.RunningWaterTypeEnum; 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;
...@@ -21,20 +25,26 @@ import com.clx.performance.model.loan.OwnerRepayment; ...@@ -21,20 +25,26 @@ 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;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerLoanRecordParam; import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerLoanRecordParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner; import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner;
import com.clx.performance.param.pc.loan.owner.ExportPaymentApplicationFormParam;
import com.clx.performance.param.pc.loan.owner.OwnerLoanRecordParam; import com.clx.performance.param.pc.loan.owner.OwnerLoanRecordParam;
import com.clx.performance.service.loan.OwnerLoanRecordService; import com.clx.performance.service.loan.OwnerLoanRecordService;
import com.clx.performance.service.thirdparty.nbbank.NbBankService; import com.clx.performance.service.thirdparty.nbbank.NbBankService;
import com.clx.performance.struct.loan.OwnerLoanRecordStruct; import com.clx.performance.struct.loan.OwnerLoanRecordStruct;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO; import com.clx.performance.vo.pc.loan.carrier.*;
import com.clx.performance.vo.pc.loan.carrier.PayeeVO;
import com.clx.performance.vo.pc.loan.owner.BorrowerSelectVO; import com.clx.performance.vo.pc.loan.owner.BorrowerSelectVO;
import com.clx.performance.vo.pc.loan.owner.OwnerLoanRecordDetail; import com.clx.performance.vo.pc.loan.owner.OwnerLoanRecordDetail;
import com.clx.performance.vo.pc.loan.carrier.TransferPaymentDetailVO;
import com.clx.performance.vo.pc.nbbank.NbBankOrderPayResultVO; import com.clx.performance.vo.pc.nbbank.NbBankOrderPayResultVO;
import com.clx.user.feign.OwnerFeign; import com.clx.user.feign.OwnerFeign;
import com.clx.user.vo.feign.OwnerInfoFeignVO; import com.clx.user.vo.feign.OwnerInfoFeignVO;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.enums.ResultCodeEnum; import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.result.Result; 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 com.msl.user.data.UserSessionData; import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil; import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -77,6 +87,10 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -77,6 +87,10 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
private final OwnerFeign ownerFeign; private final OwnerFeign ownerFeign;
private final ContractEvidenceFeign contractEvidenceFeign;
private final ContractTemplateFeign contractTemplateFeign;
private final PaymentFromConfig paymentFromConfig;
@Override @Override
public IPage<OwnerLoanRecordVO> pageOwnerLoanRecord(PageCarrierOwnerLoanRecordParam param) { public IPage<OwnerLoanRecordVO> pageOwnerLoanRecord(PageCarrierOwnerLoanRecordParam param) {
IPage<OwnerLoanRecord> page = ownerLoanRecordDao.pageOwnerLoanRecord(param); IPage<OwnerLoanRecord> page = ownerLoanRecordDao.pageOwnerLoanRecord(param);
...@@ -126,12 +140,13 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -126,12 +140,13 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
ownerLoanRecord.setLoanType(param.getLoanType()); ownerLoanRecord.setLoanType(param.getLoanType());
if (OwnerLoanRecordEnum.LoanType.FUND.getCode().equals(param.getLoanType())) { if (OwnerLoanRecordEnum.LoanType.FUND.getCode().equals(param.getLoanType())) {
//资金 TODO 调中信银企直连的产品,从诚联信账户中给鑫祥和执行转账 //资金 TODO 调宁波银企直连的产品,从诚联信账户中给鑫祥和执行转账
NbBankOrderPayResultVO orderPayResultVO = bankService.orderDirectPay(param.getLoanNo() , NbBankOrderPayResultVO orderPayResultVO = bankService.orderDirectPay(param.getLoanNo() ,
ownerLoanRecord.getLoanBalance().intValue(), "", "", ""); 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());
ownerLoanRecord.setLoanResidueBalance(ownerLoanRecord.getLoanBalance());
} else { } else {
// 虚拟币 直接增加 更改状态审批通过 // 虚拟币 直接增加 更改状态审批通过
ownerLoanRecord.setStatus(OwnerLoanRecordEnum.Status.APPROVE_PASS.getCode()); ownerLoanRecord.setStatus(OwnerLoanRecordEnum.Status.APPROVE_PASS.getCode());
...@@ -142,8 +157,8 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -142,8 +157,8 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
ownerLoanRecord.getOwnerUserNo()).get(); ownerLoanRecord.getOwnerUserNo()).get();
OwnerLoanAccount entity = new OwnerLoanAccount(); OwnerLoanAccount entity = new OwnerLoanAccount();
entity.setId(ownerLoanAccount.getId()); entity.setId(ownerLoanAccount.getId());
entity.setVirtuallyAmount(ownerLoanRecord.getLoanBalance()); /* 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) {
...@@ -187,7 +202,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -187,7 +202,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
.setLoanNo(ownerLoanRecord.getLoanNo()) .setLoanNo(ownerLoanRecord.getLoanNo())
.setRunningWaterType(RunningWaterTypeEnum.Status.LOAN.getCode()) .setRunningWaterType(RunningWaterTypeEnum.Status.LOAN.getCode())
.setAlterationBalance(ownerLoanRecord.getLoanBalance()) .setAlterationBalance(ownerLoanRecord.getLoanBalance())
.setAccountBalance(ownerLoanAccount.getFundingAmount().add(ownerLoanAccount.getVirtuallyAmount())) .setAccountBalance(ownerLoanAccount.getFundingAccountBalance().add(ownerLoanAccount.getVirtuallyAccountBalance()))
.setCreateBy("系统"); .setCreateBy("系统");
ownerLoanAccountRunningWaterRecordDao.saveEntity(record); ownerLoanAccountRunningWaterRecordDao.saveEntity(record);
} }
...@@ -242,7 +257,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -242,7 +257,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
Result::succeed).map(Result::getData).orElseThrow(ResultCodeEnum.FAIL); Result::succeed).map(Result::getData).orElseThrow(ResultCodeEnum.FAIL);
detail.setCompanyName(ownerInfoFeignVO.getCompanyName()); detail.setCompanyName(ownerInfoFeignVO.getCompanyName());
//款方 //款方
List<PayeeVO> payeeList =ClxPayeeConfig.payeeList.stream().map( List<PayeeVO> payeeList =ClxPayeeConfig.payeeList.stream().map(
item-> PayeeVO.builder().name(item.getName()).account(item.getAccount()).id(item.getId()).build() item-> PayeeVO.builder().name(item.getName()).account(item.getAccount()).id(item.getId()).build()
).collect(Collectors.toList()); ).collect(Collectors.toList());
...@@ -250,4 +265,61 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -250,4 +265,61 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
return detail; return detail;
} }
@Override
public CashierInfoVO getCashierInfo(Integer id) {
OwnerLoanRecord ownerLoanRecord = ownerLoanRecordDao.getEntityByKey(id).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND);
CashierInfoVO vo = ownerLoanRecordStruct.convertCashierInfo(ownerLoanRecord);
//TODO 设置支付方式和付款账户 ,宇帆提供
return vo;
}
@Override
public OrderPaymentDetailVO getOrderPaymentDetail(Integer id) {
OwnerLoanRecord ownerLoanRecord = ownerLoanRecordDao.getEntityByKey(id).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND);
OrderPaymentDetailVO vo = ownerLoanRecordStruct.convertOrderPaymentDetail(ownerLoanRecord);
//计算倒计时时间,下单时间 + 30天 为截止时间
LocalDateTime endTime = ownerLoanRecord.getCreateTime().plusDays(30);
vo.setFinalPaymentTime(DateUtils.formatDateTime(endTime).get());
return vo;
}
@Override
public TransferPaymentDetailVO getTransferPaymentDetail(Integer id) {
OwnerLoanRecord ownerLoanRecord = ownerLoanRecordDao.getEntityByKey(id).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND);
ClxPayeeConfig.PayeeConfig payeeMap = ClxPayeeConfig.getPayeeMap(ClxPayeeConfig.XXH_ID);
return TransferPaymentDetailVO.builder().payee(payeeMap.getName())
.payeeAccount(payeeMap.getAccount()).payeeBank(payeeMap.getBank()).payeeBankNo(payeeMap.getBankNo())
.loanBalance(ownerLoanRecord.getLoanBalance())
.remittanceIdentificationCode(ownerLoanRecord.getRemittanceIdentificationCode())
.status(ownerLoanRecord.getStatus()).finalPaymentTime(ownerLoanRecord.getCloseOrderTime()).build();
}
@Override
public String savePaymentApplicationForm(ExportPaymentApplicationFormParam param) {
OwnerLoanRecord ownerLoanRecord = ownerLoanRecordDao.getEntityByKey(param.getId()).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND);
OwnerLoanRecordVO ownerLoanRecordVO = ownerLoanRecordStruct.convert(ownerLoanRecord);
//货主借款: 收款方鑫祥和 付款方为诚联信 借款方为货主
Map<String,String> map = JSON.parseObject(JSONUtil.parse(ownerLoanRecordVO).toString(), Map.class);
// 创建合同
GenerateContractParam feignParam = new GenerateContractParam();
if(Objects.equals(OwnerRePaymentEnum.Channel.ORDER.getCode(),param.getPayWay())){
feignParam.setTemplateNo(paymentFromConfig.getLoanTemplateNo());
}else{
feignParam.setTemplateNo(paymentFromConfig.getLoanTemplateNo());
}
feignParam.setParametersValueMap(map);
Result<Long> longResult = contractTemplateFeign.generateContract(feignParam);
Result<ContractEvidenceRecordVo> contractEvidenceDetail = contractEvidenceFeign.getContractEvidenceDetail(longResult.getData());
return contractEvidenceDetail.getData().getFileUrl();
}
} }
...@@ -79,8 +79,9 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService { ...@@ -79,8 +79,9 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService {
OwnerRepayment ownerRepayment = ownerRepaymentDao.getEntityByKey(id).orElseThrow( OwnerRepayment ownerRepayment = ownerRepaymentDao.getEntityByKey(id).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND); PerformanceResultEnum.DATA_NOT_FIND);
OrderPaymentDetailVO vo = ownerRepaymentStruct.convertOrderPaymentDetail(ownerRepayment); OrderPaymentDetailVO vo = ownerRepaymentStruct.convertOrderPaymentDetail(ownerRepayment);
//TODO 设置付款倒计时 //计算倒计时时间,下单时间 + 30天 为截止时间
vo.setFinalPaymentTime(null); LocalDateTime endTime = ownerRepayment.getCreateTime().plusDays(30);
vo.setFinalPaymentTime(DateUtils.formatDateTime(endTime).get());
return vo; return vo;
} }
...@@ -89,14 +90,11 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService { ...@@ -89,14 +90,11 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService {
OwnerRepayment ownerRepayment = ownerRepaymentDao.getEntityByKey(id).orElseThrow( OwnerRepayment ownerRepayment = ownerRepaymentDao.getEntityByKey(id).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND); PerformanceResultEnum.DATA_NOT_FIND);
ClxPayeeConfig.PayeeConfig payeeMap = ClxPayeeConfig.getPayeeMap(ClxPayeeConfig.XXH_ID); ClxPayeeConfig.PayeeConfig payeeMap = ClxPayeeConfig.getPayeeMap(ClxPayeeConfig.XXH_ID);
//计算倒计时时间,下单时间 + 30天 为截止时间
LocalDateTime endTime = ownerRepayment.getPaymentApplicationFormTime().plusDays(30);
return TransferPaymentDetailVO.builder().payee(payeeMap.getName()) return TransferPaymentDetailVO.builder().payee(payeeMap.getName())
.payeeAccount(payeeMap.getAccount()).payeeBank(payeeMap.getBank()).payeeBankNo(payeeMap.getBankNo()) .payeeAccount(payeeMap.getAccount()).payeeBank(payeeMap.getBank()).payeeBankNo(payeeMap.getBankNo())
.repaymentBalance(ownerRepayment.getRepaymentBalance()) .repaymentBalance(ownerRepayment.getRepaymentBalance())
.remittanceIdentificationCode(ownerRepayment.getRemittanceIdentificationCode()) .remittanceIdentificationCode(ownerRepayment.getRemittanceIdentificationCode())
.status(ownerRepayment.getStatus()).finalPaymentTime(DateUtils.formatDateTime(endTime).get()).build(); .status(ownerRepayment.getStatus()).finalPaymentTime(ownerRepayment.getCloseOrderTime()).build();
} }
@Override @Override
...@@ -108,9 +106,9 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService { ...@@ -108,9 +106,9 @@ public class OwnerRepaymentServiceImpl implements OwnerRepaymentService {
// 创建合同 // 创建合同
GenerateContractParam feignParam = new GenerateContractParam(); GenerateContractParam feignParam = new GenerateContractParam();
if(Objects.equals(OwnerRePaymentEnum.Channel.ORDER.getCode(),param.getPayWay())){ if(Objects.equals(OwnerRePaymentEnum.Channel.ORDER.getCode(),param.getPayWay())){
feignParam.setTemplateNo(paymentFromConfig.getTemplateNo()); feignParam.setTemplateNo(paymentFromConfig.getRepaymentTemplateNo());
}else{ }else{
feignParam.setTemplateNo(paymentFromConfig.getTemplateNo()); feignParam.setTemplateNo(paymentFromConfig.getRepaymentTemplateNo());
} }
feignParam.setParametersValueMap(map); feignParam.setParametersValueMap(map);
......
...@@ -63,9 +63,6 @@ public class SettlementServiceImpl implements SettlementService { ...@@ -63,9 +63,6 @@ public class SettlementServiceImpl implements SettlementService {
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if (settlementOwnerDetail.getInvoiceType() != null) {
return;
}
// 开票金额 // 开票金额
settlementOwnerDetail.setInvoiceFreight(invoiceFreightCalc(orderChild.getSettlementWay(), settlementOwnerDetail)); settlementOwnerDetail.setInvoiceFreight(invoiceFreightCalc(orderChild.getSettlementWay(), settlementOwnerDetail));
if (settlementDriverDetail.getSettlementFreight().compareTo(BigDecimal.ZERO) <= 0) { if (settlementDriverDetail.getSettlementFreight().compareTo(BigDecimal.ZERO) <= 0) {
......
...@@ -3,6 +3,7 @@ package com.clx.performance.service.impl.thirdparty.nbbank; ...@@ -3,6 +3,7 @@ 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.enums.PerformanceResultEnum;
import com.clx.performance.enums.nbbank.NbBankStatusEnum;
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;
...@@ -15,8 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -15,8 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/** /**
* 易付通 * 易付通
...@@ -73,6 +72,7 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -73,6 +72,7 @@ public class NbBankServiceImpl implements NbBankService {
String merSeqNo = idGenerateSnowFlake.nextIdToString(3L); String merSeqNo = idGenerateSnowFlake.nextIdToString(3L);
String merDtTm = LocalDateTimeUtils.formatTime(); String merDtTm = LocalDateTimeUtils.formatTime();
String closeDtTm = LocalDateTimeUtils.formatTime(LocalDateTimeUtils.parseTime(merDtTm).plusDays(30));
JSONObject data = bankThirdpartyService.unionPayDirectOrder(merSeqNo, merDtTm, amount, JSONObject data = bankThirdpartyService.unionPayDirectOrder(merSeqNo, merDtTm, amount,
payAcctOpenBankId,payAcctNo, payAcctNm); payAcctOpenBankId,payAcctNo, payAcctNm);
...@@ -86,6 +86,7 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -86,6 +86,7 @@ public class NbBankServiceImpl implements NbBankService {
result.setMerDtTm(merDtTm); result.setMerDtTm(merDtTm);
result.setMerSeqNo(merSeqNo); result.setMerSeqNo(merSeqNo);
result.setTransSeqNo(transSeqNo); result.setTransSeqNo(transSeqNo);
result.setCloseDtTm(closeDtTm);
return result; return result;
} }
...@@ -101,20 +102,14 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -101,20 +102,14 @@ public class NbBankServiceImpl implements NbBankService {
NbBankOrderResultVO result = new NbBankOrderResultVO(); NbBankOrderResultVO result = new NbBankOrderResultVO();
String transStatus = data.getString("transStatus"); String transStatus = data.getString("transStatus");
if (StringUtils.equals(transStatus, "00")){result.setTransStatus(1);} //交易成功
else if (StringUtils.equals(transStatus, "01")){result.setTransStatus(2);} //交易失败
else if (StringUtils.equals(transStatus, "02")){result.setTransStatus(3);} //交易已受理
else if (StringUtils.equals(transStatus, "80")){result.setTransStatus(4);} //订单初始状态
else if (StringUtils.equals(transStatus, "90")){result.setTransStatus(5);} //交易不存在
else if (StringUtils.equals(transStatus, "99")){result.setTransStatus(6);} //交易超时,须发起交易结果查询
BigDecimal trxAmt = data.getBigDecimal("trxAmt"); BigDecimal trxAmt = data.getBigDecimal("trxAmt");
BigDecimal realTrxAmt = data.getBigDecimal("realTrxAmt"); BigDecimal realTrxAmt = data.getBigDecimal("realTrxAmt");
String transSeqNo = data.getString("transSeqNo"); String transSeqNo = data.getString("transSeqNo");
String signNo = data.getString("signNo"); String signNo = data.getString("signNo");
result.setStatus(getStatus(transStatus));
result.setAmount(trxAmt==null? null : trxAmt.movePointLeft(2).intValue()); result.setAmount(trxAmt==null? null : trxAmt.movePointLeft(2).intValue());
result.setRealAmount(trxAmt==null? null : realTrxAmt.movePointLeft(2).intValue()); result.setRealAmount(realTrxAmt==null? null : realTrxAmt.movePointLeft(2).intValue());
result.setMerSeqNo(orgMerSeqNo); result.setMerSeqNo(orgMerSeqNo);
result.setTransSeqNo(transSeqNo); result.setTransSeqNo(transSeqNo);
result.setSignNo(signNo); result.setSignNo(signNo);
...@@ -137,15 +132,9 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -137,15 +132,9 @@ public class NbBankServiceImpl implements NbBankService {
NbBankOrderResultVO result = new NbBankOrderResultVO(); NbBankOrderResultVO result = new NbBankOrderResultVO();
String transStatus = data.getString("transStatus"); String transStatus = data.getString("transStatus");
if (StringUtils.equals(transStatus, "00")){result.setTransStatus(1);} //交易成功
else if (StringUtils.equals(transStatus, "01")){result.setTransStatus(2);} //交易失败
else if (StringUtils.equals(transStatus, "02")){result.setTransStatus(3);} //交易已受理
else if (StringUtils.equals(transStatus, "80")){result.setTransStatus(4);} //订单初始状态
else if (StringUtils.equals(transStatus, "90")){result.setTransStatus(5);} //交易不存在
else if (StringUtils.equals(transStatus, "99")){result.setTransStatus(6);} //交易超时,须发起交易结果查询
String transSeqNo = data.getString("transSeqNo"); String transSeqNo = data.getString("transSeqNo");
result.setStatus(getStatus(transStatus));
result.setAmount(amount); result.setAmount(amount);
result.setRealAmount(amount); result.setRealAmount(amount);
result.setMerDtTm(merDtTm); result.setMerDtTm(merDtTm);
...@@ -157,7 +146,7 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -157,7 +146,7 @@ public class NbBankServiceImpl implements NbBankService {
/** /**
* 退款 * 退款
* @Param type: 1普通退款 2银行转账退款 3银联订单支付撤单 * @Param type: 1普通退款(忽略) 2银行转账退款(支付成功) 3银联订单支付撤单(未支付)
* @param orgMerSeqNo 商户流水号(原) * @param orgMerSeqNo 商户流水号(原)
* @param amount 金额分 * @param amount 金额分
* @param orgTransSeqNo 第三方流水号 (原) * @param orgTransSeqNo 第三方流水号 (原)
...@@ -173,15 +162,9 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -173,15 +162,9 @@ public class NbBankServiceImpl implements NbBankService {
NbBankOrderResultVO result = new NbBankOrderResultVO(); NbBankOrderResultVO result = new NbBankOrderResultVO();
String transStatus = data.getString("transStatus"); String transStatus = data.getString("transStatus");
if (StringUtils.equals(transStatus, "00")){result.setTransStatus(1);} //交易成功
else if (StringUtils.equals(transStatus, "01")){result.setTransStatus(2);} //交易失败
else if (StringUtils.equals(transStatus, "02")){result.setTransStatus(3);} //交易已受理
else if (StringUtils.equals(transStatus, "80")){result.setTransStatus(4);} //订单初始状态
else if (StringUtils.equals(transStatus, "90")){result.setTransStatus(5);} //交易不存在
else if (StringUtils.equals(transStatus, "99")){result.setTransStatus(6);} //交易超时,须发起交易结果查询
String transSeqNo = data.getString("transSeqNo"); String transSeqNo = data.getString("transSeqNo");
result.setStatus(getStatus(transStatus));
result.setAmount(amount); result.setAmount(amount);
result.setRealAmount(amount); result.setRealAmount(amount);
result.setMerDtTm(merDtTm); result.setMerDtTm(merDtTm);
...@@ -209,29 +192,11 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -209,29 +192,11 @@ public class NbBankServiceImpl implements NbBankService {
merSeqNo, transSeqNo, trxAmt, realTrxAmt, transStatus, signNo); merSeqNo, transSeqNo, trxAmt, realTrxAmt, transStatus, signNo);
NbBankOrderResultVO result = new NbBankOrderResultVO(); NbBankOrderResultVO result = new NbBankOrderResultVO();
if (StringUtils.equals(transStatus, "00")){ //交易成功 result.setStatus(getStatus(transStatus));
result.setTransStatus(1);
}
if (StringUtils.equals(transStatus, "01")){ //交易失败
result.setTransStatus(2);
}
if (StringUtils.equals(transStatus, "02")){ //交易已受理
result.setTransStatus(3);
}
if (StringUtils.equals(transStatus, "80")){ //订单初始状态
result.setTransStatus(4);
}
if (StringUtils.equals(transStatus, "90")){ //交易不存在
result.setTransStatus(5);
}
if (StringUtils.equals(transStatus, "99")){ //交易超时,须发起交易结果查询
result.setTransStatus(6);
}
orderPayCallback(merSeqNo, transSeqNo, trxAmt, realTrxAmt, result.getTransStatus(), signNo); orderPayCallback(merSeqNo, transSeqNo, trxAmt, realTrxAmt, result.getStatus(), signNo);
} }
/** /**
* 银行回调 * 银行回调
* @param merSeqNo 商户流水号 * @param merSeqNo 商户流水号
...@@ -258,4 +223,19 @@ public class NbBankServiceImpl implements NbBankService { ...@@ -258,4 +223,19 @@ public class NbBankServiceImpl implements NbBankService {
return StringUtils.isBlank(signNo)? StringUtils.right(cardNo,7) : signNo; return StringUtils.isBlank(signNo)? StringUtils.right(cardNo,7) : signNo;
} }
/**
* 获取订单状态
*/
private Integer getStatus(String transStatus){
if (StringUtils.equals(transStatus, "00")){return NbBankStatusEnum.Status.SUCCESS.getCode();} //交易成功
else if (StringUtils.equals(transStatus, "01")){return NbBankStatusEnum.Status.FAIL.getCode();} //交易失败
else if (StringUtils.equals(transStatus, "02")){return NbBankStatusEnum.Status.ACCEPT.getCode();} //交易已受理
else if (StringUtils.equals(transStatus, "80")){return NbBankStatusEnum.Status.INIT.getCode();} //订单初始状态
else if (StringUtils.equals(transStatus, "90")){return NbBankStatusEnum.Status.NOT_FOUND.getCode();} //交易不存在
else if (StringUtils.equals(transStatus, "99")){return NbBankStatusEnum.Status.TIMEOUT.getCode();} //交易超时,须发起交易结果查询
return NbBankStatusEnum.Status.TEMP.getCode();
}
} }
...@@ -12,6 +12,7 @@ import com.clx.performance.utils.LocalDateTimeUtils; ...@@ -12,6 +12,7 @@ import com.clx.performance.utils.LocalDateTimeUtils;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.nbopen.api.*; import com.nbopen.api.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.exception.ExceptionUtils;
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;
import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.FileSystemResource;
...@@ -57,8 +58,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService { ...@@ -57,8 +58,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
log.info("宁波银行SDK初始化, 状态:{}", initResult); log.info("宁波银行SDK初始化, 状态:{}", initResult);
log.info("sdk版本信息:{}", NBOpenSDK.getVersionInfo()); log.info("sdk版本信息:{}", NBOpenSDK.getVersionInfo());
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); log.info("宁波银行SDK初始化失败:{}", ExceptionUtils.getStackTrace(e));
log.info("宁波银行SDK初始化失败");
} }
} }
...@@ -166,7 +166,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService { ...@@ -166,7 +166,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
return data; return data;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.info("宁波银行接口异常:{}", ExceptionUtils.getStackTrace(e));
} }
throw new ServiceSystemException(PerformanceResultEnum.NB_BANK_API_ERROR); throw new ServiceSystemException(PerformanceResultEnum.NB_BANK_API_ERROR);
...@@ -265,7 +265,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService { ...@@ -265,7 +265,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
return data; return data;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.info("宁波银行接口异常:{}", ExceptionUtils.getStackTrace(e));
} }
throw new ServiceSystemException(PerformanceResultEnum.NB_BANK_API_ERROR); throw new ServiceSystemException(PerformanceResultEnum.NB_BANK_API_ERROR);
...@@ -403,7 +403,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService { ...@@ -403,7 +403,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
return data; return data;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.info("宁波银行接口异常:{}", ExceptionUtils.getStackTrace(e));
} }
throw new ServiceSystemException(PerformanceResultEnum.NB_BANK_API_ERROR); throw new ServiceSystemException(PerformanceResultEnum.NB_BANK_API_ERROR);
...@@ -464,7 +464,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService { ...@@ -464,7 +464,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
return data; return data;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.info("宁波银行接口异常:{}", ExceptionUtils.getStackTrace(e));
} }
throw new ServiceSystemException(PerformanceResultEnum.NB_BANK_API_ERROR); throw new ServiceSystemException(PerformanceResultEnum.NB_BANK_API_ERROR);
...@@ -546,7 +546,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService { ...@@ -546,7 +546,7 @@ public class NbBankThirdpartyServiceImpl implements NbBankThirdpartyService {
return data; return data;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.info("宁波银行接口异常:{}", ExceptionUtils.getStackTrace(e));
} }
throw new ServiceSystemException(PerformanceResultEnum.NB_BANK_API_ERROR); throw new ServiceSystemException(PerformanceResultEnum.NB_BANK_API_ERROR);
......
...@@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.loan.carrier.CarrierOwnerLoanRecordApproveParam; import com.clx.performance.param.pc.loan.carrier.CarrierOwnerLoanRecordApproveParam;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerLoanRecordParam; import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerLoanRecordParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner; import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner;
import com.clx.performance.param.pc.loan.owner.ExportPaymentApplicationFormParam;
import com.clx.performance.param.pc.loan.owner.OwnerLoanRecordParam; import com.clx.performance.param.pc.loan.owner.OwnerLoanRecordParam;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO; import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import com.clx.performance.vo.pc.loan.carrier.CashierInfoVO;
import com.clx.performance.vo.pc.loan.carrier.OrderPaymentDetailVO;
import com.clx.performance.vo.pc.loan.owner.OwnerLoanRecordDetail; import com.clx.performance.vo.pc.loan.owner.OwnerLoanRecordDetail;
import com.clx.performance.vo.pc.loan.carrier.TransferPaymentDetailVO;
/** /**
* @author kavin * @author kavin
...@@ -23,4 +27,12 @@ public interface OwnerLoanRecordService { ...@@ -23,4 +27,12 @@ public interface OwnerLoanRecordService {
IPage<OwnerLoanRecordVO> pageOwnerLoanRecordOfOwner(PageOwnerLoanRecordOfOwner param); IPage<OwnerLoanRecordVO> pageOwnerLoanRecordOfOwner(PageOwnerLoanRecordOfOwner param);
OwnerLoanRecordDetail getOwnerLoanRecordDetail(); OwnerLoanRecordDetail getOwnerLoanRecordDetail();
CashierInfoVO getCashierInfo(Integer id);
OrderPaymentDetailVO getOrderPaymentDetail(Integer id);
TransferPaymentDetailVO getTransferPaymentDetail(Integer id);
String savePaymentApplicationForm(ExportPaymentApplicationFormParam param);
} }
package com.clx.performance.sqlProvider.borrower;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountParam;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountVO;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import java.util.Objects;
public class OwnerLoanAccountSqlProvider {
public String pageByParam(@Param("page") Page<OwnerLoanAccountVO> page, @Param("param") PageOwnerLoanAccountParam param) {
return new SQL(){{
SELECT(" id, owner_user_no as ownerUserNo, owner_user_name as ownerUserName, mobile, " +
" account_type as accountType, funding_amount as fundingAmount, virtually_amount as virtuallyAmount, " +
" funding_arrears as fundingArrears, virtually_arrears as virtuallyArrears, " +
" create_by as createBy, " +
" date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " +
" date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime "
);
FROM("owner_loan_account");
if (Objects.nonNull(param.getOwnerUserNo())) {WHERE("owner_user_no = #{param.ownerUserNo}");}
if (StringUtils.isNotBlank(param.getOwnerUserName())) {WHERE("owner_user_name like CONCAT(#{param.ownerUserName},'%')");}
if (StringUtils.isNotBlank(param.getMobile())) {WHERE("mobile = #{param.mobile}");}
ORDER_BY("create_time desc");
}}.toString();
}
}
package com.clx.performance.sqlProvider.borrower; package com.clx.performance.sqlProvider.loan;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.loan.carrier.PageBorrowerConfigParam; import com.clx.performance.param.pc.loan.carrier.PageBorrowerConfigParam;
......
package com.clx.performance.sqlProvider.borrower; package com.clx.performance.sqlProvider.loan;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.order.enums.StatusEnum; import com.clx.order.enums.StatusEnum;
......
package com.clx.performance.sqlProvider.borrower; package com.clx.performance.sqlProvider.loan;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountWaterRecordOfOwnerParam; import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountWaterRecordOfOwnerParam;
...@@ -17,7 +17,7 @@ public class OwnerLoanAccountRunningWaterRecordSqlProvider { ...@@ -17,7 +17,7 @@ public class OwnerLoanAccountRunningWaterRecordSqlProvider {
SELECT(" id, owner_user_no as ownerUserNo, owner_user_name as ownerUserName, mobile, " + SELECT(" id, owner_user_no as ownerUserNo, owner_user_name as ownerUserName, mobile, " +
" running_water_no as runningWaterNo, loan_no as loanNo, child_no as childNo, " + " running_water_no as runningWaterNo, loan_no as loanNo, child_no as childNo, " +
" running_water_type as runningWaterType, " + " running_water_type as runningWaterType, " +
" alteration_balance as alterationBalance, account_balance as accountBalance, " + " alteration_balance as alterationBalance, useable_balance as useableBalance, frozen_balance as frozenBalance, account_balance as accountBalance, " +
" create_by as createBy, " + " create_by as createBy, " +
" date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " + " date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " +
" date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime " " date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime "
......
package com.clx.performance.sqlProvider.loan; package com.clx.performance.sqlProvider.loan;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountParam;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountVO;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL; import org.apache.ibatis.jdbc.SQL;
import java.util.Objects;
public class OwnerLoanAccountSqlProvider { public class OwnerLoanAccountSqlProvider {
public String getOwnerLoanAccountByOwnerUserId(@Param("param") Long ownerUserNo) { public String getOwnerLoanAccountByOwnerUserId(@Param("param") Long ownerUserNo) {
...@@ -23,6 +28,28 @@ public class OwnerLoanAccountSqlProvider { ...@@ -23,6 +28,28 @@ public class OwnerLoanAccountSqlProvider {
return sql; return sql;
} }
public String pageByParam(@Param("page") Page<OwnerLoanAccountVO> page, @Param("param") PageOwnerLoanAccountParam param) {
return new SQL(){{
SELECT(" id, owner_user_no as ownerUserNo, owner_user_name as ownerUserName, mobile, " +
" account_type as accountType, " +
" funding_account_balance as fundingAccountBalance, funding_usable_balance as fundingUsableBalance, " +
" funding_frozen_balance as fundingFrozenBalance, virtually_account_balance as virtuallyAccountBalance, " +
" virtually_usable_balance as virtuallyUsableBalance, virtually_frozen_balance as virtuallyFrozenBalance, " +
" funding_arrears as fundingArrears, virtually_arrears as virtuallyArrears, " +
" create_by as createBy, " +
" date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " +
" date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime "
);
FROM("owner_loan_account");
if (Objects.nonNull(param.getOwnerUserNo())) {WHERE("owner_user_no = #{param.ownerUserNo}");}
if (StringUtils.isNotBlank(param.getOwnerUserName())) {WHERE("owner_user_name like CONCAT(#{param.ownerUserName},'%')");}
if (StringUtils.isNotBlank(param.getMobile())) {WHERE("mobile = #{param.mobile}");}
ORDER_BY("create_time desc");
}}.toString();
}
} }
package com.clx.performance.sqlProvider.borrower; package com.clx.performance.sqlProvider.loan;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner; import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner;
...@@ -15,16 +15,18 @@ public class OwnerLoanRecordSqlProvider { ...@@ -15,16 +15,18 @@ public class OwnerLoanRecordSqlProvider {
return new SQL(){{ return new SQL(){{
SELECT(" id, owner_user_no as ownerUserNo, owner_user_name as ownerUserName, mobile, " + SELECT(" id, owner_user_no as ownerUserNo, owner_user_name as ownerUserName, mobile, " +
" running_water_open_no as runningWaterOpenNo, " + " goods_name as goodsName, " +
" merchant_running_water_no as merchantRunningWaterNo, " + " running_water_open_no as runningWaterOpenNo, merchant_running_water_no as merchantRunningWaterNo, " +
" loan_no as loanNo, loan_type as loanType, loan_balance as loanBalance, " + " loan_no as loanNo, loan_type as loanType, loan_balance as loanBalance, " +
" borrower, borrower_account as borrowerAccount, " + " borrower, borrower_account as borrowerAccount, remittance_identification_code as remittanceIdentificationCode, " +
" lending_party as lendingParty, lending_party_account as lendingPartyAccount, " + " lending_party as lendingParty, lending_party_account as lendingPartyAccount, " +
" payee, payee_account as payeeAccount, " + " payee, payee_account as payeeAccount, " +
" status, " + " status, " +
" date_format(approve_time, '%Y-%m-%d %H:%i:%s') as approveTime, approve_by as approveBy, " + " date_format(approve_time, '%Y-%m-%d %H:%i:%s') as approveTime, approve_by as approveBy, " +
" reject_reason as rejectReason, date_format(loan_repayment_time, '%Y-%m-%d %H:%i:%s') as loanRepaymentTime, " + " reject_reason as rejectReason, date_format(loan_repayment_time, '%Y-%m-%d %H:%i:%s') as loanRepaymentTime, " +
" create_by as createBy, date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " + " pay_channel as payChannel, close_order_time as closeOrderTime, " +
" create_by as createBy, " +
" date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " +
" date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime " " date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime "
); );
......
package com.clx.performance.sqlProvider.borrower; package com.clx.performance.sqlProvider.loan;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.loan.carrier.PageOwnerRepaymentOfOwner; import com.clx.performance.param.pc.loan.carrier.PageOwnerRepaymentOfOwner;
...@@ -15,16 +15,16 @@ public class OwnerRepaymentSqlProvider { ...@@ -15,16 +15,16 @@ public class OwnerRepaymentSqlProvider {
return new SQL(){{ return new SQL(){{
SELECT(" id, owner_user_no as ownerUserNo, owner_user_name as ownerUserName, mobile, " + SELECT(" id, owner_user_no as ownerUserNo, owner_user_name as ownerUserName, mobile, " +
" running_water_open_no as runningWaterOpenNo, " + " running_water_open_no as runningWaterOpenNo, merchant_running_water_no as merchantRunningWaterNo, " +
" merchant_running_water_no as merchantRunningWaterNo, repayment_no as repaymentNo, repayment_balance as repaymentBalance, " + " repayment_no as repaymentNo, repayment_balance as repaymentBalance, " +
" payment, payment_account as paymentAccount, " + " payment, payment_account as paymentAccount, remittance_identification_code as remittanceIdentificationCode, " +
" date_format(payment_application_form_time, '%Y-%m-%d %H:%i:%s') as paymentApplicationFormTime, " +
" remittance_identification_code as remittanceIdentificationCode, " +
" goods_name as goodsName, " + " goods_name as goodsName, " +
" payee, payee_account as payeeAccount, loan_no as loanNo, status, pay_channel as payChannel, " + " payee, payee_account as payeeAccount, " +
" be_overdue as beOverdue, date_format(loan_repayment_time, '%Y-%m-%d %H:%i:%s') as loanRepaymentTime, " + " loan_no as loanNo, status, " +
" date_format(operate_time, '%Y-%m-%d %H:%i:%s') as operateTime, operate_by as operateBy, " + " pay_channel as payChannel, be_overdue as beOverdue, date_format(loan_repayment_time, '%Y-%m-%d %H:%i:%s') as loanRepaymentTime, " +
" create_by as createBy, date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " + " close_order_time as closeOrderTime, date_format(operate_time, '%Y-%m-%d %H:%i:%s') as operateTime, " +
" operate_by as operateBy, create_by as createBy, " +
" date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " +
" date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime " " date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime "
); );
......
package com.clx.performance.struct.loan; package com.clx.performance.struct.loan;
import com.clx.performance.model.loan.OwnerLoanRecord; import com.clx.performance.model.loan.OwnerLoanRecord;
import com.clx.performance.vo.pc.loan.carrier.CashierInfoVO;
import com.clx.performance.vo.pc.loan.carrier.OrderPaymentDetailVO;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO; import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import com.msl.common.utils.DateStructUtil; import com.msl.common.utils.DateStructUtil;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
...@@ -14,4 +16,9 @@ public interface OwnerLoanRecordStruct { ...@@ -14,4 +16,9 @@ public interface OwnerLoanRecordStruct {
List<OwnerLoanRecordVO> convertList(List<OwnerLoanRecord> list); List<OwnerLoanRecordVO> convertList(List<OwnerLoanRecord> list);
CashierInfoVO convertCashierInfo(OwnerLoanRecord ownerLoanRecord);
OrderPaymentDetailVO convertOrderPaymentDetail(OwnerLoanRecord ownerLoanRecord);
OwnerLoanRecordVO convert(OwnerLoanRecord ownerLoanRecord);
} }
{
"api": [
{
"appKey": "77667c76_3503_4c04_95f7_fc10938c7942",
"publicUrl": "https://open-test.nbcb.com.cn/sit/nbcb/api",
"platfromPublicKeyPath": "/app/nbbank/bankPubKey.cer",
"merchantPrivateKeyPath":"/app/nbbank/bankPrivateKey.sm2",
"merchantPrivateKeyPwd":"cfca",
"connectTimeout": 10000,
"readTimeout": 30000,
"merchantName":"",
"subMerchantName":"",
"subMerchantId":"",
"isProxy":false,
"proxyIp":"",
"proxyPort":80
}
],
"file": [
{
"uid":"TEST",
"publicFileUrl":"https://file-test.nbcb.com.cn/sit",
"clientIp":"127.0.0.1",
"passwd":"nbcb123456",
"apiVersion":"201809101526",
"isProxy":false,
"proxyIp":"",
"proxyPort":80
}
]
}
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论