Przeglądaj źródła

[POS][修改]:POS退款

release_toaliyun_real
Stormeye Wu 6 lat temu
rodzic
commit
411309a760
7 zmienionych plików z 324 dodań i 77 usunięć
  1. +12
    -0
      mallinkAdmin/src/main/resources/db/migration/V201909061320__POS_CHANGED.sql
  2. +288
    -75
      mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java
  3. +1
    -0
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java
  5. +1
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java
  6. +17
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxRefundOrder.java
  7. +3
    -1
      mallinkService/src/main/java/com/iformall/enums/EnumPayType.java

+ 12
- 0
mallinkAdmin/src/main/resources/db/migration/V201909061320__POS_CHANGED.sql Wyświetl plik

@@ -0,0 +1,12 @@
ALTER TABLE `wx_order`
ADD COLUMN `pos_order_create_sn` varchar(30) null COMMENT 'pos sn' AFTER `pos_order_create_time`;

ALTER TABLE `wx_refund_order`
add `refund_from` tinyint(6) NOT NULL DEFAULT '0' COMMENT '支付类型(0:inside, 1:POS)',
add `pos_pay_order_id` bigint(20) NULL COMMENT 'POS支付订单ID,来源于POS',
add `pos_refund_order_id` bigint(20) NULL COMMENT 'POS退款订单ID,来源于POS',
add `pos_refund_order_time` bigint(20) NULL COMMENT 'POS退款订单创建时间,来源于POS',
add `pos_refund_order_status` tinyint(6) NULL COMMENT '支付订单退款状态(0:非手动,1:手动退款,2:手动释放同步),来源于POS',
add `pos_refund_type` tinyint(6) NULL COMMENT '支付方式: 0微信;1支付宝;2现金;3优惠券;4预付卡;5银行卡6记账,来源于POS',
add `pos_refund_order_no` varchar(20) NULL COMMENT '退款订单流水号, 来源于POS, 第三方(微信、支付宝、富茂预付卡)支付订单流水号,富茂优惠券ID,现金和富茂会员折扣时为空',
add `pos_refund_desc` varchar(100) NULL COMMENT 'POS退款描述';

+ 288
- 75
mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java Wyświetl plik

