guomengjiao 1 месяц назад
Родитель
Сommit
67dc3da30a

+ 28 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/enums/ActiveState.java

@@ -96,4 +96,32 @@ public enum ActiveState implements IIntegerEnum<Integer> {
 
         return activeState;
     }
+
+    /**
+     * 获得秒杀活动状态
+     *
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    public static ActiveState getSeckillActiveTimeState(Date startTime, Date endTime, String startHour, String endHour) {
+        Date date = new Date();
+        ActiveState activeState;//活动状态
+        //开始时间
+        Date startDate = DateUtils.stringToDate(DateCustomUtils.dateToString(startTime) + " " + startHour);
+        //结束时间
+        Date endDate = DateUtils.stringToDate(DateCustomUtils.dateToString(endTime) + " " + endHour);
+        if (date.getTime() < startDate.getTime()) {
+            //未开始
+            activeState = ActiveState.NOT_START;
+        } else if (date.getTime() <= endDate.getTime()) {
+            //进行中
+            activeState = ActiveState.UNDERWAY;
+        } else {
+            //已结束
+            activeState = ActiveState.FINISHED;
+        }
+        return activeState;
+    }
+
 }

+ 44 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/domain/vo/SeckillActivityVo.java

@@ -3,10 +3,12 @@ package com.ruoyi.shop.marketing.seckill.domain.vo;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.ruoyi.common.filepathsplicing.FilePathValue;
+import com.ruoyi.shop.enums.ActiveState;
 import com.ruoyi.shop.enums.CycleMode;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.Date;
 
@@ -124,4 +126,46 @@ public class SeckillActivityVo {
     @ApiModelProperty("商品数量")
     private Integer productNum;
 
+    /**
+     * 把周转成字符串
+     */
+    @ApiModelProperty("把周转成字符串")
+    private String weekTransform;
+
+    public void loadWeekTransform() {
+        if (StringUtils.isNotBlank(this.weeks)) {
+            this.weekTransform = this.weeks;
+            if (weeks.contains("0")) {
+                this.weekTransform = weekTransform.replace("0", "日");
+            }
+            if (weeks.contains("1")) {
+                this.weekTransform = weekTransform.replace("1", "一");
+            }
+            if (weeks.contains("2")) {
+                this.weekTransform = weekTransform.replace("2", "二");
+            }
+            if (weeks.contains("3")) {
+                this.weekTransform = weekTransform.replace("3", "三");
+            }
+            if (weeks.contains("4")) {
+                this.weekTransform = weekTransform.replace("4", "四");
+            }
+            if (weeks.contains("5")) {
+                this.weekTransform = weekTransform.replace("5", "五");
+            }
+            if (weeks.contains("6")) {
+                this.weekTransform = weekTransform.replace("6", "六");
+            }
+        }
+    }
+
+    /**
+     * 活动状态(从活动开始到活动结束)
+     */
+    @ApiModelProperty("活动状态(从活动开始到活动结束)")
+    private ActiveState activeTimeState;
+
+    public void loadActiveTimeState() {
+        activeTimeState = ActiveState.getSeckillActiveTimeState(this.startTime, this.endTime, this.startHour, this.endHour);
+    }
 }

+ 6 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/service/impl/SeckillActivityServiceImpl.java

@@ -22,6 +22,7 @@ import com.ruoyi.shop.marketing.seckill.exception.SeckillActivityExceptionEnum;
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
+import java.util.stream.Collectors;
 
 /**
  * 秒杀活动Service业务层处理
@@ -44,6 +45,11 @@ public class SeckillActivityServiceImpl implements ISeckillActivityService {
     @Override
     public TableDataInfo<SeckillActivityVo> queryPageList(SeckillActivityBo bo, PageQuery pageQuery) {
         Page<SeckillActivityVo> result = baseMapper.selectSeckillActivityPage(pageQuery.build(), bo);
+        result.setRecords(result.getRecords().stream().map(vo -> {
+            vo.loadWeekTransform();
+            vo.loadActiveTimeState();//活动状态
+            return vo;
+        }).collect(Collectors.toList()));
         return TableDataInfo.build(result);
     }