Forráskód Böngészése

feat(marketing): 根据活动 ID 查询设备和商品列表

hechunping 5 hónapja
szülő
commit
a484617938

+ 22 - 1
src/main/java/com/xynet/marketing/service/impl/MercCouponServiceImpl.java

@@ -6,11 +6,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xynet.marketing.entity.MercCoupon;
 import com.xynet.marketing.mapper.MercCouponMapper;
 import com.xynet.marketing.service.MercCouponService;
+import com.xynet.marketing.service.MercProjectDeviceService;
+import com.xynet.marketing.service.MercProjectGoodsService;
 import com.xynet.marketing.service.factory.coupon.merc.MercCouponFactory;
 import com.xynet.marketing.utils.Emptys;
 import com.xynet.marketing.utils.FactoryUtils;
 import com.xynet.marketing.utils.collections.map.JHashMap;
 import com.xynet.marketing.utils.collections.map.JMap;
+import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -26,7 +29,14 @@ import java.util.Map;
  */
 @Service
 @Slf4j
+@AllArgsConstructor
 public class MercCouponServiceImpl extends ServiceImpl<MercCouponMapper, MercCoupon> implements MercCouponService {
+
+    private MercProjectGoodsService goodsService;
+    private MercProjectDeviceService deviceService;
+
+    private static String ACT_TYPE = "coupon";
+
     private LambdaQueryWrapper<MercCoupon> commonQueryWrapper(JMap<String, Object> param) {
         LambdaQueryWrapper<MercCoupon> lqw = new LambdaQueryWrapper<MercCoupon>()
                 .eq(Emptys.check(param.getInt("id")), MercCoupon::getId, param.getInt("id"));
@@ -37,7 +47,18 @@ public class MercCouponServiceImpl extends ServiceImpl<MercCouponMapper, MercCou
     public Map<String, Object> obj(JMap<String, Object> param) {
         LambdaQueryWrapper<MercCoupon> lqw = commonQueryWrapper(param).last("limit 1");
         MercCoupon obj = getOne(lqw);
-        return JHashMap.copy(obj);
+        Map<String, Object> vo = JHashMap.copy(obj);
+        //反显设备信息
+        if (!obj.getIsAllDevice()) {
+            List<Map<String, Object>> deviceList = deviceService.listByActId(obj.getId(), ACT_TYPE);
+            vo.put("deviceList", deviceList);
+        }
+        //反显商品信息
+        if (!obj.getIsAllGoods()) {
+            List<Map<String, Object>> goodsList = goodsService.listByActId(obj.getId(), ACT_TYPE);
+            vo.put("goodsList", goodsList);
+        }
+        return vo;
     }
 
     @Override

+ 25 - 1
src/main/java/com/xynet/marketing/service/impl/PromotionServiceImpl.java

@@ -5,12 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xynet.marketing.entity.Promotion;
 import com.xynet.marketing.mapper.PromotionMapper;
+import com.xynet.marketing.service.MercProjectDeviceService;
+import com.xynet.marketing.service.MercProjectGoodsService;
 import com.xynet.marketing.service.PromotionService;
 import com.xynet.marketing.service.factory.promotion.PromotionFactory;
 import com.xynet.marketing.utils.Emptys;
 import com.xynet.marketing.utils.FactoryUtils;
 import com.xynet.marketing.utils.collections.map.JHashMap;
 import com.xynet.marketing.utils.collections.map.JMap;
+import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -25,7 +28,14 @@ import java.util.Map;
  */
 @Service
 @Slf4j
+@AllArgsConstructor
 public class PromotionServiceImpl extends ServiceImpl<PromotionMapper, Promotion> implements PromotionService {
+
+    private MercProjectGoodsService goodsService;
+    private MercProjectDeviceService deviceService;
+
+    private static String ACT_TYPE = "promotion";
+
     private LambdaQueryWrapper<Promotion> commonQueryWrapper(JMap<String, Object> param) {
         LambdaQueryWrapper<Promotion> lqw = new LambdaQueryWrapper<Promotion>()
                 .eq(Emptys.check(param.getInt("id")), Promotion::getId, param.getInt("id"));
@@ -36,7 +46,21 @@ public class PromotionServiceImpl extends ServiceImpl<PromotionMapper, Promotion
     public Map<String, Object> obj(JMap<String, Object> param) {
         LambdaQueryWrapper<Promotion> lqw = commonQueryWrapper(param).last("limit 1");
         Promotion obj = getOne(lqw);
-        return JHashMap.copy(obj);
+        if (!Emptys.check(obj)) {
+            return null;
+        }
+        Map<String, Object> vo = JHashMap.copy(obj);
+        //反显设备信息
+        if (!obj.getIsAllDevice()) {
+            List<Map<String, Object>> deviceList = deviceService.listByActId(obj.getId(), ACT_TYPE);
+            vo.put("deviceList", deviceList);
+        }
+        //反显商品信息
+        if (!obj.getIsAllGoods()) {
+            List<Map<String, Object>> goodsList = goodsService.listByActId(obj.getId(), ACT_TYPE);
+            vo.put("goodsList", goodsList);
+        }
+        return vo;
     }
 
     @Override