@@ -14,6 +14,7 @@ import com.iformall.exception.MallinkException;
import com.iformall.mapper.*;
import com.iformall.pay.WxPayConstant;
import com.iformall.service.*;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -51,6 +52,7 @@ public class PosServiceImpl implements PosService {

private final WxOrderMapper orderMapper;
private final WxPayOrderMapper payOrderMapper;
private final WxRefundOrderMapper refundOrderMapper;
private final WxCouponOrderMapper couponOrderMapper;
private final WxCouponMerchantMapper couponMerchantMapper;
private final WxCouponMapper couponMapper;
@@ -1807,7 +1809,7 @@ public class PosServiceImpl implements PosService {
}

Long merchantId, buUserId, posOrderId, memId;
Long posAmount = 0L;
Integer posAmount;
Integer iSceneType;
Date orderTime = null;
try {
@@ -1816,7 +1818,7 @@ public class PosServiceImpl implements PosService {
memId = Long.valueOf(cuUserIdStr);
iSceneType = Integer.valueOf(sceneTypeStr);
posOrderId = Long.valueOf(posOrderIdStr);
posAmount = Long.valueOf(posAmountStr);
posAmount = Integer.valueOf(posAmountStr);
} catch (NumberFormatException e) {
logger.error(e.getMessage());
throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), e.getMessage());
@@ -1834,79 +1836,142 @@ public class PosServiceImpl implements PosService {
// 4. 同步
if (posStatusStr.equalsIgnoreCase(WxPayConstant.NEU_ORDER_PAY)) {
// 4.1 支付同步
WxOrder order = createOrderByPos(merchantBUser, memId, posOrderId, posAmount.intValue(), orderTime);
String payDetail = params.get(WxPayConstant.PAY_DETAIL);
JSONObject payDetailObj = JSON.parseObject(payDetail);
PromotionCalc scoreCreditCalc = new PromotionCalc();
scoreCreditCalc.setScore(0);
scoreCreditCalc.setCredit(0);
JSONArray payDetailList = payDetailObj.getJSONArray(WxPayConstant.PAY_DETAIL_LIST);
for (int i=0;i<payDetailList.size();i++) {
JSONObject payOrderObj = payDetailList.getJSONObject(i);
// ADD to wx_pay_order
String neuPayOrderTypeStr = payOrderObj.getString(WxPayConstant.NEU_PAY_ORDER_TYPE);
String neuPayOrderIdStr = payOrderObj.getString(WxPayConstant.NEU_PAY_ORDER_ID);
String neuPaymentAmountStr = payOrderObj.getString(WxPayConstant.NEU_PAY_ORDER_AMOUNT);
String neuPayOrderTimeStr = payOrderObj.getString(WxPayConstant.NEU_PAY_ORDER_TIME);
String neuPayThirdNo = payOrderObj.getString(WxPayConstant.NEU_PAY_ORDER_OUT_NO);
Date neuPosPayOrderTime = null;
Integer neuPayOrderType, neuPaymentAmount;
try {
neuPosPayOrderTime = neuDateFormat.parse(neuPayOrderTimeStr);
neuPayOrderType = Integer.valueOf(neuPayOrderTypeStr);
neuPaymentAmount = Integer.valueOf(neuPaymentAmountStr);
} catch (ParseException e) {
logger.error(e.getMessage());
throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), e.getMessage());
}
Long neuPayOrderId;
try {
neuPayOrderId = Long.valueOf(neuPayOrderIdStr);
} catch (NumberFormatException e) {
logger.error(e.getMessage());
throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), e.getMessage());
}
if (neuPayOrderType.equals(EnumNeuPosPamentType.MEM_COUPON.getCode())) {
// 优惠券
WxPayOrder payOrder = payOrderFromCouponVerify(
scoreCreditCalc,
merchantBUser, order, memId, iSceneType,
neuPayOrderId, neuPaymentAmount, neuPosPayOrderTime, neuPayThirdNo);
} else if (neuPayOrderType.equals(EnumNeuPosPamentType.MEM_CARD.getCode())) {
// 预付卡
WxPayOrder payOrder = payOrderFromCard(
scoreCreditCalc,
merchant, merchantBUser, order, memId,
neuPayOrderId, neuPaymentAmount, neuPosPayOrderTime, neuPayThirdNo);
} else {
// 其它
payOrderFromPos(scoreCreditCalc,
merchant, merchantBUser, order, memId,
neuPayOrderType, neuPayOrderId, neuPaymentAmount, neuPosPayOrderTime, neuPayThirdNo);
}
}
syncOrder(params, merchant, merchantBUser, iSceneType, posOrderId, memId, posAmount, orderTime, orderCreateSN);
} else if (posStatusStr.equalsIgnoreCase(WxPayConstant.NEU_ORDER_REFUND)) {
// 退款同步
// add to wx_order
String refundDetail = params.get(WxPayConstant.NEU_REFUND_DETAIL);
JSONObject refundDetailObj = JSON.parseObject(refundDetail);
JSONArray refundDetailList = refundDetailObj.getJSONArray(WxPayConstant.NEU_REFUND_DETAIL_LIST);
for (int i=0;i<refundDetailList.size();i++) {
JSONObject refundOrderObj = refundDetailList.getJSONObject(i);
// TODO
// ADD to wx_pay_order
String neuRefundOrderType = refundOrderObj.getString(WxPayConstant.NEU_REFUND_ORDER_TYPE);
if (neuRefundOrderType.equalsIgnoreCase(String.valueOf(EnumNeuPosRefundType.MEM_COUPON.getCode()))) {
// 优惠券, 退优惠券
} else if (neuRefundOrderType.equalsIgnoreCase(String.valueOf(EnumNeuPosRefundType.MEM_CARD.getCode()))) {
// 预付卡, 不能退
} else {
syncRefundOrder(params, merchantBUser, iSceneType, posOrderId, memId, posAmount, orderTime, orderCreateSN);
}

}
return retMap;
}

