Parcourir la source

refactor(marketing): 重构优惠券发放逻辑

- 修改 InnerCouponController 中的 registerSend 和 orderSend 方法,使其返回发放结果
- 更新 MercCouponFactory 接口,将 registerSend 和 orderSend 方法改为返回 List<Map<String, Object>>
- 实现 MercCouponFactoryBase 中的 registerSend 和 orderSend 方法,返回发放结果列表
- 更新 MercCouponFactoryV2 实现类,适配新的接口返回值
hechunping il y a 1 semaine
Parent
commit
f8f5d80da2

+ 2 - 4
src/main/java/com/xynet/marketing/controller/inner/InnerCouponController.java

@@ -38,8 +38,7 @@ public class InnerCouponController {
         MercCouponFactory mercCouponFactory = FactoryUtils.getService(MercCouponFactory.class, "merc_coupon_base");
         Integer mercId = mercService.thirdMercIdToMercId(headers.get("provider_id"), param.getString("thirdMercId"));
         param.put("mercId", mercId);
-        mercCouponFactory.registerSend(param);
-        return R.ok();
+        return R.ok(mercCouponFactory.registerSend(param));
     }
 
     /**
@@ -54,8 +53,7 @@ public class InnerCouponController {
         MercCouponFactory mercCouponFactory = FactoryUtils.getService(MercCouponFactory.class, "merc_coupon_base");
         Integer mercId = mercService.thirdMercIdToMercId(headers.get("provider_id"), param.getString("thirdMercId"));
         param.put("mercId", mercId);
-        mercCouponFactory.orderSend(param);
-        return R.ok();
+        return R.ok(mercCouponFactory.orderSend(param));
     }
 
 }

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

@@ -34,7 +34,7 @@ public interface MercCouponFactory {
      *
      * @param param
      */
-    void registerSend(JMap<String, Object> param);
+    List<Map<String, Object>> registerSend(JMap<String, Object> param);
 
     /**
      * 购物后赠送
@@ -42,7 +42,7 @@ public interface MercCouponFactory {
      * @param param
      * @return
      */
-    void orderSend(JMap<String, Object> param);
+    List<Map<String, Object>> orderSend(JMap<String, Object> param);
 
     /**
      * 自动发放

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

@@ -102,7 +102,8 @@ public class MercCouponFactoryBase extends ServiceImpl<MercCouponMapper, MercCou
     }
 
     @Override
-    public void registerSend(JMap<String, Object> param) {
+    public List<Map<String, Object>> registerSend(JMap<String, Object> param) {
+        List<Map<String, Object>> result = new ArrayList<>();
         LocalDate today = LocalDate.now();
         String thirdMemberId = param.getString("thirdMemberId");
         //查找商家可赠送的优惠券
@@ -128,13 +129,17 @@ public class MercCouponFactoryBase extends ServiceImpl<MercCouponMapper, MercCou
                     .set("couponId", mercCoupon.getId());
             Map<String, Object> existNewMember = memberCouponService.obj(existParam);
             if (!Emptys.check(existNewMember)) {
-                memberCouponService.saveOrUpdate(modelSave(mercCoupon, thirdMemberId, "新注册赠送", null));
+                JMap<String, Object> memberCoupon = modelSave(mercCoupon, thirdMemberId, "新注册赠送", null);
+                result.add(memberCoupon);
+                memberCouponService.saveOrUpdate(memberCoupon);
             }
         });
+        return result;
     }
 
     @Override
-    public void orderSend(JMap<String, Object> param) {
+    public List<Map<String, Object>> orderSend(JMap<String, Object> param) {
+        List<Map<String, Object>> result = new ArrayList<>();
         String thirdMemberId = param.getString("thirdMemberId");
         LocalDate orderCreateTime = param.getTimestamp("orderCreateTime").toLocalDateTime().toLocalDate();
         //查找商家可赠送的优惠券
@@ -158,9 +163,12 @@ public class MercCouponFactoryBase extends ServiceImpl<MercCouponMapper, MercCou
             Float limitAmount = sendConfig.getFloat("limitAmount");
             //判断支付金额是否 >= 优惠券最低金额
             if (param.getInt("payMoney") >= limitAmount * 100) {
-                memberCouponService.saveOrUpdate(modelSave(mercCoupon, thirdMemberId, "购物后赠送", param.getString("orderId")));
+                JMap<String, Object> memberCoupon = modelSave(mercCoupon, thirdMemberId, "购物后赠送", param.getString("orderId"));
+                result.add(memberCoupon);
+                memberCouponService.saveOrUpdate(memberCoupon);
             }
         });
+        return result;
     }
 
     @Override

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

@@ -35,13 +35,13 @@ public class MercCouponFactoryV2 extends ServiceImpl<MercCouponMapper, MercCoupo
     }
 
     @Override
-    public void registerSend(JMap<String, Object> param) {
-        mercCouponFactoryBase.registerSend(param);
+    public List<Map<String, Object>> registerSend(JMap<String, Object> param) {
+        return mercCouponFactoryBase.registerSend(param);
     }
 
     @Override
-    public void orderSend(JMap<String, Object> param) {
-        mercCouponFactoryBase.registerSend(param);
+    public List<Map<String, Object>> orderSend(JMap<String, Object> param) {
+        return mercCouponFactoryBase.orderSend(param);
     }
 
     @Override