Browse Source

feat(marketing): 实现自动发放优惠券功能

hechunping 3 tháng trước cách đây
mục cha
commit
69fc3deef1

+ 17 - 0
src/main/java/com/xynet/marketing/controller/member/MemberCouponController.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xynet.marketing.enums.MemberCouponStatusEnum;
 import com.xynet.marketing.service.MemberCouponService;
 import com.xynet.marketing.service.MercCouponService;
+import com.xynet.marketing.service.MercService;
 import com.xynet.marketing.utils.MemberAuthUtils;
 import com.xynet.marketing.utils.R;
 import com.xynet.marketing.utils.collections.map.JHashMap;
@@ -29,6 +30,8 @@ public class MemberCouponController {
     private MercCouponService mercCouponService;
     private MemberCouponService memberCouponService;
 
+    private MercService mercService;
+
     /**
      * 会员优惠券分页
      *
@@ -56,4 +59,18 @@ public class MemberCouponController {
         List<Map<String, Object>> data = memberCouponService.enableList(param);
         return R.ok(data);
     }
+
+    @PostMapping("autoSend")
+    private R autoSend(@RequestBody JHashMap<String, Object> param, @RequestHeader Map<String, String> headers) {
+        String thirdMemberId = MemberAuthUtils.getThirdMemberId(headers);
+        param.put("thirdMemberId", thirdMemberId);
+        param.put("mercId",
+                mercService.thirdMercIdToMercId(
+                        headers.get("provider_id"),
+                        param.getString("thirdMercId"))
+        );
+        return R.ok(mercCouponService.autoSend(param));
+    }
+
+
 }

+ 9 - 0
src/main/java/com/xynet/marketing/service/MercCouponService.java

@@ -51,4 +51,13 @@ public interface MercCouponService {
      * @param param
      */
     void updateSimple(JMap<String, Object> param);
+
+
+    /**
+     * 自动发放优惠券
+     *
+     * @param param
+     * @return
+     */
+    List<Map<String, Object>> autoSend(JMap<String, Object> param);
 }

+ 2 - 1
src/main/java/com/xynet/marketing/service/factory/coupon/merc/MercCouponFactory.java

@@ -4,6 +4,7 @@ package com.xynet.marketing.service.factory.coupon.merc;
 import com.xynet.marketing.utils.collections.map.JMap;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 优惠券工厂-接口
@@ -48,7 +49,7 @@ public interface MercCouponFactory {
      *
      * @param param
      */
-    void autoSend(JMap<String, Object> param);
+    List<Map<String, Object>> autoSend(JMap<String, Object> param);
 
     /**
      * 获取商品价格

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

@@ -162,7 +162,7 @@ public class MercCouponFactoryBase extends ServiceImpl<MercCouponMapper, MercCou
     }
 
     @Override
-    public void autoSend(JMap<String, Object> param) {
+    public List<Map<String, Object>> autoSend(JMap<String, Object> param) {
         LocalDate today = LocalDate.now();
         String thirdMemberId = param.getString("thirdMemberId");
         String mercId = param.getString("mercId");
@@ -210,6 +210,16 @@ public class MercCouponFactoryBase extends ServiceImpl<MercCouponMapper, MercCou
                 }
             });
         }
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (int i = 0; i < sendList.size(); i++) {
+            MercCoupon mercCoupon = sendList.get(i);
+            Map<String, Object> coupon = new HashMap<String, Object>();
+            coupon.put("couponId", mercCoupon.getId());
+            coupon.put("couponName", mercCoupon.getName());
+            ;
+            result.add(coupon);
+        }
+        return result;
     }
 
 

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

@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author hechunping
@@ -44,8 +45,8 @@ public class MercCouponFactoryV2 extends ServiceImpl<MercCouponMapper, MercCoupo
     }
 
     @Override
-    public void autoSend(JMap<String, Object> param) {
-        mercCouponFactoryBase.autoSend(param);
+    public List<Map<String, Object>> autoSend(JMap<String, Object> param) {
+        return mercCouponFactoryBase.autoSend(param);
     }
 
     @Override

+ 7 - 0
src/main/java/com/xynet/marketing/service/impl/MercCouponServiceImpl.java

@@ -86,4 +86,11 @@ public class MercCouponServiceImpl extends ServiceImpl<MercCouponMapper, MercCou
     public void updateSimple(JMap<String, Object> param) {
 
     }
+
+    @Override
+    public List<Map<String, Object>> autoSend(JMap<String, Object> param) {
+        MercCouponFactory mercCouponFactory = FactoryUtils.getService(MercCouponFactory.class, "merc_coupon_base");
+        return mercCouponFactory.autoSend(param);
+    }
+
 }