/**
* 支付同步
* @param params
* @param merchant
* @param buUser
* @param iSceneType
* @param posOrderId
* @param memId
* @param orderAmount
* @param orderTime
*/
public void syncOrder(
Map<String, String> params,
WxMerchant merchant, WxMerchantBUser buUser,
Integer iSceneType,
Long posOrderId, Long memId, Integer orderAmount, Date orderTime, String orderCreateSn) {
WxOrder order = createOrderByPos(buUser, memId, posOrderId, orderAmount, orderTime, orderCreateSn);
String payDetail = params.get(WxPayConstant.PAY_DETAIL);
JSONObject payDetailObj = JSON.parseObject(payDetail);
PromotionCalc scoreCreditCalc = new PromotionCalc();
scoreCreditCalc.setScore(0);
scoreCreditCalc.setCredit(0);
JSONArray payDetailList = payDetailObj.getJSONArray(WxPayConstant.PAY_DETAIL_LIST);
for (int i=0;i<payDetailList.size();i++) {
JSONObject payOrderObj = payDetailList.getJSONObject(i);
// ADD to wx_pay_order
String neuPayOrderTypeStr = payOrderObj.getString(WxPayConstant.NEU_PAY_ORDER_TYPE);
String neuPayOrderIdStr = payOrderObj.getString(WxPayConstant.NEU_PAY_ORDER_ID);
String neuPaymentAmountStr = payOrderObj.getString(WxPayConstant.NEU_PAY_ORDER_AMOUNT);
String neuPayOrderTimeStr = payOrderObj.getString(WxPayConstant.NEU_PAY_ORDER_TIME);
String neuPayThirdNo = payOrderObj.getString(WxPayConstant.NEU_PAY_ORDER_OUT_NO);
Date neuPosPayOrderTime = null;
try {
neuPosPayOrderTime = neuDateFormat.parse(neuPayOrderTimeStr);
} catch (ParseException e) {
logger.error(e.getMessage());
throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), e.getMessage());
}
Long neuPayOrderId;
Integer neuPayOrderType, neuPaymentAmount;
try {
neuPayOrderId = Long.valueOf(neuPayOrderIdStr);
neuPayOrderType = Integer.valueOf(neuPayOrderTypeStr);
neuPaymentAmount = Integer.valueOf(neuPaymentAmountStr);
} catch (NumberFormatException e) {
logger.error(e.getMessage());
throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), e.getMessage());
}
if (neuPayOrderType.equals(EnumNeuPosPamentType.MEM_COUPON.getCode())) {
// 优惠券
WxPayOrder payOrder = payOrderFromCouponVerify(
scoreCreditCalc,
buUser, order, memId, iSceneType,
neuPayOrderId, neuPaymentAmount, neuPosPayOrderTime, neuPayThirdNo);
} else if (neuPayOrderType.equals(EnumNeuPosPamentType.MEM_CARD.getCode())) {
// 预付卡
WxPayOrder payOrder = payOrderFromCard(
scoreCreditCalc,
merchant, buUser, order, memId,
neuPayOrderId, neuPaymentAmount, neuPosPayOrderTime, neuPayThirdNo);
} else {
// 其它
payOrderFromPos(scoreCreditCalc,
merchant, buUser, order, memId,
neuPayOrderType, neuPayOrderId, neuPaymentAmount, neuPosPayOrderTime, neuPayThirdNo);
}
}
}

