From 995b665ae47a4d53cc3c30751b110572ae27ee5c Mon Sep 17 00:00:00 2001 From: xuyang <748613696@qq.com> Date: Tue, 12 Sep 2023 19:22:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=B6=88=E6=81=AF=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=AF=B9=E5=A4=96=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../njcn/user/api/AppInfoSetFeignClient.java | 24 ++++++++++ .../AppInfoSetFeignClientFallbackFactory.java | 47 +++++++++++++++++++ .../controller/app/AppInfoSetController.java | 12 +++++ .../njcn/user/service/IAppInfoSetService.java | 9 ++++ .../service/impl/AppInfoSetServiceImpl.java | 7 +++ 5 files changed, 99 insertions(+) create mode 100644 pqs-user/user-api/src/main/java/com/njcn/user/api/AppInfoSetFeignClient.java create mode 100644 pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/AppInfoSetFeignClientFallbackFactory.java diff --git a/pqs-user/user-api/src/main/java/com/njcn/user/api/AppInfoSetFeignClient.java b/pqs-user/user-api/src/main/java/com/njcn/user/api/AppInfoSetFeignClient.java new file mode 100644 index 000000000..ba202f3eb --- /dev/null +++ b/pqs-user/user-api/src/main/java/com/njcn/user/api/AppInfoSetFeignClient.java @@ -0,0 +1,24 @@ +package com.njcn.user.api; + +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.user.api.fallback.AppInfoSetFeignClientFallbackFactory; +import com.njcn.user.pojo.po.app.AppInfoSet; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + * @author xuyang + * @version 1.0.0 + * @date 2023年09月12日 19:11 + */ +@FeignClient(value = ServerInfo.USER,path = "/appInfoSet",fallbackFactory = AppInfoSetFeignClientFallbackFactory.class,contextId = "appInfoSet") +public interface AppInfoSetFeignClient { + + @PostMapping("/getListById") + HttpResult> getListById(@RequestBody List list); + +} diff --git a/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/AppInfoSetFeignClientFallbackFactory.java b/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/AppInfoSetFeignClientFallbackFactory.java new file mode 100644 index 000000000..276eda07e --- /dev/null +++ b/pqs-user/user-api/src/main/java/com/njcn/user/api/fallback/AppInfoSetFeignClientFallbackFactory.java @@ -0,0 +1,47 @@ +package com.njcn.user.api.fallback; + +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.user.api.AppInfoSetFeignClient; +import com.njcn.user.pojo.po.app.AppInfoSet; +import com.njcn.user.utils.UserEnumUtil; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2021年08月24日 10:21 + */ +@Slf4j +@Component +public class AppInfoSetFeignClientFallbackFactory implements FallbackFactory { + + + /** + * 输出远程请求接口异常日志 + * @param cause RPC请求异常 + */ + @Override + public AppInfoSetFeignClient create(Throwable cause) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if(cause.getCause() instanceof BusinessException){ + BusinessException businessException = (BusinessException) cause.getCause(); + exceptionEnum = UserEnumUtil.getExceptionEnum(businessException.getResult()); + } + Enum finalExceptionEnum = exceptionEnum; + return new AppInfoSetFeignClient() { + @Override + public HttpResult> getListById(List list) { + log.error("{}异常,降级处理,异常为:{}","根据用户id查询消息配置信息",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + }; + } +} diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/app/AppInfoSetController.java b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/app/AppInfoSetController.java index 73b5daf16..97f41bd49 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/app/AppInfoSetController.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/app/AppInfoSetController.java @@ -22,6 +22,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; +import java.util.List; + /** *

* 前端控制器 @@ -69,5 +71,15 @@ public class AppInfoSetController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getListById") + @ApiOperation("根据用户id查询消息配置信息") + @ApiImplicitParam(name = "list", value = "用户集合", required = true) + public HttpResult> getListById(@RequestBody List list){ + String methodDescribe = getMethodDescribe("getListById"); + List result = appInfoSetService.getListById(list); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + } diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/service/IAppInfoSetService.java b/pqs-user/user-boot/src/main/java/com/njcn/user/service/IAppInfoSetService.java index 803f14151..00b02a85e 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/service/IAppInfoSetService.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/service/IAppInfoSetService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.user.pojo.param.AppInfoSetParam; import com.njcn.user.pojo.po.app.AppInfoSet; +import java.util.List; + /** *

* 服务类 @@ -18,4 +20,11 @@ public interface IAppInfoSetService extends IService { */ void updateAppInfo(AppInfoSetParam param); + /** + * 根据用户集合查询数据 + * @param list + * @return + */ + List getListById(List list); + } diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/AppInfoSetServiceImpl.java b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/AppInfoSetServiceImpl.java index 58152417f..a12800d56 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/AppInfoSetServiceImpl.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/AppInfoSetServiceImpl.java @@ -9,6 +9,8 @@ import com.njcn.web.utils.RequestUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -27,4 +29,9 @@ public class AppInfoSetServiceImpl extends ServiceImpl getListById(List list) { + return this.lambdaQuery().in(AppInfoSet::getUserId,list).list(); + } }