diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index e09423636..60c7997e6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -3,6 +3,7 @@ package com.iformall.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; @@ -79,6 +80,9 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { @Autowired WxMerchantSubsidyMapper wxMerchantSubsidyMapper; + @Autowired + PosCouponOrderVerifyMapper posCouponOrderVerifyMapper; + JSONObject errorMap = JSON.parseObject("{" + "\"NOAUTH\":{\"detail\":\"商户无此接口权限\",\"reason\":\"商户未开通此接口权限\",\"resolution\":\"请商户前往申请此接口权限\"}," + "\"NOTENOUGH\":{\"detail\":\"余额不足\",\"reason\":\"用户帐号余额不足\",\"resolution\":\"用户帐号余额不足,请用户充值或更换支付卡后再支付\"}," + @@ -984,6 +988,50 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { logger.error("pay order update error: " + record.toString()); throw new MallinkException(ErrorCode.DB_FAIL); } + // 预核销撤回 + WxPayOrder verifyPayOrder = null; + WxPayOrder verifyPayOrderQ = new WxPayOrder(); + verifyPayOrderQ.setPayFrom(EnumOrderFrom.INSIDE.getCode()); + verifyPayOrderQ.setOrderId(record.getOrderId()); + verifyPayOrderQ.setCUserId(record.getCUserId()); + verifyPayOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); + try { + verifyPayOrder = wxPayOrderMapper.selectOne(new QueryWrapper<>(verifyPayOrderQ)); + } catch (Exception e) { + logger.error(e.getMessage()); + } + if (verifyPayOrder != null) { + verifyPayOrderQ = new WxPayOrder(); + verifyPayOrderQ.setId(verifyPayOrder.getId()); + verifyPayOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_REVERSE.getCode()); + verifyPayOrderQ.setUpdateTime(new Date()); + try { + wxPayOrderMapper.updateById(verifyPayOrderQ); + } catch (Exception e) { + logger.error("pay order update error: " + record.toString()); + throw new MallinkException(ErrorCode.DB_FAIL); + } + + PosCouponOrderVerify posCouponOrderVerifyQ = new PosCouponOrderVerify(); + posCouponOrderVerifyQ.setCouponOrderId(verifyPayOrder.getPosPayOrderId()); + posCouponOrderVerifyQ.setPosOrderId(record.getOrderId()); + try { + posCouponOrderVerifyMapper.delete(new UpdateWrapper<>(posCouponOrderVerifyQ)); + } catch (Exception e) { + logger.error(e.getMessage()); + } + WxCouponOrder updateCouponOrder = new WxCouponOrder(); + updateCouponOrder.setId(verifyPayOrder.getPosPayOrderId()); + updateCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); + updateCouponOrder.setUpdateDate(new Date()); + try { + wxCouponOrderService.saveOrUpdate(updateCouponOrder); + } catch (Exception e) { + logger.error(e.getMessage()); + } + } + // 预核销撤回-end + WxOrder order = new WxOrder(); order.setId(record.getOrderId()); order.setType(EnumOrderType.MICROPAY.getCode());