Quellcode durchsuchen

App首页商品列表新增返回活动信息;

codingliang vor 2 Jahren
Ursprung
Commit
a9d316f4b5

+ 5 - 0
src/main/java/com/sqx/modules/activity/dao/ActivityShopDao.java

@@ -6,9 +6,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sqx.modules.activity.entity.ActivityShop;
 import com.sqx.modules.activity.vo.ActivityShopVO;
 import com.sqx.modules.activity.vo.ShopActivityGroupVO;
+import com.sqx.modules.activity.vo.ShopActivityVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 活动商家
  * @author : codingliang
@@ -20,4 +23,6 @@ public interface ActivityShopDao extends BaseMapper<ActivityShop> {
      IPage<ActivityShopVO> pageShopByActivityId(@Param("pages") Page<ActivityShop> pages, @Param("activityId") Long activityId);
 
     ShopActivityGroupVO getShopActivityGroup(@Param("shopId") Long shopId);
+
+    List<ShopActivityVO> getActivityByShopIds(@Param("shopIds") List<Long> shopIds);
 }

+ 8 - 0
src/main/java/com/sqx/modules/activity/service/ActivityShopService.java

@@ -7,6 +7,7 @@ import com.sqx.modules.activity.dto.JoinActivityDTO;
 import com.sqx.modules.activity.dto.QuitActivityDTO;
 import com.sqx.modules.activity.entity.ActivityShop;
 import com.sqx.modules.activity.vo.ShopActivityGroupVO;
+import com.sqx.modules.activity.vo.ShopActivityVO;
 
 import java.util.List;
 
@@ -33,4 +34,11 @@ public interface ActivityShopService extends IService<ActivityShop> {
      * @return 店铺活动分组
      */
     ShopActivityGroupVO getShopActivityGroup(Long shopId);
+
+    /**
+     * 根据店铺ids获取参与活动信息
+     * @param shopIds 店铺id集合
+     * @return 活动信息
+     */
+    List<ShopActivityVO> getActivityByShopIds(List<Long> shopIds);
 }

+ 6 - 0
src/main/java/com/sqx/modules/activity/service/impl/ActivityShopServiceImpl.java

@@ -20,6 +20,7 @@ import com.sqx.modules.activity.service.ActivityGoodsService;
 import com.sqx.modules.activity.service.ActivityShopService;
 import com.sqx.modules.activity.vo.ActivityShopVO;
 import com.sqx.modules.activity.vo.ShopActivityGroupVO;
+import com.sqx.modules.activity.vo.ShopActivityVO;
 import com.sqx.modules.datacentre.entity.SysUserShop;
 import com.sqx.modules.sys.entity.SysUserEntity;
 import com.sqx.modules.sys.service.SysUserShopService;
@@ -134,6 +135,11 @@ public class ActivityShopServiceImpl extends ServiceImpl<ActivityShopDao, Activi
         return baseMapper.getShopActivityGroup(shopId);
     }
 
+    @Override
+    public List<ShopActivityVO> getActivityByShopIds(List<Long> shopIds) {
+        return baseMapper.getActivityByShopIds(shopIds);
+    }
+
     /**
      * 参数校验
      * @param dto 加入活动参数

+ 28 - 0
src/main/java/com/sqx/modules/activity/vo/ShopActivityVO.java

@@ -0,0 +1,28 @@
+package com.sqx.modules.activity.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 店铺参与活动vo
+ *
+ * @author : codingliang
+ * @date : 2024-06-22 15:57
+ */
+@Data
+@ApiModel("店铺参与活动信息")
+public class ShopActivityVO {
+
+    @ApiModelProperty("店铺id")
+    private Long shopId;
+
+    @ApiModelProperty("活动id")
+    private Long activityId;
+
+    @ApiModelProperty("活动类型,1普通活动、2时段优惠、3满额优惠、4全场优惠")
+    private String activityType;
+
+    @ApiModelProperty("活动名称")
+    private String activityName;
+}