return retMap;
/**
* 退款同步
* @param params
* @param buUser
* @param posOrderId
* @param memId
* @param orderAmount
* @param orderTime
*/
public void syncRefundOrder(
Map<String, String> params,
WxMerchantBUser buUser,
Integer iSceneType,
Long posOrderId, Long memId, Integer orderAmount, Date orderTime, String orderCreateSn) {
// add to wx_order
WxOrder refundOrder = createRefundByPos(buUser, memId, posOrderId, orderAmount, orderTime, orderCreateSn);
String refundDetail = params.get(WxPayConstant.NEU_REFUND_DETAIL);
JSONObject refundDetailObj = JSON.parseObject(refundDetail);
JSONArray refundDetailList = refundDetailObj.getJSONArray(WxPayConstant.NEU_REFUND_DETAIL_LIST);
for (int i=0;i<refundDetailList.size();i++) {
JSONObject refundPayOrderObj = refundDetailList.getJSONObject(i);
// ADD to wx_pay_order
String neuRefundOrderTypeStr = refundPayOrderObj.getString(WxPayConstant.NEU_REFUND_ORDER_TYPE);
String neuPayOrderIdStr = refundPayOrderObj.getString(WxPayConstant.NEU_PAY_ORDER_ID);
String neuRefundOrderIdStr = refundPayOrderObj.getString(WxPayConstant.NEU_REFUND_ORDER_ID);
String neuRefundOrderAmountStr = refundPayOrderObj.getString(WxPayConstant.NEU_REFUND_ORDER_AMOUNT);
String neuRefundOrderTimeStr = refundPayOrderObj.getString(WxPayConstant.NEU_REFUND_ORDER_TIME);
String neuRefundOrderStatusStr = refundPayOrderObj.getString(WxPayConstant.NEU_REFUND_ORDER_STATUS);
String neuRefundTypeStr = refundPayOrderObj.getString(WxPayConstant.NEU_REFUND_ORDER_TYPE);
String neuRefundThirdNo = refundPayOrderObj.getString(WxPayConstant.NEU_REFUND_ORDER_OUT_NO);
String neuRefundThirdTimeStr = refundPayOrderObj.getString(WxPayConstant.NEU_REFUND_ORDER_OUT_TIME);
Long posPayOrderId, posRefundOrderId;
Integer neuRefundPayOrderType, neuRefundAmount, neuRefundPayOrderStatus, neuRefundType;
try {
neuRefundPayOrderType = Integer.valueOf(neuRefundOrderTypeStr);
posPayOrderId = Long.valueOf(neuPayOrderIdStr);
posRefundOrderId = Long.valueOf(neuRefundOrderIdStr);
neuRefundAmount = Integer.valueOf(neuRefundOrderAmountStr);
neuRefundPayOrderStatus = Integer.valueOf(neuRefundOrderStatusStr);
neuRefundType = Integer.valueOf(neuRefundTypeStr);
} catch (NumberFormatException e) {
logger.error(e.getMessage());
throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), e.getMessage());
}
Date posRefundOrderTime;
try {
posRefundOrderTime = neuDateFormat.parse(neuRefundOrderTimeStr);
} catch (ParseException e) {
logger.error(e.getMessage());
throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), e.getMessage());
}
refundOrderFromPos(buUser, refundOrder, memId,
posPayOrderId, posRefundOrderId, posRefundOrderTime,
neuRefundPayOrderStatus, neuRefundAmount,neuRefundType,
neuRefundThirdNo);


}
}

