From 70b8b5feba16d3ef11441c3ee9878420df3fdf37 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Tue, 25 Mar 2025 19:23:19 +0800
Subject: [PATCH] perf(mall): 移除会员利润计算中的异步执行
---
src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java | 41 ++++++++++++++++++++++++-----------------
1 files changed, 24 insertions(+), 17 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 c773cc1..f68e297 100644
--- a/src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java
+++ b/src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java
@@ -1,40 +1,33 @@
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;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
-import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import org.dom4j.io.SAXReader;
-
-import javax.servlet.http.HttpServletRequest;
-import java.io.*;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.Arrays;
-import java.util.HashMap;
import org.dom4j.Document;
import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.client.RestTemplate;
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.InputStream;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
import java.util.*;
-import java.util.concurrent.TimeUnit;
/**
* <pre>
@@ -106,7 +99,7 @@
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")){
+ if(map.containsKey("EventKey") && ObjectUtil.isNotEmpty(map.get("EventKey"))){
/**
* 扫带参数二维码
*/
@@ -129,9 +122,19 @@
log.info("取消关注事件:toUserName{}、fromUserName{}", toUserName, fromUserName);
//取消关注则退出商城
MallMember mallMember = mallMemberMapper.selectMemberByOpenId(fromUserName);
+ mallMember.setSubStatus(MallMember.SUB_STATUS_DISABLED);
+ mallMemberMapper.updateById(mallMember);
if(ObjectUtil.isNotEmpty(mallMember)){
+ String redisKey = AppContants.XCX_LOGIN_PREFIX + mallMember.getId();
+ String existToken = redisUtils.getString(redisKey);
+ if (StrUtil.isNotBlank(existToken)) {
+ Object o = redisUtils.get(existToken);
+ if (ObjectUtil.isNotEmpty(o)) {
+ redisUtils.del(existToken);
+ }
+ }
+ redisUtils.del(existToken);
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);
@@ -142,8 +145,9 @@
*/
String eventKey = map.get("EventKey");
if(StrUtil.isNotEmpty(eventKey)){
- String[] eventKeyStr = StrUtil.split(eventKey, "_");
- stringBuffer.append(eventKeyStr[1]);
+// String[] eventKeyStr = StrUtil.split(eventKey, "_");
+// stringBuffer.append(eventKeyStr[1]);
+ stringBuffer.append(eventKey);
stringBuffer.append("@");
stringBuffer.append(fromUserName);
agentProducer.sendMemberSubScanMsg(stringBuffer.toString());
@@ -356,6 +360,8 @@
// 这里参数的顺序要按照 key 值 ASCII 码升序排序
String s = "jsapi_ticket=" + ticket + "&noncestr=" + nocestr
+ "×tamp=" + timestamp + "&url=" + url;
+
+ log.info("s:" + s);
return SHA1(s);
}
//
@@ -398,6 +404,7 @@
String signature = createSignature(nonceStr, ticket, timestamp, url);
Map<String, Object> map = new HashMap<>(16);
+ map.put("ticket", ticket);
map.put("timestamp", timestamp);
map.put("nonceStr", nonceStr);
map.put("signature", signature);
--
Gitblit v1.9.1