Bladeren bron

增加异常返回

xueyiming 9 maanden geleden
bovenliggende
commit
60b7981f15

+ 14 - 2
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/mq/MessageCallbackProducer.java

@@ -4,7 +4,10 @@ import com.alibaba.fastjson.JSON;
 import com.aliyun.openservices.ons.api.Message;
 import com.aliyun.openservices.ons.api.SendResult;
 import com.aliyun.openservices.ons.api.bean.ProducerBean;
+import com.tzld.longarticle.recommend.server.common.response.CommonResponse;
+import com.tzld.longarticle.recommend.server.common.response.ExceptionCodeEnum;
 import com.tzld.longarticle.recommend.server.model.param.CallbackParam;
+import com.tzld.longarticle.recommend.server.service.exterior.AccessTokenService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -25,7 +28,16 @@ public class MessageCallbackProducer {
     @Autowired
     private ProducerBean producer;
 
-    public void sendMessage(CallbackParam param) {
+    @Autowired
+    private AccessTokenService accessTokenService;
+
+    public CommonResponse<Void> sendMessage(CallbackParam param) {
+        if (param == null || param.getAccessToken() == null) {
+            return CommonResponse.create(ExceptionCodeEnum.PARAM_ERROR, "参数错误");
+        }
+        if (!accessTokenService.validateAccessToken(param.getAccessToken())) {
+            return CommonResponse.create(ExceptionCodeEnum.PARAM_ERROR, "accessToken错误或者已失效");
+        }
         Message message = new Message();
         message.setTopic(TOPIC);
         message.setTag(TAG);
@@ -38,7 +50,7 @@ public class MessageCallbackProducer {
             //重试
             retry(message);
         }
-
+        return CommonResponse.success();
     }
 
     private void retry(Message message) {

+ 2 - 1
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/exterior/AccessTokenService.java

@@ -1,12 +1,13 @@
 package com.tzld.longarticle.recommend.server.service.exterior;
 
 
+import com.tzld.longarticle.recommend.server.common.response.CommonResponse;
 import com.tzld.longarticle.recommend.server.model.param.AccessTokenParam;
 import com.tzld.longarticle.recommend.server.model.vo.AccessTokenVo;
 
 public interface AccessTokenService {
 
-    AccessTokenVo getAccessToken(AccessTokenParam param);
+    CommonResponse<AccessTokenVo> getAccessToken(AccessTokenParam param);
 
     boolean validateAccessToken(String accessToken);
 }

+ 2 - 1
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/exterior/ThirdPartyService.java

@@ -1,5 +1,6 @@
 package com.tzld.longarticle.recommend.server.service.exterior;
 
+import com.tzld.longarticle.recommend.server.common.response.CommonResponse;
 import com.tzld.longarticle.recommend.server.model.param.CallbackParam;
 import com.tzld.longarticle.recommend.server.model.param.PushMessageParam;
 import com.tzld.longarticle.recommend.server.model.vo.PushMessageVo;
@@ -9,5 +10,5 @@ import java.util.List;
 
 @Service
 public interface ThirdPartyService {
-    List<PushMessageVo> getPushMessage(PushMessageParam param);
+    CommonResponse<List<PushMessageVo>> getPushMessage(PushMessageParam param);
 }

+ 8 - 4
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/exterior/impl/AccessTokenServiceImpl.java

@@ -2,6 +2,8 @@ package com.tzld.longarticle.recommend.server.service.exterior.impl;
 
 import cn.hutool.core.lang.UUID;
 import com.tzld.longarticle.recommend.server.common.enums.SecretEnum;
+import com.tzld.longarticle.recommend.server.common.response.CommonResponse;
+import com.tzld.longarticle.recommend.server.common.response.ExceptionCodeEnum;
 import com.tzld.longarticle.recommend.server.model.param.AccessTokenParam;
 import com.tzld.longarticle.recommend.server.model.vo.AccessTokenVo;
 import com.tzld.longarticle.recommend.server.service.exterior.AccessTokenService;
@@ -13,6 +15,8 @@ import org.springframework.stereotype.Service;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
+import static com.tzld.longarticle.recommend.server.common.response.ErrcodeNamespace.NS_GENERAL;
+
 @Service
 public class AccessTokenServiceImpl implements AccessTokenService {
 
@@ -22,12 +26,12 @@ public class AccessTokenServiceImpl implements AccessTokenService {
     private RedisTemplate<String, Object> redisTemplate;
 
     @Override
-    public AccessTokenVo getAccessToken(AccessTokenParam param) throws RuntimeException {
+    public CommonResponse<AccessTokenVo> getAccessToken(AccessTokenParam param) throws RuntimeException {
         if (param == null || StringUtils.isEmpty(param.getSecret())) {
-            throw new RuntimeException("参数错误");
+            return CommonResponse.create(ExceptionCodeEnum.PARAM_ERROR,"未找到 secret");
         }
         if (!SecretEnum.contains(param.getSecret())) {
-            throw new RuntimeException("secret 不存在");
+            return CommonResponse.create(ExceptionCodeEnum.PARAM_ERROR,"secret 不存在");
         }
         AccessTokenVo accessTokenVo = new AccessTokenVo();
         String accessToken = (String) redisTemplate.opsForValue().get(param.getSecret());
@@ -53,7 +57,7 @@ public class AccessTokenServiceImpl implements AccessTokenService {
             accessTokenVo.setAccessToken(newAccessToken);
             accessTokenVo.setExpires(expire);
         }
-        return accessTokenVo;
+        return CommonResponse.success(accessTokenVo);
     }
 
     @Override

+ 7 - 5
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/exterior/impl/ThirdPartyServiceImpl.java

@@ -1,6 +1,8 @@
 package com.tzld.longarticle.recommend.server.service.exterior.impl;
 
 import com.tzld.longarticle.recommend.server.common.enums.cgi.ReplyStrategyServiceEnum;
+import com.tzld.longarticle.recommend.server.common.response.CommonResponse;
+import com.tzld.longarticle.recommend.server.common.response.ExceptionCodeEnum;
 import com.tzld.longarticle.recommend.server.model.bo.MiniData;
 import com.tzld.longarticle.recommend.server.model.cgi.BucketDataParam;
 import com.tzld.longarticle.recommend.server.model.cgi.GroupData;
@@ -43,18 +45,18 @@ public class ThirdPartyServiceImpl implements ThirdPartyService {
 
 
     @Override
-    public List<PushMessageVo> getPushMessage(PushMessageParam param) {
+    public CommonResponse<List<PushMessageVo>> getPushMessage(PushMessageParam param) {
         if (param == null || StringUtils.isEmpty(param.getGhId()) || StringUtils.isEmpty(param.getAccessToken())) {
-            throw new RuntimeException("参数错误");
+            return CommonResponse.create(ExceptionCodeEnum.PARAM_ERROR,"参数错误");
         }
         if (!accessTokenService.validateAccessToken(param.getAccessToken())) {
-            throw new RuntimeException("accessToken错误");
+            return CommonResponse.create(ExceptionCodeEnum.PARAM_ERROR,"accessToken错误或者已失效");
         }
         List<PushMessageVo> pushMessageVoList = new ArrayList<>();
         ReplyBucketData replyBucketData = getPushMessageData(param);
         if (replyBucketData == null) {
             log.error("获取推送策略数据失败");
-            return pushMessageVoList;
+            return CommonResponse.create(ExceptionCodeEnum.PARAM_ERROR,"系统异常,获取失败");
         }
         List<GroupData> groupList = replyBucketData.getGroupList();
         for (GroupData groupData : groupList) {
@@ -72,7 +74,7 @@ public class ThirdPartyServiceImpl implements ThirdPartyService {
             pushMessageVo.setComponents(components);
             pushMessageVoList.add(pushMessageVo);
         }
-        return pushMessageVoList;
+        return CommonResponse.success(pushMessageVoList);
     }
 
     private ReplyBucketData getPushMessageData(PushMessageParam param) {

+ 3 - 4
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/web/ThirdPartyController.java

@@ -32,17 +32,16 @@ public class ThirdPartyController {
 
     @PostMapping("/accessToken/get")
     public CommonResponse<AccessTokenVo> getAccessToken(@RequestBody AccessTokenParam param) {
-        return CommonResponse.success(accessTokenService.getAccessToken(param));
+        return accessTokenService.getAccessToken(param);
     }
 
     @PostMapping("/pushMessage/get")
     public CommonResponse<List<PushMessageVo>> getPushMessage(@RequestBody PushMessageParam param) {
-        return CommonResponse.success(thirdPartyService.getPushMessage(param));
+        return thirdPartyService.getPushMessage(param);
     }
 
     @PostMapping("/pushMessage/callback")
     public CommonResponse<Void> pushMessageCallback(@RequestBody CallbackParam param) {
-        messageCallbackProducer.sendMessage(param);
-        return CommonResponse.success();
+        return messageCallbackProducer.sendMessage(param);
     }
 }