/**
@@ -2051,8 +2116,7 @@ public class PosServiceImpl implements PosService {
PromotionCalc scoreCreditCalc,
WxMerchant merchant, WxMerchantBUser buUser,
WxOrder order, Long memId,
Long posPayOrderId, Integer neuPaymentAmount, Date neuPosPayOrderTime, String posPayOrderNo)
{
Long posPayOrderId, Integer neuPaymentAmount, Date neuPosPayOrderTime, String posPayOrderNo) {
// 1. insert into PayOrder
WxPayOrder payOrder = new WxPayOrder() {{
Date curDate = new Date();
@@ -2072,6 +2136,7 @@ public class PosServiceImpl implements PosService {
setPayVendor(EnumPayWay.PAY_WAY_POS_NEU.getCode());
setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
setShare(EnumPayShare.NO.getCode());
setPayFrom(EnumPayFrom.POS.getCode());
setPosPayOrderId(posPayOrderId);
setPosPayOrderTime(neuPosPayOrderTime.getTime());
setPosPaymentType(EnumNeuPosPamentType.MEM_CARD.getCode());
@@ -2114,8 +2179,7 @@ public class PosServiceImpl implements PosService {
public WxPayOrder payOrderFromPos(
PromotionCalc scoreCreditCalc,
WxMerchant merchant, WxMerchantBUser buUser, WxOrder order, Long memId,
Integer neuPayOrderType, Long neuPayOrderId, Integer neuPaymentAmount, Date neuPosPayOrderTime, String neuPayThirdNo)
{
Integer neuPayOrderType, Long neuPayOrderId, Integer neuPaymentAmount, Date neuPosPayOrderTime, String neuPayThirdNo) {
// 1. insert into PayOrder
WxPayOrder payOrder = new WxPayOrder() {{
Date curDate = new Date();
@@ -2134,6 +2198,7 @@ public class PosServiceImpl implements PosService {
setPayVendor(EnumPayWay.PAY_WAY_POS_NEU.getCode());
setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
setShare(EnumPayShare.NO.getCode());
setPayFrom(EnumPayFrom.POS.getCode());
setPosPayOrderId(neuPayOrderId);
setPosPayOrderTime(neuPosPayOrderTime.getTime());
setPosPaymentType(neuPayOrderType);
@@ -2169,6 +2234,75 @@ public class PosServiceImpl implements PosService {
return payOrder;
}

/**
* 退款订单POS
* @param buUser
* @param refundOrder
* @param memId
* @return
*/
public WxRefundOrder refundOrderFromPos(
WxMerchantBUser buUser, WxOrder refundOrder, Long memId,
Long posPayOrderId, Long posRefundOrderId, Date posRefundOrderTime,
Integer posRefundOrderStatus, Integer posRefundAmount, Integer posRefundType,
String neuRefundThirdNo) {
// 1. pay order
// 查找支付订单
WxPayOrder payOrderQ = new WxPayOrder() {{
setTenantId(refundOrder.getTenantId());
setCUserId(refundOrder.getCUserId());
setOrderId(refundOrder.getId());
setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
setPosPayOrderId(posPayOrderId);
}};

try {
payOrderQ = payOrderMapper.selectOne(payOrderQ);
} catch (Exception e) {
throw new MallinkException(ErrorCode.PAY_ORDER_NOT_FOUND);
}
if (payOrderQ == null) {
logger.error("支付订单不存在(payOrder不存在)");
throw new MallinkException(ErrorCode.PAY_ORDER_NOT_FOUND);
}
// 2. insert into refund order
WxRefundOrder refundPayOrder = new WxRefundOrder() {{
Date curDate = new Date();
final IdWorker idWorker = IdWorker.get();
Long id = idWorker.nextId();
setId(id);
setRefundId(String.valueOf(id));
setTenantId(buUser.getTenantId());
setCUserId(memId);
setOrderId(refundOrder.getId());
setCreateTime(curDate);
setUpdateTime(curDate);
setRefundTimeStart(curDate);
setRefundTimeEnd(curDate);
setTotalFee(posRefundAmount);
setRefundFee(posRefundAmount);
setRefundFrom(EnumPayFrom.POS.getCode());
setRefundOrderStatus(EnumRefundStatus.REFUND_SUCCESS.getCode());
setPosPayOrderId(posPayOrderId);
setPosRefundOrderId(posRefundOrderId);
setPosRefundOrderTime(posRefundOrderTime.getTime());
setPosRefundOrderStatus(posRefundOrderStatus);
setPosRefundType(posRefundType);
setPosRefundDes("POS退款");
setPosRefundOrderNo(neuRefundThirdNo);

}};
refundPayOrder.setPayOrderNo(String.valueOf(payOrderQ.getId()));

int sqlRow = refundOrderMapper.insertSelective(refundPayOrder);
if (sqlRow != 1) {
logger.error("refund order insert error: " + refundPayOrder.toString());
throw new MallinkException(ErrorCode.DB_FAIL);
}

return refundPayOrder;
}

