ソースを参照

fix order

release_toaliyun_real
xiaohanzi 4年前
コミット
172dd4dcdf
6個のファイルの変更44行の追加34行の削除
  1. +32
    -21
      mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java
  2. +6
    -6
      mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java
  3. +1
    -1
      mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java
  4. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  5. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java
  6. +3
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java

+ 32
- 21
mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java ファイルの表示

@@ -144,12 +144,12 @@ public class WxPayOrderController extends BaseController {
}
}

@ApiOperation(value = "更新支付订单状态", notes = "{\"payOrderId\":\"string\",\"orderId\":\"string\",\"status\":integer,\"reason\":\"string\"}")
@ApiOperation(value = "更新支付订单状态", notes = "{\"payOrderId\":\"string\",\"composeOrderId\":\"string\",\"status\":integer,\"reason\":\"string\"}")
@PostMapping("/updatePayOrder")
public ResultData updatePayOrder(@RequestBody Map<String, Object> paramMap) {
logger.info("/api/pay/updatePayOrder" + paramMap.toString());
String payOrderIdStr = (String) paramMap.get("payOrderId");
String orderIdStr = (String) paramMap.get("orderId");
String orderIdStr = (String) paramMap.get("composeOrderId");
String reasonStr = (String) paramMap.get("reason");
Integer status = (Integer) paramMap.get("status");
if (StringUtils.isBlank(orderIdStr)) {
@@ -203,6 +203,8 @@ public class WxPayOrderController extends BaseController {
WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(payOrder.getComposeOrder()).getComposeOrder(payOrder.getOrderId(), payOrder.getTenantId());
//查询微信订单状态并更新
check(composeOrder,payOrder);
WxAppinfo appInfo = wxAppinfoService.getCAppInfo(payOrder, EnumPayWay.getEnum(payOrder.getPayVendor()));
//WxCUser user = getUser();
//WxAppinfo appInfo = getAppInfo(user.getAppId());
@@ -235,32 +237,41 @@ public class WxPayOrderController extends BaseController {
}
}
private boolean check(Long orderId,WxOrder order,WxPayOrder payOrder) {
if (null == order) {
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), "未查询到Order["+orderId+"].");
}
WxCoupon wxCoupon = wxCouponService.getById(order.getProductId(),order.getTenantId());
if (null == wxCoupon) {
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), "未查询到优惠券[orderId:"+orderId+"].");
}
//拼团的订单,如果查询到是拼团待付款的,则重新查询是否已经真的支付,其他的直接返回订单信息
if (wxPayOrderService.isOrderGroupCoupon(payOrder, wxCoupon)) {
if (!order.getOrderStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode())) {
return true;
}
}else {
//非拼团的订单,支付成功,关闭订单,撤销支付订单,支付转退款的,直接返回订单信息,其他需要查询真实支付状态
if (payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_SUCCESS.getCode())||
private boolean check(WxComposeOrder composeOrder,WxPayOrder payOrder) {
if (EnumComposeOrder.isSingle(composeOrder.getComposeOrderType())) {
WxOrder order = composeOrder.getSingleOrder();
if (null == order) {
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), "未查询到Order["+payOrder.getOrderId()+"].");
}
WxCoupon wxCoupon = wxCouponService.getById(order.getProductId(),order.getTenantId());
if (null == wxCoupon) {
throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), "未查询到优惠券[orderId:"+payOrder.getOrderId()+"].");
}
//拼团的订单,如果查询到是拼团待付款的,则重新查询是否已经真的支付,其他的直接返回订单信息
if (wxPayOrderService.isOrderGroupCoupon(payOrder, wxCoupon)) {
if (!order.getOrderStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode())) {
return true;
}
}else {
//非拼团的订单,支付成功,关闭订单,撤销支付订单,支付转退款的,直接返回订单信息,其他需要查询真实支付状态
if (payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_SUCCESS.getCode())||
payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_CLOSE.getCode())||
payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_REVERSE.getCode())||
payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_REFUND.getCode())) {
return true;
}
}
}else {
if (payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_SUCCESS.getCode())||
payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_CLOSE.getCode())||
payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_REVERSE.getCode())||
payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_REFUND.getCode())) {
return true;
}
}
}
return false;
}

