MallBizPayment.java 6.12 KB
package com.diligrp.cashier.mall.model;

import com.diligrp.cashier.mall.domain.rtmall.co.OrderCO;
import com.diligrp.cashier.mall.property.MallDynamicProperty;
import com.diligrp.cashier.mall.property.RtMallDynamicProperty;
import com.diligrp.cashier.mall.type.PayState;
import com.diligrp.cashier.mall.util.MallSnowflakeKeyManager;
import com.diligrp.cashier.shared.domain.BaseDO;
import com.diligrp.cashier.shared.util.SpringContextUtils;
import com.diligrp.cashier.trade.type.SnowflakeKey;

import java.time.LocalDateTime;

/**
 * MallBizPayment
 *
 * @author dengwei
 */
public class MallBizPayment extends BaseDO {
    /**
     * 支付单号-系统生成
     */
    private String payTradeNo;

    /**
     * 订单id(biz_order)
     */
    private Long bizOrderId;

    /**
     * 业务侧订单号
     */
    private String orderId;

    /**
     * 业务侧支付单号
     */
    private String tradeId;

    /**
     * dili交易流水号
     */
    private String payPaymentId;

    /**
     * 商户id
     */
    private String mchId;

    /**
     * 支付卡号
     */
    private String cardNo;

    /**
     * 用户名
     */
    private String username;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 账户id
     */
    private Long accountId;

    /**
     * 资金账户id
     */
    private Long fundAccountId;

    /**
     * 支付金额(分)
     */
    private Long payFee;

    /**
     * 支付状态
     * @see PayState
     */
    private Integer payState;

    /**
     * dili支付成功时间
     */
    private LocalDateTime payTime;

    /**
     * 支付渠道(微信 园区卡)
     */
    private Integer channelId;

    /**
     * 收银台url
     */
    private String cashierUrl;

    /**
     * 支付回调url
     */
    private String paymentCallback;

    public static MallBizPayment of(final OrderCO orderCo,
                                    final MallBizOrder mallBizOrder) {
        MallSnowflakeKeyManager snowflakeKeyManager = SpringContextUtils.getBean(MallSnowflakeKeyManager.class);

        MallBizPayment mallBizPayment = new MallBizPayment();
        mallBizPayment.setId(snowflakeKeyManager.nextId(SnowflakeKey.MALL_BIZ_PAYMENT_ID));
        mallBizPayment.setPayTradeNo(snowflakeKeyManager.nextId(SnowflakeKey.MALL_BIZ_PAYMENT_ID).toString());
        mallBizPayment.setBizOrderId(mallBizOrder.getId());
        mallBizPayment.setOrderId(orderCo.getOrderId());
        mallBizPayment.setTradeId(orderCo.getTradeId());
        mallBizPayment.setPayFee(orderCo.getTotalAmount());

        // TODO 2025/12/29: 支付信息
        mallBizPayment.setPayPaymentId("6666666666");
        String cashierUrl = SpringContextUtils.getBean(MallDynamicProperty.class).getUrl();
        mallBizPayment.setCashierUrl(cashierUrl.concat("?payTradeNo=").concat(mallBizPayment.getPayTradeNo()));

        RtMallDynamicProperty rtMallDynamicProperty = SpringContextUtils.getBean(RtMallDynamicProperty.class);
        RtMallDynamicProperty.AppSecretDynamicProperty property = rtMallDynamicProperty.getBySourceAndType(mallBizOrder.getSource(), mallBizOrder.getOrderType());
        mallBizPayment.setPaymentCallback(property.getCallbackDomain());
        return mallBizPayment;
    }

    public String getPayTradeNo() {
        return payTradeNo;
    }

    public void setPayTradeNo(String payTradeNo) {
        this.payTradeNo = payTradeNo == null ? null : payTradeNo.trim();
    }

    public Long getBizOrderId() {
        return bizOrderId;
    }

    public void setBizOrderId(Long bizOrderId) {
        this.bizOrderId = bizOrderId;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId == null ? null : orderId.trim();
    }

    public String getTradeId() {
        return tradeId;
    }

    public void setTradeId(String tradeId) {
        this.tradeId = tradeId == null ? null : tradeId.trim();
    }

    public String getPayPaymentId() {
        return payPaymentId;
    }

    public void setPayPaymentId(String payPaymentId) {
        this.payPaymentId = payPaymentId == null ? null : payPaymentId.trim();
    }

    public String getMchId() {
        return mchId;
    }

    public void setMchId(String mchId) {
        this.mchId = mchId == null ? null : mchId.trim();
    }

    public String getCardNo() {
        return cardNo;
    }

    public void setCardNo(String cardNo) {
        this.cardNo = cardNo == null ? null : cardNo.trim();
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username == null ? null : username.trim();
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getAccountId() {
        return accountId;
    }

    public void setAccountId(Long accountId) {
        this.accountId = accountId;
    }

    public Long getFundAccountId() {
        return fundAccountId;
    }

    public void setFundAccountId(Long fundAccountId) {
        this.fundAccountId = fundAccountId;
    }

    public Long getPayFee() {
        return payFee;
    }

    public void setPayFee(Long payFee) {
        this.payFee = payFee;
    }

    public Integer getPayState() {
        return payState;
    }

    public void setPayState(Integer payState) {
        this.payState = payState;
    }

    public LocalDateTime getPayTime() {
        return payTime;
    }

    public void setPayTime(LocalDateTime payTime) {
        this.payTime = payTime;
    }

    public Integer getChannelId() {
        return channelId;
    }

    public void setChannelId(Integer channelId) {
        this.channelId = channelId;
    }

    public String getCashierUrl() {
        return cashierUrl;
    }

    public void setCashierUrl(String cashierUrl) {
        this.cashierUrl = cashierUrl == null ? null : cashierUrl.trim();
    }

    public String getPaymentCallback() {
        return paymentCallback;
    }

    public void setPaymentCallback(String paymentCallback) {
        this.paymentCallback = paymentCallback == null ? null : paymentCallback.trim();
    }
}