+ 5 - 0
src/main/java/com/sqx/modules/goods/entity/GoodsShop.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.SqlCondition;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.sqx.modules.activity.vo.ShopActivityVO;
 import com.sqx.modules.coupon.entity.TbCoupon;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -244,6 +245,10 @@ public class GoodsShop implements Serializable {
     @ApiModelProperty("参与的活动id")
     private Long activityId;
 
+    @TableField(exist = false)
+    @ApiModelProperty("参与活动列表")
+    private List<ShopActivityVO>  shopActivityList;
+
     public GoodsShop() {
     }
 }

+ 19 - 7
src/main/java/com/sqx/modules/goods/service/impl/GoodsServiceImpl.java

@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
+import com.sqx.modules.activity.service.ActivityShopService;
+import com.sqx.modules.activity.vo.ShopActivityVO;
 import com.sqx.modules.common.entity.CommonInfo;
 import com.sqx.modules.common.service.CommonInfoService;
 import com.sqx.modules.coupon.dao.TbCouponDao;
@@ -33,7 +35,6 @@ import org.springframework.transaction.annotation.Transactional;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Service
@@ -63,6 +64,8 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsDao, Goods> implements Go
     private GoodsShopRelevancyDao goodsShopRelevancyDao;
     @Autowired
     private TbCouponDao tbCouponDao;
+    @Autowired
+    private ActivityShopService activityShopService;
 
     @Transactional
     @Override
@@ -546,20 +549,29 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsDao, Goods> implements Go
         List<TbCoupon> tbCoupons = tbCouponDao.selectCouponListByShopIdList(shopIdList, null);
         Map<Long, List<TbCoupon>> couponMap = tbCoupons.stream().collect(Collectors.groupingBy(TbCoupon::getShopId));
 
+        // 查询店铺活动
+        List<ShopActivityVO> shopActivityVOS = activityShopService.getActivityByShopIds(shopIdList);
+        Map<Long, List<ShopActivityVO>> shopActivityMap = shopActivityVOS.stream().collect(Collectors.groupingBy(ShopActivityVO::getShopId));
+
         for (int a = 0; a < goodsShopIPage.getRecords().size(); a++) {
-            Long shopId = goodsShopIPage.getRecords().get(a).getShopId();
-            goodsShopIPage.getRecords().get(a).setCouponList(couponMap.get(shopId));
+            GoodsShop goodsShop = goodsShopIPage.getRecords().get(a);
+            Long shopId = goodsShop.getShopId();
+            goodsShop.setCouponList(couponMap.get(shopId));
+
+            // 设置活动信息
+            goodsShop.setShopActivityList(shopActivityMap.get(shopId));
+
             if (StringUtils.isNotEmpty(impotr)) {
-                goodsShopIPage.getRecords().get(a).setGoodsList(goodsMap.get(shopId));
+                goodsShop.setGoodsList(goodsMap.get(shopId));
             } else {
-                goodsShopIPage.getRecords().get(a).setGoodsList(new ArrayList<>());
+                goodsShop.setGoodsList(new ArrayList<>());
             }
-            Double distance = goodsShopIPage.getRecords().get(a).getDistance();
+            Double distance = goodsShop.getDistance();
             double errandTime = distance / Double.parseDouble(one1.getValue());
             if (errandTime < Double.parseDouble(one2.getValue())) {
                 errandTime = Double.parseDouble(one2.getValue());
             }
-            goodsShopIPage.getRecords().get(a).setErrandTime(errandTime);
+            goodsShop.setErrandTime(errandTime);
         }
         PageUtils pageUtils = new PageUtils(goodsShopIPage);
         return Result.success().put("data", pageUtils);

+ 15 - 0
src/main/resources/mapper/activity/ActivityShopDao.xml

@@ -40,4 +40,19 @@
         left join activity a on a.id = ach.activity_id
         where ach.shop_id = #{shopId}
     </select>
+
+    <select id="getActivityByShopIds" resultType="com.sqx.modules.activity.vo.ShopActivityVO">
+        select
+            ach.shop_id,
+            ach.activity_id,
+            a.type activityType,
+            a.title activityName
+        from activity_shop ach
+        left join activity a on a.id = ach.activity_id
+        where
+              ach.shop_id in
+                <foreach collection="shopIds" index="index" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+    </select>
 </mapper>