From bd45741b7d654693d449078dc35406480a18d2fe Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 22 二月 2022 17:07:36 +0800
Subject: [PATCH] 优化公告发送太慢问题 加入 并发处理
---
service-api/src/main/java/com/java110/api/smo/wechatGateway/impl/WechatGatewaySMOImpl.java | 42 ++++++++++++++++++++++++++++++++++++------
1 files changed, 36 insertions(+), 6 deletions(-)
diff --git a/service-api/src/main/java/com/java110/api/smo/wechatGateway/impl/WechatGatewaySMOImpl.java b/service-api/src/main/java/com/java110/api/smo/wechatGateway/impl/WechatGatewaySMOImpl.java
index 5514aef..c06c55a 100644
--- a/service-api/src/main/java/com/java110/api/smo/wechatGateway/impl/WechatGatewaySMOImpl.java
+++ b/service-api/src/main/java/com/java110/api/smo/wechatGateway/impl/WechatGatewaySMOImpl.java
@@ -2,32 +2,33 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.java110.api.properties.WechatAuthProperties;
import com.java110.api.smo.DefaultAbstractComponentSMO;
-import com.java110.core.base.smo.front.AbstractFrontServiceSMO;
+import com.java110.api.smo.wechatGateway.IWechatGatewaySMO;
import com.java110.core.context.IPageData;
+import com.java110.core.factory.GenerateCodeFactory;
import com.java110.core.factory.WechatFactory;
+import com.java110.core.log.LoggerFactory;
import com.java110.dto.owner.OwnerAppUserDto;
import com.java110.dto.smallWeChat.SmallWeChatDto;
import com.java110.dto.smallWechatAttr.SmallWechatAttrDto;
-import com.java110.api.properties.WechatAuthProperties;
-import com.java110.api.smo.wechatGateway.IWechatGatewaySMO;
+import com.java110.dto.wechatSubscribe.WechatSubscribeDto;
+import com.java110.intf.user.IWechatSubscribeV1InnerServiceSMO;
+import com.java110.po.wechatSubscribe.WechatSubscribePo;
import com.java110.utils.cache.MappingCache;
import com.java110.utils.constant.ServiceCodeConstant;
import com.java110.utils.constant.ServiceCodeSmallWechatAttrConstant;
-import com.java110.utils.constant.ServiceConstant;
import com.java110.utils.constant.WechatConstant;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.StringUtil;
import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
-
import java.util.List;
@@ -47,6 +48,9 @@
@Autowired
private WechatAuthProperties wechatAuthProperties;
+
+ @Autowired
+ private IWechatSubscribeV1InnerServiceSMO wechatSubscribeV1InnerServiceSMOImpl;
@Override
public ResponseEntity<String> gateway(IPageData pd, String wId) throws Exception {
@@ -89,6 +93,8 @@
responseStr = WechatFactory.formatText(toUserName, fromUserName, noBindOwnerResponseMessage);
return new ResponseEntity<String>(responseStr, HttpStatus.OK);
}
+ //淇濆瓨鍒板叧娉ㄨ〃
+ saveWechatSubscribe(WechatFactory.getAppId(wId), fromUserName);
if (WechatConstant.MSG_TYPE_TEXT.equals(msgType)) {
responseStr = textResponseHandler(fromUserName, toUserName, keyword);
@@ -99,6 +105,7 @@
}
return new ResponseEntity<>(responseStr, HttpStatus.OK);
}
+
@Override
public SmallWeChatDto getSmallWechat(IPageData pd, SmallWeChatDto smallWeChatDto) {
@@ -228,4 +235,27 @@
return true;
}
+
+ /**
+ * 鏍¢獙鏄惁鍦ㄥ叧娉ㄨ〃閲�
+ *
+ * @param appId
+ * @param fromUserName
+ */
+ private void saveWechatSubscribe(String appId, String fromUserName) {
+ WechatSubscribeDto wechatSubscribeDto = new WechatSubscribeDto();
+ wechatSubscribeDto.setOpenId(fromUserName);
+ wechatSubscribeDto.setOpenId(appId);
+ List<WechatSubscribeDto> wechatSubscribeDtos = wechatSubscribeV1InnerServiceSMOImpl.queryWechatSubscribes(wechatSubscribeDto);
+ if (wechatSubscribeDtos != null && wechatSubscribeDtos.size() > 0) {
+ return;
+ }
+ WechatSubscribePo wechatSubscribePo = new WechatSubscribePo();
+ wechatSubscribePo.setAppId(appId);
+ wechatSubscribePo.setOpenId(fromUserName);
+ wechatSubscribePo.setSubId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
+ wechatSubscribePo.setOpenType(WechatSubscribeDto.OPEN_TYPE_WECHAT);
+ wechatSubscribeV1InnerServiceSMOImpl.saveWechatSubscribe(wechatSubscribePo);
+ }
+
}
--
Gitblit v1.8.0