From cc9ce86cc24c413c9cbd303b8bb4fd9f5ec5a30f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 28 Jul 2023 10:04:53 +0800
Subject: [PATCH] 赠送积分更新状态

---
 src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java |   39 +++++++++++++++++++++++++++++++--------
 1 files changed, 31 insertions(+), 8 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java b/src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java
index 047db75..c773cc1 100644
--- a/src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java
+++ b/src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java
@@ -1,7 +1,11 @@
 package cc.mrbird.febs.pay.util;
 
+import cc.mrbird.febs.common.utils.AppContants;
+import cc.mrbird.febs.common.utils.LoginUserUtil;
 import cc.mrbird.febs.common.utils.MallUtils;
 import cc.mrbird.febs.common.utils.RedisUtils;
+import cc.mrbird.febs.mall.entity.MallMember;
+import cc.mrbird.febs.mall.mapper.MallMemberMapper;
 import cc.mrbird.febs.rabbit.producter.AgentProducer;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.text.StrFormatter;
@@ -50,6 +54,10 @@
     @Autowired
     RestTemplate restTemplate;
 
+
+    @Autowired
+    MallMemberMapper mallMemberMapper;
+
     private static Logger log = LoggerFactory.getLogger(WechatEventUtil.class);
 
     /**
@@ -95,7 +103,7 @@
         log.info("事件处理:event:{}、msgType:{}、toUserName:{}、fromUserName:{}", eventType, msgType, toUserName, fromUserName);
         if ("event".equals(msgType)) {
             if ("subscribe".equals(eventType)) {
-                result = imgTextMsg(toUserName, fromUserName, "欢迎光临", "欢迎光临【药王谷铺子】,点击左下角【药王谷铺子】-【商城】,进入商城。", "图片地址", "点击后跳转的路径");
+                result = imgTextMsg(toUserName, fromUserName, "欢迎光临", "欢迎光临【药王谷铺子】,点击左下角【药王谷铺子】-【商城】,进入商城。", "https://excoin.oss-cn-hangzhou.aliyuncs.com/uploadeFile/1690447963307584cd27ac623427f8c07ed1d3bbe4279.png", "http://ywgouth.meiao.biz/");
                 log.info("新增关注事件:toUserName{}、fromUserName{}", toUserName, fromUserName);
                 StringBuffer stringBuffer = new StringBuffer();
                 if(map.containsKey("EventKey")){
@@ -104,18 +112,27 @@
                      */
                     String eventKey = map.get("EventKey");
                     if(StrUtil.isNotEmpty(eventKey)){
-                        stringBuffer.append(eventKey);
-                        stringBuffer.append("-");
+
+                        String[] eventKeyStr = StrUtil.split(eventKey, "_");
+                        stringBuffer.append(eventKeyStr[1]);
+                        stringBuffer.append("@");
                         stringBuffer.append(fromUserName);
                         agentProducer.sendMemberSubScanMsg(stringBuffer.toString());
                     }
+                }else{
+                    /**
+                     * 普通关注事件
+                     */
+                    agentProducer.sendMemberSubMsg(fromUserName);
                 }
-                /**
-                 * 普通关注事件
-                 */
-                agentProducer.sendMemberSubMsg(fromUserName);
             } else if ("unsubscribe".equals(eventType)) {
                 log.info("取消关注事件:toUserName{}、fromUserName{}", toUserName, fromUserName);
+                //取消关注则退出商城
+                MallMember mallMember = mallMemberMapper.selectMemberByOpenId(fromUserName);
+                if(ObjectUtil.isNotEmpty(mallMember)){
+                    redisUtils.del(AppContants.XCX_LOGIN_PREFIX + mallMember.getId());
+                    redisUtils.del(AppContants.XCX_LOGIN_PHONE_PREFIX + mallMember.getId());
+                }
             }else if ("SCAN".equals(eventType)) {
                 log.info("扫码关注事件:toUserName{}、fromUserName{}", toUserName, fromUserName);
                 if(map.containsKey("EventKey")){
@@ -125,12 +142,18 @@
                      */
                     String eventKey = map.get("EventKey");
                     if(StrUtil.isNotEmpty(eventKey)){
-                        stringBuffer.append(eventKey);
+                        String[] eventKeyStr = StrUtil.split(eventKey, "_");
+                        stringBuffer.append(eventKeyStr[1]);
                         stringBuffer.append("@");
                         stringBuffer.append(fromUserName);
                         agentProducer.sendMemberSubScanMsg(stringBuffer.toString());
                     }
                 }
+            }else if ("VIEW".equals(eventType)) {
+                /**
+                 * 普通关注事件
+                 */
+                agentProducer.sendMemberSubMsg(fromUserName);
             }
         }
         return result;

--
Gitblit v1.9.1