Explorar o código

公众号模版消息:退款申请,退款成功

skyline hai 10 meses
pai
achega
cac2f95a11

+ 3 - 1
car-wash-common/src/main/java/com/kym/common/enums/MsgTemplateType.java

@@ -5,7 +5,9 @@ package com.kym.common.enums;
  */
 public enum MsgTemplateType {
     PAYMENT_SUCCESS("PAYMENT_SUCCESS"),       // 支付成功通知
-    ORDER_COMPLETED("ORDER_COMPLETED");       // 订单完成提醒
+    ORDER_COMPLETED("ORDER_COMPLETED"),      // 订单完成提醒
+    REFUND_APPLY("REFUND_APPLY"),       // 退款申请提交通知
+    REFUND_SUCCESS("REFUND_SUCCESS");       // 退款成功
 
     private final String bizType;
 

+ 2 - 0
car-wash-service/src/main/java/com/kym/service/impl/MpMsgTemplateServiceImpl.java

@@ -11,6 +11,7 @@ import com.kym.mapper.MpMsgTemplateMapper;
 import com.kym.service.MpMsgTemplateService;
 import com.kym.service.MpRelationService;
 import com.kym.service.wechat.TemplateParamBuilder;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.util.Map;
@@ -49,6 +50,7 @@ public class MpMsgTemplateServiceImpl extends ServiceImpl<MpMsgTemplateMapper, M
 
 
     @Override
+    @Async
     public void sendTemplateMessage(MsgTemplateType templateType, Long userId, Object... args) {
         var mpMsgTemplate = lambdaQuery().eq(MpMsgTemplate::getBizType, templateType.getBizType()).one();
         if (mpMsgTemplate == null) return;

+ 3 - 0
car-wash-service/src/main/java/com/kym/service/wechat/TemplateParamBuilderConfig.java

@@ -3,6 +3,7 @@ package com.kym.service.wechat;
 import com.kym.common.enums.MsgTemplateType;
 import com.kym.service.wechat.impl.OrderCompletedParamBuilder;
 import com.kym.service.wechat.impl.PaymentSuccessParamBuilder;
+import com.kym.service.wechat.impl.RefundApplyParamBuilder;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -17,6 +18,8 @@ public class TemplateParamBuilderConfig {
         Map<MsgTemplateType, TemplateParamBuilder> builders = new HashMap<>();
         builders.put(MsgTemplateType.PAYMENT_SUCCESS, new PaymentSuccessParamBuilder());
         builders.put(MsgTemplateType.ORDER_COMPLETED, new OrderCompletedParamBuilder());
+        builders.put(MsgTemplateType.REFUND_APPLY, new RefundApplyParamBuilder());
+        builders.put(MsgTemplateType.REFUND_SUCCESS, new RefundApplyParamBuilder());
         return builders;
     }
 }

+ 1 - 1
car-wash-service/src/main/java/com/kym/service/wechat/impl/PaymentSuccessParamBuilder.java

@@ -20,7 +20,7 @@ public class PaymentSuccessParamBuilder implements TemplateParamBuilder {
                 "character_string4", payLog.getOutTradeNo(),
                 "thing9", KymCache.INSTANCE.getUserStationName(payLog.getUserId()),
                 "amount1", payLog.getTotal() / 100 + "元",
-                "amount2", "当前金额",
+                "amount2", (int) args[1] / 100 + "元",
                 "time5", payLog.getSuccessTime().format(formatter)
         );
     }

+ 28 - 0
car-wash-service/src/main/java/com/kym/service/wechat/impl/RefundApplyParamBuilder.java

@@ -0,0 +1,28 @@
+package com.kym.service.wechat.impl;
+
+import cn.dev33.satoken.stp.StpUtil;
+import com.kym.entity.RefundLog;
+import com.kym.service.cache.KymCache;
+import com.kym.service.wechat.TemplateParamBuilder;
+
+import java.util.Map;
+
+/**
+ * 退款申请消息模板参数构建器
+ */
+public class RefundApplyParamBuilder implements TemplateParamBuilder {
+    @Override
+    public Map<String, String> buildParams(Object... args) {
+        if (args.length == 0 || !(args[0] instanceof RefundLog)) {
+            throw new IllegalArgumentException("需要传入有效的参数");
+        }
+        RefundLog refundLog = (RefundLog) args[0];
+        return Map.of(
+                "character_string3", refundLog.getRefundId(),
+                "phone_number1", StpUtil.getSession().getString("mobilePhone"),
+                "amount2", refundLog.getRefund() / 100 + "元",
+                "time4", refundLog.getCreateTime().format(formatter),
+                "thing5", KymCache.INSTANCE.getUserStationName(refundLog.getUserId())
+        );
+    }
+}

+ 26 - 0
car-wash-service/src/main/java/com/kym/service/wechat/impl/RefundSuccessParamBuilder.java

@@ -0,0 +1,26 @@
+package com.kym.service.wechat.impl;
+
+import com.kym.entity.RefundLog;
+import com.kym.service.cache.KymCache;
+import com.kym.service.wechat.TemplateParamBuilder;
+
+import java.util.Map;
+
+/**
+ * 退款成功消息模板参数构建器
+ */
+public class RefundSuccessParamBuilder implements TemplateParamBuilder {
+    @Override
+    public Map<String, String> buildParams(Object... args) {
+        if (args.length == 0 || !(args[0] instanceof RefundLog)) {
+            throw new IllegalArgumentException("需要传入有效的参数");
+        }
+        RefundLog refundLog = (RefundLog) args[0];
+        return Map.of(
+                "amount1", refundLog.getRefund() / 100 + "元",
+                "amount2", (int) args[1] / 100 + "元",
+                "time6", refundLog.getSuccessTime().format(formatter),
+                "thing7", KymCache.INSTANCE.getUserStationName(refundLog.getUserId())
+        );
+    }
+}