Ver Fonte

feat(service): 新增商家优惠券工厂和相关服务

hechunping há 5 meses atrás
pai
commit
7200566e5e

+ 23 - 0
src/main/java/com/xynet/marketing/service/factory/coupon/merc/MercCouponFactory.java

@@ -0,0 +1,23 @@
+package com.xynet.marketing.service.factory.coupon.merc;
+
+
+import com.xynet.marketing.utils.collections.map.JMap;
+
+/**
+ * 优惠券工厂-接口
+ *
+ * @author hechunping
+ * @date 2025/1/20
+ */
+public interface MercCouponFactory {
+
+    /**
+     * 新增或修改
+     *
+     * @param param
+     * @return
+     */
+    Integer saveOrUpdate(JMap<String, Object> param);
+
+    void updateSimple(JMap<String, Object> param);
+}

+ 68 - 0
src/main/java/com/xynet/marketing/service/factory/coupon/merc/impl/base/MercCouponFactoryBase.java

@@ -0,0 +1,68 @@
+package com.xynet.marketing.service.factory.coupon.merc.impl.base;
+
+import cn.hutool.core.bean.BeanUtil;
+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.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.collections.map.JMap;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 优惠券工厂-基类
+ *
+ * @author hechunping
+ * @date 2025/2/10
+ */
+@Service
+@Slf4j
+@AllArgsConstructor
+public class MercCouponFactoryBase extends ServiceImpl<MercCouponMapper, MercCoupon> implements MercCouponFactory {
+
+    private MercProjectGoodsService goodsService;
+
+    private MercProjectDeviceService deviceService;
+
+    @Override
+    public Integer saveOrUpdate(JMap<String, Object> param) {
+        MercCoupon save = BeanUtil.copyProperties(param, MercCoupon.class);
+        if (Emptys.check(save.getId())) {
+            updateById(save);
+            //保存商品
+            if (!save.getIsAllGoods()) {
+                //删除原来的商品
+                goodsService.removeByActId(save.getId());
+            }
+            //保存设备
+            if (!save.getIsAllDevice()) {
+                //删除原来的设备
+                deviceService.removeByActId(save.getId());
+            }
+        } else {
+            save(save);
+        }
+        //保存商品
+        if (!save.getIsAllGoods()) {
+            //删除原来的商品
+            goodsService.saveBatchByActId(save.getId(), "coupon", param.getList("goodsList"));
+        }
+        //保存设备
+        if (!save.getIsAllDevice()) {
+            deviceService.saveBatchByActId(save.getId(), "coupon", param.getList("deviceList"));
+        }
+
+        return save.getId();
+
+    }
+
+    @Override
+    public void updateSimple(JMap<String, Object> param) {
+        MercCoupon save = BeanUtil.copyProperties(param, MercCoupon.class);
+        updateById(save);
+    }
+}

+ 33 - 0
src/main/java/com/xynet/marketing/service/factory/coupon/merc/impl/v2/MercCouponFactoryV2.java

@@ -0,0 +1,33 @@
+package com.xynet.marketing.service.factory.coupon.merc.impl.v2;
+
+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.factory.coupon.merc.MercCouponFactory;
+import com.xynet.marketing.service.factory.coupon.merc.impl.base.MercCouponFactoryBase;
+import com.xynet.marketing.utils.collections.map.JMap;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author hechunping
+ * @date 2025/2/10
+ */
+@Service
+@Slf4j
+@AllArgsConstructor
+public class MercCouponFactoryV2 extends ServiceImpl<MercCouponMapper, MercCoupon> implements MercCouponFactory {
+
+    private MercCouponFactoryBase mercCouponFactoryBase;
+
+    @Override
+    public Integer saveOrUpdate(JMap<String, Object> param) {
+        return mercCouponFactoryBase.saveOrUpdate(param);
+    }
+
+    @Override
+    public void updateSimple(JMap<String, Object> param) {
+        mercCouponFactoryBase.updateSimple(param);
+    }
+}

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

@@ -6,7 +6,9 @@ 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.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.extern.slf4j.Slf4j;
@@ -16,6 +18,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
+ * a
  * 商家优惠券服务-实现类
  *
  * @author hechunping
@@ -59,6 +62,7 @@ public class MercCouponServiceImpl extends ServiceImpl<MercCouponMapper, MercCou
 
     @Override
     public void updateSimple(JMap<String, Object> param) {
-
+        MercCouponFactory mercCouponFactory = FactoryUtils.getService(MercCouponFactory.class, param.getString("type"));
+        mercCouponFactory.updateSimple(param);
     }
 }

+ 5 - 0
src/main/java/com/xynet/marketing/utils/FactoryUtils.java

@@ -1,5 +1,7 @@
 package com.xynet.marketing.utils;
 
+import com.xynet.marketing.service.factory.coupon.merc.impl.base.MercCouponFactoryBase;
+import com.xynet.marketing.service.factory.coupon.merc.impl.v2.MercCouponFactoryV2;
 import com.xynet.marketing.service.factory.promotion.impl.base.PromotionFactoryBase;
 import com.xynet.marketing.service.factory.promotion.impl.v2.PromotionFactoryV2;
 import lombok.AllArgsConstructor;
@@ -29,6 +31,9 @@ public class FactoryUtils {
 
         PROMOTION_BASE("promotion_base", PromotionFactoryBase.class),
         PROMOTION_V2("promotion_v2", PromotionFactoryV2.class),
+
+        MERC_COUPON_BASE("merc_coupon_base", MercCouponFactoryBase.class),
+        MERC_COUPON_V2("merc_coupon_v2", MercCouponFactoryV2.class),
         ;
 
         private final String value;