guomengjiao 1 mēnesi atpakaļ
vecāks
revīzija
f436a0e1bc

+ 12 - 0
ruoyi-common/src/main/java/com/ruoyi/common/filepathsplicing/FilePathSplicingAspect.java

@@ -226,6 +226,18 @@ public class FilePathSplicingAspect {
                 }
             }
             return newList;
+        } else if (obj instanceof TableDataInfo) {
+            // 获取TableDataInfo中的值
+            TableDataInfo responseData = (TableDataInfo) obj;
+            List rows = responseData.getRows();
+            if (CollectionUtil.isEmpty(rows)) {
+                return responseData;
+            }
+            // 将page中所有records都包装一遍
+            for (Object row : rows) {
+                disposeResponseObject(row);
+            }
+            return responseData;
         } else {
             //如果是实体
             Class<?> aClass = obj.getClass();

+ 1 - 1
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/groupbuy/service/impl/GroupBuyTeamServiceImpl.java

@@ -85,7 +85,7 @@ public class GroupBuyTeamServiceImpl implements IGroupBuyTeamService {
 
     @Lazy
     @Resource
-    private final ISaleRightsOrderService saleRightsOrderService;
+    private ISaleRightsOrderService saleRightsOrderService;
 
     /**
      * 查询拼团活动的团分页

+ 21 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/domain/vo/SeckillActivityProductVo.java

@@ -5,7 +5,10 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.ruoyi.common.enums.order.MarketingType;
 import com.ruoyi.common.filepathsplicing.FilePathValue;
+import com.ruoyi.common.utils.DateCustomUtils;
+import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.MathUtils;
+import com.ruoyi.shop.enums.ActiveState;
 import com.ruoyi.shop.enums.PriceType;
 import com.ruoyi.shop.product.domain.vo.ProductSkuSetVo;
 import com.ruoyi.shop.product.domain.vo.SkuTableItem;
@@ -232,4 +235,22 @@ public class SeckillActivityProductVo {
      * 已抢百分比
      */
     private Integer rate;
+
+    /**
+     * 活动状态(从活动开始到活动结束)
+     */
+    @ApiModelProperty("活动状态(从活动开始到活动结束)")
+    private ActiveState activeTimeState;
+
+    public void loadActiveTimeState() {
+        activeTimeState = ActiveState.getSeckillActiveTimeState(this.startTime, this.endTime, this.startHour, this.endHour);
+    }
+
+    private Long finishTime;//结束时间
+
+    public Long getFinishTime() {
+        Date date = DateUtils.stringToDate(DateCustomUtils.dateToString(new Date()) + " " + this.getEndHour());
+        this.finishTime = date.getTime();
+        return date.getTime() / 1000;
+    }
 }

+ 1 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/service/impl/SeckillActivityProductServiceImpl.java

@@ -315,6 +315,7 @@ public class SeckillActivityProductServiceImpl implements ISeckillActivityProduc
         } else {
             vo.loadDiscount();
             vo.loadProductSkuSetList();
+            vo.loadActiveTimeState();
         }
         return vo;
     }

+ 14 - 3
ruoyi-shop/src/main/java/com/ruoyi/shop/marketing/seckill/service/impl/SeckillActivityTimeItemServiceImpl.java

@@ -19,10 +19,13 @@ import com.ruoyi.shop.marketing.seckill.domain.bo.SeckillActivityTimeItemBo;
 import com.ruoyi.shop.marketing.seckill.domain.vo.SeckillActivityTimeItemVo;
 import com.ruoyi.shop.marketing.seckill.exception.SeckillActivityTimeItemExceptionEnum;
 import com.ruoyi.shop.marketing.seckill.mapper.SeckillActivityTimeItemMapper;
+import com.ruoyi.shop.marketing.seckill.service.ISeckillActivityService;
 import com.ruoyi.shop.marketing.seckill.service.ISeckillActivityTimeItemService;
 import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.Collection;
 import java.util.Date;
 import java.util.List;
@@ -39,6 +42,9 @@ import java.util.Map;
 public class SeckillActivityTimeItemServiceImpl implements ISeckillActivityTimeItemService {
 
     private final SeckillActivityTimeItemMapper baseMapper;
+    @Lazy
+    @Resource
+    private ISeckillActivityService seckillActivityService;
 
     /**
      * 查询秒杀活动日期时间分页
@@ -194,14 +200,19 @@ public class SeckillActivityTimeItemServiceImpl implements ISeckillActivityTimeI
 
     @Override
     public void verifySeckillActivity(SeckillActivityTimeItem timeItem) {
-        Long count = this.baseMapper.selectCount(
+        SeckillActivityTimeItem item = this.baseMapper.selectOne(
             new LambdaQueryWrapper<SeckillActivityTimeItem>()
                 .eq(SeckillActivityTimeItem::getBusinessId, timeItem.getBusinessId())
                 .eq(SeckillActivityTimeItem::getDay, timeItem.getDay())
                 .eq(SeckillActivityTimeItem::getStartHour, timeItem.getStartHour())
         );
-        if (count > 0) {
-            throw new ServiceException(SeckillActivityTimeItemExceptionEnum.SECKILL_ACTIVITY_TIME_USEING);
+        if (ObjectUtil.isNotNull(item)) {
+            SeckillActivity seckillActivity = seckillActivityService.loadById(item.getSeckillId(), false);
+            if (ObjectUtil.isNotNull(seckillActivity)) {
+                if (!seckillActivity.getDiscard()) {
+                    throw new ServiceException(SeckillActivityTimeItemExceptionEnum.SECKILL_ACTIVITY_TIME_USEING);
+                }
+            }
         }
     }
 

+ 2 - 2
ruoyi-shop/src/main/resources/mapper/marketing/seckill/SeckillActivityProductMapper.xml

@@ -90,7 +90,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="getNowAllSeckillProduct"
             resultType="com.ruoyi.shop.marketing.seckill.domain.vo.SeckillActivityProductVo">
         SELECT
-        sap.id,sap.min_price,sap.max_price,sa.start_time,sa.end_time,sa.start_hour,sa.end_hour,tp.title,tp.cover
+        sap.id,sap.min_price,sap.max_price,sa.start_time,sa.end_time,sa.start_hour,sa.end_hour,tp.title,tp.cover_image
         FROM tb_seckill_activity_product sap
         LEFT OUTER JOIN tb_seckill_activity sa ON sap.seckill_id=sa.id
         LEFT OUTER JOIN tb_product tp ON sap.product_id=tp.product_id
@@ -110,7 +110,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="startFlashSalePage"
             resultType="com.ruoyi.shop.marketing.seckill.domain.vo.SeckillActivityProductVo">
         SELECT
-            sap.*,sa.start_time,sa.end_time,sa.start_hour,sa.end_hour,tp.title,tp.cover,
+            sap.*,sa.start_time,sa.end_time,sa.start_hour,sa.end_hour,tp.title,tp.cover_image,
             Round((sap.result_sale_num/sap.real_stock_total)*100,0) AS rate
         FROM tb_seckill_activity_product sap
         LEFT OUTER JOIN tb_seckill_activity sa ON sap.seckill_id=sa.id