@ApiOperation("分页列表接口")
@GetMapping("/list")
@ApiImplicitParams({


+ 6
- 6
mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java ファイルの表示

@@ -2099,7 +2099,7 @@ public class PosServiceImpl implements PosService {
payOrder.setId(idWorker.nextId());
payOrder.updateTenantInfo(merchantBUser);
payOrder.setCUserId(memId);
payOrder.setOrderId(order.getId());
payOrder.setOrderId(EnumComposeOrder.getPayOrderId(order));
payOrder.setCreateTime(curDate);
payOrder.setUpdateTime(curDate);
payOrder.setPayTimeStart(curDate);
@@ -2140,7 +2140,7 @@ public class PosServiceImpl implements PosService {
Long posPayOrderId, Integer neuPaymentAmount, Date neuPosPayOrderTime, String posPayOrderNo) {
// 1. insert into PayOrder
WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.setOrderId(order.getId());
payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order));
payOrderQ.updateTenantInfo(merchantBUser);
List<WxPayOrder> payOrderList = payOrderMapper.findList(payOrderQ);
WxPayOrder payOrder = null;
@@ -2153,7 +2153,7 @@ public class PosServiceImpl implements PosService {
payOrder.updateTenantInfo(merchantBUser);
payOrder.setCUserId(memId);
payOrder.setBUserId(merchantBUser.getId());
payOrder.setOrderId(order.getId());
payOrder.setOrderId(EnumComposeOrder.getPayOrderId(order));
payOrder.setCreateTime(curDate);
payOrder.setUpdateTime(curDate);
payOrder.setPayTimeStart(curDate);
@@ -2238,7 +2238,7 @@ public class PosServiceImpl implements PosService {
// 1. insert into PayOrder
WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.updateTenantInfo(buUser);
payOrderQ.setOrderId(order.getId());
payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order));
List<WxPayOrder> payOrderList = payOrderMapper.findList(payOrderQ);
WxPayOrder payOrder = null;
if (null == payOrderList || payOrderList.size()<=0) {
@@ -2326,7 +2326,7 @@ public class PosServiceImpl implements PosService {
payOrder.setTenantId(buUser.getTenantId());
payOrder.updateTenantInfo(buUser);
payOrder.setCUserId(memId);
payOrder.setOrderId(order.getId());
payOrder.setOrderId(EnumComposeOrder.getPayOrderId(order));
payOrder.setCreateTime(curDate);
payOrder.setUpdateTime(curDate);
payOrder.setPayTimeStart(curDate);
@@ -2391,7 +2391,7 @@ public class PosServiceImpl implements PosService {
WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.updateTenantInfo(refundOrder);
payOrderQ.setCUserId(refundOrder.getCUserId());
payOrderQ.setOrderId(refundOrder.getId());
payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(refundOrder));
payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
payOrderQ.setPosPayOrderId(posPayOrderId);



+ 1
- 1
mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java ファイルの表示

@@ -400,7 +400,7 @@ public class OrderExpiringSchedule {
WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.updateTenantInfo(order);
payOrderQ.setCUserId(order.getCUserId());
payOrderQ.setOrderId(order.getId());
payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order));
//payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());

WxPayOrder payOrder = null;


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java ファイルの表示

@@ -906,7 +906,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
WxPayOrder payOrder = null;
WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.updateTenantInfo(couponOrder);
payOrderQ.setOrderId(order.getId());
payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order));
payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
List<WxPayOrder> payList = wxPayOrderMapper.selectList(new QueryWrapper(payOrderQ));
if (payList.size() > 0) {


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java ファイルの表示

@@ -1092,7 +1092,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy();
merchantSubsidy.setId(idWorker.nextId());
merchantSubsidy.updateTenantInfo(order);
merchantSubsidy.setOrderId(record.getOrderId());
merchantSubsidy.setOrderId(order.getId());
merchantSubsidy.setOrderType(EnumOrderType.MICROPAY.getCode());
WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectById(order.getProductId());
merchantSubsidy.setMerchantId(wxMerchantBUser.getMerchantId());


+ 3
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java ファイルの表示

@@ -128,7 +128,6 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
logger.error("券ID不存在:" + couponOrderId);
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL);
}

WxOrder wxOrder = wxOrderMapper.selectById(wxCouponOrder.getOrderId(),wxCouponOrder.getTenantId());
if (wxOrder == null) {
logger.error("订单ID不存在:" + couponOrderId);
@@ -178,7 +177,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.updateTenantInfo(wxCouponOrder);
payOrderQ.setCUserId(wxOrder.getCUserId());
payOrderQ.setOrderId(wxOrder.getId());
payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(wxOrder));
payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());

WxPayOrder payOrder = null;
@@ -376,7 +375,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.updateTenantInfo(wxOrder);
payOrderQ.setCUserId(wxOrder.getCUserId());
payOrderQ.setOrderId(wxOrder.getId());
payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(wxOrder));
payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());

WxPayOrder payOrder = null;
@@ -598,7 +597,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService {
WxPayOrder payOrderQ = new WxPayOrder();
payOrderQ.updateTenantInfo(wxOrder);
payOrderQ.setCUserId(wxOrder.getCUserId());
payOrderQ.setOrderId(wxOrder.getId());
payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(wxOrder));
//payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());

WxPayOrder payOrder = null;


読み込み中…
キャンセル
保存