| @@ -1081,6 +1081,8 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| @Override | @Override | ||||
| public JSONArray queryMicroPayCouponOrder(WxMerchantBUser user, WxCUser cUser, Integer payPrice) { | public JSONArray queryMicroPayCouponOrder(WxMerchantBUser user, WxCUser cUser, Integer payPrice) { | ||||
| // 1. 是否有核销未完成的券 | |||||
| Map<String, Object> coQ = new HashMap<>(); | Map<String, Object> coQ = new HashMap<>(); | ||||
| coQ.put("tenantId", user.getTenantId()); | coQ.put("tenantId", user.getTenantId()); | ||||
| coQ.put("cUserId", cUser.getId()); | coQ.put("cUserId", cUser.getId()); | ||||
| @@ -1208,22 +1210,18 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| } | } | ||||
| // 3. 券包状态检查 | // 3. 券包状态检查 | ||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode()) { | |||||
| if (couponOrder.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_OVER_TIME.getCode())) { | |||||
| logger.error("已过期: couponOrder-" + couponOrder.getId()); | logger.error("已过期: couponOrder-" + couponOrder.getId()); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME); | throw new MallinkException(ErrorCode.COUPON_ORDER_IS_OVER_TIME); | ||||
| } | } | ||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_INVALID.getCode()) { | |||||
| if (couponOrder.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_INVALID.getCode())) { | |||||
| logger.error("已退款: couponOrder-" + couponOrder.getId()); | logger.error("已退款: couponOrder-" + couponOrder.getId()); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_INVALID); | throw new MallinkException(ErrorCode.COUPON_ORDER_IS_INVALID); | ||||
| } | } | ||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()) { | |||||
| if (couponOrder.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode())) { | |||||
| logger.error("已经核销过的券: couponOrder-" + couponOrder.getId()); | logger.error("已经核销过的券: couponOrder-" + couponOrder.getId()); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_USED); | throw new MallinkException(ErrorCode.COUPON_ORDER_IS_USED); | ||||
| } | } | ||||
| if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()) { | |||||
| logger.error("券已被预核销: couponOrder-" + couponOrder.getId()); | |||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_PRE_VERIFY); | |||||
| } | |||||
| if (couponOrder.getCouponType().equals(EnumCouponType.COUPON_MANJIAN.getCode())) { | if (couponOrder.getCouponType().equals(EnumCouponType.COUPON_MANJIAN.getCode())) { | ||||
| if (payPrice < wxCoupon.getUsePrice()) { | if (payPrice < wxCoupon.getUsePrice()) { | ||||
| logger.error("券达不到满减条件: couponOrder-" + couponOrder.getId()); | logger.error("券达不到满减条件: couponOrder-" + couponOrder.getId()); | ||||
| @@ -1231,34 +1229,70 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| } | } | ||||
| } | } | ||||
| // 1. insert posOrderId | |||||
| PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify(); | |||||
| posCouponOrderVerify.updateTenantInfo(couponOrder); | |||||
| posCouponOrderVerify.setCouponOrderId(couponOrder.getId()); | |||||
| posCouponOrderVerify.setPosOrderId(microOrder.getId()); | |||||
| posCouponOrderVerify.setOrderFrom(EnumOrderFrom.INSIDE.getCode()); | |||||
| posCouponOrderVerify.setState(EnumEnableType.Enable.getCode()); | |||||
| try { | |||||
| posCouponOrderVerifyMapper.insert(posCouponOrderVerify); | |||||
| } catch (Exception e) { | |||||
| logger.error("db failed: couponOrder-" + couponOrder.getId() + ", e:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| } | |||||
| if (couponOrder.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode())) { | |||||
| // 1. insert posOrderId | |||||
| PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify(); | |||||
| posCouponOrderVerify.updateTenantInfo(couponOrder); | |||||
| posCouponOrderVerify.setCouponOrderId(couponOrder.getId()); | |||||
| posCouponOrderVerify.setPosOrderId(microOrder.getId()); | |||||
| posCouponOrderVerify.setOrderFrom(EnumOrderFrom.INSIDE.getCode()); | |||||
| posCouponOrderVerify.setState(EnumEnableType.Enable.getCode()); | |||||
| try { | |||||
| posCouponOrderVerifyMapper.insert(posCouponOrderVerify); | |||||
| } catch (Exception e) { | |||||
| logger.error("db failed: couponOrder-" + couponOrder.getId() + ", e:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| } | |||||
| int num = 0; | |||||
| try { | |||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()); //预核销 | |||||
| couponOrder.setBUserId(bUser.getId()); | |||||
| couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_B.getCode()); | |||||
| couponOrder.setUpdateDate(new Date()); | |||||
| num = wxCouponOrderMapper.updateVerifyCouponOrder(couponOrder); | |||||
| } catch (Exception e) { | |||||
| logger.error("db failed: couponOrder-" + couponOrder.getId() + ", e:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| } | |||||
| if (num != 1) { | |||||
| logger.error("核销异常:updatete num " + num); | |||||
| throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); | |||||
| int num = 0; | |||||
| try { | |||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()); //预核销 | |||||
| couponOrder.setBUserId(bUser.getId()); | |||||
| couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_B.getCode()); | |||||
| couponOrder.setUpdateDate(new Date()); | |||||
| num = wxCouponOrderMapper.updateVerifyCouponOrder(couponOrder); | |||||
| } catch (Exception e) { | |||||
| logger.error("db failed: couponOrder-" + couponOrder.getId() + ", e:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| } | |||||
| if (num != 1) { | |||||
| logger.error("核销异常:updatete num " + num); | |||||
| throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); | |||||
| } | |||||
| } else if (couponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()) { | |||||
| // 券已预核销后,但是未做支付,此券还能继续使用 | |||||
| // 1. update posOrderId | |||||
| PosCouponOrderVerify vQ = new PosCouponOrderVerify(); | |||||
| vQ.updateTenantInfo(couponOrder); | |||||
| vQ.setCouponOrderId(couponOrder.getId()); | |||||
| PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify(); | |||||
| posCouponOrderVerify.updateTenantInfo(couponOrder); | |||||
| posCouponOrderVerify.setCouponOrderId(couponOrder.getId()); | |||||
| posCouponOrderVerify.setPosOrderId(microOrder.getId()); | |||||
| posCouponOrderVerify.setOrderFrom(EnumOrderFrom.INSIDE.getCode()); | |||||
| posCouponOrderVerify.setState(EnumEnableType.Enable.getCode()); | |||||
| try { | |||||
| posCouponOrderVerifyMapper.update(posCouponOrderVerify, new QueryWrapper<>(vQ)); | |||||
| } catch (Exception e) { | |||||
| logger.error("db failed: couponOrder-" + couponOrder.getId() + ", e:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| } | |||||
| int num = 0; | |||||
| try { | |||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()); //预核销 | |||||
| couponOrder.setBUserId(bUser.getId()); | |||||
| couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_B.getCode()); | |||||
| couponOrder.setUpdateDate(new Date()); | |||||
| num = wxCouponOrderMapper.updateVerifyCouponOrder(couponOrder); | |||||
| } catch (Exception e) { | |||||
| logger.error("db failed: couponOrder-" + couponOrder.getId() + ", e:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| } | |||||
| if (num != 1) { | |||||
| logger.error("核销异常:updatete num " + num); | |||||
| throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), "updatete num " + num); | |||||
| } | |||||
| } | } | ||||
| // 添加payOrder | // 添加payOrder | ||||