Quellcode durchsuchen

刷新票包销售数据

chunping vor 3 Jahren
Ursprung
Commit
3f6d27a0d3

+ 4 - 9
mp-admin/src/test/java/com/qs/mp/service/ServiceImplTest.java

@@ -5,6 +5,7 @@ import com.qs.mp.admin.service.ITicketBoxSerialService;
 import com.qs.mp.framework.service.IWxUrlLinkService;
 import com.qs.mp.quartz.task.DayStatTask;
 import com.qs.mp.quartz.task.TicketBoxTask;
+import com.qs.mp.quartz.task.TicketPkgDataTask;
 import java.io.IOException;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
@@ -40,7 +41,7 @@ public class ServiceImplTest {
   private DayStatTask dayStatTask;
 
   @Autowired
-  private CosTask cosTask;
+  private TicketPkgDataTask ticketPkgDataTask;
 
   @Test
   public void testGenerateQrCode() {
@@ -85,14 +86,8 @@ public class ServiceImplTest {
   }
 
   @Test
-  public void testCosCompress() {
-    try {
-      cosTask.compressPicture();
-    } catch (IOException e) {
-      e.printStackTrace();
-    } catch (InterruptedException e) {
-      e.printStackTrace();
-    }
+  public void testPkgDataRefresh() {
+    ticketPkgDataTask.refresh();
   }
 
 

+ 79 - 0
mp-quartz/src/main/java/com/qs/mp/quartz/task/TicketPkgDataTask.java

@@ -0,0 +1,79 @@
+package com.qs.mp.quartz.task;
+
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.qs.mp.admin.domain.Ticket;
+import com.qs.mp.admin.domain.TicketBox;
+import com.qs.mp.admin.domain.TicketPackage;
+import com.qs.mp.admin.service.ITicketBoxService;
+import com.qs.mp.admin.service.ITicketPackageService;
+import com.qs.mp.admin.service.ITicketService;
+import com.qs.mp.channel.domain.ChannelOrder;
+import com.qs.mp.channel.service.IChannelOrderService;
+import com.qs.mp.common.enums.ChannelOrderStatusEnum;
+import com.qs.mp.common.enums.TicketPkgSaleStatusEnum;
+import com.qs.mp.common.enums.TicketStatusEnum;
+import com.qs.mp.common.utils.DateUtils;
+import com.qs.mp.common.utils.LogUtil;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 票包销售数量更新
+ * @author zhongcp
+ * @Date 2022/3/17
+ */
+@Component("ticketPkgDataTask")
+public class TicketPkgDataTask {
+
+  protected final Logger logger = LoggerFactory.getLogger(this.getClass().getSimpleName());
+
+  @Autowired
+  private ITicketPackageService ticketPackageService;
+
+  @Autowired
+  private ITicketBoxService ticketBoxService;
+
+  @Autowired
+  private ITicketService ticketService;
+
+
+  /**
+   * 刷新票包的销量数据
+   */
+  public void refresh() {
+    LogUtil.info(logger, "...票包销售数量更新任务开始...");
+
+    List<TicketPackage> ticketPackageList = ticketPackageService.list(new LambdaQueryWrapper<TicketPackage>());
+
+    for (TicketPackage ticketPackage : ticketPackageList) {
+      TicketBox ticketBox = ticketBoxService.getById(ticketPackage.getBoxId());
+      int saleQty = ticketService.count(new LambdaQueryWrapper<Ticket>()
+          .eq(Ticket::getPkgId, ticketPackage.getPkgId())
+          .gt(Ticket::getStatus, TicketStatusEnum.NOT_PAY));
+      TicketPkgSaleStatusEnum saleStatusEnum;
+      if (saleQty == 0) {
+        saleStatusEnum = TicketPkgSaleStatusEnum.WAIT_SALE;
+      } else if (saleQty < ticketBox.getPkgUnit()) {
+        saleStatusEnum = TicketPkgSaleStatusEnum.ON_SALE;
+      } else {
+        saleStatusEnum = TicketPkgSaleStatusEnum.SALE_OUT;
+      }
+      ticketPackageService.update(new LambdaUpdateWrapper<TicketPackage>()
+          .set(TicketPackage::getPkgUnit, ticketBox.getPkgUnit())
+          .set(TicketPackage::getSaleQty, saleQty)
+          .set(TicketPackage::getSaleStatus, saleStatusEnum)
+          .eq(TicketPackage::getPkgId, ticketPackage.getPkgId()));
+    }
+    LogUtil.info(logger, "...票包销售数量更新任务结束...");
+  }
+}