| @@ -143,7 +143,7 @@ public class WxCouponOrderController extends BaseController { | |||||
| WxAppinfo appinfo = appinfoPageInfo.getList().get(0); | WxAppinfo appinfo = appinfoPageInfo.getList().get(0); | ||||
| if (appinfo != null) { | if (appinfo != null) { | ||||
| try { | try { | ||||
| wxRefundOrderService.createRefundOrder(payProperty.isReal(), appinfo, couponOrderId, EnumPayType.PAY_ADMIN_REFUND, null, true); | |||||
| wxRefundOrderService.createRefundOrder(payProperty.isReal(), appinfo, couponOrderId, EnumPayType.PAY_ADMIN_REFUND, null); | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| @@ -57,7 +57,7 @@ public class WxRefundOrderController extends BaseController { | |||||
| WxMerchantBUser bUser = getUser(); | WxMerchantBUser bUser = getUser(); | ||||
| WxAppinfo appinfo = getAppInfo(bUser.getAppId()); | WxAppinfo appinfo = getAppInfo(bUser.getAppId()); | ||||
| try { | try { | ||||
| ResultData rd = wxRefundOrderService.createRefundOrder(payProperty.isReal(), appinfo, couponOrderId, EnumPayType.PAY_B_REFUND, bUser.getId(), true); | |||||
| ResultData rd = wxRefundOrderService.createRefundOrder(payProperty.isReal(), appinfo, couponOrderId, EnumPayType.PAY_B_REFUND, bUser.getId()); | |||||
| return rd; | return rd; | ||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| @@ -60,7 +60,7 @@ public class CouponOrderExpiringSchedule { | |||||
| list.stream().forEach(co -> { | list.stream().forEach(co -> { | ||||
| // 券过期,更改状态及库存退回 | // 券过期,更改状态及库存退回 | ||||
| try { | try { | ||||
| couponOrderExpire(co); | |||||
| couponOrderExpire(co, true); | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| } | } | ||||
| @@ -78,14 +78,14 @@ public class CouponOrderExpiringSchedule { | |||||
| list.stream().forEach(co -> { | list.stream().forEach(co -> { | ||||
| // 券过期,更改状态及库存退回 | // 券过期,更改状态及库存退回 | ||||
| try { | try { | ||||
| couponOrderExpire(co); | |||||
| couponOrderExpire(co, false); | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| } | } | ||||
| // 退款 | // 退款 | ||||
| try { | try { | ||||
| couponOrderExpireRefund(co, false); | |||||
| couponOrderExpireRefund(co, true); | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| } | } | ||||
| @@ -96,7 +96,7 @@ public class CouponOrderExpiringSchedule { | |||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| public void couponOrderExpire(WxCouponOrder co) { | |||||
| public void couponOrderExpire(WxCouponOrder co, boolean bStockBack) { | |||||
| // 标记 couponOrder过期 | // 标记 couponOrder过期 | ||||
| WxCouponOrder updateRecord = new WxCouponOrder(); | WxCouponOrder updateRecord = new WxCouponOrder(); | ||||
| updateRecord.setId(co.getId()); | updateRecord.setId(co.getId()); | ||||
| @@ -109,9 +109,11 @@ public class CouponOrderExpiringSchedule { | |||||
| wxCouponOrderMapper.updateByPrimaryKeySelective(updateRecord); | wxCouponOrderMapper.updateByPrimaryKeySelective(updateRecord); | ||||
| // 库存退回 | // 库存退回 | ||||
| WxOrder order = wxOrderMapper.selectByPrimaryKey(co.getOrderId()); | |||||
| if(order != null) { | |||||
| wxOrderService.stockBack(order); | |||||
| if(bStockBack) { | |||||
| WxOrder order = wxOrderMapper.selectByPrimaryKey(co.getOrderId()); | |||||
| if(order != null) { | |||||
| wxOrderService.stockBack(order); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -125,7 +127,7 @@ public class CouponOrderExpiringSchedule { | |||||
| appinfo = wxAppinfoMapper.findList(appinfo).get(0); | appinfo = wxAppinfoMapper.findList(appinfo).get(0); | ||||
| try { | try { | ||||
| wxRefundOrderService.createRefundOrder(payProperty.isReal(), appinfo, co.getId(), EnumPayType.PAY_AUTO_REFUND, null, bStockBack); | |||||
| wxRefundOrderService.createRefundOrder(payProperty.isReal(), appinfo, co.getId(), EnumPayType.PAY_AUTO_REFUND, null); | |||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.error("退款失败:"+e.getMessage()+"couponOrderId="+co.getId()); | logger.error("退款失败:"+e.getMessage()+"couponOrderId="+co.getId()); | ||||
| throw new MallinkException(e.getErrorCode(), e.getMessage()); | throw new MallinkException(e.getErrorCode(), e.getMessage()); | ||||
| @@ -160,6 +162,13 @@ public class CouponOrderExpiringSchedule { | |||||
| throw new MallinkException(e.getErrorCode(), e.getMessage()); | throw new MallinkException(e.getErrorCode(), e.getMessage()); | ||||
| } | } | ||||
| if(bStockBack) { | |||||
| // 库存退回 | |||||
| WxOrder order = wxOrderMapper.selectByPrimaryKey(co.getOrderId()); | |||||
| if(order != null) { | |||||
| wxOrderService.stockBack(order); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -21,7 +21,7 @@ public interface WxRefundOrderService { | |||||
| * @param bUserId b端退款Id,auto,admin,self可为null | * @param bUserId b端退款Id,auto,admin,self可为null | ||||
| * @return | * @return | ||||
| */ | */ | ||||
| ResultData createRefundOrder(boolean isReal, WxAppinfo appInfo, Long couponOrderId, EnumPayType payType, Long bUserId, boolean bStockBack); | |||||
| ResultData createRefundOrder(boolean isReal, WxAppinfo appInfo, Long couponOrderId, EnumPayType payType, Long bUserId); | |||||
| /** | /** | ||||
| * 创建退款订单 | * 创建退款订单 | ||||
| @@ -263,7 +263,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { | |||||
| @Override | @Override | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| public ResultData createRefundOrder(boolean isReal, WxAppinfo appInfo, Long couponOrderId, EnumPayType payType, Long bUserId, boolean bStockBack) { | |||||
| public ResultData createRefundOrder(boolean isReal, WxAppinfo appInfo, Long couponOrderId, EnumPayType payType, Long bUserId) { | |||||
| WxCouponOrder wxCouponOrder = wxCouponOrderMapper.selectByPrimaryKey(couponOrderId); | WxCouponOrder wxCouponOrder = wxCouponOrderMapper.selectByPrimaryKey(couponOrderId); | ||||
| if (wxCouponOrder == null) { | if (wxCouponOrder == null) { | ||||
| logger.error("券ID不存在:" + couponOrderId); | logger.error("券ID不存在:" + couponOrderId); | ||||
| @@ -360,11 +360,6 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | ||||
| } | } | ||||
| // 退库存 | |||||
| if(bStockBack) { | |||||
| wxOrderService.stockBack(wxOrder); | |||||
| } | |||||
| // 查找支付订单 | // 查找支付订单 | ||||
| WxPayOrder payOrderQ = new WxPayOrder(); | WxPayOrder payOrderQ = new WxPayOrder(); | ||||
| payOrderQ.setTenantId(appInfo.getTenantId()); | payOrderQ.setTenantId(appInfo.getTenantId()); | ||||