Commit 0c8f2e8d authored by terrfly's avatar terrfly
Browse files

更改退款表结构信息;

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