Browse Source

feat[litemall-admin-api]: 优惠券定时任务,检查是否过期

Junling Bu 7 years ago
parent
commit
337b099696

+ 48 - 0
litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/job/CouponJob.java

@@ -0,0 +1,48 @@
+package org.linlinjava.litemall.admin.job;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.linlinjava.litemall.db.domain.LitemallCoupon;
+import org.linlinjava.litemall.db.domain.LitemallCouponUser;
+import org.linlinjava.litemall.db.service.LitemallCouponService;
+import org.linlinjava.litemall.db.service.LitemallCouponUserService;
+import org.linlinjava.litemall.db.util.CouponConstant;
+import org.linlinjava.litemall.db.util.CouponUserConstant;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+/**
+ * 检测优惠券过期情况
+ */
+@Component
+public class CouponJob {
+    private final Log logger = LogFactory.getLog(CouponJob.class);
+
+    @Autowired
+    private LitemallCouponService couponService;
+    @Autowired
+    private LitemallCouponUserService couponUserService;
+
+    /**
+     * 每隔一个小时检查
+     */
+    @Scheduled(fixedDelay = 60 * 60 * 1000)
+    public void checkCouponExpired() {
+        logger.info("系统开启任务检查优惠券是否已经过期");
+
+        List<LitemallCoupon> couponList = couponService.queryExpired();
+        for(LitemallCoupon coupon : couponList){
+            coupon.setStatus(CouponConstant.STATUS_EXPIRED);
+            couponService.updateById(coupon);
+        }
+
+        List<LitemallCouponUser> couponUserList = couponUserService.queryExpired();
+        for(LitemallCouponUser couponUser : couponUserList){
+            couponUser.setStatus(CouponUserConstant.STATUS_EXPIRED);
+            couponUserService.update(couponUser);
+        }
+    }
+
+}