Browse Source

新增满减活动默认添加店铺所有商品逻辑

codingliang 1 year ago
parent
commit
95733ee229

+ 28 - 1
src/main/java/com/sqx/modules/activity/service/impl/ActivityShopServiceImpl.java

@@ -15,9 +15,11 @@ import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.SpringContextUtils;
 import com.sqx.modules.activity.bo.ShopActivityBO;
 import com.sqx.modules.activity.dao.ActivityShopDao;
+import com.sqx.modules.activity.dto.ActivityGoodsDTO;
 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.enums.ActivityTypeEnum;
 import com.sqx.modules.activity.enums.LimitTypeEnum;
 import com.sqx.modules.activity.service.ActivityGoodsService;
 import com.sqx.modules.activity.service.ActivityService;
@@ -28,6 +30,7 @@ import com.sqx.modules.activity.vo.ActivityVO;
 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.goods.service.GoodsService;
 import com.sqx.modules.sys.entity.SysUserEntity;
 import com.sqx.modules.sys.service.SysUserShopService;
 import lombok.RequiredArgsConstructor;
@@ -56,8 +59,17 @@ public class ActivityShopServiceImpl extends ServiceImpl<ActivityShopDao, Activi
 
     @Override
     public List<Long> joinActivity(JoinActivityDTO dto) {
+        Long activityId = dto.getActivityId();
+
+        // 检查活动
+        ActivityService activityService = SpringContextUtils.applicationContext.getBean(ActivityService.class);
+        ActivityVO activity = activityService.getActivityById(activityId);
+        if (ObjectUtil.isNull(activity)) {
+            throw new SqxException("无效的活动id");
+        }
+
         // 权限校验
-        checkAuth(dto.getShopIds(), dto.getActivityId());
+        checkAuth(dto.getShopIds(), activityId);
 
         // 校验参数
         checkParam(dto);
@@ -87,6 +99,21 @@ public class ActivityShopServiceImpl extends ServiceImpl<ActivityShopDao, Activi
 
         saveBatch(activityShops);
 
+        // 满减活动默认添加店铺所有商品
+        if (ActivityTypeEnum.FULL.getTypeCode().equals(activity.getType())) {
+            GoodsService goodsService = SpringContextUtils.applicationContext.getBean(GoodsService.class);
+            for (ActivityShop activityShop : activityShops) {
+                // 查询店铺所有商品
+                List<Long> goodsIds = goodsService.getByAllGoodsIdByShopId(activityShop.getShopId());
+
+                ActivityGoodsDTO activityGoodsDTO = new ActivityGoodsDTO();
+                activityGoodsDTO.setActivityShopId(activityShop.getShopId());
+                activityGoodsDTO.setGoodsIds(goodsIds);
+
+                activityGoodsService.updateActivityGoods(activityGoodsDTO);
+            }
+        }
+
         return activityShops.stream().map(ActivityShop::getId).collect(Collectors.toList());
     }
 

+ 1 - 0
src/main/java/com/sqx/modules/goods/dao/GoodsDao.java

@@ -36,4 +36,5 @@ public interface GoodsDao extends BaseMapper<Goods> {
 
     Goods selectGoodsById(Long goodsId);
 
+    List<Long> getByAllGoodsIdByShopId(@Param("shopId") Long shopId);
 }

+ 3 - 0
src/main/java/com/sqx/modules/goods/service/GoodsService.java

@@ -58,4 +58,7 @@ public interface GoodsService extends IService<Goods> {
 
 
     Result selectEvaluateGoodsById(String goodsId,Integer grade, Integer page, Integer limit);
+
+    // 查询店铺所有的商品id
+    List<Long> getByAllGoodsIdByShopId(Long shopId);
 }

+ 5 - 0
src/main/java/com/sqx/modules/goods/service/impl/GoodsServiceImpl.java

@@ -715,4 +715,9 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsDao, Goods> implements Go
         return Result.success().put("data", hashMap);
     }
 
+    @Override
+    public List<Long> getByAllGoodsIdByShopId(Long shopId) {
+        return baseMapper.getByAllGoodsIdByShopId(shopId);
+    }
+
 }

+ 4 - 0
src/main/resources/mapper/goods/GoodsMapper.xml

@@ -151,4 +151,8 @@
         where g.goods_id = #{goodsId}
     </select>
 
+    <select id="getByAllGoodsIdByShopId" resultType="java.lang.Long">
+        select goods_id from goods where shop_id = #{shopId}
+    </select>
+
 </mapper>