From 7b030183339bab4da19e280885fa20e13c634bc0 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 19 Oct 2021 10:56:11 +0800 Subject: [PATCH] update gift --- .../controller/WxCouponOrderController.java | 4 +-- .../controller/WxCouponOrderController.java | 3 +- .../schedule/CouponOrderExpiringSchedule.java | 31 +++++++++++++++++++ .../java/com/iformall/common/ErrorCode.java | 3 +- .../iformall/enums/EnumCouponVerifyType.java | 1 + .../iformall/mapper/WxCouponOrderMapper.java | 3 ++ .../impl/WxCouponOrderServiceImpl.java | 7 +++-- .../service/impl/WxCouponServiceImpl.java | 4 +++ .../resources/mapper/WxCouponOrderMapper.xml | 8 ++++- 9 files changed, 56 insertions(+), 8 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index a0d9641fe..658f7df1c 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -347,8 +347,8 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.VERIFY_ERROR, e.getMessage()); } - if (couponOrder != null) { - wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, wxMerchantBUser.getMerchantId()); + if (couponOrder != null && couponOrder.getMerchantId() != null) { + wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId()); } return new ResultData(couponOrder); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index 895f2221d..2896546b2 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -42,6 +42,7 @@ public class WxCouponOrderController extends BaseController { @Autowired private WxCouponService wxCouponService; + @Autowired private WxCouponOrderService wxCouponOrderService; @@ -484,7 +485,7 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.VERIFY_ERROR, e.getMessage()); } - if (couponOrder != null) { + if (couponOrder != null && couponOrder.getMerchantId() != null) { wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId()); } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java index 82ee5aff7..eab86260c 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java @@ -2,11 +2,13 @@ package com.iformall.schedule; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iformall.common.ErrorCode; +import com.iformall.common.ResultData; import com.iformall.domain.dto.WxSharingOrderDto; import com.iformall.domain.po.*; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; +import com.iformall.service.WxCouponOrderService; import com.iformall.service.WxOrderService; import com.iformall.service.WxProfitSharingOrderService; import com.iformall.service.WxRefundOrderService; @@ -31,6 +33,9 @@ public class CouponOrderExpiringSchedule { @Autowired private WxCouponOrderMapper wxCouponOrderMapper; + @Autowired + private WxCouponOrderService wxCouponOrderService; + @Autowired private WxRefundOrderService wxRefundOrderService; @@ -108,6 +113,32 @@ public class CouponOrderExpiringSchedule { couponOrderExpireRefund(order, true); } + + @Scheduled(cron = "0 0 5 * * ?") // 每天凌晨00:05 + // @Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 + public void couponOrderGoodsVerifySchedule() {//14天确认收获 系统自动核销 + + List malls = getMalls(); + for (WxMall mall: malls) { + List list = wxCouponOrderMapper.findExpiredCouponOrderGoodsVerify(mall.getTenantId()); + if (null != list && list.size() > 0 ) { + list.stream().forEach(co -> { + WxCouponOrder couponOrder = null; + try { + couponOrder = wxCouponOrderService.verify(co,null,EnumCouponVerifyType.VERIFY_C_AUTO); + } catch (MallinkException e) { + logger.error("核销异常: " + e.getMessage()); + } catch (Exception e) { + logger.error("核销异常: " + e.getMessage()); + } + + if (couponOrder != null && couponOrder.getMerchantId() != null) { + wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrder.getId(), couponOrder.getMerchantId()); + } + }); + } + } + } @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index ab6d32926..89b92bc7b 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -142,7 +142,8 @@ public enum ErrorCode{ COUPON_VALID_NOT_SUPPORTED(2046, "券类型不支持"), COUPON_IS_EMPTY_GIFT(2120, "子券不存在"), - COUPON_VALID_DATE_ERR_GIFT(2135, "子券有效期在券包有效期之前"), + COUPON_IS_TAKE_OFF_GIFT(2122, "子券存在作废券"), + COUPON_VALID_DATE_ERR_GIFT(2135, "存在子券有效期在券包有效期之前"), /** * 车流 2040 */ diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCouponVerifyType.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponVerifyType.java index 32eba96d2..5ddf00703 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCouponVerifyType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponVerifyType.java @@ -16,6 +16,7 @@ public enum EnumCouponVerifyType { VERIFY_POS_PAY(2, "POS交易核销"), VERIFY_C(3,"用户自主核销"), + VERIFY_C_AUTO(30,"用户自主核销"), VERIFY_AUTO(4,"系统自动核销"), ; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java index 39d71b7df..0e5b49390 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java @@ -25,6 +25,8 @@ public interface WxCouponOrderMapper extends CommonMapper { List findExpiredCouponOrderByValidDate(@Param("tenantId")String tenantId); + List findExpiredCouponOrderGoodsVerify(@Param("tenantId")String tenantId); + // 券包核销 int updateVerifyCouponOrder(WxCouponOrder wxCouponOrder); int updateVerifyCouponOrderStatus(WxCouponOrder wxCouponOrder); @@ -97,4 +99,5 @@ public interface WxCouponOrderMapper extends CommonMapper { Integer findWriteOffCount(WxCouponOrder wxCouponOrder); List findGoodsList(WxCouponOrderBVo record); + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index b128f898c..4d0ce01e7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -57,6 +57,7 @@ import java.util.*; @Service public class WxCouponOrderServiceImpl implements WxCouponOrderService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired @@ -447,9 +448,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { logger.error("券包: coupon-" + wxCoupon.getId() + "数据异常" + "couponOrder-" + couponOrder.getId()); throw new MallinkException(ErrorCode.COUPON_ORDER_DATE_ERROR); } - if(!EnumCouponVerifyType.VERIFY_AUTO.equals(couponVerifyType)){ - throw new MallinkException(ErrorCode.VERIFY_COUPON_TYPE_NOT_SUPPORT); - } +// if(!EnumCouponVerifyType.VERIFY_AUTO.equals(couponVerifyType)){ +// throw new MallinkException(ErrorCode.VERIFY_COUPON_TYPE_NOT_SUPPORT); +// } }else{ if(!EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType)){ throw new MallinkException(ErrorCode.VERIFY_COUPON_TYPE_NOT_SUPPORT); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java index 482f8693c..5efba2ea6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -348,6 +348,9 @@ public class WxCouponServiceImpl implements WxCouponService { List list = wxCouponMapper.findList(couponQ); if(list != null && list.size() > 0){ for (WxCoupon wc:list) { + if(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode().equals(wc.getStatus())){ + return new ResultData(ErrorCode.COUPON_IS_TAKE_OFF_GIFT); + } if(wc.getValidEndDate().before(record.getValidEndDate())){ return new ResultData(ErrorCode.COUPON_VALID_DATE_ERR_GIFT); } @@ -476,6 +479,7 @@ public class WxCouponServiceImpl implements WxCouponService { //券礼包子券类型判断时间 WxCoupon couponQ = new WxCoupon(); couponQ.updateTenantInfo(record); + couponQ.setStatus(EnumCouponStatus.COUPON_STATUS_THROW_IN.getCode()); couponQ.setGiftList(Long.toString(record.getId())); List couponList = wxCouponMapper.findCouponList(couponQ); if(couponList != null && couponList.size() > 0){ diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index f3fe68c84..64565ddd8 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -759,7 +759,13 @@ select from wx_coupon_order where tenant_id = #{tenantId} and expired_time >= date_sub(curdate(),interval 360 day) and expired_time < now() and coupon_price > 0 and coupon_order_status in (0, 4) - + +