提交 0c8f2e8d 编写于 作者: terrfly's avatar terrfly

更改退款表结构信息;

上级 9b21cdca
......@@ -346,22 +346,23 @@ CREATE TABLE `t_order_snapshot` (
-- 退款订单表
DROP TABLE IF EXISTS t_refund_order;
CREATE TABLE `t_refund_order` (
`refund_order_id` VARCHAR(30) NOT NULL COMMENT '退款订单号',
`pay_order_id` VARCHAR(30) NOT NULL COMMENT '支付订单号',
`channel_pay_order_no` VARCHAR(64) DEFAULT NULL COMMENT '渠道支付单号',
`refund_order_id` VARCHAR(30) NOT NULL COMMENT '退款订单号(支付系统生成订单号)',
`pay_order_id` VARCHAR(30) NOT NULL COMMENT '支付订单号(与t_pay_order对应)',
`channel_pay_order_no` VARCHAR(64) DEFAULT NULL COMMENT '渠道支付单号(与t_pay_order channel_order_no对应)',
`mch_no` VARCHAR(64) NOT NULL COMMENT '商户号',
`isv_no` VARCHAR(64) COMMENT '服务商号',
`app_id` VARCHAR(64) NOT NULL COMMENT '应用ID',
`mch_name` VARCHAR(30) NOT NULL COMMENT '商户名称',
`mch_type` TINYINT(6) NOT NULL COMMENT '类型: 1-普通商户, 2-特约商户(服务商模式)',
`mch_refund_no` VARCHAR(64) NOT NULL COMMENT '商户退款单号',
`isv_no` VARCHAR(64) DEFAULT NULL COMMENT '服务商号',
`mch_refund_no` VARCHAR(64) NOT NULL COMMENT '商户退款单号(商户系统的订单号)',
`way_code` VARCHAR(20) NOT NULL COMMENT '支付方式代码',
`if_code` VARCHAR(20) NOT NULL COMMENT '支付接口代码',
`pay_amount` BIGINT(20) NOT NULL COMMENT '支付金额,单位分',
`refund_amount` BIGINT(20) NOT NULL COMMENT '退款金额,单位分',
`currency` VARCHAR(3) NOT NULL DEFAULT 'cny' COMMENT '三位货币代码,人民币:cny',
`state` TINYINT(6) NOT NULL DEFAULT '0' COMMENT '退款状态:0-订单生成,1-退款中,2-退款成功,3-退款失败',
`result` TINYINT(6) NOT NULL DEFAULT '0' COMMENT '退款结果:0-不确认结果,1-等待手动处理,2-确认成功,3-确认失败',
`client_ip` VARCHAR(32) DEFAULT NULL COMMENT '客户端IP',
`remark` VARCHAR(256) DEFAULT NULL COMMENT '备注',
`refund_reason` VARCHAR(256) NOT NULL COMMENT '退款原因',
`channel_order_no` VARCHAR(32) DEFAULT NULL COMMENT '渠道订单号',
`channel_err_code` VARCHAR(128) DEFAULT NULL COMMENT '渠道错误码',
`channel_err_msg` VARCHAR(128) DEFAULT NULL COMMENT '渠道错误描述',
......
......@@ -23,7 +23,6 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
......@@ -38,7 +37,12 @@ import java.util.Date;
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_refund_order")
public class RefundOrder extends BaseModel implements Serializable {
public class RefundOrder extends BaseModel {
public static final byte STATE_INIT = 0; //订单生成
public static final byte STATE_ING = 1; //退款中
public static final byte STATE_SUCCESS = 2; //退款成功
public static final byte STATE_FAIL = 3; //退款失败
public static final LambdaQueryWrapper<RefundOrder> gw(){
return new LambdaQueryWrapper<>();
......@@ -47,18 +51,18 @@ public class RefundOrder extends BaseModel implements Serializable {
private static final long serialVersionUID=1L;
/**
* 退款订单号
* 退款订单号(支付系统生成订单号)
*/
@TableId
private String refundOrderId;
/**
* 支付订单号
* 支付订单号(与t_pay_order对应)
*/
private String payOrderId;
/**
* 渠道支付单号
* 渠道支付单号(与t_pay_order channel_order_no对应)
*/
private String channelPayOrderNo;
......@@ -68,19 +72,29 @@ public class RefundOrder extends BaseModel implements Serializable {
private String mchNo;
/**
* 类型: 1-普通商户, 2-特约商户(服务商模式)
* 服务商号
*/
private Byte mchType;
private String isvNo;
/**
* 商户退款单号
* 应用ID
*/
private String mchRefundNo;
private String appId;
/**
* 服务商号
* 商户名称
*/
private String isvNo;
private String mchName;
/**
* 类型: 1-普通商户, 2-特约商户(服务商模式)
*/
private Byte mchType;
/**
* 商户退款单号(商户系统的订单号)
*/
private String mchRefundNo;
/**
* 支付方式代码
......@@ -112,20 +126,15 @@ public class RefundOrder extends BaseModel implements Serializable {
*/
private Byte state;
/**
* 退款结果:0-不确认结果,1-等待手动处理,2-确认成功,3-确认失败
*/
private Byte result;
/**
* 客户端IP
*/
private String clientIp;
/**
* 备注
* 退款原因
*/
private String remark;
private String refundReason;
/**
* 渠道订单号
......@@ -172,5 +181,4 @@ public class RefundOrder extends BaseModel implements Serializable {
*/
private Date updatedAt;
}
......@@ -15,8 +15,6 @@
*/
package com.jeequan.jeepay.pay.ctrl.refund;
import cn.hutool.core.date.DateUtil;
import com.jeequan.jeepay.core.constants.CS;
import com.jeequan.jeepay.core.entity.*;
import com.jeequan.jeepay.core.exception.BizException;
import com.jeequan.jeepay.core.model.ApiRes;
......@@ -25,18 +23,8 @@ import com.jeequan.jeepay.core.utils.SpringBeansUtil;
import com.jeequan.jeepay.core.utils.StringKit;
import com.jeequan.jeepay.pay.channel.IPaymentService;
import com.jeequan.jeepay.pay.ctrl.ApiController;
import com.jeequan.jeepay.pay.ctrl.payorder.AbstractPayOrderController;
import com.jeequan.jeepay.pay.exception.ChannelException;
import com.jeequan.jeepay.pay.model.IsvConfigContext;
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
import com.jeequan.jeepay.pay.mq.queue.MqQueue4ChannelOrderQuery;
import com.jeequan.jeepay.pay.rqrs.QueryPayOrderRQ;
import com.jeequan.jeepay.pay.rqrs.QueryPayOrderRS;
import com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg;
import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRS;
import com.jeequan.jeepay.pay.rqrs.payorder.payway.QrCashierOrderRQ;
import com.jeequan.jeepay.pay.rqrs.payorder.payway.QrCashierOrderRS;
import com.jeequan.jeepay.pay.rqrs.refund.RefundOrderRQ;
import com.jeequan.jeepay.pay.rqrs.refund.RefundOrderRS;
import com.jeequan.jeepay.pay.service.ConfigContextService;
......@@ -46,7 +34,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
......@@ -114,7 +101,7 @@ public class RefundOrderController extends ApiController {
}
RefundOrder refundOrder = genPayOrder(rq, payOrder, mchInfo, mchApp);
RefundOrder refundOrder = genRefundOrder(rq, payOrder, mchInfo, mchApp);
//订单入库 订单状态: 生成状态 此时没有和任何上游渠道产生交互。
refundOrderService.save(refundOrder);
......@@ -140,31 +127,32 @@ public class RefundOrderController extends ApiController {
}
private RefundOrder genPayOrder(RefundOrderRQ rq, PayOrder payOrder, MchInfo mchInfo, MchApp mchApp){
private RefundOrder genRefundOrder(RefundOrderRQ rq, PayOrder payOrder, MchInfo mchInfo, MchApp mchApp){
RefundOrder refundOrder = new RefundOrder();
refundOrder.setRefundOrderId(SeqKit.genPayOrderId()); //退款订单号
refundOrder.setPayOrderId(payOrder.getPayOrderId()); //支付订单号
refundOrder.setChannelPayOrderNo(payOrder.getChannelOrderNo()); //渠道支付单号
refundOrder.setMchNo(mchInfo.getMchNo()); //商户号
refundOrder.setIsvNo(mchInfo.getIsvNo()); //服务商号
refundOrder.setAppId(mchApp.getAppId()); //商户应用ID
refundOrder.setMchName(mchInfo.getMchShortName()); //商户名称
refundOrder.setMchType(mchInfo.getType()); //商户类型
refundOrder.setMchRefundNo(rq.getMchRefundNo()); //商户退款单号
refundOrder.setIsvNo(mchInfo.getIsvNo()); //服务商号
refundOrder.setWayCode(payOrder.getWayCode()); //支付方式代码
refundOrder.setIfCode(payOrder.getIfCode()); //支付接口代码
refundOrder.setPayAmount(payOrder.getAmount()); //支付金额,单位分
refundOrder.setRefundAmount(rq.getAmount()); //退款金额,单位分
refundOrder.setRefundAmount(rq.getRefundAmount()); //退款金额,单位分
refundOrder.setCurrency(rq.getCurrency()); //三位货币代码,人民币:cny
refundOrder.setState(null); //退款状态:0-订单生成,1-退款中,2-退款成功,3-退款失败
refundOrder.setResult(null); //退款结果:0-不确认结果,1-等待手动处理,2-确认成功,3-确认失败
refundOrder.setClientIp(null); //客户端IP
refundOrder.setRemark(null); //备注
refundOrder.setState(RefundOrder.STATE_INIT); //退款状态:0-订单生成,1-退款中,2-退款成功,3-退款失败
refundOrder.setClientIp(StringUtils.defaultIfEmpty(rq.getClientIp(), getClientIp())); //客户端IP
refundOrder.setRefundReason(rq.getRefundReason()); //退款原因
refundOrder.setChannelOrderNo(null); //渠道订单号
refundOrder.setChannelErrCode(null); //渠道错误码
refundOrder.setChannelErrMsg(null); //渠道错误描述
refundOrder.setChannelExtra(null); //特定渠道发起时额外参数
refundOrder.setNotifyUrl(null); //通知地址
refundOrder.setExtParam(null); //扩展参数
refundOrder.setChannelExtra(rq.getChannelExtra()); //特定渠道发起时额外参数
refundOrder.setNotifyUrl(rq.getNotifyUrl()); //通知地址
refundOrder.setExtParam(rq.getExtParam()); //扩展参数
refundOrder.setSuccessTime(null); //订单退款成功时间
refundOrder.setCreatedAt(new Date()); //创建时间
......
......@@ -45,7 +45,7 @@ public class RefundOrderRQ extends AbstractMchAppRQ {
/** 退款金额, 单位:分 **/
@NotNull(message="退款金额不能为空")
@Min(value = 1, message = "退款金额请大于1分")
private Long amount;
private Long refundAmount;
/** 货币代码 **/
@NotBlank(message="货币代码不能为空")
......
......@@ -8,18 +8,19 @@
<result column="pay_order_id" property="payOrderId" />
<result column="channel_pay_order_no" property="channelPayOrderNo" />
<result column="mch_no" property="mchNo" />
<result column="isv_no" property="isvNo" />
<result column="app_id" property="appId" />
<result column="mch_name" property="mchName" />
<result column="mch_type" property="mchType" />
<result column="mch_refund_no" property="mchRefundNo" />
<result column="isv_no" property="isvNo" />
<result column="way_code" property="wayCode" />
<result column="if_code" property="ifCode" />
<result column="pay_amount" property="payAmount" />
<result column="refund_amount" property="refundAmount" />
<result column="currency" property="currency" />
<result column="state" property="state" />
<result column="result" property="result" />
<result column="client_ip" property="clientIp" />
<result column="remark" property="remark" />
<result column="refund_reason" property="refundReason" />
<result column="channel_order_no" property="channelOrderNo" />
<result column="channel_err_code" property="channelErrCode" />
<result column="channel_err_msg" property="channelErrMsg" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册