/**
* 基于NEUPOS订单信息创建订单
* @param merchantBUser
@@ -2181,12 +2315,11 @@ public class PosServiceImpl implements PosService {
public WxOrder createOrderByPos(
final WxMerchantBUser merchantBUser,
final Long memId,
final Long posOrderId, final Integer posAmount, final Date posOrderTime
final Long posOrderId, final Integer posAmount, final Date posOrderTime, final String orderCreateSn
) {
boolean isExist = true;
WxOrder orderQ = new WxOrder() {{
setType(EnumOrderType.POSPAY.getCode());
setProductId(merchantBUser.getId());
setCUserId(memId);
setPaymentType(EnumPayType.PAY_PAYMENT.getCode());
setPosOrderId(posOrderId);
@@ -2220,7 +2353,87 @@ public class PosServiceImpl implements PosService {
setUpdateDate(curr);
setPosOrderId(posOrderId);
setPosOrderCreateTime(posOrderTime.getTime());
setPosOrderCreateSn(orderCreateSn);
}};

try {
orderMapper.insertSelective(order);
} catch (Exception e) {
logger.error(e.getMessage());
throw new MallinkException(ErrorCode.DB_FAIL);
}
return order;
}

/**
* 基于NEUPOS退款订单信息创建退款订单
* @param buUser
* @param memId
* @param posOrderId
* @param orderAmount
* @param posOrderTime
* @return
*/
public WxOrder createRefundByPos(
final WxMerchantBUser buUser,
final Long memId,
final Long posOrderId, final Integer orderAmount, final Date posOrderTime, final String orderCreateSn
) {
// 1. 查找正向订单
WxOrder orderQ = new WxOrder() {{
setType(EnumOrderType.POSPAY.getCode());
setCUserId(memId);
setPaymentType(EnumPayType.PAY_PAYMENT.getCode());
setPosOrderId(posOrderId);
}};
try {
orderQ = orderMapper.selectOne(orderQ);
} catch (Exception e) {
throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND);
}
if (orderQ == null) {
logger.error(ErrorCode.POS_ORDER_NOT_FOUND.getMessage());
throw new MallinkException(ErrorCode.POS_ORDER_NOT_FOUND);
}

// 2. 查找是否有退款订单
WxOrder refundQ = new WxOrder() {{
setType(EnumOrderType.POSPAY.getCode());
setCUserId(memId);
setPosOrderId(posOrderId);
}};
refundQ.setOrderNumber(orderQ.getOrderNumber());
try {
refundQ = orderMapper.selectOne(refundQ);
} catch (Exception e) {
}
if (refundQ != null) {
logger.error(ErrorCode.POS_ORDER_HAD_SYNCED.getMessage());
throw new MallinkException(ErrorCode.POS_ORDER_HAD_SYNCED);
}

// 3. 创建退款订单
WxOrder order = new WxOrder() {{
Date curr = new Date();
String bodyStr = "POS退款, 金额: " + orderAmount;
final IdWorker idWorker = IdWorker.get();
Long orderId = idWorker.nextId();
setId(orderId);
setTenantId(buUser.getTenantId());
setType(EnumOrderType.POSPAY.getCode());
setProductId(buUser.getId());
setCUserId(memId);
setPaymentType(EnumPayType.PAY_POS_REFUND.getCode());
setPayment(orderAmount);
setOrderStatus(EnumOrderStatus.ORDER_STATUS_REFUND_SUCCESS.getCode());
setDetail(bodyStr);
setCreateDate(curr);
setUpdateDate(curr);
setPosOrderId(posOrderId);
setPosOrderCreateTime(posOrderTime.getTime());
setPosOrderCreateSn(orderCreateSn);
}};
order.setOrderNumber(orderQ.getOrderNumber());

