提交 931c1104 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/service/impl/OwnerAccountServiceImpl.java Former-commit-id: 56075a3e
...@@ -16,7 +16,8 @@ public enum OwnerAccountEnum { ...@@ -16,7 +16,8 @@ public enum OwnerAccountEnum {
@AllArgsConstructor @AllArgsConstructor
public enum AccountTypeStatus { public enum AccountTypeStatus {
MARGIN_ACCOUNT(1, "保证金账户"), MARGIN_ACCOUNT(1, "保证金账户"),
PREPAID_FREIGHT_ACCOUNT(2, "预付运费账户") PREPAID_FREIGHT_ACCOUNT(2, "预付运费账户"),
LOAN_ACCOUNT(3, "借款账户")
; ;
private final Integer code; private final Integer code;
private final String msg; private final String msg;
......
...@@ -119,6 +119,7 @@ public enum PerformanceResultEnum implements ResultEnum { ...@@ -119,6 +119,7 @@ public enum PerformanceResultEnum implements ResultEnum {
NB_BANK_API_ERROR(1800, "宁波银行api调用失败"), NB_BANK_API_ERROR(1800, "宁波银行api调用失败"),
NB_BANK_NOTIFY_ERROR(1801, "宁波银行回调失败"), NB_BANK_NOTIFY_ERROR(1801, "宁波银行回调失败"),
NB_BANK_PAY_TYPE_ERROR(1802, "支付方式不支持"), NB_BANK_PAY_TYPE_ERROR(1802, "支付方式不支持"),
NB_BANK_ORDER_PAY_ERROR(1803, "宁波银行订单支付失败"),
; ;
private final int code; private final int code;
......
...@@ -19,7 +19,9 @@ public enum RunningWaterTypeEnum { ...@@ -19,7 +19,9 @@ public enum RunningWaterTypeEnum {
TAKE_OUT(40, "扣除"), TAKE_OUT(40, "扣除"),
CASE_OUT_FROZEN(50, "提现冻结"), CASE_OUT_FROZEN(50, "提现冻结"),
CASE_OUT_SUCCESS(60, "提现成功"), CASE_OUT_SUCCESS(60, "提现成功"),
CASE_OUT_FAIL(70, "提现失败") CASE_OUT_FAIL(70, "提现失败"),
ORDER_CHILD_WRITE_OFF(80, "运单核销"),
LOAN(90, "借款"),
; ;
private final Integer code; private final Integer code;
private final String msg; private final String msg;
......
package com.clx.performance.enums.borrower; package com.clx.performance.enums.loan;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
......
package com.clx.performance.enums.borrower; package com.clx.performance.enums.loan;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
......
package com.clx.performance.enums.loan;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum OwnerLoanAccountApproveEnum {
;
//“待审批 10,审批成功 20,审批拒绝 30
@Getter
@AllArgsConstructor
public enum Status {
APPROVE_WAIT(10, "待审批"),
APPROVE_PASS(20, "审批通过"),
APPROVE_REFUSE(30, "审批拒绝"),
;
private final Integer code;
private final String msg;
public static Optional<OwnerLoanAccountApproveEnum.Status> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(OwnerLoanAccountApproveEnum.Status::getMsg).orElse(null);
}
}
}
package com.clx.performance.enums.loan;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum OwnerLoanRecordEnum {
;
//“待审批”,“审批通过”,“审批拒绝”,“付款中”,“付款成功”,“付款失败”
@Getter
@AllArgsConstructor
public enum Status {
APPROVE_WAIT(10, "待审批"),
APPROVE_PASS(20, "审批通过"),
APPROVE_REFUSE(30, "审批拒绝"),
PAYING(40, "付款中"),
PAY_SUCCESS(50, "付款成功"),
PAY_FAIL(60, "付款失败"),
;
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);
}
}
//1:虚拟货币 2:资金
@Getter
@AllArgsConstructor
public enum LoanType {
VIRTUAL_CURRENCY(1, "虚拟货币"),
FUND(2, "资金"),
;
private final Integer code;
private final String msg;
public static Optional<LoanType> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(LoanType::getMsg).orElse(null);
}
}
}
package com.clx.performance.enums.loan;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum OwnerPaymentEnum {
;
//“待付款”,“付款中”,“付款成功”,“付款失败”
@Getter
@AllArgsConstructor
public enum Status {
PAY_WAIT(10, "待付款"),
PAYING(40, "付款中"),
PAY_SUCCESS(50, "付款成功"),
PAY_FAIL(60, "付款失败"),
;
private final Integer code;
private final String msg;
public static Optional<OwnerPaymentEnum.Status> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(OwnerPaymentEnum.Status::getMsg).orElse(null);
}
}
}
package com.clx.performance.enums.loan;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum OwnerRePaymentEnum {
;
//“待付款”,“付款中”,“付款成功”,“付款失败”
@Getter
@AllArgsConstructor
public enum Status {
PAY_WAIT(10, "待付款"),
PAYING(40, "付款中"),
PAY_SUCCESS(50, "付款成功"),
PAY_FAIL(60, "付款失败"),
;
private final Integer code;
private final String msg;
public static Optional<OwnerRePaymentEnum.Status> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(OwnerRePaymentEnum.Status::getMsg).orElse(null);
}
}
//支付渠道 10 订单支付 20 转账支付
@Getter
@AllArgsConstructor
public enum Channel {
ORDER(10, "订单支付"),
TRANSFER(20, "转账支付"),
;
private final Integer code;
private final String msg;
public static Optional<OwnerRePaymentEnum.Channel> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(OwnerRePaymentEnum.Channel::getMsg).orElse(null);
}
}
//10 未逾期 20 已逾期
@Getter
@AllArgsConstructor
public enum BeOverdue {
NO(10, "未逾期"),
YES(20, "已逾期"),
;
private final Integer code;
private final String msg;
public static Optional<OwnerRePaymentEnum.BeOverdue> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(OwnerRePaymentEnum.BeOverdue::getMsg).orElse(null);
}
}
}
...@@ -16,6 +16,8 @@ public enum NbBankRecordEnum { ...@@ -16,6 +16,8 @@ public enum NbBankRecordEnum {
UNION_PAY_DIRECT_ORDER(2, "银联订单支付收款模式"), UNION_PAY_DIRECT_ORDER(2, "银联订单支付收款模式"),
QUERY_ORDER(3, "交易结果查询"), QUERY_ORDER(3, "交易结果查询"),
NOTIFY_MERCHANT(4, "异步通知交易结果"), NOTIFY_MERCHANT(4, "异步通知交易结果"),
FUND_TRANSFER_ORDER(5, "云账簿资金划转"),
REFUND(6, "退款"),
; ;
private final Integer code; private final Integer code;
......
...@@ -11,6 +11,7 @@ import com.clx.performance.vo.app.collect.AppCollectTruckVO; ...@@ -11,6 +11,7 @@ import com.clx.performance.vo.app.collect.AppCollectTruckVO;
import com.clx.performance.vo.feign.FreightEstimateVO; import com.clx.performance.vo.feign.FreightEstimateVO;
import com.clx.performance.vo.feign.OrderGoodsFeignVO; import com.clx.performance.vo.feign.OrderGoodsFeignVO;
import com.clx.performance.vo.pc.OwnerAccountAllVO; import com.clx.performance.vo.pc.OwnerAccountAllVO;
import com.clx.performance.vo.pc.OwnerLoanAccountVO;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleVO;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
...@@ -111,4 +112,7 @@ public interface PerformanceFeign { ...@@ -111,4 +112,7 @@ public interface PerformanceFeign {
@PostMapping(value = {"clx-performance/feign/orderGoods/listFreightEstimate"}) @PostMapping(value = {"clx-performance/feign/orderGoods/listFreightEstimate"})
Result<FreightEstimateVO> listFreightEstimate(@RequestBody OrderChildReportParam param); Result<FreightEstimateVO> listFreightEstimate(@RequestBody OrderChildReportParam param);
@GetMapping(value = {"clx-performance/feign/owner/loanAccount"})
Result<OwnerLoanAccountVO> loanAccount(@RequestParam Long userNo);
} }
package com.clx.performance.param.pc.borrower; package com.clx.performance.param.pc.loan.carrier;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
......
package com.clx.performance.param.pc.borrower; package com.clx.performance.param.pc.loan.carrier;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
...@@ -6,6 +6,8 @@ import lombok.NoArgsConstructor; ...@@ -6,6 +6,8 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import javax.validation.constraints.NotNull;
/** /**
* @Author: aiqingguo * @Author: aiqingguo
* @Date: 2023-10-11 17:30:57 * @Date: 2023-10-11 17:30:57
...@@ -18,10 +20,13 @@ import lombok.ToString; ...@@ -18,10 +20,13 @@ import lombok.ToString;
public class BorrowerConfigAddParam { public class BorrowerConfigAddParam {
@ApiModelProperty(value = "借出方id", example = "1") @ApiModelProperty(value = "借出方id", example = "1")
@NotNull(message = "借出方id不能为空")
private Integer borrowerId; private Integer borrowerId;
@ApiModelProperty(value = "类型:1资金 2虚拟货币", example = "1") @ApiModelProperty(value = "类型:1资金 2虚拟货币", example = "1")
@NotNull(message = "类型不能为空")
private Integer type; private Integer type;
@ApiModelProperty(value = "借款天数", example = "1") @ApiModelProperty(value = "借款天数", example = "1")
@NotNull(message = "借款天数不能为空")
private Integer day; private Integer day;
} }
package com.clx.performance.param.pc.borrower; package com.clx.performance.param.pc.loan.carrier;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
......
package com.clx.performance.param.pc.borrower; package com.clx.performance.param.pc.loan.carrier;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
......
package com.clx.performance.param.pc.borrower; package com.clx.performance.param.pc.loan.carrier;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
...@@ -23,10 +23,13 @@ public class BorrowerConfigUpdateParam { ...@@ -23,10 +23,13 @@ public class BorrowerConfigUpdateParam {
@NotNull(message = "id不能为空") @NotNull(message = "id不能为空")
private Integer id; private Integer id;
@ApiModelProperty(value = "借出方id", example = "1") @ApiModelProperty(value = "借出方id", example = "1")
@NotNull(message = "借出方id不能为空")
private Integer borrowerId; private Integer borrowerId;
@ApiModelProperty(value = "类型:1资金 2虚拟货币", example = "1") @ApiModelProperty(value = "类型:1资金 2虚拟货币", example = "1")
@NotNull(message = "类型方不能为空")
private Integer type; private Integer type;
@ApiModelProperty(value = "借款天数", example = "1") @ApiModelProperty(value = "借款天数", example = "1")
@NotNull(message = "借款天数不能为空")
private Integer day; private Integer day;
} }
package com.clx.performance.param.pc.borrower; package com.clx.performance.param.pc.loan.carrier;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
......
package com.clx.performance.param.pc.borrower; package com.clx.performance.param.pc.loan.carrier;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
......
package com.clx.performance.param.pc.borrower; package com.clx.performance.param.pc.loan.carrier;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
......
package com.clx.performance.param.pc.loan.carrier;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class CarrierOwnerLoanRecordApproveParam {
@ApiModelProperty("借款单号")
private Long loanNo;
@ApiModelProperty("1:同意 0:拒绝")
private Boolean status;
@ApiModelProperty("拒绝原因")
private String rejectReason;
@ApiModelProperty("1:虚拟货币 2:资金")
private Integer loanType;
}
package com.clx.performance.param.pc.loan.carrier;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
/**
* @ClassName PageOwnerLoanAccountApproveParam
* @Description
* @Author kavin
* @Date 2024/1/20 17:57
* @Version 1.0
*/
@Getter
@Setter
public class OwnerLoanAccountApproveParam extends PageParam {
@ApiModelProperty("申请编号")
@NotNull
private Integer id;
@ApiModelProperty("拒绝原因")
private String rejectReason;
@ApiModelProperty("1:审核通过 0:审批拒绝")
@NotNull
private Boolean status;
}
package com.clx.performance.param.pc.borrower; package com.clx.performance.param.pc.loan.carrier;
import com.msl.common.base.PageParam; import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
package com.clx.performance.param.pc.borrower; package com.clx.performance.param.pc.loan.carrier;
import com.msl.common.base.PageParam; import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
package com.clx.performance.param.pc.loan.carrier;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName PageCarrierOwnerLoanRecordParam
* @Description
* @Author kavin
* @Date 2024/1/20 17:31
* @Version 1.0
*/
@Getter
@Setter
public class PageCarrierOwnerLoanRecordParam extends PageParam {
@ApiModelProperty("借款单号")
private Long loanNo;
@ApiModelProperty("货主编码")
private String ownerUserNo;
@ApiModelProperty("货主姓名")
private String ownerUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("借款类型 1:虚拟货币 2:资金")
private Integer loanType;
@ApiModelProperty("10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
private Integer status;
}
package com.clx.performance.param.pc.loan.carrier;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName PageCarrierOwnerRepaymentParam
* @Description
* @Author kavin
* @Date 2024/1/20 15:14
* @Version 1.0
*/
@Getter
@Setter
public class PageCarrierOwnerPaymentParam extends PageParam {
@ApiModelProperty("还款单号")
private Long repaymentNo;
@ApiModelProperty("货主编码")
private String ownerUserNo;
@ApiModelProperty("货主名称")
private String ownerUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("付款单号")
private Long paymentNo;
@ApiModelProperty("10 待付款 40 付款中 50 付款成功 60 付款失败")
private Integer status;
}
package com.clx.performance.param.pc.loan.carrier;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName PageCarrierOwnerRepaymentParam
* @Description
* @Author kavin
* @Date 2024/1/20 15:14
* @Version 1.0
*/
@Getter
@Setter
public class PageCarrierOwnerRepaymentParam extends PageParam {
@ApiModelProperty("还款单号")
private Long repaymentNo;
@ApiModelProperty("货主编码")
private String ownerUserNo;
@ApiModelProperty("货主名称")
private String ownerUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("借款单号")
private Long loanNo;
@ApiModelProperty("10 待付款 40 付款中 50 付款成功 60 付款失败")
private Integer status;
@ApiModelProperty("10 未逾期 20 已逾期")
private Integer beOverdue;
}
package com.clx.performance.param.pc.loan.carrier;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName PageOwnerLoanAccountApproveParam
* @Description
* @Author kavin
* @Date 2024/1/20 17:57
* @Version 1.0
*/
@Getter
@Setter
public class PageOwnerLoanAccountApproveParam extends PageParam {
@ApiModelProperty("货主编码")
private String ownerUserNo;
@ApiModelProperty("货主名称")
private String ownerUserName;
@ApiModelProperty("待审批 10,审批成功 20,审批拒绝 30")
private Integer status;
}
package com.clx.performance.param.pc.loan.carrier;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@ToString
public class PageOwnerLoanAccountParam extends PageParam {
@ApiModelProperty(value = "货主编码", example = "10000000")
private Long ownerUserNo;
@ApiModelProperty(value = "货主名称", example = "张三")
private String ownerUserName;
@ApiModelProperty(value = "联系电话", example = "13000000000")
private String mobile;
}
\ No newline at end of file
package com.clx.performance.param.pc.loan.carrier;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@ToString
public class PageOwnerLoanAccountWaterRecordOfOwnerParam extends PageParam {
@ApiModelProperty(value = "货主编码", example = "10000000")
private Long ownerUserNo;
@ApiModelProperty(value = "流水号", example = "100000")
private Long runningWaterNo;
@ApiModelProperty(value = "运单编号", example = "10000")
private String childNo;
@ApiModelProperty(value = "流水类型 70:运单核销 80:借款", example = "10")
private Integer runningWaterType;
}
\ No newline at end of file
package com.clx.performance.param.pc.loan.carrier;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@ToString
public class PageOwnerLoanRecordOfOwner extends PageParam {
@ApiModelProperty(value = "货主编码", example = "10000000")
private Long ownerUserNo;
@ApiModelProperty(value = "借款单号", example = "100000000")
private Long loanNo;
@ApiModelProperty(value = "交易流水号(第三方)", example = "11000000000")
private String runningWaterOpenNo;
@ApiModelProperty(value = "借款类型 1:虚拟货币 2:资金", example = "1")
private Integer loanType;
@ApiModelProperty(value = "10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ", example = "1")
private Integer status;
}
\ No newline at end of file
package com.clx.performance.param.pc.loan.carrier;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@ToString
public class PageOwnerRepaymentOfOwner extends PageParam {
@ApiModelProperty(value = "货主编码", example = "10000000")
private String ownerUserNo;
@ApiModelProperty(value = "还款单号", example = "100000000")
private String repaymentNo;
@ApiModelProperty(value = "联系电话", example = "13000000000")
private String mobile;
@ApiModelProperty(value = "借款单号", example = "100000000")
private Long loanNo;
@ApiModelProperty(value = "10 待付款 40 付款中 50 付款成功 60 付款失败", example = "10")
private Integer status;
@ApiModelProperty(value = "10 未逾期 20 已逾期", example = "10")
private Integer beOverdue;
}
\ No newline at end of file
package com.clx.performance.param.pc.loan.owner;
import com.msl.common.convertor.type.MoneyInConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Setter
@Getter
@ToString
@NoArgsConstructor
public class OwnerLoanRecordParam {
@ApiModelProperty(value = "借款金额", example = "张三")
@NotNull(message = "借款金额不能为空")
@MoneyInConvert
private BigDecimal loanBalance;
@ApiModelProperty(value = "借款方", example = "伟华煤炭运销公司")
@NotBlank(message = "借款方不能为空")
private String borrower;
@ApiModelProperty(value = "借出方", example = "诚联信网络科技有限公司")
@NotBlank(message = "借出方不能为空")
private String lendingParty;
@ApiModelProperty(value = "借出方账户", example = "诚联信银行账户")
@NotBlank(message = "借出方不能为空")
private String paymentAccount;
@ApiModelProperty(value = "借出时效(天)", example = "2")
@NotNull(message = "借出时效(天)不能为空")
private Integer expireDay;
}
package com.clx.performance.vo.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class OwnerLoanAccountVO {
private Integer id;
@ApiModelProperty("货主编码")
private Long ownerUserNo;
@ApiModelProperty("货主名称")
private String ownerUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("账户类型: 默认3 借款账户")
private Integer accountType;
@ApiModelProperty("资金金额")
private BigDecimal fundingAmount;
@ApiModelProperty("虚拟币金额")
private BigDecimal virtuallyAmount;
@ApiModelProperty("资金欠款")
private BigDecimal fundingArrears;
@ApiModelProperty("虚拟币欠款")
private BigDecimal virtuallyArrears;
@ApiModelProperty("创建人")
private String createBy;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
}
package com.clx.performance.vo.pc.borrower; package com.clx.performance.vo.pc.loan.carrier;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
package com.clx.performance.vo.pc.borrower; package com.clx.performance.vo.pc.loan.carrier;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
......
package com.clx.performance.vo.pc.loan.carrier;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Getter
@Setter
public class OwnerLoanAccountApproveVO {
private Integer id;
@ApiModelProperty("货主编码")
private String ownerUserNo;
@ApiModelProperty("货主名称")
private String ownerUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("账户类型 默认3 借款账户")
private Integer accountType;
@ApiModelProperty("待审批 10,审批成功 20,审批拒绝 30")
private Integer status;
@ApiModelProperty("审批时间")
private LocalDateTime approveTime;
@ApiModelProperty("审批人")
private String approveBy;
@ApiModelProperty("拒绝原因")
private String rejectReason;
@ApiModelProperty("创建人")
private String createBy;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
}
package com.clx.performance.vo.pc.loan.carrier;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @Author: aiqinguo
* @Description: 货主账户流水记录
* @Date: 2024/01/23 10:06:01
* @Version: 1.0
*/
@ApiModel(description = "货主账户流水记录")
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OwnerLoanAccountRunningWaterRecordVO {
@ApiModelProperty(value = "id", example = "")
private Integer id;
@ApiModelProperty(value = "货主编码", example = "1000000")
private String ownerUserNo;
@ApiModelProperty(value = "货主名称", example = "张三")
private String ownerUserName;
@ApiModelProperty(value = "联系电话", example = "13000000000")
private String mobile;
@ApiModelProperty(value = "流水号", example = "100000")
private Long runningWaterNo;
@ApiModelProperty(value = "借款单号", example = "100000")
private Long loanNo;
@ApiModelProperty(value = "运单编号", example = "100000")
private String childNo;
@ApiModelProperty(value = "流水类型 70:运单核销 80:借款", example = "10")
private Integer runningWaterType;
@ApiModelProperty(value = "金额", example = "1.23")
private BigDecimal alterationBalance;
@ApiModelProperty(value = "账户余额", example = "1.23")
private BigDecimal accountBalance;
@ApiModelProperty(value = "创建人", example = "张三")
private String createBy;
@ApiModelProperty(value = "创建时间", example = "")
private LocalDateTime createTime;
}
\ No newline at end of file
package com.clx.performance.vo.pc.loan.carrier;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
/**
* @Author: aiqinguo
* @Description: 货主借款账户
* @Date: 2024/01/22 18:17:57
* @Version: 1.0
*/
@ApiModel(description = "货主借款账户")
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OwnerLoanAccountVO {
@ApiModelProperty(value = "货主编码", example = "10000000")
private Long ownerUserNo;
@ApiModelProperty(value = "货主名称", example = "张三")
private String ownerUserName;
@ApiModelProperty(value = "联系电话", example = "13000000000")
private String mobile;
@ApiModelProperty(value = "默认 3:借款账户", example = "3")
private Integer accountType;
@ApiModelProperty(value = "账户余额 (元) ", example = "1.23")
private BigDecimal amount;
public BigDecimal getAmount() {
return BigDecimal.ZERO.add(fundingAmount==null? BigDecimal.ZERO : fundingAmount).add(virtuallyAmount==null? BigDecimal.ZERO : virtuallyAmount);
}
@ApiModelProperty(value = "欠款金额 (元)", example = "1.23")
private BigDecimal arrears;
public BigDecimal getArrears() {
return BigDecimal.ZERO.add(fundingArrears==null? BigDecimal.ZERO : fundingArrears).add(virtuallyArrears==null? BigDecimal.ZERO : virtuallyArrears);
}
@ApiModelProperty(value = "创建人", example = "张三")
private String createBy;
@ApiModelProperty(value = "创建时间", example = "")
private String createTime;
@JsonIgnore
@ApiModelProperty(value = "资金金额", example = "1.23", hidden = true)
private BigDecimal fundingAmount;
@JsonIgnore
@ApiModelProperty(value = "虚拟币金额", example = "1.23", hidden = true)
private BigDecimal virtuallyAmount;
@JsonIgnore
@ApiModelProperty(value = "资金欠款", example = "1.23", hidden = true)
private BigDecimal fundingArrears;
@JsonIgnore
@ApiModelProperty(value = "虚拟币欠款", example = "1.23", hidden = true)
private BigDecimal virtuallyArrears;
}
\ No newline at end of file
package com.clx.performance.vo.pc.loan.carrier;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2024-01-20
* Time 17:05
*/
@Getter
@Setter
public class OwnerLoanRecordVO {
private Integer id;
@ApiModelProperty("货主编码")
private String ownerUserNo;
@ApiModelProperty("货主名称")
private String ownerUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("交易流水号(第三方)")
private Long runningWaterOpenNo;
@ApiModelProperty("借款单号")
private Long loanNo;
@ApiModelProperty("借款类型 1:虚拟货币 2:资金")
private Integer loanType;
@ApiModelProperty("借款类型 虚拟货币 资金")
private String loanTypeMsg;
public String getLoanTypeMsg(){
return OwnerLoanRecordEnum.LoanType.getMsgByCode(loanType);
}
@ApiModelProperty("借款金额")
private BigDecimal loanBalance;
@ApiModelProperty("借款方")
private String borrower;
@ApiModelProperty("借出方")
private String lendingParty;
@ApiModelProperty("付款账户")
private String paymentAccount;
@ApiModelProperty("收款方")
private String payee;
@ApiModelProperty("收款账户")
private String payeeAccount;
@ApiModelProperty("10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
private Integer status;
@ApiModelProperty("10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
private String statusMsg;
public String getStatusMsg(){
return OwnerLoanRecordEnum.Status.getMsgByCode(status);
}
@ApiModelProperty("审批时间")
private LocalDateTime approveTime;
@ApiModelProperty("审批人")
private String approveBy;
@ApiModelProperty("拒绝原因")
private String rejectReason;
@ApiModelProperty("借款归还时间")
private LocalDateTime loanRepaymentTime;
@ApiModelProperty("创建人")
private String createBy;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
}
package com.clx.performance.vo.pc.loan.carrier;
import com.clx.performance.enums.loan.OwnerPaymentEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Getter
@Setter
public class OwnerPaymentVO{
private Integer id;
@ApiModelProperty("货主编码")
private String ownerUserNo;
@ApiModelProperty("货主名称")
private String ownerUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("交易流水号(第三方)")
private Long runningWaterOpenNo;
@ApiModelProperty("付款单号")
private Long paymentNo;
@ApiModelProperty("还款单号")
private Long repaymentNo;
@ApiModelProperty("付款金额")
private BigDecimal paymentBalance;
@ApiModelProperty("付款方")
private String payment;
@ApiModelProperty("付款账户")
private String paymentAccount;
@ApiModelProperty("收款方")
private String payee;
@ApiModelProperty("收款账户")
private String payeeAccount;
@ApiModelProperty("10 待付款 40 付款中 50 付款成功 60 付款失败")
private Integer status;
@ApiModelProperty("待付款 付款中 付款成功 付款失败")
private String statusMsg;
public String getStatusMsg(){
return OwnerPaymentEnum.Status.getMsgByCode(status);
}
@ApiModelProperty("默认财资 30 ")
private Integer payChannel;
@ApiModelProperty("财资")
private String payChannelMsg;
public String getPayChannelMsg(){
return "财资";
}
@ApiModelProperty("操作时间")
private String operateTime;
@ApiModelProperty("操作人")
private String operateBy;
@ApiModelProperty("创建人")
private String createBy;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("修改时间")
private String modifiedTime;
}
package com.clx.performance.vo.pc.loan.carrier;
import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
/**
* @ClassName OwnerRepayment
* @Description
* @Author kavin
* @Date 2024/1/20 15:18
* @Version 1.0
*/
@Getter
@Setter
public class OwnerRepaymentVO {
private Integer id;
@ApiModelProperty("货主编码")
private String ownerUserNo;
@ApiModelProperty("货主名称")
private String ownerUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("交易流水号(第三方)")
private Long runningWaterOpenNo;
@ApiModelProperty("还款单号")
private Long repaymentNo;
@ApiModelProperty("还款金额")
private BigDecimal repaymentBalance;
@ApiModelProperty("付款方")
private String payment;
@ApiModelProperty("付款账户")
private String paymentAccount;
@ApiModelProperty("收款方")
private String payee;
@ApiModelProperty("收款账户")
private String payeeAccount;
@ApiModelProperty("借款单号")
private Long loanNo;
@ApiModelProperty("10 待付款 40 付款中 50 付款成功 60 付款失败")
private Integer status;
@ApiModelProperty("10 待付款 40 付款中 50 付款成功 60 付款失败")
private String statusMsg;
public String getStatusMsg(){
return OwnerRePaymentEnum.Status.getMsgByCode(status);
}
@ApiModelProperty("支付渠道 10 订单支付 20 转账支付")
private Integer payChannel;
@ApiModelProperty("支付渠道 10 订单支付 20 转账支付")
private String payChannelMsg;
public String getPayChannelMsg(){
return OwnerRePaymentEnum.Channel.getMsgByCode(payChannel);
}
@ApiModelProperty("10 未逾期 20 已逾期")
private Integer beOverdue;
@ApiModelProperty("10 未逾期 20 已逾期")
private String beOverdueMsg;
public String getBeOverdueMsg(){
return OwnerRePaymentEnum.BeOverdue.getMsgByCode(beOverdue);
}
@ApiModelProperty("借款归还时间")
private String loanRepaymentTime;
@ApiModelProperty("操作时间")
private String operateTime;
@ApiModelProperty("操作人")
private String operateBy;
@ApiModelProperty("创建人")
private String createBy;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("修改时间")
private String modifiedTime;
}
package com.clx.performance.vo.pc.loan.owner;
/**
* @ClassName TestController
* @Description
* @Author kavin
* @Date 2024/1/22 10:20
* @Version 1.0
*/
public class TestController {
}
...@@ -19,14 +19,16 @@ import lombok.ToString; ...@@ -19,14 +19,16 @@ import lombok.ToString;
@NoArgsConstructor @NoArgsConstructor
public class NbBankOrderPayResultVO { public class NbBankOrderPayResultVO {
@ApiModelProperty(value = "金额(分)", example = "") @ApiModelProperty(value = "金额(分)", example = "1")
private Integer amount; private Integer amount;
@ApiModelProperty(value = "流水号", example = "20231129145541") @ApiModelProperty(value = "商户时间", example = "")
private String merDtTm;
@ApiModelProperty(value = "商户流水号", example = "20231129145541")
private String merSeqNo; private String merSeqNo;
@ApiModelProperty(value = "第三方流水号", example = "20231129145541065503563czKTBzy") @ApiModelProperty(value = "第三方流水号", example = "20231129145541065503563czKTBzy")
private String transSeqNo; private String transSeqNo;
@ApiModelProperty(value = "转账编号", example = "") @ApiModelProperty(value = "转账编号 (转账专用)", example = "123456")
private String signNo; private String signNo;
} }
\ No newline at end of file
...@@ -17,18 +17,20 @@ import lombok.ToString; ...@@ -17,18 +17,20 @@ import lombok.ToString;
@Setter @Setter
@ToString @ToString
@NoArgsConstructor @NoArgsConstructor
public class NbBankOrderPayStatusResultVO { public class NbBankOrderResultVO {
@ApiModelProperty(value = "金额(分)", example = "") @ApiModelProperty(value = "金额(分)", example = "")
private Integer amount; private Integer amount;
@ApiModelProperty(value = "实收金额(分)", example = "") @ApiModelProperty(value = "实收金额(分)", example = "")
private Integer realAmount; private Integer realAmount;
@ApiModelProperty(value = "流水号", example = "20231129145541") @ApiModelProperty(value = "商户时间")
private String merDtTm;
@ApiModelProperty(value = "商户流水号", example = "20231129145541")
private String merSeqNo; private String merSeqNo;
@ApiModelProperty(value = "第三方流水号", example = "20231129145541065503563czKTBzy") @ApiModelProperty(value = "第三方流水号", example = "20231129145541065503563czKTBzy")
private String transSeqNo; private String transSeqNo;
@ApiModelProperty(value = "转账编号", example = "") @ApiModelProperty(value = "转账编号(转账专用)", example = "1234567")
private String signNo; private String signNo;
@ApiModelProperty(value = "交易状态", example = "") @ApiModelProperty(value = "交易状态", example = "")
......
...@@ -12,5 +12,6 @@ import org.springframework.context.annotation.Configuration; ...@@ -12,5 +12,6 @@ import org.springframework.context.annotation.Configuration;
public class NbBankConfig { public class NbBankConfig {
private String appKey = "77667c76_3503_4c04_95f7_fc10938c7942"; private String appKey = "77667c76_3503_4c04_95f7_fc10938c7942";
private String merId = "EFT33021200556315";
} }
...@@ -5,8 +5,8 @@ import com.clx.performance.param.pc.owner.FrozenAccountParam; ...@@ -5,8 +5,8 @@ import com.clx.performance.param.pc.owner.FrozenAccountParam;
import com.clx.performance.param.pc.owner.ThawAccountParam; import com.clx.performance.param.pc.owner.ThawAccountParam;
import com.clx.performance.service.OwnerAccountService; import com.clx.performance.service.OwnerAccountService;
import com.clx.performance.vo.pc.OwnerAccountAllVO; import com.clx.performance.vo.pc.OwnerAccountAllVO;
import com.clx.performance.vo.pc.OwnerLoanAccountVO;
import com.msl.common.result.Result; import com.msl.common.result.Result;
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;
...@@ -44,4 +44,10 @@ public class OwnerAccountFeignController { ...@@ -44,4 +44,10 @@ public class OwnerAccountFeignController {
public Result<OwnerAccountAllVO> accountInfo(@RequestParam Long userNo) { public Result<OwnerAccountAllVO> accountInfo(@RequestParam Long userNo) {
return Result.ok(ownerAccountService.accountInfo(userNo)); return Result.ok(ownerAccountService.accountInfo(userNo));
} }
@ApiOperation(value = "查询用户预付运费和保证金账户", notes = "<br>By:胡宇帆")
@GetMapping("/loanAccount")
public Result<OwnerLoanAccountVO> loanAccount(@RequestParam Long userNo) {
return Result.ok(ownerAccountService.loanAccount(userNo));
}
} }
package com.clx.performance.controller.pc.borrower.carrier; package com.clx.performance.controller.pc.loan.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.borrower.*; import com.clx.performance.param.pc.loan.carrier.*;
import com.clx.performance.service.borrower.BorrowerConfigService; import com.clx.performance.service.loan.BorrowerConfigService;
import com.clx.performance.vo.pc.borrower.BorrowerConfigVO; import com.clx.performance.vo.pc.loan.carrier.BorrowerConfigVO;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
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;
......
package com.clx.performance.controller.pc.borrower.carrier; package com.clx.performance.controller.pc.loan.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.borrower.*; import com.clx.performance.param.pc.loan.carrier.*;
import com.clx.performance.service.borrower.BorrowerService; import com.clx.performance.service.loan.BorrowerService;
import com.clx.performance.service.impl.borrower.BorrowerServiceImpl; import com.clx.performance.vo.pc.loan.carrier.BorrowerVO;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
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;
......
package com.clx.performance.controller.pc.loan.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.loan.carrier.OwnerLoanAccountApproveParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountApproveParam;
import com.clx.performance.service.loan.OwnerLoanAccountApproveService;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountApproveVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName CarrierOwnerLoanAccountApproveController
* @Description
* @Author kavin
* @Date 2024/1/20 17:52
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/ownerLoanAccountApprove")
@Validated
@Api(tags = "承运端-运营管理")
@AllArgsConstructor
public class CarrierOwnerLoanAccountApproveController {
private final OwnerLoanAccountApproveService ownerLoanAccountApproveService;
@ApiOperation(value = "货主借款账户审核列表",notes = "<br>By:刘海泉")
@PostMapping("/pageOwnerLoanAccountApprove")
public Result<PageData<OwnerLoanAccountApproveVO>> pageOwnerLoanAccountApprove(@RequestBody @Validated PageOwnerLoanAccountApproveParam param) {
IPage<OwnerLoanAccountApproveVO> page = ownerLoanAccountApproveService.pageOwnerLoanAccountApprove(param);
return Result.page(page.getRecords(),page.getTotal(),page.getPages());
}
@ApiOperation(value = "货主借款账户审批",notes = "<br>By:胡宇帆")
@PostMapping("/ownerLoanAccountApprove")
public Result<Object> ownerLoanAccountApprove(@RequestBody @Validated OwnerLoanAccountApproveParam param) {
ownerLoanAccountApproveService.ownerLoanAccountApprove(param);
return Result.ok();
}
}
package com.clx.performance.controller.pc.loan.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountParam;
import com.clx.performance.service.loan.OwnerLoanAccountService;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/ownerLoanAccount")
@Validated
@Api(tags = "承运端-借款账户")
public class CarrierOwnerLoanAccountController {
@Autowired
private OwnerLoanAccountService ownerLoanAccountService;
@ApiOperation(value = "分页搜索货主借款账户列表",notes = "<br>By:艾庆国")
@PostMapping("/pageOwnerLoanAccount")
public Result<PageData<OwnerLoanAccountVO>> pageOwnerLoanAccount(@RequestBody @Validated PageOwnerLoanAccountParam param) {
IPage<OwnerLoanAccountVO> page = ownerLoanAccountService.pageOwnerLoanAccount(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
package com.clx.performance.controller.pc.loan.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountWaterRecordOfOwnerParam;
import com.clx.performance.service.loan.OwnerLoanAccountRunningWaterRecordService;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountRunningWaterRecordVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/ownerLoanAccountWaterRecord")
@Validated
@Api(tags = "承运端-借款账户")
public class CarrierOwnerLoanAccountWaterRecordController {
@Autowired
private OwnerLoanAccountRunningWaterRecordService ownerLoanAccountRunningWaterRecordService;
@ApiOperation(value = "分页搜索货主借款账户流水列表",notes = "<br>By:艾庆国")
@PostMapping("/pageOwnerLoanAccountWaterOfOwner")
public Result<PageData<OwnerLoanAccountRunningWaterRecordVO>> pageOwnerLoanAccountWaterOfOwner(@RequestBody @Validated PageOwnerLoanAccountWaterRecordOfOwnerParam param) {
IPage<OwnerLoanAccountRunningWaterRecordVO> page = ownerLoanAccountRunningWaterRecordService.pageOwnerLoanAccountWaterOfOwner(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
package com.clx.performance.controller.pc.loan.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.PageOwnerLoanRecordOfOwner;
import com.clx.performance.service.loan.OwnerLoanRecordService;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/ownerLoanRecord")
@Validated
@Api(tags = "承运端-借款管理")
@AllArgsConstructor
public class CarrierOwnerLoanRecordController {
private final OwnerLoanRecordService ownerLoanRecordService;
@ApiOperation(value = "借款列表",notes = "<br>By:刘海泉")
@PostMapping("/pageOwnerLoanRecord")
public Result<PageData<OwnerLoanRecordVO>> pageOwnerLoanRecord(@RequestBody @Validated PageCarrierOwnerLoanRecordParam param) {
IPage<OwnerLoanRecordVO> page = ownerLoanRecordService.pageOwnerLoanRecord(param);
return Result.page(page.getRecords(),page.getTotal(),page.getPages());
}
@ApiOperation(value = "借款审批",notes = "<br>By:胡宇帆")
@PostMapping("/ownerLoanRecordApprove")
public Result<Object> ownerLoanRecordApprove(@RequestBody @Validated CarrierOwnerLoanRecordApproveParam param) {
ownerLoanRecordService.ownerLoanRecordApprove(param);
return Result.ok();
}
@ApiOperation(value = "分页搜索货主借款列表",notes = "<br>By:艾庆国")
@PostMapping("/pageOwnerLoanRecordOfOwner")
public Result<PageData<OwnerLoanRecordVO>> pageOwnerLoanRecordOfOwner(@RequestBody @Validated PageOwnerLoanRecordOfOwner param) {
IPage<OwnerLoanRecordVO> page = ownerLoanRecordService.pageOwnerLoanRecordOfOwner(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
package com.clx.performance.controller.pc.loan.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerPaymentParam;
import com.clx.performance.service.loan.OwnerPaymentService;
import com.clx.performance.vo.pc.loan.carrier.OwnerPaymentVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/ownerPayment")
@Validated
@Api(tags = "承运端-借款管理")
@AllArgsConstructor
public class CarrierOwnerPaymentController {
private final OwnerPaymentService ownerPaymentService;
@ApiOperation(value = "付款列表",notes = "<br>By:刘海泉")
@PostMapping("/pageOwnerPayment")
public Result<PageData<OwnerPaymentVO>> pageOwnerPayment(@RequestBody @Validated PageCarrierOwnerPaymentParam param) {
IPage<OwnerPaymentVO> page = ownerPaymentService.pageOwnerPayment(param);
return Result.page(page.getRecords(),page.getTotal(),page.getPages());
}
}
package com.clx.performance.controller.pc.loan.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerRepaymentParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerRepaymentOfOwner;
import com.clx.performance.service.loan.OwnerRepaymentService;
import com.clx.performance.vo.pc.loan.carrier.OwnerRepaymentVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/ownerRepayment")
@Validated
@Api(tags = "承运端-借款管理")
@AllArgsConstructor
public class CarrierOwnerRepaymentController {
private final OwnerRepaymentService ownerRepaymentService;
@ApiOperation(value = "还款列表",notes = "<br>By:刘海泉")
@PostMapping("/pageOwnerRepayment")
public Result<PageData<OwnerRepaymentVO>> pageOwnerRepayment(@RequestBody @Validated PageCarrierOwnerRepaymentParam param) {
IPage<OwnerRepaymentVO> page = ownerRepaymentService.pageOwnerRepayment(param);
return Result.page(page.getRecords(),page.getTotal(),page.getPages());
}
@ApiOperation(value = "分页搜索货主还款列表",notes = "<br>By:艾庆国")
@PostMapping("/pageOwnerRepaymentOfOwner")
public Result<PageData<OwnerRepaymentVO>> pageOwnerRepaymentOfOwner(@RequestBody @Validated PageOwnerRepaymentOfOwner param) {
IPage<OwnerRepaymentVO> page = ownerRepaymentService.pageOwnerRepaymentOfOwner(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
package com.clx.performance.controller.pc.loan.owner;
import com.clx.performance.param.pc.loan.owner.OwnerLoanRecordParam;
import com.clx.performance.service.loan.OwnerLoanAccountApproveService;
import com.clx.performance.service.loan.OwnerLoanAccountRunningWaterRecordService;
import com.clx.performance.service.loan.OwnerLoanRecordService;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/ownerLoanAccountApprove")
@Validated
@Api(tags = "货主端-资金管理")
@AllArgsConstructor
public class OwnerLoanAccountController {
private final OwnerLoanAccountApproveService ownerLoanAccountApproveService;
private final OwnerLoanRecordService ownerLoanRecordService;
@ApiOperation(value = "货主借款账户开通",notes = "<br>By:胡宇帆")
@GetMapping("/openOwnerLoanAccount")
public Result<Object> openOwnerLoanAccount() {
ownerLoanAccountApproveService.openOwnerLoanAccountApprove();
return Result.ok();
}
@ApiOperation(value = "货主借款申请",notes = "<br>By:胡宇帆")
@PostMapping("/ownerLoanRecordSubmit")
public Result<Object> ownerLoanRecordSubmit(@RequestBody OwnerLoanRecordParam param) {
ownerLoanRecordService.ownerLoanRecordSubmit(param);
return Result.ok();
}
}
package com.clx.performance.controller.pc.loan.owner;
/**
* @ClassName TestController
* @Description
* @Author kavin
* @Date 2024/1/22 10:34
* @Version 1.0
*/
public class TestController {
}
...@@ -2,7 +2,7 @@ package com.clx.performance.controller.temp; ...@@ -2,7 +2,7 @@ package com.clx.performance.controller.temp;
import com.clx.performance.service.thirdparty.nbbank.NbBankService; import com.clx.performance.service.thirdparty.nbbank.NbBankService;
import com.clx.performance.vo.pc.nbbank.NbBankOrderPayResultVO; import com.clx.performance.vo.pc.nbbank.NbBankOrderPayResultVO;
import com.clx.performance.vo.pc.nbbank.NbBankOrderPayStatusResultVO; import com.clx.performance.vo.pc.nbbank.NbBankOrderResultVO;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -26,25 +26,39 @@ public class TempBankController { ...@@ -26,25 +26,39 @@ public class TempBankController {
@Autowired @Autowired
private NbBankService bankService; private NbBankService bankService;
@ApiOperation(value = "directBankTransferOrder", notes = "<br>By:艾庆国") @ApiOperation(value = "转账支付", notes = "<br>By:艾庆国")
@RequestMapping(value = "/directBankTransferOrder", method = RequestMethod.POST) @RequestMapping(value = "/orderTransferPay", method = RequestMethod.POST)
public Result<NbBankOrderPayResultVO> directBankTransferOrder() throws Exception { public Result<NbBankOrderPayResultVO> directBankTransferOrder() {
return Result.ok(bankService.orderPay(1)); return Result.ok(bankService.orderTransferPay(1));
} }
@ApiOperation(value = "unionPayDirectOrder", notes = "<br>By:艾庆国") @ApiOperation(value = "订单支付", notes = "<br>By:艾庆国")
@RequestMapping(value = "/unionPayDirectOrder", method = RequestMethod.POST) @RequestMapping(value = "/orderDirectPay", method = RequestMethod.POST)
public Result<NbBankOrderPayResultVO> unionPayDirectOrder() throws Exception { public Result<NbBankOrderPayResultVO> orderDirectPay() {
return Result.ok(bankService.orderPay(2)); return Result.ok(bankService.orderDirectPay(null,2,"313332082914","86041110000076809", "黑玫瑰"));
} }
@ApiOperation(value = "queryOrder", notes = "<br>By:艾庆国") @ApiOperation(value = "查询", notes = "<br>By:艾庆国")
@RequestMapping(value = "/queryOrderTest", method = RequestMethod.POST) @RequestMapping(value = "/getResult", method = RequestMethod.POST)
public Result<NbBankOrderPayStatusResultVO> queryOrderTest(String merSeqNo) throws Exception { public Result<NbBankOrderResultVO> getResult(String merSeqNo) {
return Result.ok(bankService.getOrderStatus(merSeqNo)); return Result.ok(bankService.getResult(merSeqNo));
}
@ApiOperation(value = "调账", notes = "<br>By:艾庆国")
@RequestMapping(value = "/adjust", method = RequestMethod.POST)
public Result<NbBankOrderResultVO> adjust(String merSeqNo, Integer amount) {
return Result.ok(bankService.adjust(merSeqNo, amount));
}
@ApiOperation(value = "退款", notes = "<br>By:艾庆国")
@RequestMapping(value = "/refund", method = RequestMethod.POST)
public Result<NbBankOrderResultVO> refund(String orgMerSeqNo, Integer amount, String orgTransSeqNo) {
return Result.ok(bankService.refund(orgMerSeqNo,amount,orgTransSeqNo));
} }
} }
...@@ -17,7 +17,8 @@ public class OwnerBindCardRecordDaoImpl extends BaseDaoImpl<OwnerBindCardRecordM ...@@ -17,7 +17,8 @@ public class OwnerBindCardRecordDaoImpl extends BaseDaoImpl<OwnerBindCardRecordM
@Override @Override
public OwnerBindCardRecord getOwnerBindCardByUserNo(Long userNo) { public OwnerBindCardRecord getOwnerBindCardByUserNo(Long userNo) {
return super.getOne(lQrWrapper() return super.getOne(lQrWrapper()
.eq(OwnerBindCardRecord::getOwnerUserNo, userNo) .eq(OwnerBindCardRecord::getOwnerUserNo, userNo).eq(OwnerBindCardRecord::getCreateItem, "绑定银行卡")
.orderByDesc(OwnerBindCardRecord::getId)
.last("limit 1") .last("limit 1")
); );
} }
......
package com.clx.performance.dao.impl.borrower; package com.clx.performance.dao.impl.loan;
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.borrower.BorrowerConfigDao; import com.clx.performance.dao.loan.BorrowerConfigDao;
import com.clx.performance.enums.borrower.BorrowerConfigEnum; import com.clx.performance.enums.loan.BorrowerConfigEnum;
import com.clx.performance.enums.borrower.BorrowerEnum; import com.clx.performance.mapper.loan.BorrowerConfigMapper;
import com.clx.performance.mapper.borrower.BorrowerConfigMapper; import com.clx.performance.model.loan.BorrowerConfig;
import com.clx.performance.model.borrower.Borrower; import com.clx.performance.param.pc.loan.carrier.PageBorrowerConfigParam;
import com.clx.performance.model.borrower.BorrowerConfig; import com.clx.performance.vo.pc.loan.carrier.BorrowerConfigVO;
import com.clx.performance.param.pc.borrower.PageBorrowerConfigParam;
import com.clx.performance.vo.pc.borrower.BorrowerConfigVO;
import com.clx.performance.vo.pc.borrower.BorrowerVO;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -68,10 +65,11 @@ public class BorrowerConfigDaoImpl extends BaseDaoImpl<BorrowerConfigMapper, Bor ...@@ -68,10 +65,11 @@ public class BorrowerConfigDaoImpl extends BaseDaoImpl<BorrowerConfigMapper, Bor
} }
@Override @Override
public Optional<BorrowerConfig> selectByBorrowerId(Integer borrowerId) { public Optional<BorrowerConfig> selectByBorrowerIdAndType(Integer borrowerId, Integer type) {
return Optional.of(borrowerId) return Optional.of(borrowerId)
.map(item -> lQrWrapper() .map(item -> lQrWrapper()
.eq(BorrowerConfig::getBorrowerId, item) .eq(BorrowerConfig::getBorrowerId, item)
.eq(BorrowerConfig::getType, type)
.eq(BorrowerConfig::getDeleteStatus, BorrowerConfigEnum.DeleteStatus.NO.getCode()) .eq(BorrowerConfig::getDeleteStatus, BorrowerConfigEnum.DeleteStatus.NO.getCode())
.last("limit 1") .last("limit 1")
) )
......
package com.clx.performance.dao.impl.borrower; package com.clx.performance.dao.impl.loan;
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.borrower.BorrowerDao; import com.clx.performance.dao.loan.BorrowerDao;
import com.clx.performance.enums.borrower.BorrowerEnum; import com.clx.performance.enums.loan.BorrowerEnum;
import com.clx.performance.mapper.borrower.BorrowerMapper; import com.clx.performance.mapper.loan.BorrowerMapper;
import com.clx.performance.model.borrower.Borrower; import com.clx.performance.model.loan.Borrower;
import com.clx.performance.param.pc.borrower.PageBorrowerParam; import com.clx.performance.param.pc.loan.carrier.PageBorrowerParam;
import com.clx.performance.vo.pc.borrower.BorrowerVO; import com.clx.performance.vo.pc.loan.carrier.BorrowerVO;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
......
package com.clx.performance.dao.impl.loan;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.loan.OwnerLoanAccountApproveDao;
import com.clx.performance.mapper.loan.OwnerLoanAccountApproveMapper;
import com.clx.performance.model.loan.OwnerLoanAccountApprove;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountApproveParam;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import java.util.Objects;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Repository
public class OwnerLoanAccountApproveDaoImpl extends BaseDaoImpl<OwnerLoanAccountApproveMapper, OwnerLoanAccountApprove, Integer> implements OwnerLoanAccountApproveDao {
@Override
public IPage<OwnerLoanAccountApprove> pageOwnerLoanAccountApprove(PageOwnerLoanAccountApproveParam param) {
LambdaQueryWrapper<OwnerLoanAccountApprove> query = new LambdaQueryWrapper<>();
if(StringUtils.isNotBlank(param.getOwnerUserNo())){
query.eq(OwnerLoanAccountApprove :: getOwnerUserNo,param.getOwnerUserNo());
}
if(StringUtils.isNotBlank(param.getOwnerUserName())){
query.like(OwnerLoanAccountApprove :: getOwnerUserName,param.getOwnerUserName());
}
if(Objects.nonNull(param.getStatus())){
query.like(OwnerLoanAccountApprove :: getStatus,param.getStatus());
}
query.orderByDesc(OwnerLoanAccountApprove :: getCreateTime);
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
}
}
package com.clx.performance.dao.impl.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.loan.OwnerLoanAccountDao;
import com.clx.performance.mapper.loan.OwnerLoanAccountMapper;
import com.clx.performance.model.loan.OwnerLoanAccount;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountParam;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountVO;
import com.msl.common.dao.impl.BaseDaoImpl;
import com.msl.common.utils.DateUtils;
import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Repository
public class OwnerLoanAccountDaoImpl extends BaseDaoImpl<OwnerLoanAccountMapper, OwnerLoanAccount, Integer> implements OwnerLoanAccountDao {
@Override
public Integer updateAccountCAS(OwnerLoanAccount account, LocalDateTime now, boolean flag) {
String nowStr = DateUtils.formatDateTime(now).get();
if (flag) {
return baseMapper.addAccount(account, nowStr);
} else {
return null;
// return baseMapper.subAccount(account, nowStr);
}
}
@Override
public IPage<OwnerLoanAccountVO> pageByParam(PageOwnerLoanAccountParam param) {
Page<OwnerLoanAccountVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageByParam(page,param);
}
}
package com.clx.performance.dao.impl.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.loan.OwnerLoanAccountRunningWaterRecordDao;
import com.clx.performance.mapper.loan.OwnerLoanAccountRunningWaterRecordMapper;
import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountWaterRecordOfOwnerParam;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountRunningWaterRecordVO;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Repository
public class OwnerLoanAccountRunningWaterRecordDaoImpl extends BaseDaoImpl<OwnerLoanAccountRunningWaterRecordMapper, OwnerLoanAccountRunningWaterRecord, Integer> implements OwnerLoanAccountRunningWaterRecordDao {
@Override
public IPage<OwnerLoanAccountRunningWaterRecordVO> pageByParam(PageOwnerLoanAccountWaterRecordOfOwnerParam param) {
Page<OwnerLoanAccountRunningWaterRecordVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageByParam(page,param);
}
}
package com.clx.performance.dao.impl.loan;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.loan.OwnerLoanRecordDao;
import com.clx.performance.mapper.loan.OwnerLoanRecordMapper;
import com.clx.performance.model.loan.OwnerLoanRecord;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerLoanRecordParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import java.util.Objects;
/**
* @author kavin
* Date 2024-01-20
* Time 17:05
*/
@Repository
public class OwnerLoanRecordDaoImpl extends BaseDaoImpl<OwnerLoanRecordMapper, OwnerLoanRecord, Integer> implements OwnerLoanRecordDao {
@Override
public IPage<OwnerLoanRecord> pageOwnerLoanRecord(PageCarrierOwnerLoanRecordParam param) {
LambdaQueryWrapper<OwnerLoanRecord> query = new LambdaQueryWrapper<>();
if(Objects.nonNull(param.getLoanType())){
query.eq(OwnerLoanRecord :: getLoanType,param.getLoanType());
}
if(StringUtils.isNotBlank(param.getOwnerUserNo())){
query.eq(OwnerLoanRecord :: getOwnerUserNo,param.getOwnerUserNo());
}
if(StringUtils.isNotBlank(param.getOwnerUserName())){
query.like(OwnerLoanRecord :: getOwnerUserName,param.getOwnerUserName());
}
if(StringUtils.isNotBlank(param.getMobile())){
query.like(OwnerLoanRecord :: getMobile,param.getMobile());
}
if(Objects.nonNull(param.getLoanNo())){
query.like(OwnerLoanRecord :: getLoanNo,param.getLoanNo());
}
if(Objects.nonNull(param.getStatus())){
query.like(OwnerLoanRecord :: getStatus,param.getStatus());
}
query.orderByDesc(OwnerLoanRecord :: getCreateTime);
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
}
@Override
public IPage<OwnerLoanRecordVO> pageByParam(PageOwnerLoanRecordOfOwner param) {
Page<OwnerLoanRecordVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageByParam(page,param);
}
}
package com.clx.performance.dao.impl.loan;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.loan.OwnerPaymentDao;
import com.clx.performance.mapper.loan.OwnerPaymentMapper;
import com.clx.performance.model.loan.OwnerPayment;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerPaymentParam;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import java.util.Objects;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Repository
public class OwnerPaymentDaoImpl extends BaseDaoImpl<OwnerPaymentMapper, OwnerPayment, Integer> implements OwnerPaymentDao {
@Override
public IPage<OwnerPayment> pageOwnerPayment(PageCarrierOwnerPaymentParam param) {
LambdaQueryWrapper<OwnerPayment> query = new LambdaQueryWrapper<>();
if(Objects.nonNull(param.getRepaymentNo())){
query.eq(OwnerPayment :: getRepaymentNo,param.getRepaymentNo());
}
if(StringUtils.isNotBlank(param.getOwnerUserNo())){
query.eq(OwnerPayment :: getOwnerUserNo,param.getOwnerUserNo());
}
if(StringUtils.isNotBlank(param.getOwnerUserName())){
query.like(OwnerPayment :: getOwnerUserName,param.getOwnerUserName());
}
if(StringUtils.isNotBlank(param.getMobile())){
query.like(OwnerPayment :: getMobile,param.getMobile());
}
if(Objects.nonNull(param.getPaymentNo())){
query.like(OwnerPayment :: getPaymentNo,param.getPaymentNo());
}
if(Objects.nonNull(param.getStatus())){
query.like(OwnerPayment :: getStatus,param.getStatus());
}
query.orderByDesc(OwnerPayment :: getCreateTime);
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
}
}
package com.clx.performance.dao.impl.loan;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.loan.OwnerRepaymentDao;
import com.clx.performance.mapper.loan.OwnerRepaymentMapper;
import com.clx.performance.model.loan.OwnerRepayment;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerRepaymentParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerRepaymentOfOwner;
import com.clx.performance.vo.pc.loan.carrier.OwnerRepaymentVO;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import java.util.Objects;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Repository
public class OwnerRepaymentDaoImpl extends BaseDaoImpl<OwnerRepaymentMapper, OwnerRepayment, Integer> implements OwnerRepaymentDao {
@Override
public IPage<OwnerRepayment> pageOwnerRepayment(PageCarrierOwnerRepaymentParam param) {
LambdaQueryWrapper<OwnerRepayment> query = new LambdaQueryWrapper<>();
if(Objects.nonNull(param.getRepaymentNo())){
query.eq(OwnerRepayment :: getRepaymentNo,param.getRepaymentNo());
}
if(StringUtils.isNotBlank(param.getOwnerUserNo())){
query.eq(OwnerRepayment :: getOwnerUserNo,param.getOwnerUserNo());
}
if(StringUtils.isNotBlank(param.getOwnerUserName())){
query.like(OwnerRepayment :: getOwnerUserName,param.getOwnerUserName());
}
if(StringUtils.isNotBlank(param.getMobile())){
query.like(OwnerRepayment :: getMobile,param.getMobile());
}
if(Objects.nonNull(param.getLoanNo())){
query.like(OwnerRepayment :: getLoanNo,param.getLoanNo());
}
if(Objects.nonNull(param.getStatus())){
query.like(OwnerRepayment :: getStatus,param.getStatus());
}
if(Objects.nonNull(param.getBeOverdue())){
query.like(OwnerRepayment :: getBeOverdue,param.getBeOverdue());
}
query.orderByDesc(OwnerRepayment :: getCreateTime);
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
}
@Override
public IPage<OwnerRepaymentVO> pageByParam(PageOwnerRepaymentOfOwner param) {
Page<OwnerRepaymentVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageByParam(page,param);
}
}
package com.clx.performance.dao.borrower; package com.clx.performance.dao.loan;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.borrower.BorrowerConfigMapper; import com.clx.performance.mapper.loan.BorrowerConfigMapper;
import com.clx.performance.model.borrower.BorrowerConfig; import com.clx.performance.model.loan.BorrowerConfig;
import com.clx.performance.param.pc.borrower.PageBorrowerConfigParam; import com.clx.performance.param.pc.loan.carrier.PageBorrowerConfigParam;
import com.clx.performance.vo.pc.borrower.BorrowerConfigVO; import com.clx.performance.vo.pc.loan.carrier.BorrowerConfigVO;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
...@@ -23,7 +23,7 @@ public interface BorrowerConfigDao extends BaseDao<BorrowerConfigMapper, Borrowe ...@@ -23,7 +23,7 @@ public interface BorrowerConfigDao extends BaseDao<BorrowerConfigMapper, Borrowe
boolean updateStatus(BorrowerConfig item); boolean updateStatus(BorrowerConfig item);
boolean updateDelete(BorrowerConfig item); boolean updateDelete(BorrowerConfig item);
Optional<BorrowerConfig> selectByBorrowerId(Integer borrowerId); Optional<BorrowerConfig> selectByBorrowerIdAndType(Integer borrowerId, Integer type);
List<BorrowerConfig> listEnable(); List<BorrowerConfig> listEnable();
......
package com.clx.performance.dao.borrower; package com.clx.performance.dao.loan;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.borrower.BorrowerMapper; import com.clx.performance.mapper.loan.BorrowerMapper;
import com.clx.performance.model.borrower.Borrower; import com.clx.performance.model.loan.Borrower;
import com.clx.performance.param.pc.borrower.PageBorrowerParam; import com.clx.performance.param.pc.loan.carrier.PageBorrowerParam;
import com.clx.performance.vo.pc.borrower.BorrowerVO; import com.clx.performance.vo.pc.loan.carrier.BorrowerVO;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
......
package com.clx.performance.dao.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.loan.OwnerLoanAccountApproveMapper;
import com.clx.performance.model.loan.OwnerLoanAccountApprove;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountApproveParam;
import com.msl.common.dao.BaseDao;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
public interface OwnerLoanAccountApproveDao extends BaseDao<OwnerLoanAccountApproveMapper, OwnerLoanAccountApprove, Integer> {
IPage<OwnerLoanAccountApprove> pageOwnerLoanAccountApprove(PageOwnerLoanAccountApproveParam param);
}
package com.clx.performance.dao.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.loan.OwnerLoanAccountMapper;
import com.clx.performance.model.loan.OwnerLoanAccount;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountParam;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountVO;
import com.msl.common.dao.BaseDao;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
public interface OwnerLoanAccountDao extends BaseDao<OwnerLoanAccountMapper, OwnerLoanAccount, Integer> {
Integer updateAccountCAS(OwnerLoanAccount account, LocalDateTime now, boolean flag);
IPage<OwnerLoanAccountVO> pageByParam(PageOwnerLoanAccountParam param);
}
package com.clx.performance.dao.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.loan.OwnerLoanAccountRunningWaterRecordMapper;
import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountWaterRecordOfOwnerParam;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountRunningWaterRecordVO;
import com.msl.common.dao.BaseDao;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
public interface OwnerLoanAccountRunningWaterRecordDao extends BaseDao<OwnerLoanAccountRunningWaterRecordMapper, OwnerLoanAccountRunningWaterRecord, Integer> {
IPage<OwnerLoanAccountRunningWaterRecordVO> pageByParam(PageOwnerLoanAccountWaterRecordOfOwnerParam param);
}
package com.clx.performance.dao.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.loan.OwnerLoanRecordMapper;
import com.clx.performance.model.loan.OwnerLoanRecord;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerLoanRecordParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import com.msl.common.dao.BaseDao;
/**
* @author kavin
* Date 2024-01-20
* Time 17:05
*/
public interface OwnerLoanRecordDao extends BaseDao<OwnerLoanRecordMapper, OwnerLoanRecord, Integer> {
IPage<OwnerLoanRecord> pageOwnerLoanRecord(PageCarrierOwnerLoanRecordParam param);
IPage<OwnerLoanRecordVO> pageByParam(PageOwnerLoanRecordOfOwner param);
}
package com.clx.performance.dao.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.loan.OwnerPaymentMapper;
import com.clx.performance.model.loan.OwnerPayment;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerPaymentParam;
import com.msl.common.dao.BaseDao;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
public interface OwnerPaymentDao extends BaseDao<OwnerPaymentMapper, OwnerPayment, Integer> {
IPage<OwnerPayment> pageOwnerPayment(PageCarrierOwnerPaymentParam param);
}
package com.clx.performance.dao.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.loan.OwnerRepaymentMapper;
import com.clx.performance.model.loan.OwnerRepayment;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerRepaymentParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerRepaymentOfOwner;
import com.clx.performance.vo.pc.loan.carrier.OwnerRepaymentVO;
import com.msl.common.dao.BaseDao;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
public interface OwnerRepaymentDao extends BaseDao<OwnerRepaymentMapper, OwnerRepayment, Integer> {
IPage<OwnerRepayment> pageOwnerRepayment(PageCarrierOwnerRepaymentParam param);
IPage<OwnerRepaymentVO> pageByParam(PageOwnerRepaymentOfOwner param);
}
package com.clx.performance.mapper.borrower; package com.clx.performance.mapper.loan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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.model.borrower.BorrowerConfig; import com.clx.performance.model.loan.BorrowerConfig;
import com.clx.performance.param.pc.borrower.PageBorrowerConfigParam; import com.clx.performance.param.pc.loan.carrier.PageBorrowerConfigParam;
import com.clx.performance.sqlProvider.borrower.BorrowerConfigSqlProvider; import com.clx.performance.sqlProvider.borrower.BorrowerConfigSqlProvider;
import com.clx.performance.vo.pc.borrower.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;
import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.annotations.SelectProvider;
......
package com.clx.performance.mapper.borrower; package com.clx.performance.mapper.loan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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.model.borrower.Borrower; import com.clx.performance.model.loan.Borrower;
import com.clx.performance.param.pc.borrower.PageBorrowerParam; import com.clx.performance.param.pc.loan.carrier.PageBorrowerParam;
import com.clx.performance.sqlProvider.borrower.BorrowerSqlProvider; import com.clx.performance.sqlProvider.borrower.BorrowerSqlProvider;
import com.clx.performance.vo.pc.borrower.BorrowerVO; import com.clx.performance.vo.pc.loan.carrier.BorrowerVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
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.mapper.loan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.loan.OwnerLoanAccountApprove;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
public interface OwnerLoanAccountApproveMapper extends BaseMapper<OwnerLoanAccountApprove> {
}
package com.clx.performance.mapper.loan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.loan.OwnerLoanAccount;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountParam;
import com.clx.performance.sqlProvider.borrower.OwnerLoanAccountSqlProvider;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
public interface OwnerLoanAccountMapper extends BaseMapper<OwnerLoanAccount> {
@Update("update owner_loan_account set funding_amount = funding_amount + #{account.fundingAmount}"
+ ",virtually_amount = virtually_amount + #{account.virtuallyAmount}"
+ ",modified_time= #{now}"
+ "where id = #{account.id} and modified_time = #{account.modifiedTime}"
)
Integer addAccount(@Param("account") OwnerLoanAccount account, @Param("now") String nowStr);
// @Update("update owner_account set funding_amount = funding_amount - #{account.fundingAmount}," +
// "frozen_balance = frozen_balance + #{account.frozenBalance},account_balance = account_balance - #{account.accountBalance}," +
// "modified_time=#{now}"
// + "where id = #{account.id} and modified_time = #{account.modifiedTime}"
// )
// Integer subAccount(@Param("account") OwnerAccount account, @Param("now") String now);
/**
* @see OwnerLoanAccountSqlProvider#pageByParam(Page, PageOwnerLoanAccountParam)
*/
@SelectProvider(type = OwnerLoanAccountSqlProvider.class, method = "pageByParam")
IPage<OwnerLoanAccountVO> pageByParam(@Param("page") Page<OwnerLoanAccountVO> page, @Param("param") PageOwnerLoanAccountParam param);
}
package com.clx.performance.mapper.loan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountWaterRecordOfOwnerParam;
import com.clx.performance.sqlProvider.borrower.OwnerLoanAccountRunningWaterRecordSqlProvider;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountRunningWaterRecordVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
public interface OwnerLoanAccountRunningWaterRecordMapper extends BaseMapper<OwnerLoanAccountRunningWaterRecord> {
/**
* @see OwnerLoanAccountRunningWaterRecordSqlProvider#pageByParam(Page, PageOwnerLoanAccountWaterRecordOfOwnerParam)
*/
@SelectProvider(type = OwnerLoanAccountRunningWaterRecordSqlProvider.class, method = "pageByParam")
IPage<OwnerLoanAccountRunningWaterRecordVO> pageByParam(@Param("page") Page<OwnerLoanAccountRunningWaterRecordVO> page, @Param("param") PageOwnerLoanAccountWaterRecordOfOwnerParam param);
}
package com.clx.performance.mapper.loan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.loan.OwnerLoanRecord;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanRecordOfOwner;
import com.clx.performance.sqlProvider.borrower.OwnerLoanRecordSqlProvider;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
/**
* @author kavin
* Date 2024-01-20
* Time 17:05
*/
public interface OwnerLoanRecordMapper extends BaseMapper<OwnerLoanRecord> {
/**
* @see OwnerLoanRecordSqlProvider#pageByParam(Page, PageOwnerLoanRecordOfOwner)
*/
@SelectProvider(type = OwnerLoanRecordSqlProvider.class, method = "pageByParam")
IPage<OwnerLoanRecordVO> pageByParam(@Param("page") Page<OwnerLoanRecordVO> page, @Param("param") PageOwnerLoanRecordOfOwner param);
}
package com.clx.performance.mapper.loan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.loan.OwnerPayment;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
public interface OwnerPaymentMapper extends BaseMapper<OwnerPayment> {
}
package com.clx.performance.mapper.loan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.loan.OwnerRepayment;
import com.clx.performance.param.pc.loan.carrier.PageOwnerRepaymentOfOwner;
import com.clx.performance.sqlProvider.borrower.OwnerRepaymentSqlProvider;
import com.clx.performance.vo.pc.loan.carrier.OwnerRepaymentVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
public interface OwnerRepaymentMapper extends BaseMapper<OwnerRepayment> {
/**
* @see OwnerRepaymentSqlProvider#pageByParam(Page, PageOwnerRepaymentOfOwner)
*/
@SelectProvider(type = OwnerRepaymentSqlProvider.class, method = "pageByParam")
IPage<OwnerRepaymentVO> pageByParam(@Param("page") Page<OwnerRepaymentVO> page, @Param("param") PageOwnerRepaymentOfOwner param);
}
package com.clx.performance.model.borrower; package com.clx.performance.model.loan;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
......
package com.clx.performance.model.borrower; package com.clx.performance.model.loan;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
......
package com.clx.performance.model.loan;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("owner_loan_account")
public class OwnerLoanAccount implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("owner_user_no")
@ApiModelProperty("货主编码")
private Long ownerUserNo;
@TableField("owner_user_name")
@ApiModelProperty("货主名称")
private String ownerUserName;
@TableField("mobile")
@ApiModelProperty("联系电话")
private String mobile;
@TableField("account_type")
@ApiModelProperty("账户类型: 默认3 借款账户")
private Integer accountType;
@TableField("funding_amount")
@ApiModelProperty("资金金额")
private BigDecimal fundingAmount;
@TableField("virtually_amount")
@ApiModelProperty("虚拟币金额")
private BigDecimal virtuallyAmount;
@TableField("funding_arrears")
@ApiModelProperty("资金欠款")
private BigDecimal fundingArrears;
@TableField("virtually_arrears")
@ApiModelProperty("虚拟币欠款")
private BigDecimal virtuallyArrears;
@TableField("create_by")
@ApiModelProperty("创建人")
private String createBy;
@TableField("create_time")
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@TableField("modified_time")
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.model.loan;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("owner_loan_account_approve")
public class OwnerLoanAccountApprove implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("owner_user_no")
@ApiModelProperty("货主编码")
private Long ownerUserNo;
@TableField("owner_user_name")
@ApiModelProperty("货主名称")
private String ownerUserName;
@TableField("mobile")
@ApiModelProperty("联系电话")
private String mobile;
@TableField("account_type")
@ApiModelProperty("账户类型 默认3 借款账户")
private Integer accountType;
@TableField("status")
@ApiModelProperty("待审批 10,审批成功 20,审批拒绝 30")
private Integer status;
@TableField("approve_time")
@ApiModelProperty("审批时间")
private LocalDateTime approveTime;
@TableField("approve_by")
@ApiModelProperty("审批人")
private String approveBy;
@TableField("reject_reason")
@ApiModelProperty("拒绝原因")
private String rejectReason;
@TableField("create_by")
@ApiModelProperty("创建人")
private String createBy;
@TableField("create_time")
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@TableField("modified_time")
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.model.loan;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("owner_loan_account_running_water_record")
public class OwnerLoanAccountRunningWaterRecord implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("owner_user_no")
@ApiModelProperty("货主编码")
private Long ownerUserNo;
@TableField("owner_user_name")
@ApiModelProperty("货主名称")
private String ownerUserName;
@TableField("mobile")
@ApiModelProperty("联系电话")
private String mobile;
@TableField("running_water_no")
@ApiModelProperty("流水号")
private Long runningWaterNo;
@TableField("loan_no")
@ApiModelProperty("借款单号")
private Long loanNo;
@TableField("child_no")
@ApiModelProperty("运单编号")
private String childNo;
@TableField("running_water_type")
@ApiModelProperty("流水类型 70:运单核销 80:借款")
private Integer runningWaterType;
@TableField("alteration_balance")
@ApiModelProperty("金额")
private BigDecimal alterationBalance;
@TableField("account_balance")
@ApiModelProperty("账户余额")
private BigDecimal accountBalance;
@TableField("create_by")
@ApiModelProperty("创建人")
private String createBy;
@TableField("create_time")
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@TableField("modified_time")
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.model.loan;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2024-01-20
* Time 17:05
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("owner_loan_record")
public class OwnerLoanRecord implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("owner_user_no")
@ApiModelProperty("货主编码")
private Long ownerUserNo;
@TableField("owner_user_name")
@ApiModelProperty("货主名称")
private String ownerUserName;
@TableField("mobile")
@ApiModelProperty("联系电话")
private String mobile;
@TableField("running_water_open_no")
@ApiModelProperty("交易流水号(第三方)")
private String runningWaterOpenNo;
@TableField("merchant_running_water_no")
@ApiModelProperty("商户流水号")
private String merchantRunningWaterNo;
@TableField("loan_no")
@ApiModelProperty("借款单号")
private Long loanNo;
@TableField("loan_type")
@ApiModelProperty("借款类型 1:虚拟货币 2:资金")
private Integer loanType;
@TableField("loan_balance")
@ApiModelProperty("借款金额")
private BigDecimal loanBalance;
@TableField("borrower")
@ApiModelProperty("借款方")
private String borrower;
@ApiModelProperty("借款方账户")
@TableField("borrower_account")
private String borrowerAccount;
@TableField("lending_party")
@ApiModelProperty("借出方")
private String lendingParty;
@TableField("payment_account")
@ApiModelProperty("付款账户")
private String paymentAccount;
@TableField("payee")
@ApiModelProperty("收款方")
private String payee;
@TableField("payee_account")
@ApiModelProperty("收款账户")
private String payeeAccount;
@TableField("status")
@ApiModelProperty("10 待审批 20 审批通过 30 审批拒绝 40 付款中 50 付款成功 60 付款失败 ")
private Integer status;
@TableField("approve_time")
@ApiModelProperty("审批时间")
private LocalDateTime approveTime;
@TableField("approve_by")
@ApiModelProperty("审批人")
private String approveBy;
@TableField("reject_reason")
@ApiModelProperty("拒绝原因")
private String rejectReason;
@TableField("loan_repayment_time")
@ApiModelProperty("借款归还时间")
private LocalDateTime loanRepaymentTime;
@TableField("create_by")
@ApiModelProperty("创建人")
private String createBy;
@TableField("create_time")
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@TableField("modified_time")
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.model.loan;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("owner_payment")
public class OwnerPayment implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("owner_user_no")
@ApiModelProperty("货主编码")
private Long ownerUserNo;
@TableField("owner_user_name")
@ApiModelProperty("货主名称")
private String ownerUserName;
@TableField("mobile")
@ApiModelProperty("联系电话")
private String mobile;
@TableField("running_water_open_no")
@ApiModelProperty("交易流水号(第三方)")
private Long runningWaterOpenNo;
@TableField("payment_no")
@ApiModelProperty("付款单号")
private Long paymentNo;
@TableField("repayment_no")
@ApiModelProperty("还款单号")
private Long repaymentNo;
@TableField("payment_balance")
@ApiModelProperty("付款金额")
private BigDecimal paymentBalance;
@TableField("payment")
@ApiModelProperty("付款方")
private String payment;
@TableField("payment_account")
@ApiModelProperty("付款账户")
private String paymentAccount;
@TableField("payee")
@ApiModelProperty("收款方")
private String payee;
@TableField("payee_account")
@ApiModelProperty("收款账户")
private String payeeAccount;
@TableField("status")
@ApiModelProperty("10 待付款 40 付款中 50 付款成功 60 付款失败")
private Integer status;
@TableField("pay_channel")
@ApiModelProperty("默认财资 30 ")
private Integer payChannel;
@TableField("operate_time")
@ApiModelProperty("操作时间")
private LocalDateTime operateTime;
@TableField("operate_by")
@ApiModelProperty("操作人")
private String operateBy;
@TableField("create_by")
@ApiModelProperty("创建人")
private String createBy;
@TableField("create_time")
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@TableField("modified_time")
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.model.loan;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("owner_repayment")
public class OwnerRepayment implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("owner_user_no")
@ApiModelProperty("货主编码")
private Long ownerUserNo;
@TableField("owner_user_name")
@ApiModelProperty("货主名称")
private String ownerUserName;
@TableField("mobile")
@ApiModelProperty("联系电话")
private String mobile;
@TableField("running_water_open_no")
@ApiModelProperty("交易流水号(第三方)")
private String runningWaterOpenNo;
@TableField("merchant_running_water_no")
@ApiModelProperty("商户流水号")
private String merchantRunningWaterNo;
@TableField("repayment_no")
@ApiModelProperty("还款单号")
private Long repaymentNo;
@TableField("repayment_balance")
@ApiModelProperty("还款金额")
private BigDecimal repaymentBalance;
@TableField("payment")
@ApiModelProperty("付款方")
private String payment;
@TableField("payment_account")
@ApiModelProperty("付款账户")
private String paymentAccount;
@TableField("payee")
@ApiModelProperty("收款方")
private String payee;
@TableField("payee_account")
@ApiModelProperty("收款账户")
private String payeeAccount;
@TableField("loan_no")
@ApiModelProperty("借款单号")
private Long loanNo;
@TableField("status")
@ApiModelProperty("10 待付款 40 付款中 50 付款成功 60 付款失败")
private Integer status;
@TableField("pay_channel")
@ApiModelProperty("支付渠道 10 订单支付 20 转账支付")
private Integer payChannel;
@TableField("be_overdue")
@ApiModelProperty("10 未逾期 20 已逾期")
private Integer beOverdue;
@TableField("loan_repayment_time")
@ApiModelProperty("借款归还时间")
private LocalDateTime loanRepaymentTime;
@TableField("operate_time")
@ApiModelProperty("操作时间")
private LocalDateTime operateTime;
@TableField("operate_by")
@ApiModelProperty("操作人")
private String operateBy;
@TableField("create_by")
@ApiModelProperty("创建人")
private String createBy;
@TableField("create_time")
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@TableField("modified_time")
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
...@@ -28,7 +28,8 @@ public class NbBankRecord implements HasKey<Integer> { ...@@ -28,7 +28,8 @@ public class NbBankRecord implements HasKey<Integer> {
private Integer id; //id private Integer id; //id
private Integer type; //类型:1转账直连下单 2银联订单支付收款模式 3交易结果查询 4异步通知交易结果 private Integer type; //类型:1转账直连下单 2银联订单支付收款模式 3交易结果查询 4异步通知交易结果
private String merId; //商户号 private String merId; //商户号
private String merSeqNo; //流水号 private String merSeqNo; //商户号流水号
private LocalDateTime merDtTm; //商户交易时间
private String transSeqNo; //第三方流水号 private String transSeqNo; //第三方流水号
private Integer amount; //金额 (分) private Integer amount; //金额 (分)
private String param; //参数 private String param; //参数
......
...@@ -16,6 +16,7 @@ import com.clx.performance.param.pc.owner.ThawAccountParam; ...@@ -16,6 +16,7 @@ import com.clx.performance.param.pc.owner.ThawAccountParam;
import com.clx.performance.vo.pc.OwnerAccountAllVO; import com.clx.performance.vo.pc.OwnerAccountAllVO;
import com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO; import com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO;
import com.clx.performance.vo.pc.OwnerAccountVO; import com.clx.performance.vo.pc.OwnerAccountVO;
import com.clx.performance.vo.pc.OwnerLoanAccountVO;
import com.clx.user.param.pc.owner.UpdateOwnerBindCardFeignParam; import com.clx.user.param.pc.owner.UpdateOwnerBindCardFeignParam;
import com.clx.user.vo.pc.owner.OwnerBindCardVO; import com.clx.user.vo.pc.owner.OwnerBindCardVO;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
...@@ -101,4 +102,6 @@ public interface OwnerAccountService { ...@@ -101,4 +102,6 @@ public interface OwnerAccountService {
String checkBusinessLicenseNumber(InformationParam param); String checkBusinessLicenseNumber(InformationParam param);
void resetPassword(ResetPasswordParam param); void resetPassword(ResetPasswordParam param);
OwnerLoanAccountVO loanAccount(Long userNo);
} }
...@@ -15,11 +15,13 @@ import com.clx.performance.config.ClxMessageConfig; ...@@ -15,11 +15,13 @@ import com.clx.performance.config.ClxMessageConfig;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.constant.RedisConstants; import com.clx.performance.constant.RedisConstants;
import com.clx.performance.dao.*; import com.clx.performance.dao.*;
import com.clx.performance.dao.loan.OwnerLoanAccountDao;
import com.clx.performance.enums.IdTypeEnum; import com.clx.performance.enums.IdTypeEnum;
import com.clx.performance.enums.OwnerAccountEnum; import com.clx.performance.enums.OwnerAccountEnum;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.extranal.user.OwnerInfoService; import com.clx.performance.extranal.user.OwnerInfoService;
import com.clx.performance.model.*; import com.clx.performance.model.*;
import com.clx.performance.model.loan.OwnerLoanAccount;
import com.clx.performance.param.app.CheckMobileParam; import com.clx.performance.param.app.CheckMobileParam;
import com.clx.performance.param.app.InformationParam; import com.clx.performance.param.app.InformationParam;
import com.clx.performance.param.app.ResetPasswordParam; import com.clx.performance.param.app.ResetPasswordParam;
...@@ -33,6 +35,7 @@ import com.clx.performance.param.pc.owner.FrozenAccountParam; ...@@ -33,6 +35,7 @@ import com.clx.performance.param.pc.owner.FrozenAccountParam;
import com.clx.performance.param.pc.owner.ThawAccountParam; import com.clx.performance.param.pc.owner.ThawAccountParam;
import com.clx.performance.service.OwnerAccountService; import com.clx.performance.service.OwnerAccountService;
import com.clx.performance.struct.OwnerAccountStruct; import com.clx.performance.struct.OwnerAccountStruct;
import com.clx.performance.struct.loan.OwnerLoanAccountStruct;
import com.clx.performance.utils.MyMD5Util; import com.clx.performance.utils.MyMD5Util;
import com.clx.performance.utils.excel.ExcelData; import com.clx.performance.utils.excel.ExcelData;
import com.clx.performance.utils.excel.ExcelField; import com.clx.performance.utils.excel.ExcelField;
...@@ -41,6 +44,7 @@ import com.clx.performance.utils.excel.ExcelUtil; ...@@ -41,6 +44,7 @@ import com.clx.performance.utils.excel.ExcelUtil;
import com.clx.performance.vo.pc.OwnerAccountAllVO; import com.clx.performance.vo.pc.OwnerAccountAllVO;
import com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO; import com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO;
import com.clx.performance.vo.pc.OwnerAccountVO; import com.clx.performance.vo.pc.OwnerAccountVO;
import com.clx.performance.vo.pc.OwnerLoanAccountVO;
import com.clx.user.enums.owner.FreezeSettingEnum; import com.clx.user.enums.owner.FreezeSettingEnum;
import com.clx.user.feign.OwnerFeign; import com.clx.user.feign.OwnerFeign;
import com.clx.user.feign.OwnerInfoFeign; import com.clx.user.feign.OwnerInfoFeign;
...@@ -111,6 +115,10 @@ public class OwnerAccountServiceImpl implements OwnerAccountService { ...@@ -111,6 +115,10 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
private final OwnerInfoService ownerInfoService; private final OwnerInfoService ownerInfoService;
private final OwnerLoanAccountDao ownerLoanAccountDao;
private final OwnerLoanAccountStruct ownerLoanAccountStruct;
@Override @Override
public IPage<OwnerAccountVO> pageList(PageOwnerAccountListParam param) { public IPage<OwnerAccountVO> pageList(PageOwnerAccountListParam param) {
return ownerAccountDao.pageList(param); return ownerAccountDao.pageList(param);
...@@ -249,7 +257,7 @@ public class OwnerAccountServiceImpl implements OwnerAccountService { ...@@ -249,7 +257,7 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
entity.setCaseOutBalance(caseOutBalance); entity.setCaseOutBalance(caseOutBalance);
entity.setOwnerUserNo(param.getOwnerUserNo()); entity.setOwnerUserNo(param.getOwnerUserNo());
entity.setStatus(OwnerAccountEnum.CaseOutStatus.PENDING_PAYMENT.getCode()); entity.setStatus(OwnerAccountEnum.CaseOutStatus.PENDING_PAYMENT.getCode());
entity.setCaseOutBank(param.getOwnerAccountBank()); entity.setCaseOutBank(param.getOwnerOpenBank());
entity.setCaseOutBankNumber(param.getOwnerBankAccount()); entity.setCaseOutBankNumber(param.getOwnerBankAccount());
entity.setCreateBy(loginUserInfo.getUserName()); entity.setCreateBy(loginUserInfo.getUserName());
...@@ -1213,5 +1221,13 @@ public class OwnerAccountServiceImpl implements OwnerAccountService { ...@@ -1213,5 +1221,13 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
} }
} }
@Override
public OwnerLoanAccountVO loanAccount(Long userNo) {
OwnerLoanAccount ownerLoanAccount = ownerLoanAccountDao.getOneByField(OwnerLoanAccount::getOwnerUserNo, userNo).orNull();
if (ownerLoanAccount == null) {
return null;
}
return ownerLoanAccountStruct.convert(ownerLoanAccount);
}
} }
package com.clx.performance.service.impl.borrower; package com.clx.performance.service.impl.loan;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.borrower.BorrowerConfigDao; import com.clx.performance.dao.loan.BorrowerConfigDao;
import com.clx.performance.dao.borrower.BorrowerDao; import com.clx.performance.dao.loan.BorrowerDao;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.borrower.BorrowerConfigEnum; import com.clx.performance.enums.loan.BorrowerConfigEnum;
import com.clx.performance.model.borrower.Borrower; import com.clx.performance.model.loan.Borrower;
import com.clx.performance.model.borrower.BorrowerConfig; import com.clx.performance.model.loan.BorrowerConfig;
import com.clx.performance.param.pc.borrower.*; import com.clx.performance.param.pc.loan.carrier.*;
import com.clx.performance.service.borrower.BorrowerConfigService; import com.clx.performance.service.loan.BorrowerConfigService;
import com.clx.performance.struct.borrower.BorrowerConfigStruct; import com.clx.performance.struct.borrower.BorrowerConfigStruct;
import com.clx.performance.vo.pc.borrower.BorrowerConfigVO; import com.clx.performance.vo.pc.loan.carrier.BorrowerConfigVO;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.user.data.UserSessionData; import com.msl.user.data.UserSessionData;
...@@ -49,7 +49,7 @@ public class BorrowerConfigServiceImpl implements BorrowerConfigService { ...@@ -49,7 +49,7 @@ public class BorrowerConfigServiceImpl implements BorrowerConfigService {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
// 重复验证 // 重复验证
Optional<BorrowerConfig> borrowerConfigOptional = borrowerConfigDao.selectByBorrowerId(param.getBorrowerId()); Optional<BorrowerConfig> borrowerConfigOptional = borrowerConfigDao.selectByBorrowerIdAndType(param.getBorrowerId(), param.getType());
if (borrowerConfigOptional.isPresent()) { if (borrowerConfigOptional.isPresent()) {
throw new ServiceSystemException(PerformanceResultEnum.BORROWER_CONFIG_BORROWER_ID_EXIST); throw new ServiceSystemException(PerformanceResultEnum.BORROWER_CONFIG_BORROWER_ID_EXIST);
} }
...@@ -76,7 +76,7 @@ public class BorrowerConfigServiceImpl implements BorrowerConfigService { ...@@ -76,7 +76,7 @@ public class BorrowerConfigServiceImpl implements BorrowerConfigService {
BorrowerConfig borrowerConfig = borrowerConfigDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); BorrowerConfig borrowerConfig = borrowerConfigDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 重复验证 // 重复验证
Optional<BorrowerConfig> borrowerConfigOptional = borrowerConfigDao.selectByBorrowerId(param.getBorrowerId()); Optional<BorrowerConfig> borrowerConfigOptional = borrowerConfigDao.selectByBorrowerIdAndType(param.getBorrowerId(), param.getType());
if (borrowerConfigOptional.isPresent() && !Objects.equals(borrowerConfig.getId(), borrowerConfigOptional.get().getId())) { if (borrowerConfigOptional.isPresent() && !Objects.equals(borrowerConfig.getId(), borrowerConfigOptional.get().getId())) {
throw new ServiceSystemException(PerformanceResultEnum.BORROWER_CONFIG_BORROWER_ID_EXIST); throw new ServiceSystemException(PerformanceResultEnum.BORROWER_CONFIG_BORROWER_ID_EXIST);
} }
......
package com.clx.performance.service.impl.borrower; package com.clx.performance.service.impl.loan;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.borrower.BorrowerDao; import com.clx.performance.dao.loan.BorrowerDao;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.borrower.BorrowerEnum; import com.clx.performance.enums.loan.BorrowerEnum;
import com.clx.performance.model.borrower.Borrower; import com.clx.performance.model.loan.Borrower;
import com.clx.performance.param.pc.borrower.*; import com.clx.performance.param.pc.loan.carrier.*;
import com.clx.performance.service.borrower.BorrowerService; import com.clx.performance.service.loan.BorrowerService;
import com.clx.performance.struct.borrower.BorrowerStruct; import com.clx.performance.struct.borrower.BorrowerStruct;
import com.clx.performance.vo.pc.borrower.BorrowerVO; import com.clx.performance.vo.pc.loan.carrier.BorrowerVO;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.user.data.UserSessionData; import com.msl.user.data.UserSessionData;
......
package com.clx.performance.service.impl.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.loan.OwnerLoanAccountApproveDao;
import com.clx.performance.model.loan.OwnerLoanAccountApprove;
import com.clx.performance.param.pc.loan.carrier.OwnerLoanAccountApproveParam;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountApproveParam;
import com.clx.performance.service.loan.OwnerLoanAccountApproveService;
import com.clx.performance.service.loan.OwnerLoanAccountService;
import com.clx.performance.struct.loan.OwnerLoanAccountApproveStruct;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountApproveVO;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Service
@Slf4j
@AllArgsConstructor
public class OwnerLoanAccountApproveServiceImpl implements OwnerLoanAccountApproveService {
private final OwnerLoanAccountApproveDao ownerLoanAccountApproveDao;
private final OwnerLoanAccountApproveStruct ownerLoanAccountApproveStruct;
private final OwnerLoanAccountService ownerLoanAccountService;
@Override
public IPage<OwnerLoanAccountApproveVO> pageOwnerLoanAccountApprove(PageOwnerLoanAccountApproveParam param) {
IPage<OwnerLoanAccountApprove> page = ownerLoanAccountApproveDao.pageOwnerLoanAccountApprove(param);
List<OwnerLoanAccountApproveVO> records = ownerLoanAccountApproveStruct.convertList(page.getRecords());
IPage<OwnerLoanAccountApproveVO> returnPage = new Page<>();
returnPage.setPages(page.getPages());
returnPage.setTotal(page.getTotal());
returnPage.setRecords(records);
return returnPage;
}
@Override
public void openOwnerLoanAccountApprove() {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
OwnerLoanAccountApprove entity = new OwnerLoanAccountApprove();
entity.setAccountType(3);
entity.setOwnerUserNo(loginUserInfo.getUserNo());
entity.setOwnerUserName(loginUserInfo.getUserName());
entity.setMobile(loginUserInfo.getUserMobile());
entity.setStatus(10);
ownerLoanAccountApproveDao.saveEntity(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void ownerLoanAccountApprove(OwnerLoanAccountApproveParam param) {
Boolean status = param.getStatus();
OwnerLoanAccountApprove entity = new OwnerLoanAccountApprove();
entity.setId(param.getId());
if (status) {
//审批通过
entity.setStatus(10);
ownerLoanAccountApproveDao.updateEntityByKey(entity);
ownerLoanAccountService.openOwnerLoanAccount(entity.getOwnerUserNo(), entity.getOwnerUserName(), entity.getMobile());
} else {
//审批拒绝
entity.setStatus(20);
entity.setRejectReason(param.getRejectReason());
ownerLoanAccountApproveDao.updateEntityByKey(entity);
}
}
}
package com.clx.performance.service.impl.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.loan.OwnerLoanAccountRunningWaterRecordDao;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountWaterRecordOfOwnerParam;
import com.clx.performance.service.loan.OwnerLoanAccountRunningWaterRecordService;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountRunningWaterRecordVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Service
@Slf4j
public class OwnerLoanAccountRunningWaterRecordServiceImpl implements OwnerLoanAccountRunningWaterRecordService {
@Autowired
private OwnerLoanAccountRunningWaterRecordDao ownerLoanAccountRunningWaterRecordDao;
@Override
public IPage<OwnerLoanAccountRunningWaterRecordVO> pageOwnerLoanAccountWaterOfOwner(PageOwnerLoanAccountWaterRecordOfOwnerParam param) {
return ownerLoanAccountRunningWaterRecordDao.pageByParam(param);
}
}
package com.clx.performance.service.impl.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.loan.OwnerLoanAccountDao;
import com.clx.performance.model.loan.OwnerLoanAccount;
import com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountParam;
import com.clx.performance.service.loan.OwnerLoanAccountService;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanAccountVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Service
@Slf4j
@AllArgsConstructor
public class OwnerLoanAccountServiceImpl implements OwnerLoanAccountService {
private final OwnerLoanAccountDao ownerLoanAccountDao;
@Transactional(rollbackFor = Exception.class)
@Override
public void openOwnerLoanAccount(Long ownerUserNo, String ownerUserName, String mobile) {
OwnerLoanAccount entity = new OwnerLoanAccount();
entity.setOwnerUserNo(ownerUserNo);
entity.setMobile(mobile);
entity.setOwnerUserName(ownerUserName);
entity.setFundingAmount(BigDecimal.ZERO);
entity.setFundingAmount(BigDecimal.ZERO);
entity.setVirtuallyAmount(BigDecimal.ZERO);
entity.setVirtuallyArrears(BigDecimal.ZERO);
ownerLoanAccountDao.saveEntity(entity);
}
@Override
public IPage<OwnerLoanAccountVO> pageOwnerLoanAccount(PageOwnerLoanAccountParam param) {
return ownerLoanAccountDao.pageByParam(param);
}
}
package com.clx.performance.service.impl.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.component.IdGenerateSnowFlake;
import com.clx.performance.dao.OwnerBindCardRecordDao;
import com.clx.performance.dao.loan.OwnerLoanAccountDao;
import com.clx.performance.dao.loan.OwnerLoanAccountRunningWaterRecordDao;
import com.clx.performance.dao.loan.OwnerLoanRecordDao;
import com.clx.performance.dao.loan.OwnerRepaymentDao;
import com.clx.performance.enums.RunningWaterTypeEnum;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.model.OwnerBindCardRecord;
import com.clx.performance.model.loan.OwnerLoanAccount;
import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord;
import com.clx.performance.model.loan.OwnerLoanRecord;
import com.clx.performance.model.loan.OwnerRepayment;
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.PageOwnerLoanRecordOfOwner;
import com.clx.performance.param.pc.loan.owner.OwnerLoanRecordParam;
import com.clx.performance.service.loan.OwnerLoanRecordService;
import com.clx.performance.service.thirdparty.nbbank.NbBankService;
import com.clx.performance.struct.loan.OwnerLoanRecordStruct;
import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import com.clx.performance.vo.pc.nbbank.NbBankOrderPayResultVO;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author kavin
* Date 2024-01-20
* Time 17:05
*/
@Service
@Slf4j
@AllArgsConstructor
public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
private final OwnerLoanRecordDao ownerLoanRecordDao;
private final OwnerLoanRecordStruct ownerLoanRecordStruct;
private final IdGenerateSnowFlake idGenerateSnowFlake;
private final OwnerLoanAccountDao ownerLoanAccountDao;
private final OwnerRepaymentDao ownerRepaymentDao;
private final OwnerBindCardRecordDao ownerBindCardRecordDao;
private final NbBankService bankService;
private final OwnerLoanAccountRunningWaterRecordDao ownerLoanAccountRunningWaterRecordDao;
@Override
public IPage<OwnerLoanRecordVO> pageOwnerLoanRecord(PageCarrierOwnerLoanRecordParam param) {
IPage<OwnerLoanRecord> page = ownerLoanRecordDao.pageOwnerLoanRecord(param);
List<OwnerLoanRecordVO> records = ownerLoanRecordStruct.convertList(page.getRecords());
IPage<OwnerLoanRecordVO> returnPage = new Page<>();
returnPage.setPages(page.getPages());
returnPage.setTotal(page.getTotal());
returnPage.setRecords(records);
return returnPage;
}
@Override
public void ownerLoanRecordSubmit(OwnerLoanRecordParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
OwnerBindCardRecord ownerBindCardRecord = ownerBindCardRecordDao.getOwnerBindCardByUserNo(loginUserInfo.getUserNo());
OwnerLoanRecord entity = new OwnerLoanRecord();
LocalDateTime createTime = LocalDateTime.now();
LocalDateTime loanRepaymentTime = createTime.plusDays(param.getExpireDay());
entity.setLoanRepaymentTime(loanRepaymentTime);
entity.setLoanNo(idGenerateSnowFlake.nextId(1L));
entity.setCreateTime(createTime);
entity.setOwnerUserNo(loginUserInfo.getUserNo());
entity.setOwnerUserName(loginUserInfo.getUserName());
entity.setMobile(loginUserInfo.getUserMobile());
entity.setLoanBalance(param.getLoanBalance());
entity.setBorrower(param.getBorrower());
entity.setBorrowerAccount(ownerBindCardRecord.getBankCardNumber());
entity.setLendingParty(param.getLendingParty());
entity.setPayee("收款方写死");
entity.setPayeeAccount("收款方账户写死");
entity.setCreateBy(loginUserInfo.getUserName());
entity.setStatus(OwnerLoanRecordEnum.Status.APPROVE_WAIT.getCode());
ownerLoanRecordDao.saveEntity(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void ownerLoanRecordApprove(CarrierOwnerLoanRecordApproveParam param) {
OwnerLoanRecord ownerLoanRecord = ownerLoanRecordDao.getOneByField(OwnerLoanRecord::getLoanNo, param.getLoanNo()).get();
if (param.getStatus()) {
//同意
ownerLoanRecord.setLoanType(param.getLoanType());
if (OwnerLoanRecordEnum.LoanType.FUND.getCode().equals(param.getLoanType())) {
//资金 TODO 调中信银企直连的产品,从诚联信账户中给鑫祥和执行转账
NbBankOrderPayResultVO orderPayResultVO = bankService.orderDirectPay(param.getLoanNo() ,
ownerLoanRecord.getLoanBalance().intValue(), "", "", "");
ownerLoanRecord.setRunningWaterOpenNo(orderPayResultVO.getTransSeqNo());
ownerLoanRecord.setMerchantRunningWaterNo(orderPayResultVO.getMerSeqNo());
ownerLoanRecord.setStatus(OwnerLoanRecordEnum.Status.PAYING.getCode());
} else {
// 虚拟币 直接增加 更改状态审批通过
ownerLoanRecord.setStatus(OwnerLoanRecordEnum.Status.APPROVE_PASS.getCode());
}
while (true) {
OwnerLoanAccount ownerLoanAccount = ownerLoanAccountDao.getOneByField(OwnerLoanAccount::getOwnerUserNo,
ownerLoanRecord.getOwnerUserNo()).get();
OwnerLoanAccount entity = new OwnerLoanAccount();
entity.setId(ownerLoanAccount.getId());
entity.setVirtuallyAmount(ownerLoanRecord.getLoanBalance());
entity.setFundingAmount(BigDecimal.ZERO);
entity.setModifiedTime(ownerLoanAccount.getModifiedTime());
Integer flag = ownerLoanAccountDao.updateAccountCAS(entity, LocalDateTime.now(), true);
if (flag == 1) {
//生成借款流水
initOwnerLoanRunningWaterRecord(ownerLoanRecord);
//生成还款记录
initOwnerRepayment(ownerLoanRecord);
break;
}
}
} else {
//拒绝
ownerLoanRecord.setLoanType(param.getLoanType());
ownerLoanRecord.setStatus(OwnerLoanRecordEnum.Status.APPROVE_REFUSE.getCode());
}
//更新借款记录
ownerLoanRecordDao.updateEntityByKey(ownerLoanRecord);
}
@Override
public IPage<OwnerLoanRecordVO> pageOwnerLoanRecordOfOwner(PageOwnerLoanRecordOfOwner param) {
return ownerLoanRecordDao.pageByParam(param);
}
/**
* 生成借款流水
* @param ownerLoanRecord
*/
private void initOwnerLoanRunningWaterRecord(OwnerLoanRecord ownerLoanRecord) {
OwnerLoanAccount ownerLoanAccount;
ownerLoanAccount = ownerLoanAccountDao.getOneByField(OwnerLoanAccount::getOwnerUserNo, ownerLoanRecord.getOwnerUserNo()).get();
ownerLoanRecordDao.updateEntityByKey(ownerLoanRecord);
OwnerLoanAccountRunningWaterRecord record = new OwnerLoanAccountRunningWaterRecord()
.setOwnerUserNo(ownerLoanRecord.getOwnerUserNo())
.setOwnerUserName(ownerLoanRecord.getOwnerUserName())
.setMobile(ownerLoanRecord.getMobile())
.setRunningWaterNo(idGenerateSnowFlake.nextId(2L))
.setLoanNo(ownerLoanRecord.getLoanNo())
.setRunningWaterType(RunningWaterTypeEnum.Status.LOAN.getCode())
.setAlterationBalance(ownerLoanRecord.getLoanBalance())
.setAccountBalance(ownerLoanAccount.getFundingAmount().add(ownerLoanAccount.getVirtuallyAmount()))
.setCreateBy("系统");
ownerLoanAccountRunningWaterRecordDao.saveEntity(record);
}
/**
* 生成还款记录
* @param ownerLoanRecord
*/
private void initOwnerRepayment(OwnerLoanRecord ownerLoanRecord) {
OwnerRepayment ownerRepayment = new OwnerRepayment();
ownerRepayment.setLoanRepaymentTime(ownerLoanRecord.getLoanRepaymentTime());
ownerRepayment.setMobile(ownerLoanRecord.getMobile());
ownerRepayment.setOwnerUserName(ownerLoanRecord.getOwnerUserName());
ownerRepayment.setOwnerUserNo(ownerLoanRecord.getOwnerUserNo());
ownerRepayment.setLoanNo(ownerLoanRecord.getLoanNo());
ownerRepayment.setCreateBy(ownerLoanRecord.getOwnerUserName());
ownerRepayment.setRepaymentBalance(ownerLoanRecord.getLoanBalance());
ownerRepayment.setRepaymentNo(idGenerateSnowFlake.nextId(2L));
ownerRepayment.setPayment(ownerLoanRecord.getBorrower());
ownerRepayment.setPaymentAccount(ownerLoanRecord.getBorrowerAccount());
ownerRepayment.setPayee(ownerRepayment.getPayee());
ownerRepayment.setPayeeAccount(ownerLoanRecord.getPayeeAccount());
ownerRepayment.setPayChannel(OwnerRePaymentEnum.Channel.ORDER.getCode());
ownerRepayment.setRunningWaterOpenNo(ownerLoanRecord.getRunningWaterOpenNo());
ownerRepayment.setMerchantRunningWaterNo(ownerLoanRecord.getMerchantRunningWaterNo());
ownerRepayment.setBeOverdue(OwnerRePaymentEnum.BeOverdue.NO.getCode());
ownerRepayment.setCreateBy("系统");
ownerRepayment.setStatus(OwnerRePaymentEnum.Status.PAY_WAIT.getCode());
ownerRepaymentDao.saveEntity(ownerRepayment);
}
}
package com.clx.performance.service.impl.loan;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.loan.OwnerPaymentDao;
import com.clx.performance.model.loan.OwnerPayment;
import com.clx.performance.param.pc.loan.carrier.PageCarrierOwnerPaymentParam;
import com.clx.performance.service.loan.OwnerPaymentService;
import com.clx.performance.struct.loan.OwnerPaymentStruct;
import com.clx.performance.vo.pc.loan.carrier.OwnerPaymentVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author kavin
* Date 2024-01-20
* Time 13:31
*/
@Service
@Slf4j
@AllArgsConstructor
public class OwnerPaymentServiceImpl implements OwnerPaymentService {
private final OwnerPaymentDao ownerPaymentDao;
private final OwnerPaymentStruct ownerPaymentStruct;
@Override
public IPage<OwnerPaymentVO> pageOwnerPayment(PageCarrierOwnerPaymentParam param) {
IPage<OwnerPayment> page = ownerPaymentDao.pageOwnerPayment(param);
List<OwnerPaymentVO> records = ownerPaymentStruct.convertList(page.getRecords());
IPage<OwnerPaymentVO> returnPage = new Page<>();
returnPage.setPages(page.getPages());
returnPage.setTotal(page.getTotal());
returnPage.setRecords(records);
return returnPage;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论