try {
orderMapper.insertSelective(order);


+ 1
- 0
mallinkService/src/main/java/com/iformall/common/ErrorCode.java Wyświetl plik

@@ -251,6 +251,7 @@ public enum ErrorCode{
POS_CARD_ONLY_SUPPORT_PAY(11109, "卡支付只支持支付"),
POS_CARD_OWNER_NOT_EQUAL(11110, "卡拥有者不对应"),
POS_ORDER_HAD_SYNCED(11111, "订单已同步"),
POS_ORDER_NOT_FOUND(11112, "订单未找到"),
POS_CMD_FAIL(11200, "POS命令错误"),




+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java Wyświetl plik

@@ -74,6 +74,8 @@ public class WxOrder extends BaseEntity {
private Long posOrderId;
@io.swagger.annotations.ApiModelProperty(value="POS系统订单创建时间",name="posOrderCreateTime")
private Long posOrderCreateTime;
@io.swagger.annotations.ApiModelProperty(value="POS SN",name="posOrderCreateSn")
private String posOrderCreateSn;

@Transient
protected List<Integer> statusS;


+ 1
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java Wyświetl plik

@@ -64,7 +64,7 @@ public class WxPayOrder extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value="支付后结果来源(0:callback, 1:query)",name="payEndFrom")
private Integer payEndFrom;

@io.swagger.annotations.ApiModelProperty(value="支付后结果来源(0:C端微信支付, 1:POS支付)",name="payFrom")
@io.swagger.annotations.ApiModelProperty(value="支付后结果来源(0:inside, 1:POS支付)",name="payFrom")
private Integer payFrom;
@io.swagger.annotations.ApiModelProperty(value="支付订单号,来源于POS",name="posPayOrderId")
private Long posPayOrderId;


+ 17
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxRefundOrder.java Wyświetl plik

@@ -53,4 +53,21 @@ public class WxRefundOrder extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value="支付失败原因",name="failReason")
private String failReason;

@io.swagger.annotations.ApiModelProperty(value="支付后结果来源(0:inside, 1:POS)",name="refundFrom")
private Integer refundFrom;
@io.swagger.annotations.ApiModelProperty(value="支付订单号,来源于POS",name="posPayOrderId")
private Long posPayOrderId;
@io.swagger.annotations.ApiModelProperty(value="退款订单号,来源于POS",name="posRefundOrderId")
private Long posRefundOrderId;
@io.swagger.annotations.ApiModelProperty(value="支付订单创建时间,来源于POS",name="posRefundOrderTime")
private Long posRefundOrderTime;
@io.swagger.annotations.ApiModelProperty(value="支付订单退款状态(0:非手动,1:手动退款,2:手动释放同步),来源于POS",name="posRefundOrderStatus")
private Integer posRefundOrderStatus;
@io.swagger.annotations.ApiModelProperty(value="退款方式: 0微信;1支付宝;2现金;3优惠券;4预付卡;5银行卡6记账,来源于POS",name="posRefundType")
private Integer posRefundType;
@io.swagger.annotations.ApiModelProperty(value="退款订单流水号, 来源于POS, 第三方(微信、支付宝、富茂预付卡)支付订单流水号,富茂优惠券ID,现金和富茂会员折扣时为空",name="posRefundOrderNo")
private String posRefundOrderNo;
@io.swagger.annotations.ApiModelProperty(value="POS支付描述",name="posRefundDes")
private String posRefundDes;

}

+ 3
- 1
mallinkService/src/main/java/com/iformall/enums/EnumPayType.java Wyświetl plik

@@ -8,7 +8,9 @@ public enum EnumPayType {
PAY_PAYMENT(0, "付款"),
PAY_B_REFUND(1, "B端退款"),
PAY_AUTO_REFUND(2, "自动退款"),
PAY_ADMIN_REFUND(3, "A端退款");
PAY_ADMIN_REFUND(3, "A端退款"),
PAY_POS_REFUND(4, "POS发起退款");

public static EnumPayType getEnum(Integer code) {
for (EnumPayType value : values()) {
if (value.getCode().equals(code)) {


Ładowanie…
Anuluj
Zapisz