diff --git a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java index e1b48a9186..65b73cdad3 100644 --- a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java +++ b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java @@ -3,14 +3,14 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.result.CorsConfigResultDTO; -import com.epmet.feign.fallback.EpmetAdminOpenFeignClientFallback; +import com.epmet.feign.fallback.EpmetAdminOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import java.util.List; -@FeignClient(name = ServiceConstant.EPMET_ADMIN_SERVER, fallback = EpmetAdminOpenFeignClientFallback.class) -//@FeignClient(name = ServiceConstant.EPMET_ADMIN_SERVER, fallback = EpmetAdminOpenFeignClientFallback.class, url = "localhost:8082") +@FeignClient(name = ServiceConstant.EPMET_ADMIN_SERVER, fallbackFactory = EpmetAdminOpenFeignClientFallbackFactory.class) +//@FeignClient(name = ServiceConstant.EPMET_ADMIN_SERVER, fallbackFactory = EpmetAdminOpenFeignClientFallbackFactory.class, url = "localhost:8082") public interface EpmetAdminOpenFeignClient { /** diff --git a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java index 72edce3446..69d8a45bbc 100644 --- a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java +++ b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java @@ -9,7 +9,7 @@ import org.springframework.stereotype.Component; import java.util.List; -@Component +//@Component public class EpmetAdminOpenFeignClientFallback implements EpmetAdminOpenFeignClient { @Override public Result> list() { diff --git a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallbackFactory.java b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..2cc1398135 --- /dev/null +++ b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.EpmetAdminOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class EpmetAdminOpenFeignClientFallbackFactory implements FallbackFactory { + + private EpmetAdminOpenFeignClientFallback fallback = new EpmetAdminOpenFeignClientFallback(); + + @Override + public EpmetAdminOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-admin/epmet-admin-server/src/main/java/com/epmet/AdminApplication.java b/epmet-admin/epmet-admin-server/src/main/java/com/epmet/AdminApplication.java index ea0ca31624..ea570175ef 100644 --- a/epmet-admin/epmet-admin-server/src/main/java/com/epmet/AdminApplication.java +++ b/epmet-admin/epmet-admin-server/src/main/java/com/epmet/AdminApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class AdminApplication { public static void main(String[] args) { diff --git a/epmet-auth/src/main/java/com/epmet/AuthApplication.java b/epmet-auth/src/main/java/com/epmet/AuthApplication.java index 51635f759e..2c14a7792b 100644 --- a/epmet-auth/src/main/java/com/epmet/AuthApplication.java +++ b/epmet-auth/src/main/java/com/epmet/AuthApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan // 开启Servlet容器扫描,扫描@WebFilter等注解 public class AuthApplication { public static void main(String[] args) { diff --git a/epmet-auth/src/main/java/com/epmet/controller/AuthController.java b/epmet-auth/src/main/java/com/epmet/controller/AuthController.java index 50bd9fc267..52f06c9c25 100644 --- a/epmet-auth/src/main/java/com/epmet/controller/AuthController.java +++ b/epmet-auth/src/main/java/com/epmet/controller/AuthController.java @@ -15,7 +15,9 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.AuthorizationDTO; +import com.epmet.dto.CustomerStaffDTO; import com.epmet.dto.LoginDTO; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.service.AuthService; import com.epmet.service.CaptchaService; import com.epmet.service.ResourceService; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ThreadLocalInitAspect.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ThreadLocalInitAspect.java index 2e070b1817..7ac89e63fc 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ThreadLocalInitAspect.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/ThreadLocalInitAspect.java @@ -1,45 +1,45 @@ -/** - * Copyright (c) 2018 人人开源 All rights reserved. - *

- * https://www.renren.io - *

- * 版权所有,侵权必究! - */ - -package com.epmet.commons.tools.aspect; - -import com.epmet.commons.tools.constant.ThreadLocalConstant; -import com.epmet.commons.tools.dto.form.LoginUserInfoResultDTO; -import com.epmet.commons.tools.exception.ExceptionUtils; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Before; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; - -/** - * 每次请求,清理ThreadLocal线程中的变量 - * @Author wxz - * @Description - * @Date 2020/4/23 16:16 - **/ -@Aspect -@Component -@Order(1) -public class ThreadLocalInitAspect { - - private static final Logger log = LoggerFactory.getLogger(ThreadLocalInitAspect.class); - - @Before(value = "execution(* com.epmet.controller.*Controller*.*(..)) ") - public void before(JoinPoint point) throws Throwable { - // 清理权限过滤中的变量残留 - try { - ThreadLocalConstant.sqlFilter.remove(); - ThreadLocalConstant.requirePermissionTl.remove(); - } catch (Exception e) { - log.error("清理sqlFilter缓存失败:{}", ExceptionUtils.getErrorStackTrace(e)); - } - } -} +///** +// * Copyright (c) 2018 人人开源 All rights reserved. +// *

+// * https://www.renren.io +// *

+// * 版权所有,侵权必究! +// */ +// +//package com.epmet.commons.tools.aspect; +// +//import com.epmet.commons.tools.constant.ThreadLocalConstant; +//import com.epmet.commons.tools.dto.form.LoginUserInfoResultDTO; +//import com.epmet.commons.tools.exception.ExceptionUtils; +//import org.aspectj.lang.JoinPoint; +//import org.aspectj.lang.annotation.Aspect; +//import org.aspectj.lang.annotation.Before; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.core.annotation.Order; +//import org.springframework.stereotype.Component; +// +///** +// * 每次请求,清理ThreadLocal线程中的变量(已废弃,改用GlobalFilter) +// * @Author wxz +// * @Description +// * @Date 2020/4/23 16:16 +// **/ +//@Aspect +//@Component +//@Order(1) +//public class ThreadLocalInitAspect { +// +// private static final Logger log = LoggerFactory.getLogger(ThreadLocalInitAspect.class); +// +// @Before(value = "execution(* com.epmet.controller.*Controller*.*(..)) ") +// public void before(JoinPoint point) throws Throwable { +// // 清理权限过滤中的变量残留 +// try { +// ThreadLocalConstant.sqlFilter.remove(); +// ThreadLocalConstant.requirePermissionTl.remove(); +// } catch (Exception e) { +// log.error("清理sqlFilter缓存失败:{}", ExceptionUtils.getErrorStackTrace(e)); +// } +// } +//} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java index 8c8fd0dab3..831913de5e 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java @@ -126,6 +126,12 @@ public enum RequirePermissionEnum { WORK_PARTY_VOICE_EDIT("work_party_voice_edit", "党建声音:重新编辑", ""), WORK_PARTY_VOICE_OFFLINE("work_party_voice_offline", "党建声音:下线文章", ""), WORK_PARTY_VOICE_OPERATION_LIST("work_party_voice_operation_list","党建声音:查看文章操作记录",""), + /** + * 党务工作-专题管理 + */ + WORK_SPECIAL_PROJECT_ENTRANCE("work_special_project_entrance","专题管理:功能入口图标","专题管理:图标入口"), + WORK_SPECIAL_PROJECT_ADD("work_special_project_add","专题管理:新增专题","专题管理:新增专题"), + WORK_SPECIAL_PROJECT_DEL("work_special_project_del","专题管理:移除专题","专题管理:移除专题"), /** * 基层治理-支部管理 diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index 43c5468cc3..3a213b5191 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -138,7 +138,9 @@ public enum EpmetErrorCode { REPEATED_SUBMIT_ERROR(8804, "请勿重复提交"), CUSTOMER_VALIDATE_ERROR(8805, "内部数据校验异常"), CATEGORY_IS_NULL(8806, "请设置分类"), - + EXISTED_SPECIAL_PROJECT(8807, "已经添加过此专题"), + CAN_NOT_DEL_SPECIAL_PROJECT(8808, "您没有权限删除此专题"), + TAG_NOT_EXIST(8809,"标签不存在"), //公众号 865..开头的码 PUBLIC_NOT_EXISTS(8651,"手机号未注册,请先完成信息注册"), diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/GlobalFilter.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/GlobalFilter.java new file mode 100644 index 0000000000..fe3dc8a3e9 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/GlobalFilter.java @@ -0,0 +1,30 @@ +package com.epmet.commons.tools.filter; + +import com.epmet.commons.tools.constant.ThreadLocalConstant; + +import javax.servlet.*; +import javax.servlet.annotation.WebFilter; +import java.io.IOException; + +/** + * @Description 全局过滤器,可在请求结束的时候清除线程变量残留 + * @author wxz + * @date 2021.07.19 10:19:24 +*/ +@WebFilter(value = "/*") +public class GlobalFilter implements Filter { + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + try { + filterChain.doFilter(servletRequest, servletResponse); + } catch (Throwable e) { + throw e; + } finally { + // 清除线程变量残留 + ThreadLocalConstant.sqlFilter.remove(); + ThreadLocalConstant.requirePermissionTl.remove(); + ThreadLocalConstant.requestParam.remove(); + } + } +} \ No newline at end of file diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java index f6d39b325d..ffadf837b3 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java @@ -205,7 +205,7 @@ public class LogMsgSendFilter extends LevelFilter { return slashMatcher.start(); } catch (Exception e) { logger.warn("getCharacterPosition no matche", e); - return 0; + return string.length(); } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 6f5e7bf1f3..6d5a5f0cfb 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -228,7 +228,11 @@ public class RedisKeys { * @return */ public static String getCustomerReTagKey(String customerId,String tagId) { - return rootPrefix.concat("tags:customer:relationTag:").concat(customerId).concat(StrConstant.COLON).concat(tagId); + String reTagKey = rootPrefix.concat("tags:customer:relationTag:").concat(customerId); + if (StringUtils.isNotBlank(tagId)){ + reTagKey = reTagKey.concat(StrConstant.COLON).concat(tagId); + } + return reTagKey; } /** @@ -247,7 +251,11 @@ public class RedisKeys { * @return */ public static String getGridReTagKey(String gridId,String tagId) { - return rootPrefix.concat("tags:grid:relationTag:").concat(gridId).concat(StrConstant.COLON).concat(tagId); + String gridReTagKey = rootPrefix.concat("tags:grid:relationTag:").concat(gridId); + if (StringUtils.isNotBlank(tagId)){ + gridReTagKey = gridReTagKey.concat(StrConstant.COLON).concat(tagId); + } + return gridReTagKey; } /** diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/config/WebMvcConfig.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/config/WebMvcConfig.java index 549530747b..d1af449333 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/config/WebMvcConfig.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/config/WebMvcConfig.java @@ -66,7 +66,7 @@ public class WebMvcConfig implements WebMvcConfigurer { //日期格式转换 mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - mapper.setDateFormat(new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN_END_WITH_MINUTE)); + mapper.setDateFormat(new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN)); mapper.setTimeZone(TimeZone.getTimeZone("GMT+8")); //Long类型转String类型 diff --git a/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java b/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java index 5c8d111813..5a86194ea7 100644 --- a/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java +++ b/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java @@ -11,6 +11,7 @@ package com.epmet; import com.epmet.commons.tools.aspect.ServletExceptionHandler; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; @@ -25,6 +26,7 @@ import org.springframework.context.annotation.FilterType; @SpringBootApplication() @EnableDiscoveryClient @EnableFeignClients +//@ServletComponentScan @ComponentScan(basePackages = {"com.epmet.*"}, excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {ServletExceptionHandler.class})) public class GatewayApplication { diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffRoleListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffRoleListResultDTO.java new file mode 100644 index 0000000000..24547c5dcc --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffRoleListResultDTO.java @@ -0,0 +1,40 @@ +package com.epmet.dataaggre.dto.epmetuser.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 根据客户Id staffId查询人员在客户下的角色列表-接口返参 + * @Author sun + */ +@Data +public class StaffRoleListResultDTO implements Serializable { + private static final long serialVersionUID = -2049883620062097446L; + + /** + * 客户Id + * */ + private String customerId; + /** + * 员工Id + * */ + private String staffId; + /** + * 员工姓名 + * */ + private String staffName; + /** + * 角色Id + * */ + private String roleId; + /** + * 角色Key + * */ + private String roleKey; + /** + * 角色名称 + * */ + private String roleName; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/StaffAgencyGridListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/StaffAgencyGridListResultDTO.java new file mode 100644 index 0000000000..ec17ca86db --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/StaffAgencyGridListResultDTO.java @@ -0,0 +1,48 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * 专题设置-组织网格切换树结构-接口返参 + * @author sun + */ +@Data +public class StaffAgencyGridListResultDTO implements Serializable { + private static final long serialVersionUID = 1L; + + //机关组织Id + private String agencyId = ""; + //机关组织名称 + private String agencyName = ""; + //机关组织名称 + private Boolean isOpt = true; + //网格:grid;社区级:community, 乡(镇、街道)级:street, 区县级: district, 市级: city 省级:province + private String orgLevel = ""; + //当前组织id的上级id,如果当前是跟组织返回0 + private String pid = ""; + //当前组织id的所有上级id,如果当前是跟组织返回0 + private String pids = ""; + //当前机关的下属网格列表 + private List gridList = new ArrayList<>(); + //当前组织的所有下级组织信息(递归) + private List subAgencyGridList = new ArrayList<>(); + + @Data + public static class GridResultDTO{ + //机关组织Id + private String gridId = ""; + //机关组织名称 + private String gridName = ""; + //网格:grid;社区级:community, 乡(镇、街道)级:street, 区县级: district, 市级: city 省级:province + private String orgLevel = ""; + //当前网格所属的组织id + private String pid = ""; + //当前网格所有上级 + private String pids = ""; + } + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/DataAggregatorApplication.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/DataAggregatorApplication.java index 791cf0b415..5e8d7c4788 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/DataAggregatorApplication.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/DataAggregatorApplication.java @@ -3,12 +3,14 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication(scanBasePackages = {"com.epmet"}, exclude = {DataSourceAutoConfiguration.class}) @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class DataAggregatorApplication { public static void main(String[] args) { SpringApplication.run(DataAggregatorApplication.class, args); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java index 064669c50d..1f044a21e2 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java @@ -14,12 +14,11 @@ import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; import com.epmet.dataaggre.dto.govorg.result.AgencyGridListResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO; +import com.epmet.dataaggre.dto.govorg.result.StaffAgencyGridListResultDTO; import com.epmet.dataaggre.enums.GridMemberDataAnalysisEnums; import com.epmet.dataaggre.service.AggreGridService; import com.epmet.dataaggre.service.govorg.GovOrgService; -import com.epmet.dto.result.PublicAndInternalFileResultDTO; import org.apache.commons.lang3.StringUtils; -import org.apache.xmlbeans.impl.xb.xsdschema.Public; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.PostMapping; @@ -29,7 +28,6 @@ import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; -import java.util.PriorityQueue; /** * @Author zxc @@ -119,4 +117,15 @@ public class GovOrgController { List resultList = aggreGridService.getGridMemberDataAnalysis(gridIds, searchedStaffName, loginUserId, month, sortType.getValue(), pageNo, pageSize); return new Result().ok(resultList); } + + /** + * @Param tokenDto + * @Description 专题设置-组织网格切换树结构 + * @author sun + */ + @PostMapping("staffagencygridlist") + public Result staffAgencyGridList(@LoginUser TokenDto tokenDto) { + return new Result().ok(govOrgService.staffAgencyGridList(tokenDto)); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java index ac0cf9a846..e6435c6507 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java @@ -18,6 +18,7 @@ package com.epmet.dataaggre.dao.epmetuser; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import com.epmet.dataaggre.entity.epmetuser.StaffRoleEntity; import org.apache.ibatis.annotations.Mapper; @@ -40,4 +41,11 @@ public interface StaffRoleDao extends BaseDao { * @author sun */ List staffGridRole(@Param("forms") List forms, @Param("staffName") String staffName); + + /** + * @Description 根据客户Id和staffId查询工作人员拥有的角色列表 + * @Author sun + **/ + List selectStaffRoleList(@Param("customerId") String customerId, @Param("staffId") String staffId); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java index 7d705c2aa3..8287c13882 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java @@ -19,6 +19,7 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO; +import com.epmet.dataaggre.dto.govorg.result.StaffAgencyGridListResultDTO; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -52,4 +53,10 @@ public interface CustomerAgencyDao extends BaseDao { List selectNextAgency(@Param("customerId")String customerId, @Param("pid")String pid); + + /** + * @Author sun + * @Description 递归查询当前组织的直属下级组织列表 + **/ + List selectSubAgencyList(@Param("subAgencyPids") String subAgencyPids); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java index 3fcc8655ed..56d07daafb 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; +import com.epmet.dataaggre.dto.govorg.result.StaffAgencyGridListResultDTO; import com.epmet.dataaggre.entity.govorg.CustomerGridEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -68,4 +69,11 @@ public interface CustomerGridDao extends BaseDao { * @author sun */ List getGridInfoList(@Param("gridIds") List gridIds, @Param("staffId") String staffId); + + /** + * @Author sun + * @Description 查询当前组织下网格列表 + **/ + List getGridListByAgencyId(@Param("agencyId") String agencyId); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java index 233c68d67d..a6757c8cca 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffGridDao.java @@ -19,6 +19,7 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; +import com.epmet.dataaggre.dto.govorg.result.StaffAgencyGridListResultDTO; import com.epmet.dataaggre.entity.govorg.CustomerStaffGridEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,10 @@ public interface CustomerStaffGridDao extends BaseDao { * @author sun */ List selectGridStaffByGridIds(@Param("gridIds") List gridIds); + + /** + * @Description 查询工作人员参与的网格列表信息 + * @author sun + */ + List getStaffGridList(@Param("agencyId") String agencyId, @Param("staffId") String staffId); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 027e36fb8a..10f164c6a9 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -81,4 +81,9 @@ public interface EpmetUserService { */ OpenStaffDetailResultDTO openStaffDetail(OpenStaffDetailFormDTO formDTO); + /** + * @Description 根据客户Id和staffId查询工作人员拥有的角色列表 + * @Author sun + **/ + List getStaffRoleList(String customerId, String userId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 326bb24f20..281f24cc6d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -365,5 +365,14 @@ public class EpmetUserServiceImpl implements EpmetUserService { return resultDTO; } + /** + * @Description 根据客户Id和staffId查询工作人员拥有的角色列表 + * @Author sun + **/ + @Override + public List getStaffRoleList(String customerId, String userId) { + return staffRoleDao.selectStaffRoleList(customerId, userId); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index 8cfd4a2276..2e5422376b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.service.govorg; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; @@ -72,4 +73,12 @@ public interface GovOrgService { * @author sun */ CustomerAgencyDTO gridByAgencyId(String customerId, String staffId); + + /** + * @Param tokenDto + * @Description 专题设置-组织网格切换树结构 + * @author sun + */ + StaffAgencyGridListResultDTO staffAgencyGridList(TokenDto tokenDto); + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index 31b5f9272c..8cfe95113f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -5,12 +5,13 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; -import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.govorg.CustomerAgencyDao; import com.epmet.dataaggre.dao.govorg.CustomerGridDao; import com.epmet.dataaggre.dao.govorg.CustomerStaffAgencyDao; import com.epmet.dataaggre.dao.govorg.CustomerStaffGridDao; +import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO; import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.CustomerStaffAgencyDTO; @@ -285,4 +286,84 @@ public class GovOrgServiceImpl implements GovOrgService { return customerStaffAgencyDao.selectAgencyByStaffId(customerId, staffId); } + /** + * @Param tokenDto + * @Description 专题设置-组织网格切换树结构 + * @author sun + */ + @Override + public StaffAgencyGridListResultDTO staffAgencyGridList(TokenDto tokenDto) { + StaffAgencyGridListResultDTO resultDTO = new StaffAgencyGridListResultDTO(); + //1.查询当前人员所属组织信息 + CustomerAgencyDTO agencyDTO = customerStaffAgencyDao.selectAgencyByStaffId(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == agencyDTO) { + throw new RenException("未查询到当前工作人员所属组织信息"); + } + + //2.获取当前人员工作端角色列表信息 + List roleList = epmetUserService.getStaffRoleList(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (roleList.size() < NumConstant.ONE) { + return resultDTO; + } + + //3.判断是否具有党建负责人或党建宣传员角色 + //机关党建负责人角色 + boolean party = false; + //党建宣传员角色 + boolean gridParty = false; + for (StaffRoleListResultDTO role : roleList) { + if ("party_principals".equals(role.getRoleKey())) { + party = true; + } + if ("grid_party_director".equals(role.getRoleKey())) { + gridParty = true; + } + } + if (!party && !gridParty) { + return resultDTO; + } + + //4.根据不同角色查询不同数据 + if (party) { + //4.1:查询当前机关的网格列表以及所有下级机关的网格列表 + //当前机关下网格列表 + List gridList = customerGridDao.getGridListByAgencyId(agencyDTO.getId()); + resultDTO.setGridList(gridList); + //递归查询当前组织的下级组织以及每个下级组织对应的网格列表 + //根组织pids为空 + List subAgencyGridList = getSubAgencyAndGridList(("".equals(agencyDTO.getPids()) ? "" : agencyDTO.getPids() + ":") + agencyDTO.getId()); + resultDTO.setSubAgencyGridList(subAgencyGridList); + } else if (gridParty) { + resultDTO.setIsOpt(false); + //4.2:查询人员在当前机关下参与的网格列表 + List gridList = customerStaffGridDao.getStaffGridList(agencyDTO.getId(), tokenDto.getUserId()); + resultDTO.setGridList(gridList); + } + + //5.封装数据并返回 + resultDTO.setAgencyId(agencyDTO.getId()); + resultDTO.setAgencyName(agencyDTO.getOrganizationName()); + resultDTO.setOrgLevel(agencyDTO.getLevel()); + resultDTO.setPid(agencyDTO.getPid()); + resultDTO.setPids(("".equals(agencyDTO.getPids()) ? "0" : agencyDTO.getPids())); + + return resultDTO; + } + /** + * @Author sun + * @Description 递归查询当前组织的下一级组织、网格列表 + **/ + private List getSubAgencyAndGridList(String subAgencyPids) { + List subAgencyList = customerAgencyDao.selectSubAgencyList(subAgencyPids); + if (subAgencyList.size() > NumConstant.ZERO) { + for (StaffAgencyGridListResultDTO sub : subAgencyList) { + List gridList = customerGridDao.getGridListByAgencyId(sub.getAgencyId()); + sub.setGridList(gridList); + List subAgency = getSubAgencyAndGridList(sub.getPids() + ":" + sub.getAgencyId()); + sub.setSubAgencyGridList(subAgency); + } + } + return subAgencyList; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml index 7805f832f4..fe5ecb1ff5 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml @@ -22,4 +22,28 @@ + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml index 3033937191..58856e4c7c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml @@ -45,4 +45,21 @@ AND ca.PID = #{pid} order by ca.CREATED_TIME asc + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml index 2ca96e0edd..0fa266afc8 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml @@ -147,4 +147,20 @@ + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml index 763c06694b..4ed6d3a2d1 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml @@ -19,7 +19,14 @@ + + \ No newline at end of file diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/DataReportOpenFeignClient.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/DataReportOpenFeignClient.java index d3466126a4..b93bcc24f2 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/DataReportOpenFeignClient.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/DataReportOpenFeignClient.java @@ -4,6 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.result.plugins.AgencyNodeDTO; import com.epmet.feign.impl.DataReportOpenFeignClientFallBack; +import com.epmet.feign.impl.DataReportOpenFeignClientFallBackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -14,8 +15,8 @@ import org.springframework.web.bind.annotation.PathVariable; * @author yinzuomei@elink-cn.com * @date 2021/2/3 22:05 */ -// @FeignClient(name = ServiceConstant.DATA_REPORT_SERVER, fallback = DataReportOpenFeignClientFallBack.class,url = "localhost:8109") -@FeignClient(name = ServiceConstant.DATA_REPORT_SERVER, fallback = DataReportOpenFeignClientFallBack.class) + //@FeignClient(name = ServiceConstant.DATA_REPORT_SERVER, fallbackFactory = DataReportOpenFeignClientFallBackFactory.class,url = "localhost:8109") +@FeignClient(name = ServiceConstant.DATA_REPORT_SERVER, fallbackFactory = DataReportOpenFeignClientFallBackFactory.class) public interface DataReportOpenFeignClient { /** * @param agencyId diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/impl/DataReportOpenFeignClientFallBack.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/impl/DataReportOpenFeignClientFallBack.java index 64a9f66d0f..6fc231e853 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/impl/DataReportOpenFeignClientFallBack.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/impl/DataReportOpenFeignClientFallBack.java @@ -7,7 +7,7 @@ import com.epmet.dto.result.plugins.AgencyNodeDTO; import com.epmet.feign.DataReportOpenFeignClient; import org.springframework.stereotype.Component; -@Component +//@Component public class DataReportOpenFeignClientFallBack implements DataReportOpenFeignClient { /** * @param agencyId diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/impl/DataReportOpenFeignClientFallBackFactory.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/impl/DataReportOpenFeignClientFallBackFactory.java new file mode 100644 index 0000000000..c3d0b0ab84 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/feign/impl/DataReportOpenFeignClientFallBackFactory.java @@ -0,0 +1,19 @@ +package com.epmet.feign.impl; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.DataReportOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class DataReportOpenFeignClientFallBackFactory implements FallbackFactory { + private DataReportOpenFeignClientFallBack fallback = new DataReportOpenFeignClientFallBack(); + + @Override + public DataReportOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/DataReportApplication.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/DataReportApplication.java index cee0ed9096..3fccfa8b6e 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/DataReportApplication.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/DataReportApplication.java @@ -2,6 +2,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.scheduling.annotation.EnableAsync; @@ -10,6 +11,7 @@ import org.springframework.scheduling.annotation.EnableAsync; @EnableDiscoveryClient @EnableFeignClients @EnableAsync +@ServletComponentScan public class DataReportApplication { public static void main(String[] args) { SpringApplication.run(DataReportApplication.class, args); diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBackFactory.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBackFactory.java index 70768329c8..84b630ea50 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBackFactory.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBackFactory.java @@ -14,7 +14,7 @@ public class DataStatisticalOpenFeignClientFallBackFactory implements FallbackFa @Override public DataStatisticalOpenFeignClient create(Throwable cause) { - log.error(ExceptionUtils.getThrowableErrorStackTrace(cause));//自己写的工具类 + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); return fallback; } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java index 3b93ce39a3..4a572b4889 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java @@ -3,6 +3,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.scheduling.annotation.EnableAsync; @@ -11,6 +12,7 @@ import org.springframework.scheduling.annotation.EnableAsync; @EnableFeignClients @SpringBootApplication (exclude = {DataSourceAutoConfiguration.class}) @EnableAsync +@ServletComponentScan public class DataStatsApplication { public static void main(String[] args) { diff --git a/epmet-module/epmet-activiti/epmet-activiti-server/src/main/java/com/epmet/ActivitiApplication.java b/epmet-module/epmet-activiti/epmet-activiti-server/src/main/java/com/epmet/ActivitiApplication.java index e449ae4050..46ee097f8d 100644 --- a/epmet-module/epmet-activiti/epmet-activiti-server/src/main/java/com/epmet/ActivitiApplication.java +++ b/epmet-module/epmet-activiti/epmet-activiti-server/src/main/java/com/epmet/ActivitiApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -25,6 +26,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; }) @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class ActivitiApplication { public static void main(String[] args) { diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java index 73647960c3..1fe124a14f 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.fallback.EpmetCommonServiceOpenFeignClientFallback; +import com.epmet.feign.fallback.EpmetCommonServiceOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; @@ -19,8 +20,8 @@ import java.util.Map; * @author yinzuomei@elink-cn.com * @date 2020/6/4 10:28 */ -@FeignClient(name = ServiceConstant.EPMET_COMMON_SERVICE, fallback = EpmetCommonServiceOpenFeignClientFallback.class) - //@FeignClient(name = ServiceConstant.EPMET_COMMON_SERVICE, fallback = EpmetCommonServiceOpenFeignClientFallback.class, url = "http://192.168.1.132:8103") +@FeignClient(name = ServiceConstant.EPMET_COMMON_SERVICE, fallbackFactory = EpmetCommonServiceOpenFeignClientFallbackFactory.class) + //@FeignClient(name = ServiceConstant.EPMET_COMMON_SERVICE, fallbackFactory = EpmetCommonServiceOpenFeignClientFallbackFactory.class, url = "http://192.168.1.132:8103") public interface EpmetCommonServiceOpenFeignClient { /** * @param formDTO diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java index 4abd2dce39..0483a1d3dc 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallback.java @@ -17,7 +17,7 @@ import java.util.Map; * @author yinzuomei@elink-cn.com * @date 2020/6/4 10:32 */ -@Component +//@Component public class EpmetCommonServiceOpenFeignClientFallback implements EpmetCommonServiceOpenFeignClient { @Override public Result> detentionDays(List formDTO) { diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallbackFactory.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..08e4d2977d --- /dev/null +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/fallback/EpmetCommonServiceOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.EpmetCommonServiceOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class EpmetCommonServiceOpenFeignClientFallbackFactory implements FallbackFactory { + + private EpmetCommonServiceOpenFeignClientFallback fallback = new EpmetCommonServiceOpenFeignClientFallback(); + + @Override + public EpmetCommonServiceOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/EpmetCommonServiceApplication.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/EpmetCommonServiceApplication.java index 238b8546d4..486ac4bf21 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/EpmetCommonServiceApplication.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/EpmetCommonServiceApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class EpmetCommonServiceApplication { public static void main(String[] args) { diff --git a/epmet-module/epmet-demo/epmet-demo-server/src/main/java/com/epmet/DemoApplication.java b/epmet-module/epmet-demo/epmet-demo-server/src/main/java/com/epmet/DemoApplication.java index ac5ed4ffda..5e83208c30 100644 --- a/epmet-module/epmet-demo/epmet-demo-server/src/main/java/com/epmet/DemoApplication.java +++ b/epmet-module/epmet-demo/epmet-demo-server/src/main/java/com/epmet/DemoApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class DemoApplication { public static void main(String[] args) { diff --git a/epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/EpmetExtApplication.java b/epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/EpmetExtApplication.java index 89508e7873..04b9410c8b 100644 --- a/epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/EpmetExtApplication.java +++ b/epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/EpmetExtApplication.java @@ -2,12 +2,14 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class EpmetExtApplication { public static void main(String[] args) { diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java index 50efc65a6e..b9f4424ab3 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java @@ -6,6 +6,7 @@ import com.epmet.dto.ActInfoDTO; import com.epmet.dto.VolunteerInfoDTO; import com.epmet.dto.form.CommonCustomerFormDTO; import com.epmet.feign.fallback.EpmetHeartOpenFeignClientFallback; +import com.epmet.feign.fallback.EpmetHeartOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -19,7 +20,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:25 */ -@FeignClient(name = ServiceConstant.EPMET_HEART_SERVER, fallback = EpmetHeartOpenFeignClientFallback.class) +@FeignClient(name = ServiceConstant.EPMET_HEART_SERVER, fallbackFactory = EpmetHeartOpenFeignClientFallbackFactory.class) public interface EpmetHeartOpenFeignClient { /** diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java index 9e4d671a3b..23759f82c0 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java @@ -17,7 +17,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:26 */ -@Component +//@Component public class EpmetHeartOpenFeignClientFallback implements EpmetHeartOpenFeignClient { /** diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallbackFactory.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..d5aa29cf53 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.EpmetHeartOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class EpmetHeartOpenFeignClientFallbackFactory implements FallbackFactory { + + private EpmetHeartOpenFeignClientFallback fallback = new EpmetHeartOpenFeignClientFallback(); + + @Override + public EpmetHeartOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/EpmetHeartApplication.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/EpmetHeartApplication.java index 39fd7584e1..c7969a259b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/EpmetHeartApplication.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/EpmetHeartApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class EpmetHeartApplication { public static void main(String[] args) { diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/JobApplication.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/JobApplication.java index c62390ee4e..5f4ba905ef 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/JobApplication.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/JobApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class JobApplication { public static void main(String[] args) { diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java index ff085c7bc0..f375d75aaf 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java @@ -11,6 +11,7 @@ import com.epmet.dto.form.WxSubscribeMessageFormDTO; import com.epmet.dto.form.WxSubscribeUpdateFormDTO; import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.feign.fallback.EpmetMessageOpenFeignClientFallback; +import com.epmet.feign.fallback.EpmetMessageOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -27,7 +28,7 @@ import java.util.List; * @date 2020/6/4 13:47 */ //@FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallback = EpmetMessageOpenFeignClientFallback.class,url = "http://127.0.0.1:8085") -@FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallback = EpmetMessageOpenFeignClientFallback.class) +@FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallbackFactory = EpmetMessageOpenFeignClientFallbackFactory.class) public interface EpmetMessageOpenFeignClient { /** * 发送短信 diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java index a77d9152db..069d76c795 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java @@ -22,7 +22,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:48 */ -@Component +//@Component public class EpmetMessageOpenFeignClientFallback implements EpmetMessageOpenFeignClient { @Override diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallbackFactory.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..51e2ec2524 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.EpmetMessageOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class EpmetMessageOpenFeignClientFallbackFactory implements FallbackFactory { + + private EpmetMessageOpenFeignClientFallback fallback = new EpmetMessageOpenFeignClientFallback(); + + @Override + public EpmetMessageOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java index 98e4151ead..c32da6dd8a 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class MessageApplication { public static void main(String[] args) { diff --git a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/OssFeignClient.java b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/OssFeignClient.java index 3b1640078d..b5c31ef82f 100644 --- a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/OssFeignClient.java +++ b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/OssFeignClient.java @@ -12,6 +12,7 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.result.UploadImgResultDTO; import com.epmet.feign.fallback.OssFeignClientFallback; +import com.epmet.feign.fallback.OssFeignClientFallbackFactory; import feign.codec.Encoder; import feign.form.spring.SpringFormEncoder; import org.springframework.cloud.openfeign.FeignClient; @@ -28,10 +29,10 @@ import org.springframework.web.multipart.MultipartFile; * @author Mark sunlightcs@gmail.c om * @since 1.1.0 */ -@FeignClient(name = ServiceConstant.EPMET_OSS_SERVER, configuration = OssFeignClient.MultipartSupportConfig.class, fallback = - OssFeignClientFallback.class) -//@FeignClient(name = ServiceConstant.EPMET_OSS_SERVER, configuration = OssFeignClient.MultipartSupportConfig.class, fallback = -// OssFeignClientFallback.class) +@FeignClient(name = ServiceConstant.EPMET_OSS_SERVER, configuration = OssFeignClient.MultipartSupportConfig.class, fallbackFactory = + OssFeignClientFallbackFactory.class) +//@FeignClient(name = ServiceConstant.EPMET_OSS_SERVER, configuration = OssFeignClient.MultipartSupportConfig.class, fallbackFactory = +// OssFeignClientFallbackFactory.class) public interface OssFeignClient { /** * 文件上传 diff --git a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/fallback/OssFeignClientFallback.java b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/fallback/OssFeignClientFallback.java index 59529ff293..b60e59cc19 100644 --- a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/fallback/OssFeignClientFallback.java +++ b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/fallback/OssFeignClientFallback.java @@ -22,7 +22,7 @@ import org.springframework.web.multipart.MultipartFile; * @author Mark sunlightcs@gmail.c om * @since 1.1.0 */ -@Component +//@Component public class OssFeignClientFallback implements OssFeignClient { @Override diff --git a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/fallback/OssFeignClientFallbackFactory.java b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/fallback/OssFeignClientFallbackFactory.java new file mode 100644 index 0000000000..63fb593dc8 --- /dev/null +++ b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/fallback/OssFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.OssFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class OssFeignClientFallbackFactory implements FallbackFactory { + + private OssFeignClientFallback fallback = new OssFeignClientFallback(); + + @Override + public OssFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/OssApplication.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/OssApplication.java index 28573fb3ea..3600e58cd3 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/OssApplication.java +++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/OssApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class OssApplication { public static void main(String[] args) { diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java index 8093ad3fee..0afba7534e 100644 --- a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java @@ -8,6 +8,7 @@ import com.epmet.dto.form.CommonUserFormDTO; import com.epmet.dto.form.GroupPointFormDTO; import com.epmet.dto.result.ResiPointDetailResultDTO; import com.epmet.feign.fallback.EpmetPointOpenFeignClientFallback; +import com.epmet.feign.fallback.EpmetPointOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -18,7 +19,7 @@ import org.springframework.web.bind.annotation.RequestBody; * @author wangc * @date 2020/7/9 13:25 */ -@FeignClient(name = ServiceConstant.EPMET_POINT_SERVER, fallback = EpmetPointOpenFeignClientFallback.class) +@FeignClient(name = ServiceConstant.EPMET_POINT_SERVER, fallbackFactory = EpmetPointOpenFeignClientFallbackFactory.class) public interface EpmetPointOpenFeignClient { /** diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java index 04e953edc9..0fc8390a53 100644 --- a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java @@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.RequestParam; * @Auth wangc * @Date 2020-07-10 09:14 */ -@Component +//@Component public class EpmetPointOpenFeignClientFallback implements EpmetPointOpenFeignClient { @Override public Result myPoint(CommonUserFormDTO param) { diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallbackFactory.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..10dce0fcf1 --- /dev/null +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.EpmetPointOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class EpmetPointOpenFeignClientFallbackFactory implements FallbackFactory { + + private EpmetPointOpenFeignClientFallback fallback = new EpmetPointOpenFeignClientFallback(); + + @Override + public EpmetPointOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java index 4b8eeb035d..e2925628ba 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java @@ -2,6 +2,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -14,6 +15,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class EpmetPointApplication { public static void main(String[] args) { SpringApplication.run(EpmetPointApplication.class, args); diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java index 125bcb0f48..f71914f828 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java @@ -6,6 +6,7 @@ import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.fallback.EpmetThirdOpenFeignClientFallback; +import com.epmet.feign.fallback.EpmetThirdOpenFeignClientFallbackFactory; import com.epmet.feign.fallback.GovProjectOpenFeignClientFallback; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import feign.codec.Encoder; @@ -24,9 +25,9 @@ import java.util.List; * @author zhaoqifeng * @date 2021/3/18 14:18 */ -// @FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallback = EpmetThirdOpenFeignClientFallback.class,configuration = +// @FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = EpmetThirdOpenFeignClientFallbackFactory.class,configuration = // EpmetThirdOpenFeignClient.MultipartSupportConfig.class,url = "localhost:8110") -@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallback = EpmetThirdOpenFeignClientFallback.class, configuration = +@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = EpmetThirdOpenFeignClientFallbackFactory.class, configuration = EpmetThirdOpenFeignClient.MultipartSupportConfig.class) public interface EpmetThirdOpenFeignClient { /** diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/ThirdOpenFeignClient.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/ThirdOpenFeignClient.java index 4a139daabd..9cfd126d4c 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/ThirdOpenFeignClient.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/ThirdOpenFeignClient.java @@ -6,14 +6,15 @@ import com.epmet.dto.form.SaveOrUpdateCustSelPlatformFormDTO; import com.epmet.dto.form.ThirdPlatformFormDTO; import com.epmet.dto.result.ThirdplatformResultDTO; import com.epmet.feign.fallback.ThirdOpenFeignClientFallback; +import com.epmet.feign.fallback.ThirdOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; -@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallback = ThirdOpenFeignClientFallback.class) -//@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallback = ThirdOpenFeignClientFallback.class, url = "http://localhost:8110") +@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = ThirdOpenFeignClientFallbackFactory.class) +//@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallbackFactory = ThirdOpenFeignClientFallbackFactory.class, url = "http://localhost:8110") public interface ThirdOpenFeignClient { /** diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java index 89f2245fce..e855799478 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java @@ -18,7 +18,7 @@ import java.util.List; * @author zhaoqifeng * @date 2021/3/18 14:17 */ -@Component +//@Component public class EpmetThirdOpenFeignClientFallback implements EpmetThirdOpenFeignClient { /** diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallbackFactory.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..a30a43c779 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallbackFactory.java @@ -0,0 +1,18 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.EpmetThirdOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class EpmetThirdOpenFeignClientFallbackFactory implements FallbackFactory { + private EpmetThirdOpenFeignClientFallback fallback = new EpmetThirdOpenFeignClientFallback(); + @Override + public EpmetThirdOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/ThirdOpenFeignClientFallback.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/ThirdOpenFeignClientFallback.java index 57a9c808c3..76098de169 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/ThirdOpenFeignClientFallback.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/ThirdOpenFeignClientFallback.java @@ -11,7 +11,7 @@ import org.springframework.stereotype.Component; import java.util.List; -@Component +//@Component public class ThirdOpenFeignClientFallback implements ThirdOpenFeignClient { @Override public Result saveOrUpdateSelectedPlatformsInfo(SaveOrUpdateCustSelPlatformFormDTO input) { diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/ThirdOpenFeignClientFallbackFactory.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/ThirdOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..0996aa70c4 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/ThirdOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.ThirdOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class ThirdOpenFeignClientFallbackFactory implements FallbackFactory { + + private ThirdOpenFeignClientFallback fallback = new ThirdOpenFeignClientFallback(); + + @Override + public ThirdOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java index 2aba843b3f..f2072e4efc 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java @@ -2,12 +2,14 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class EpmetThirdApplication { public static void main(String[] args) { diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java index c142cdef67..5e3a2e0fcb 100644 --- a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/GovAccessFeignClient.java @@ -4,15 +4,15 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.InitDefaultOperationsFormDTO; import com.epmet.dto.form.ListOpePermsFormDTO; -import com.epmet.feign.fallback.GovAccessFeignClientFallBack; +import com.epmet.feign.fallback.GovAccessFeignClientFallBackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import java.util.Set; -//@FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallback = GovAccessFeignClientFallBack.class, url = "http://localhost:8099") -@FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallback = GovAccessFeignClientFallBack.class) +//@FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallbackFactory = GovAccessFeignClientFallBackFactory.class, url = "http://localhost:8099") +@FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallbackFactory = GovAccessFeignClientFallBackFactory.class) public interface GovAccessFeignClient { /** diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java index 30e5d4141c..9f092331ad 100644 --- a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBack.java @@ -14,7 +14,7 @@ import java.util.Set; * @Description * @Author sun */ -@Component +//@Component public class GovAccessFeignClientFallBack implements GovAccessFeignClient { diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBackFactory.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBackFactory.java new file mode 100644 index 0000000000..6b8b45088e --- /dev/null +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallBackFactory.java @@ -0,0 +1,28 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.GovAccessFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @Description fallBackFactory,用于抛出异常之后,返回一个Fallback降级处理对象 + * @author wxz + * @date 2021.07.15 09:54:14 +*/ +@Component +@Slf4j +public class GovAccessFeignClientFallBackFactory implements FallbackFactory { + + /** + * 降级处理对象 + */ + private GovAccessFeignClientFallBack fallBack = new GovAccessFeignClientFallBack(); + + @Override + public GovAccessFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallBack; + } +} diff --git a/epmet-module/gov-access/gov-access-server/pom.xml b/epmet-module/gov-access/gov-access-server/pom.xml index d1052635a9..909b706005 100644 --- a/epmet-module/gov-access/gov-access-server/pom.xml +++ b/epmet-module/gov-access/gov-access-server/pom.xml @@ -127,6 +127,10 @@ false + + + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 + SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd @@ -160,6 +164,10 @@ false + + + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 + SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd @@ -193,6 +201,10 @@ true + + + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 + SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd @@ -223,6 +235,10 @@ true + + + https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c + SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1 diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/GovAccessApplication.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/GovAccessApplication.java index 469de9dc52..6068061b0b 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/GovAccessApplication.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/GovAccessApplication.java @@ -2,6 +2,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -12,6 +13,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan //@EnableConfigurationProperties(value = {DatabaseProperties.class}) public class GovAccessApplication { public static void main(String[] args) { diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/TestController.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/TestController.java index b8ab2dbda6..b18beb3aab 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/TestController.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/TestController.java @@ -1,12 +1,11 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.ExternalRequestAuth; +import com.epmet.commons.tools.exception.RenException; import com.epmet.service.TestService; +import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("test") @@ -16,10 +15,17 @@ public class TestController { private TestService testService; @ExternalRequestAuth - @GetMapping("test") - public void test() { - System.out.println("TestController -> test()"); + @PostMapping("test") + public void test(@RequestBody Input input) { + if (true) { + throw new RenException("测试报错"); + } testService.test(); } + @Data + public static class Input { + private String name; + } + } diff --git a/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml b/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml index d2038e569e..978f85db31 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml @@ -124,3 +124,8 @@ pagehelper: logging: level: com.epmet: debug + +dingTalk: + robot: + webHook: @dingTalk.robot.webHook@ + secret: @dingTalk.robot.secret@ \ No newline at end of file diff --git a/epmet-module/gov-access/gov-access-server/src/main/resources/logback-spring.xml b/epmet-module/gov-access/gov-access-server/src/main/resources/logback-spring.xml index 45b1ddc4e0..c53f4711fe 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/resources/logback-spring.xml +++ b/epmet-module/gov-access/gov-access-server/src/main/resources/logback-spring.xml @@ -6,6 +6,9 @@ + + + ${appname} @@ -125,16 +128,25 @@ 15 - - + + ERROR ACCEPT DENY + ${webHook} + ${secret} + ${appname} + + - + diff --git a/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/GovGridApplication.java b/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/GovGridApplication.java index ac047e4a68..875c62f1eb 100644 --- a/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/GovGridApplication.java +++ b/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/GovGridApplication.java @@ -2,6 +2,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -14,6 +15,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class GovGridApplication { public static void main(String[] args) { diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index a5179ea765..20e21a4277 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -6,6 +6,7 @@ import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBack; +import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBackFactory; import com.epmet.project.dto.CustomerCategoryDTO; import com.epmet.project.dto.result.ProjectCategoryDictResultDTO; import com.epmet.resi.group.dto.group.form.AllIssueFormDTO; @@ -34,8 +35,8 @@ import java.util.Map; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:37 */ -@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class) -//@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101") +@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallbackFactory = GovIssueOpenFeignClientFallBackFactory.class) +//@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallbackFactory = GovIssueOpenFeignClientFallBackFactory.class,url = "localhost:8101") public interface GovIssueOpenFeignClient { /** diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java index 6808afaee5..8bb48b0075 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java @@ -30,7 +30,7 @@ import java.util.Map; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:43 */ -@Component +//@Component public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient { @Override public Result applicationDetail(ApplicationDetailFormDTO applicationDetailFormDTO) { diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBackFactory.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBackFactory.java new file mode 100644 index 0000000000..02df667c68 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.GovIssueOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class GovIssueOpenFeignClientFallBackFactory implements FallbackFactory { + + private GovIssueOpenFeignClientFallBack fallback = new GovIssueOpenFeignClientFallBack(); + + @Override + public GovIssueOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/GovIssueApplication.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/GovIssueApplication.java index 36764f5de8..ef94eca399 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/GovIssueApplication.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/GovIssueApplication.java @@ -2,6 +2,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -13,6 +14,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class GovIssueApplication { public static void main(String[] args) { SpringApplication.run(GovIssueApplication.class, args); diff --git a/epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/GovMineApplication.java b/epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/GovMineApplication.java index f804c3926e..5dad0a50c8 100644 --- a/epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/GovMineApplication.java +++ b/epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/GovMineApplication.java @@ -2,12 +2,14 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class GovMineApplication { public static void main(String[] args) { diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/UpdateTagFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/UpdateTagFormDTO.java index d2000b366f..96b7f73fa2 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/UpdateTagFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/UpdateTagFormDTO.java @@ -25,6 +25,11 @@ public class UpdateTagFormDTO implements Serializable { */ private String tagName; + /** + * 标签颜色 + */ + private String tagColor; + /** * 使用计数 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 1b99ac96f3..bf6df86b7b 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -8,6 +8,7 @@ import com.epmet.dto.CustomerPartyBranchDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.fallback.GovOrgOpenFeignClientFallback; +import com.epmet.feign.fallback.GovOrgOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; @@ -20,8 +21,8 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:37 */ -//@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovOrgOpenFeignClientFallback.class, url = "localhost:8092") -@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovOrgOpenFeignClientFallback.class) +//@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = GovOrgOpenFeignClientFallbackFactory.class, url = "localhost:8092") +@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = GovOrgOpenFeignClientFallbackFactory.class) public interface GovOrgOpenFeignClient { /** @@ -352,4 +353,21 @@ public interface GovOrgOpenFeignClient { **/ @GetMapping(value = "/gov/org/customeragency/getareacodeswitch/{customerId}") Result getAreaCodeSwitch(@PathVariable("customerId")String customerId); + + /** + * @Description 根据网格ID查询pids + * @Param gridId + * @author zxc + * @date 2021/7/16 9:52 上午 + */ + @PostMapping(value = "/gov/org/customergrid/pidsbygrid") + Result selectPidsByGridId(@RequestParam("gridId") String gridId); + + /** + * 工作人员的个人信息 + * @param fromDTO + * @return + */ + @PostMapping("/gov/org/staff/mine") + Result queryStaffProfile(@RequestBody StaffInfoFromDTO fromDTO); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 0d13438885..c384f302aa 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -19,7 +19,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:37 */ -@Component +//@Component public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { @Override public Result getAgencyById(String agencyId) { @@ -209,4 +209,14 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { public Result getAreaCodeSwitch(String customerId) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getAreaCodeSwitch", customerId); } + + @Override + public Result queryStaffProfile(StaffInfoFromDTO fromDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "mine", fromDTO); + } + + @Override + public Result selectPidsByGridId(String gridId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "selectPidsByGridId", gridId); + } } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallbackFactory.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..6be2be24fe --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.GovOrgOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class GovOrgOpenFeignClientFallbackFactory implements FallbackFactory { + + private GovOrgOpenFeignClientFallback fallback = new GovOrgOpenFeignClientFallback(); + + @Override + public GovOrgOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/GovOrgApplication.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/GovOrgApplication.java index d4cafe7020..ff43e6542c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/GovOrgApplication.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/GovOrgApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class GovOrgApplication { public static void main(String[] args) { diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java index eec27314ba..bb06477812 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java @@ -241,4 +241,15 @@ public class CustomerGridController { List resultDTOS = customerGridService.listGridIdsInCommunity(gridId); return new Result>().ok(resultDTOS); } + + /** + * @Description 根据网格ID查询pids + * @Param gridId + * @author zxc + * @date 2021/7/16 9:52 上午 + */ + @PostMapping("pidsbygrid") + public Result selectPidsByGridId(@RequestParam("gridId") String gridId){ + return new Result().ok(customerGridService.selectPidsByGridId(gridId)); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java index 4277be98c6..ec16bf0dcd 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java @@ -268,4 +268,12 @@ public interface CustomerGridDao extends BaseDao { * @date 2021/4/19 11:56 上午 */ CustomerGridDTO getGridBaseInfoById(@Param("gridId") String gridId); + + /** + * @Description 根据网格ID查询pids + * @Param gridId + * @author zxc + * @date 2021/7/16 9:52 上午 + */ + String selectPidsByGridId(@Param("gridId")String gridId); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java index 4799c38890..b892fa84f8 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java @@ -287,4 +287,12 @@ public interface CustomerGridService extends BaseService { * @date 2021/4/19 11:53 上午 */ Result getBaseInfo(CustomerGridFormDTO customerGridFormDTO); + + /** + * @Description 根据网格ID查询pids + * @Param gridId + * @author zxc + * @date 2021/7/16 9:52 上午 + */ + String selectPidsByGridId(String gridId); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index c0a987206b..007aabd4b9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -707,4 +707,18 @@ public class CustomerGridServiceImpl extends BaseServiceImpl getBaseInfo(CustomerGridFormDTO customerGridFormDTO) { return new Result().ok(ConvertUtils.sourceToTarget(baseDao.selectById(customerGridFormDTO.getGridId()), CustomerGridDTO.class)); } + + /** + * @Description 根据网格ID查询pids + * @Param gridId + * @author zxc + * @date 2021/7/16 9:52 上午 + */ + @Override + public String selectPidsByGridId(String gridId) { + if (StringUtils.isNotBlank(gridId)){ + return baseDao.selectPidsByGridId(gridId); + } + return ""; + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml index 49dbe8f5ef..58d2fd628e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml @@ -118,6 +118,8 @@ FROM customer_staff_agency csa INNER JOIN customer_agency ca ON (csa.AGENCY_ID = ca.ID) WHERE csa.USER_ID = #{staffId} + and csa.del_flag='0' + and ca.del_flag='0' + + + diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java index 7bd2b95f31..6d5c1d01ac 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java @@ -7,6 +7,7 @@ import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.fallback.GovProjectOpenFeignClientFallback; +import com.epmet.feign.fallback.GovProjectOpenFeignClientFallbackFactory; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; @@ -22,8 +23,8 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:32 */ -// @FeignClient(name = ServiceConstant.GOV_PROJECT_SERVER, fallback = GovProjectOpenFeignClientFallback.class,url = "localhost:8102") -@FeignClient(name = ServiceConstant.GOV_PROJECT_SERVER, fallback = GovProjectOpenFeignClientFallback.class) +// @FeignClient(name = ServiceConstant.GOV_PROJECT_SERVER, fallbackFactory = GovProjectOpenFeignClientFallbackFactory.class,url = "localhost:8102") +@FeignClient(name = ServiceConstant.GOV_PROJECT_SERVER, fallbackFactory = GovProjectOpenFeignClientFallbackFactory.class) public interface GovProjectOpenFeignClient { /** * 待处理项目列表 diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java index cb2dbf1abd..d6a4661b96 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java @@ -19,7 +19,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:33 */ -@Component +//@Component public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignClient { @Override public Result> getPendProjectList(ProjectListFromDTO fromDTO) { diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallbackFactory.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..ac6908852a --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.GovProjectOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class GovProjectOpenFeignClientFallbackFactory implements FallbackFactory { + + private GovProjectOpenFeignClientFallback fallback = new GovProjectOpenFeignClientFallback(); + + @Override + public GovProjectOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/GovProjectApplication.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/GovProjectApplication.java index ad4410f584..37c767c4b3 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/GovProjectApplication.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/GovProjectApplication.java @@ -2,6 +2,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -13,6 +14,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class GovProjectApplication { public static void main(String[] args) { SpringApplication.run(GovProjectApplication.class, args); diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/SpecialSubjectDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/SpecialSubjectDTO.java new file mode 100644 index 0000000000..8c3a8332aa --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/SpecialSubjectDTO.java @@ -0,0 +1,120 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 专题表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-07-15 + */ +@Data +public class SpecialSubjectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键(专题id) + */ + private String id; + + /** + * 客户id + */ + private String customerId; + + /** + * 标签id + */ + private String tagId; + + /** + * 新增此专题的用户id + */ + private String addUserId; + + /** + * 新增此专题时用户所在的组织id或者网格id + */ + private String addOrgId; + + /** + * 网格:grid;社区级:community, +乡(镇、街道)级:street, +区县级: district, +市级: city +省级:province + */ + private String orgLevel; + + /** + * 新增此专题用户所属的组织id + */ + private String addUserAgencyId; + + /** + * 删除标识 0未删除;1已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 标签名 + */ + private String tagName; + + /** + * 扩展属性:标签颜色 + */ + private String tagColor; + + /** + * 删除人id + */ + private String delStaffId; +} \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/AddSpecialSubjectFormDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/AddSpecialSubjectFormDTO.java new file mode 100644 index 0000000000..46d3e38926 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/AddSpecialSubjectFormDTO.java @@ -0,0 +1,56 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 【专题管理】添加专题 + * + * @author yinzuomei@elink-cn.com + * @date 2021/7/15 14:24 + */ +@Data +public class AddSpecialSubjectFormDTO implements Serializable { + private static final long serialVersionUID = -4469613386814496224L; + + public interface AddUserInternalGroup { + } + + /** + * 当前所在网格或者组织id + */ + @NotBlank(message = "orgId不能为空", groups = AddUserInternalGroup.class) + private String orgId; + + @NotBlank(message = "pid不能为空", groups = AddUserInternalGroup.class) + private String pid; + /** + * orgId的所有上级id + */ + @NotBlank(message = "pids不能为空", groups = AddUserInternalGroup.class) + private String pids; + + /** + * 网格:grid;社区级:community, 乡(镇、街道)级:street, 区县级: district, 市级: city 省级:province + */ + @NotBlank(message = "orgLevel不能为空", groups = AddUserInternalGroup.class) + private String orgLevel; + + /** + * 所选的标签id + */ + @NotBlank(message = "tagId不能为空", groups = AddUserInternalGroup.class) + private String tagId; + + // 以下属性从token中获取 + /** + * 从TokenDto中获取当前用户id + */ + @NotBlank(message = "从token中获取userId为空", groups = AddUserInternalGroup.class) + private String addUserId; + + @NotBlank(message = "从token中获取客户id为空", groups = AddUserInternalGroup.class) + private String customerId; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/DelSpecialSubjectFormDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/DelSpecialSubjectFormDTO.java new file mode 100644 index 0000000000..fc2f919147 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/DelSpecialSubjectFormDTO.java @@ -0,0 +1,42 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 【专题管理】删除专题 + * + * @author yinzuomei@elink-cn.com + * @date 2021/7/15 20:50 + */ +@Data +public class DelSpecialSubjectFormDTO implements Serializable { + private static final long serialVersionUID = -2305529822756834522L; + + public interface AddUserInternalGroup { + } + + /** + * 专题id + */ + @NotBlank(message = "specialSubjectId不能为空", groups = AddUserInternalGroup.class) + private String specialSubjectId; + + /** + * 当前所在网格或者组织id + */ + @NotBlank(message = "orgId不能为空", groups = AddUserInternalGroup.class) + private String orgId; + + // 以下属性从token中获取 + /** + * 从TokenDto中获取当前用户id + */ + @NotBlank(message = "从token中获取userId为空", groups = AddUserInternalGroup.class) + private String userId; + @NotBlank(message = "从token中获取客户id为空", groups = AddUserInternalGroup.class) + private String customerId; + +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/HotSubjectTagFormDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/HotSubjectTagFormDTO.java new file mode 100644 index 0000000000..3208ad1137 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/HotSubjectTagFormDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2021/7/16 10:14 + */ +@Data +public class HotSubjectTagFormDTO implements Serializable { + private static final long serialVersionUID = -5526800827207175876L; + public interface HotSubjectTagGroup {} + private String customerId; + @NotBlank(message = "orgId不能为空", groups = HotSubjectTagGroup.class) + private String orgId; + @NotBlank(message = "pids不能为空", groups = HotSubjectTagGroup.class) + private String pids; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/InitTagsFormDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/InitTagsFormDTO.java index ded8bc1f43..13d14e5fef 100644 --- a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/InitTagsFormDTO.java +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/InitTagsFormDTO.java @@ -3,7 +3,6 @@ package com.epmet.dto.form; import lombok.Data; import java.io.Serializable; -import java.util.Date; /** * @Author zxc @@ -29,6 +28,11 @@ public class InitTagsFormDTO implements Serializable { */ private String tagName; + /** + * 标签颜色 + */ + private String tagColor; + /** * 使用计数 */ diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/PreviewFormDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/PreviewFormDTO.java new file mode 100644 index 0000000000..d1e8b137b7 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/PreviewFormDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author zhaoqifeng + * @dscription + * @date 2021/7/16 9:41 + */ +@Data +public class PreviewFormDTO implements Serializable { + private static final long serialVersionUID = -3764759458780976123L; + private List tagIdList; + private Integer pageSize; + private Integer pageNo; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/QuerySpecialSubFormDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/QuerySpecialSubFormDTO.java new file mode 100644 index 0000000000..2410d1fedd --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/QuerySpecialSubFormDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 【专题管理】已有专题列表 + * + * @author yinzuomei@elink-cn.com + * @date 2021/7/15 21:09 + */ +@Data +public class QuerySpecialSubFormDTO implements Serializable { + private static final long serialVersionUID = -436139256753489157L; + + public interface AddUserInternalGroup { + } + + /** + * 当前所在网格或者组织id + */ + @NotBlank(message = "orgId不能为空", groups = AddUserInternalGroup.class) + private String orgId; + + /** + * orgId的所有上级id + */ + @NotBlank(message = "pids不能为空", groups = AddUserInternalGroup.class) + private String pids; + + /** + * 当前登录用户userId, + */ + private String userId; + /** + * 当前登录用户客户id + */ + private String customerId; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/SubjectArticleListFormDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/SubjectArticleListFormDTO.java new file mode 100644 index 0000000000..d5417bec01 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/SubjectArticleListFormDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/7/15 2:05 下午 + * @DESC + */ +@Data +public class SubjectArticleListFormDTO implements Serializable { + + private static final long serialVersionUID = 7657974985102791998L; + + public interface SubjectArticleListForm extends CustomerClientShowGroup{}; + + @NotBlank(message = "网格ID不能为空",groups = SubjectArticleListForm.class) + private String gridId; + + @NotBlank(message = "标签ID不能为空",groups = SubjectArticleListForm.class) + private String tagId; + + @NotNull(message = "pageSize不能为空",groups = SubjectArticleListForm.class) + private Integer pageSize; + + @NotNull(message = "pageNo不能为空",groups = SubjectArticleListForm.class) + private Integer pageNo; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/SubjectListFormDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/SubjectListFormDTO.java new file mode 100644 index 0000000000..41edf32d48 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/SubjectListFormDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/7/15 4:34 下午 + * @DESC + */ +@Data +public class SubjectListFormDTO implements Serializable { + + private static final long serialVersionUID = 6397877545890473794L; + + public interface SubjectListForm extends CustomerClientShowGroup{} + + @NotBlank(message = "网格ID不能为空",groups = SubjectListForm.class) + private String gridId; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/AddSpecialSubjectResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/AddSpecialSubjectResultDTO.java new file mode 100644 index 0000000000..6e31d7fa46 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/AddSpecialSubjectResultDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 【专题管理】添加专题 + * + * @author yinzuomei@elink-cn.com + * @date 2021/7/15 17:46 + */ +@Data +public class AddSpecialSubjectResultDTO implements Serializable { + /** + * 刚添加成功的专题id + * */ + private String specialSubjectId; + + public AddSpecialSubjectResultDTO(String id) { + this.specialSubjectId=id; + } +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleListResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleListResultDTO.java index 04d4f14a27..5d420de782 100644 --- a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleListResultDTO.java +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/ArticleListResultDTO.java @@ -43,4 +43,8 @@ public class ArticleListResultDTO implements Serializable { * */ private String tagName; + /** + * 文章封面 + * */ + private String articleCoverImg; } diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/PreviewResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/PreviewResultDTO.java new file mode 100644 index 0000000000..16681096c8 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/PreviewResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author zhaoqifeng + * @dscription + * @date 2021/7/16 14:26 + */ +@Data +public class PreviewResultDTO implements Serializable { + private static final long serialVersionUID = 4801322472642418941L; + private String specialSubjectId; + private String tagName; + private List articleList; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/SubjectArticleListResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/SubjectArticleListResultDTO.java new file mode 100644 index 0000000000..dc26eb1fbe --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/SubjectArticleListResultDTO.java @@ -0,0 +1,61 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/7/15 2:11 下午 + * @DESC + */ +@Data +public class SubjectArticleListResultDTO implements Serializable { + + private static final long serialVersionUID = 2580894348808140034L; + + /** + * 文章标题 + */ + private String articleTitle; + + /** + * 文章内容 + */ + private String articleContent; + + /** + * 文章ID + */ + private String articleId; + + /** + * 发布者姓名 + */ + private String publisherName; + + /** + * 发布时间 + */ + private String publishDate; + + /** + * 标签名字集合 + */ + private String tagNames; + + /** + * 文章封面 + */ + private String articleCoverImg; + + public SubjectArticleListResultDTO() { + this.articleTitle = ""; + this.articleContent = ""; + this.articleId = ""; + this.publisherName = ""; + this.publishDate = ""; + this.tagNames = ""; + this.articleCoverImg = ""; + } +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/SubjectListResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/SubjectListResultDTO.java new file mode 100644 index 0000000000..6696380f3f --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/SubjectListResultDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/7/15 4:46 下午 + * @DESC + */ +@Data +public class SubjectListResultDTO implements Serializable { + + private static final long serialVersionUID = -7761847964768693672L; + + /** + * 标签ID + */ + private String tagId; + + /** + * 专题名字 + */ + private String tagName; + + /** + * 标签颜色 + */ + private String tagColor; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/TagInfoResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/TagInfoResultDTO.java index a547af8767..1c63a56c9f 100644 --- a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/TagInfoResultDTO.java +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/TagInfoResultDTO.java @@ -24,4 +24,9 @@ public class TagInfoResultDTO implements Serializable { * 标签名称 */ private String tagName; + + /** + * 标签颜色 + */ + private String tagColor; } diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/UpdateTagUseCountsResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/UpdateTagUseCountsResultDTO.java index fba5e29854..2e282b17e5 100644 --- a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/UpdateTagUseCountsResultDTO.java +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/UpdateTagUseCountsResultDTO.java @@ -31,4 +31,9 @@ public class UpdateTagUseCountsResultDTO implements Serializable { * 标签名称 */ private String tagName; + + /** + * 标签颜色 + */ + private String tagColor; } diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/WorkSpecialSubjectResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/WorkSpecialSubjectResultDTO.java new file mode 100644 index 0000000000..bd90c9c462 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/WorkSpecialSubjectResultDTO.java @@ -0,0 +1,63 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 【专题管理】已有专题列表 + * + * @author yinzuomei@elink-cn.com + * @date 2021/7/15 21:14 + */ +@Data +public class WorkSpecialSubjectResultDTO implements Serializable { + private static final long serialVersionUID = 8147664815754574860L; + /** + * 标签id + */ + private String tagId; + + /** + * 标签名称 + */ + private String tagName; + + /** + * 标签颜色 + */ + private String tagColor; + + /** + * true代表可以删除。false不可删除,隐藏减号 + */ + private Boolean canDel; + + /** + * 专题id + */ + private String specialSubjectId; + + private String addOrgId; + private String orgLevel; + + /** + * 创建时间-前端无用 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createdTime; + + /** + * 创建人-前端无用 + */ + private String createdBy; + + /** + * 新增此专题用户所属的组织id + * mean:当前人是谁? + * -前端无用 + */ + private String addUserAgencyId; +} diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/feign/GovVoiceOpenFeignClient.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/feign/GovVoiceOpenFeignClient.java index 3bbc14112f..bfad56b2f5 100644 --- a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/feign/GovVoiceOpenFeignClient.java +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/feign/GovVoiceOpenFeignClient.java @@ -6,6 +6,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.fallback.GovVoiceOpenFeignClientFallback; +import com.epmet.feign.fallback.GovVoiceOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -18,7 +19,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 16:01 */ -@FeignClient(name = ServiceConstant.GOV_VOICE_SERVER, fallback = GovVoiceOpenFeignClientFallback.class) +@FeignClient(name = ServiceConstant.GOV_VOICE_SERVER, fallbackFactory = GovVoiceOpenFeignClientFallbackFactory.class) public interface GovVoiceOpenFeignClient { /** @@ -80,5 +81,22 @@ public interface GovVoiceOpenFeignClient { @PostMapping("/gov/voice/article/resiarticledetail") Result resiArticleDetail(@RequestBody ResiArticleDetailFormDTO articleDetailFormDTO); + /** + * @Description 专题文章列表 + * @Param formDTO + * @author zxc + * @date 2021/7/16 1:26 下午 + */ + @PostMapping("/gov/voice/article/subjectarticlelist") + Result> subjectArticleList(@RequestBody SubjectArticleListFormDTO formDTO); + + /** + * @Description 专题列表 + * @Param formDTO + * @author zxc + * @date 2021/7/16 1:26 下午 + */ + @PostMapping("/gov/voice/article/subjectlist") + Result> subjectList(@RequestBody SubjectListFormDTO formDTO); } diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/feign/fallback/GovVoiceOpenFeignClientFallback.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/feign/fallback/GovVoiceOpenFeignClientFallback.java index 9ed332730a..86af110762 100644 --- a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/feign/fallback/GovVoiceOpenFeignClientFallback.java +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/feign/fallback/GovVoiceOpenFeignClientFallback.java @@ -16,7 +16,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 16:01 */ -@Component +//@Component public class GovVoiceOpenFeignClientFallback implements GovVoiceOpenFeignClient { @Override public Result> resiTagList(ResiTagListFormDTO formDto) { @@ -47,4 +47,14 @@ public class GovVoiceOpenFeignClientFallback implements GovVoiceOpenFeignClient public Result resiArticleDetail(ResiArticleDetailFormDTO articleDetailFormDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_VOICE_SERVER, "resiArticleDetail", articleDetailFormDTO); } + + @Override + public Result> subjectArticleList(SubjectArticleListFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_VOICE_SERVER, "subjectArticleList", formDTO); + } + + @Override + public Result> subjectList(SubjectListFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_VOICE_SERVER, "subjectList", formDTO); + } } diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/feign/fallback/GovVoiceOpenFeignClientFallbackFactory.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/feign/fallback/GovVoiceOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..06552997e0 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/feign/fallback/GovVoiceOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.GovVoiceOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class GovVoiceOpenFeignClientFallbackFactory implements FallbackFactory { + + private GovVoiceOpenFeignClientFallback fallback = new GovVoiceOpenFeignClientFallback(); + + @Override + public GovVoiceOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/GovVoiceApplication.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/GovVoiceApplication.java index db1073c8e8..b5d7919388 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/GovVoiceApplication.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/GovVoiceApplication.java @@ -2,6 +2,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.scheduling.annotation.EnableAsync; @@ -15,6 +16,7 @@ import org.springframework.scheduling.annotation.EnableAsync; @EnableDiscoveryClient @EnableFeignClients @EnableAsync +@ServletComponentScan public class GovVoiceApplication { public static void main(String[] args) { SpringApplication.run(GovVoiceApplication.class, args); diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java index 8f9b03861f..d81affca3a 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java @@ -249,14 +249,14 @@ public class ArticleController { log.error("scanContent draftId:{} return result null", draftId); } - if (syncScanResult.isAllPass()) { + if (syncScanResult != null && syncScanResult.isAllPass()) { articleService.scanAllPassPublishArticle(tokenDto, draftId, syncScanResult); } else { articleService.updateAuditStatusFailById(draftId, syncScanResult); } } catch (Exception e) { articleService.updateDraftPublishStatus(draftId, DraftConstant.AUDITFAIL, null); - log.error("scanContent exception draftId:{} return result null", e); + log.error("scanContent exception return result null", e); } } @@ -378,4 +378,28 @@ public class ArticleController { return new Result().ok(draftDetailResultDTO); } -} \ No newline at end of file + /** + * @Description 专题文章列表 + * @Param formDTO + * @author zxc + * @date 2021/7/15 2:21 下午 + */ + @PostMapping("subjectarticlelist") + public Result> subjectArticleList(@RequestBody SubjectArticleListFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,SubjectArticleListFormDTO.SubjectArticleListForm.class); + return new Result>().ok(articleService.subjectArticleList(formDTO)); + } + + /** + * @Description 专题列表 + * @Param formDTO + * @author zxc + * @date 2021/7/15 5:22 下午 + */ + @PostMapping("subjectlist") + public Result> subjectList(@RequestBody SubjectListFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, SubjectListFormDTO.SubjectListForm.class); + return new Result>().ok(articleService.subjectList(formDTO)); + } + +} diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/SpecialSubjectController.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/SpecialSubjectController.java new file mode 100644 index 0000000000..017338b433 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/SpecialSubjectController.java @@ -0,0 +1,128 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.controller; + +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.annotation.RequirePermission; +import com.epmet.commons.tools.enums.RequirePermissionEnum; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.form.*; +import com.epmet.dto.result.AddSpecialSubjectResultDTO; +import com.epmet.dto.result.PreviewResultDTO; +import com.epmet.dto.result.TagInfoResultDTO; +import com.epmet.dto.result.WorkSpecialSubjectResultDTO; +import com.epmet.service.SpecialSubjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + + +/** + * 专题表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-07-15 + */ +@RestController +@RequestMapping("specialsubject") +public class SpecialSubjectController { + + @Autowired + private SpecialSubjectService specialSubjectService; + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 添加专题 + * @Date 2021/7/15 15:31 + **/ + @RequirePermission(requirePermission = RequirePermissionEnum.WORK_SPECIAL_PROJECT_ADD) + @PostMapping("add") + public Result addSpecialSubject(@LoginUser TokenDto tokenDto, @RequestBody AddSpecialSubjectFormDTO formDTO) { + formDTO.setAddUserId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO, AddSpecialSubjectFormDTO.AddUserInternalGroup.class); + return new Result().ok(specialSubjectService.addSpecialSubject(formDTO)); + } + + /** + * @return com.epmet.commons.tools.utils.Result + * @param + * @author yinzuomei + * @description 【专题管理】删除专题 + * @Date 2021/7/15 20:49 + **/ + @RequirePermission(requirePermission = RequirePermissionEnum.WORK_SPECIAL_PROJECT_DEL) + @PostMapping("del") + public Result delSpecialSubject(@LoginUser TokenDto tokenDto, @RequestBody DelSpecialSubjectFormDTO formDTO){ + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO); + specialSubjectService.delSpecialSubject(formDTO); + return new Result(); + } + + + /** + * @return com.epmet.commons.tools.utils.Result> + * @param formDTO + * @author yinzuomei + * @description 【专题管理】已有专题列表 + * @Date 2021/7/15 21:17 + **/ + @PostMapping("existedlist") + public Result> queryExistedList(@LoginUser TokenDto tokenDto, @RequestBody QuerySpecialSubFormDTO formDTO) { + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO, QuerySpecialSubFormDTO.AddUserInternalGroup.class); + return new Result>().ok(specialSubjectService.queryExistedList(formDTO)); + } + + /** + * 热门标签列表 + * @author zhaoqifeng + * @date 2021/7/15 15:36 + * @param tokenDto + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("hot-subject-taglist") + public Result> hotSubjectTagList(@LoginUser TokenDto tokenDto, @RequestBody HotSubjectTagFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, HotSubjectTagFormDTO.HotSubjectTagGroup.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result>().ok(specialSubjectService.hotSubjectTagList(formDTO)); + } + + /** + * 效果预览 + * @author zhaoqifeng + * @date 2021/7/16 15:54 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("preview") + public Result> preview(@RequestBody PreviewFormDTO formDTO) { + return new Result>().ok(specialSubjectService.preview(formDTO)); + } +} \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java index b0c4af6252..1650ee5fb2 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java @@ -16,6 +16,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.annotation.DataFilter; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.SubjectArticleListFormDTO; import com.epmet.dto.result.*; import com.epmet.dto.form.ResiTagListFormDTO; import com.epmet.dto.result.GovArticleContentDTO; @@ -130,6 +131,8 @@ public interface ArticleDao extends BaseDao { **/ List selectArticleList(@Param("gridId") String gridId, @Param("tagIdList") List tagIdList); + List selectArticleListByTag(@Param("tagId") String tagId, @Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize); + /** * @param gridId * @param articleId @@ -146,4 +149,21 @@ public interface ArticleDao extends BaseDao { * @author zxc */ String getArticleIdByDraftId(@Param("draftId") String draftId); + + /** + * @Description 专题下的文章 + * @Param gridId + * @Param tagId + * @author zxc + * @date 2021/7/15 3:49 下午 + */ + List subjectArticleList(@Param("gridId") String gridId,@Param("tagId") String tagId); + + /** + * @Description 专题列表查询 + * @Param pidList + * @author zxc + * @date 2021/7/16 10:29 上午 + */ + List subjectList(@Param("pidList")List pidList); } diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/SpecialSubjectDao.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/SpecialSubjectDao.java new file mode 100644 index 0000000000..4fcd896952 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/SpecialSubjectDao.java @@ -0,0 +1,43 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.SpecialSubjectDTO; +import com.epmet.entity.SpecialSubjectEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 专题表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-07-15 + */ +@Mapper +public interface SpecialSubjectDao extends BaseDao { + + int delSpecialSubject(@Param("id") String id, @Param("userId") String userId); + + List queryExistedList(@Param("orgId") String orgId,@Param("notList")List notList); + + SpecialSubjectDTO getInfo(@Param("tagId") String tagId); + +} \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/TagCustomerDao.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/TagCustomerDao.java index edcc5ec3b5..595f2a9a18 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/TagCustomerDao.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/TagCustomerDao.java @@ -40,7 +40,7 @@ public interface TagCustomerDao extends BaseDao { * @param formDTO * @author zxc */ - void upsertTagCount(UpdateTagFormDTO formDTO); + void upsertTagCount(UpdateTagFormDTO formDTO); /** * @Description 初始化默认标签 @@ -55,4 +55,4 @@ public interface TagCustomerDao extends BaseDao { * @return */ List selectInitData(@Param("customerIdList") List customerIdList); -} \ No newline at end of file +} diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/SpecialSubjectEntity.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/SpecialSubjectEntity.java new file mode 100644 index 0000000000..2b78ecd37a --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/SpecialSubjectEntity.java @@ -0,0 +1,89 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 专题表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-07-15 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("special_subject") +public class SpecialSubjectEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 标签id + */ + private String tagId; + + /** + * 新增此专题的用户id + */ + private String addUserId; + + /** + * 新增此专题时用户所在的组织id或者网格id + * mean:给谁添加的??? + */ + private String addOrgId; + + /** + * ADD_ORG_ID的上级id + */ + private String addOrgPid; + + /** + * 用户所在的组织或者网格的所有上级 + */ + private String addOrgPids; + + /** + * 网格:grid;社区级:community, +乡(镇、街道)级:street, +区县级: district, +市级: city +省级:province + */ + private String orgLevel; + + /** + * 新增此专题用户所属的组织id + * mean:当前人是谁? + */ + private String addUserAgencyId; + + /** + * 删除人id + */ + private String delStaffId; + +} diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/TagCustomerEntity.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/TagCustomerEntity.java index 878b9e05e5..7a2a54d7ae 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/TagCustomerEntity.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/TagCustomerEntity.java @@ -18,13 +18,10 @@ package com.epmet.entity; import com.baomidou.mybatisplus.annotation.TableName; - import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; - /** * 客户标签表 * @@ -48,6 +45,11 @@ public class TagCustomerEntity extends BaseEpmetEntity { */ private String tagName; + /** + * 标签颜色 + */ + private String tagColor; + /** * 使用计数 */ diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java index c8657af1a5..45a3548367 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java @@ -21,6 +21,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.constant.TagConstant; import com.epmet.dto.form.CorrelationTagListFormDTO; import com.epmet.dto.form.TagCascadeListFormDTO; @@ -28,9 +29,7 @@ import com.epmet.dto.result.CorrelationTagListResultDTO; import com.epmet.dto.result.TagInfoResultDTO; import com.epmet.dto.result.TagRankResultDTO; import com.epmet.dto.result.UpdateTagUseCountsResultDTO; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.data.redis.connection.RedisConnection; @@ -103,10 +102,7 @@ public class TagRedis { return resultList; } //转换DTO - for (Object object : objects) { - resultList.add(objectToDTO(object,CorrelationTagListResultDTO.class)); - } -// resultList = JSONObject.parseArray(objects.toString(), CorrelationTagListResultDTO.class); + resultList = ConvertUtils.sourceToTarget(objects,CorrelationTagListResultDTO.class); //级联标签排序 //1.取出 zset 中的有序标签,根据级联标签,筛选有序标签 List resultEquals = new ArrayList<>(); @@ -117,7 +113,7 @@ public class TagRedis { Set> typedTuples = redisUtils.zReverseRangeWithScores(customerKey, start, end); for (CorrelationTagListResultDTO correlationTagList : resultList) { for (ZSetOperations.TypedTuple typedTuple : typedTuples) { - TagRankResultDTO tagRank = objectToDTO(typedTuple.getValue(), TagRankResultDTO.class); + TagRankResultDTO tagRank = ConvertUtils.sourceToTarget(typedTuple.getValue(), TagRankResultDTO.class); tagRank.setScore(typedTuple.getScore()); if (correlationTagList.getTagId().equals(tagRank.getTagId())){ resultEquals.add(tagRank); @@ -127,13 +123,7 @@ public class TagRedis { } // 根据标签使用顺序倒叙 List collect = resultEquals.stream().sorted(Comparator.comparing(TagRankResultDTO::getScore).reversed()).collect(Collectors.toList()); - List realResult = new ArrayList<>(); - for (TagRankResultDTO tagRankResultDTO : collect) { - CorrelationTagListResultDTO correlation = new CorrelationTagListResultDTO(); - BeanUtils.copyProperties(tagRankResultDTO,correlation); - realResult.add(correlation); - } - return realResult; + return ConvertUtils.sourceToTarget(collect, CorrelationTagListResultDTO.class); } @@ -150,12 +140,7 @@ public class TagRedis { if (objects.size()== NumConstant.ZERO){ return new ArrayList<>(); } - List result = new ArrayList(); - for (Object object : objects) { - result.add(objectToDTO(object,TagInfoResultDTO.class)); - } -// List tagInfoResultDTOS = JSONObject.parseArray(objects.toString(), TagInfoResultDTO.class); - return result; + return ConvertUtils.sourceToTarget(objects, TagInfoResultDTO.class); } /** @@ -171,11 +156,7 @@ public class TagRedis { if (objects.size()== NumConstant.ZERO){ return new ArrayList<>(); } - List result = new ArrayList(); - for (Object object : objects) { - result.add(objectToDTO(object,TagInfoResultDTO.class)); - } - return result; + return ConvertUtils.sourceToTarget(objects, TagInfoResultDTO.class); } /** @@ -207,9 +188,7 @@ public class TagRedis { return resultList; } //转换DTO - for (Object object : objects) { - resultList.add(objectToDTO(object, TagInfoResultDTO.class)); - } + resultList = ConvertUtils.sourceToTarget(objects,TagInfoResultDTO.class); //级联标签排序 //1.取出 zset 中的有序标签,根据级联标签,筛选有序标签 List resultEquals = new ArrayList<>(); @@ -221,7 +200,7 @@ public class TagRedis { Set> typedTuples = redisUtils.zReverseRangeWithScores(gridTagKey, start, end); for (TagInfoResultDTO tagInfo : resultList) { for (ZSetOperations.TypedTuple typedTuple : typedTuples) { - TagRankResultDTO tagRank = objectToDTO(typedTuple.getValue(), TagRankResultDTO.class); + TagRankResultDTO tagRank = ConvertUtils.sourceToTarget(typedTuple.getValue(), TagRankResultDTO.class); tagRank.setScore(typedTuple.getScore()); if (tagInfo.getTagId().equals(tagRank.getTagId())){ resultEquals.add(tagRank); @@ -231,25 +210,7 @@ public class TagRedis { } // 根据标签使用顺序倒叙 List collect = resultEquals.stream().sorted(Comparator.comparing(TagRankResultDTO::getScore).reversed()).collect(Collectors.toList()); - List tagInfoResultList = new ArrayList<>(); - for (TagRankResultDTO tagRankResultDTO : collect) { - TagInfoResultDTO tagInfoResult = new TagInfoResultDTO(); - BeanUtils.copyProperties(tagRankResultDTO,tagInfoResult); - tagInfoResultList.add(tagInfoResult); - } - return tagInfoResultList; - } - - /** - * @Description Object 转换 DTO - * @param o - * @param tClass - * @author zxc - */ - public T objectToDTO(Object o,Class tClass){ - ObjectMapper objectMapper = new ObjectMapper(); - T t = objectMapper.convertValue(o, tClass); - return t; + return ConvertUtils.sourceToTarget(collect, TagInfoResultDTO.class); } /** @@ -282,7 +243,7 @@ public class TagRedis { } }); } - + /** * @Description set 更新标签级联 * @param key @@ -305,6 +266,30 @@ public class TagRedis { } } + /** + * desc: 根据Key删除 缓存 + * + * @param customerId + * @return java.lang.Boolean + * @author LiuJanJun + * @date 2021/7/19 1:34 下午 + */ + public void clearCustomerTag(String customerId) { + String customerTagKey = RedisKeys.getCustomerTagKey(customerId); + Boolean delete = redisTemplate.delete(customerTagKey); + log.info("clearCustomerTag result:{}, customerRankingTagKey:{}",delete, customerTagKey); + String customerReTagKey = RedisKeys.getCustomerReTagKey(customerId, null).concat(":*"); + delete = redisTemplate.delete(customerReTagKey); + log.info("clearCustomerTag result:{}, customerReTagKey:{}",delete, customerReTagKey); + } -} \ No newline at end of file + public void clearGridTag(String gridId) { + String gridTagKey = RedisKeys.getGridTagKey(gridId); + Boolean delete = redisTemplate.delete(gridTagKey); + log.info("clearGridTag result:{}, gridRankingTagKey:{}",delete, gridTagKey); + String gridReTagKey = RedisKeys.getGridReTagKey(gridId, null).concat(":*"); + delete = redisTemplate.delete(gridReTagKey); + log.info("clearGridTag result:{}, gridReTagKey:{}",delete, gridReTagKey); + } +} diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java index 634fcfa7f5..db03b3a0c5 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java @@ -216,4 +216,31 @@ public interface ArticleService extends BaseService { * @return */ void manualPublish(TokenDto tokenDto, String draftId); + + /** + * @Description 专题文章列表 + * @Param formDTO + * @author zxc + * @date 2021/7/15 2:21 下午 + */ + List subjectArticleList(SubjectArticleListFormDTO formDTO); + + /** + * @Description 专题列表 + * @Param formDTO + * @author zxc + * @date 2021/7/15 5:22 下午 + */ + List subjectList(SubjectListFormDTO formDTO); + + /** + * 根据tag查找文章列表 + * @author zhaoqifeng + * @date 2021/7/16 14:50 + * @param tagId + * @param pageNo + * @param pageSize + * @return java.util.List + */ + List getArticleListByTag(String tagId, Integer pageNo, Integer pageSize); } \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/SpecialSubjectService.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/SpecialSubjectService.java new file mode 100644 index 0000000000..8fa6bd1aa7 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/SpecialSubjectService.java @@ -0,0 +1,148 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.SpecialSubjectDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.PreviewResultDTO; +import com.epmet.dto.result.TagInfoResultDTO; +import com.epmet.dto.result.AddSpecialSubjectResultDTO; +import com.epmet.dto.result.WorkSpecialSubjectResultDTO; +import com.epmet.entity.SpecialSubjectEntity; + +import java.util.List; +import java.util.Map; + +/** + * 专题表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-07-15 + */ +public interface SpecialSubjectService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2021-07-15 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2021-07-15 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return SpecialSubjectDTO + * @author generator + * @date 2021-07-15 + */ + SpecialSubjectDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2021-07-15 + */ + void save(SpecialSubjectDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2021-07-15 + */ + void update(SpecialSubjectDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2021-07-15 + */ + void delete(String[] ids); + + /** + * 热门标签列表 + * @author zhaoqifeng + * @date 2021/7/15 15:35 + * @param formDTO + * @return java.util.List + */ + List hotSubjectTagList(HotSubjectTagFormDTO formDTO); + + /** + * 添加专题 + * + * @param formDTO + * @return void + * @author yinzuomei + * @date 2021-07-15 + */ + AddSpecialSubjectResultDTO addSpecialSubject(AddSpecialSubjectFormDTO formDTO); + + /** + * 【专题管理】删除专题 + * + * @param formDTO + * @return void + * @author yinzuomei + * @date 2021-07-15 + */ + void delSpecialSubject(DelSpecialSubjectFormDTO formDTO); + + /** + * 【专题管理】已有专题列表 + * + * @param formDTO + * @return void + * @author yinzuomei + * @date 2021-07-15 + */ + List queryExistedList(QuerySpecialSubFormDTO formDTO); + + /** + * 效果预览 + * @author zhaoqifeng + * @date 2021/7/16 14:28 + * @param formDTO + * @return java.util.List + */ + List preview(PreviewFormDTO formDTO); +} \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java index d7786573ff..f45707ee7b 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java @@ -1105,7 +1105,7 @@ public class ArticleServiceImpl extends BaseServiceImpl failDataIds = syncScanResult.getFailDataIds(); for (String id : failDataIds) { if (id.indexOf(ModuleConstant.SCAN_COVER_PREFIX) >= NumConstant.ZERO) { @@ -1236,7 +1239,7 @@ public class ArticleServiceImpl extends BaseServiceImpl subjectArticleList(SubjectArticleListFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List result = baseDao.subjectArticleList(formDTO.getGridId(), formDTO.getTagId()); + if (!CollectionUtils.isEmpty(result)){ + return result; + } + return new ArrayList<>(); + } + + /** + * @Description 专题列表 + * @Param formDTO + * @author zxc + * @date 2021/7/15 5:22 下午 + */ + @Override + public List subjectList(SubjectListFormDTO formDTO) { + String gridId = formDTO.getGridId(); + Result pidsByGridId = govOrgOpenFeignClient.selectPidsByGridId(gridId); + if (!pidsByGridId.success()){ + throw new RenException("查询pids失败【"+pidsByGridId.getMsg()+"】"); + } + String pids = pidsByGridId.getData(); + List pidList = Arrays.stream(pids.split(":")).collect(Collectors.toList()); + pidList.add(gridId); + List result = baseDao.subjectList(pidList); + if (CollectionUtils.isEmpty(result)){ + return new ArrayList<>(); + } + result = result.stream().distinct().collect(Collectors.toList()); + return result; + } + + /** + * 根据tag查找文章列表 + * + * @param tagId + * @param pageNo + * @param pageSize + * @return java.util.List + * @author zhaoqifeng + * @date 2021/7/16 14:47 + */ + @Override + public List getArticleListByTag(String tagId, Integer pageNo, Integer pageSize) { + return baseDao.selectArticleListByTag(tagId, pageNo, pageSize); + } } diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/SpecialSubjectServiceImpl.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/SpecialSubjectServiceImpl.java new file mode 100644 index 0000000000..4b53ba35e9 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/SpecialSubjectServiceImpl.java @@ -0,0 +1,306 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dao.SpecialSubjectDao; +import com.epmet.dto.CustomerAgencyDTO; +import com.epmet.dto.SpecialSubjectDTO; +import com.epmet.dto.TagCustomerDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.*; +import com.epmet.entity.SpecialSubjectEntity; +import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.redis.TagRedis; +import com.epmet.service.ArticleService; +import com.epmet.service.SpecialSubjectService; +import com.epmet.service.TagCustomerService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * 专题表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-07-15 + */ +@Slf4j +@Service +public class SpecialSubjectServiceImpl extends BaseServiceImpl implements SpecialSubjectService { + @Autowired + private TagCustomerService tagCustomerService; + @Resource + private TagRedis tagRedis; + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; + @Resource + private ArticleService articleService; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, SpecialSubjectDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, SpecialSubjectDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public SpecialSubjectDTO get(String id) { + SpecialSubjectEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, SpecialSubjectDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(SpecialSubjectDTO dto) { + SpecialSubjectEntity entity = ConvertUtils.sourceToTarget(dto, SpecialSubjectEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(SpecialSubjectDTO dto) { + SpecialSubjectEntity entity = ConvertUtils.sourceToTarget(dto, SpecialSubjectEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + + /** + * 添加专题 + * + * @param formDTO + * @return void + * @author yinzuomei + * @date 2021-07-15 + */ + @Override + public AddSpecialSubjectResultDTO addSpecialSubject(AddSpecialSubjectFormDTO formDTO) { + // 1、标签是否存在 + TagCustomerDTO tagCustomerDTO=tagCustomerService.get(formDTO.getTagId()); + if(null==tagCustomerDTO){ + throw new RenException(EpmetErrorCode.TAG_NOT_EXIST.getCode(), EpmetErrorCode.TAG_NOT_EXIST.getMsg()); + } + //2、校验当前组织是否添加过此专题 + QuerySpecialSubFormDTO querySpecialSubFormDTO=ConvertUtils.sourceToTarget(formDTO,QuerySpecialSubFormDTO.class); + querySpecialSubFormDTO.setUserId(formDTO.getAddUserId()); + List havedList=this.queryExistedList(querySpecialSubFormDTO); + List haveTagIds=havedList.stream().map(WorkSpecialSubjectResultDTO::getTagId).distinct().collect(Collectors.toList()); + haveTagIds.forEach(tagId->{ + if(tagId.equals(formDTO.getTagId())){ + throw new RenException(EpmetErrorCode.EXISTED_SPECIAL_PROJECT.getCode(), EpmetErrorCode.EXISTED_SPECIAL_PROJECT.getMsg()); + } + }); + // 3、保存 + SpecialSubjectEntity insertEntity = ConvertUtils.sourceToTarget(formDTO, SpecialSubjectEntity.class); + Result result = govOrgOpenFeignClient.getAgencyByStaff(formDTO.getAddUserId()); + if(result.success()&&null!=result.getData()){ + insertEntity.setAddUserAgencyId(result.getData().getId()); + } + insertEntity.setAddOrgId(formDTO.getOrgId()); + insertEntity.setAddOrgPid(formDTO.getPid()); + insertEntity.setAddOrgPids(formDTO.getPids()); + baseDao.insert(insertEntity); + return new AddSpecialSubjectResultDTO(insertEntity.getId()); + } + + /** + * 【专题管理】删除专题 + * + * @param formDTO + * @return void + * @author yinzuomei + * @date 2021-07-15 + */ + @Override + public void delSpecialSubject(DelSpecialSubjectFormDTO formDTO) { + SpecialSubjectEntity original = baseDao.selectById(formDTO.getSpecialSubjectId()); + if (null != original) { + if (!original.getAddOrgId().equals(formDTO.getOrgId())) { + log.warn("当前专题id=" + original.getId() + ";是属于orgId=" + original.getAddOrgId() + ";当前用户正处在orgId=" + formDTO.getOrgId()+";所以无权删除"); + throw new RenException(EpmetErrorCode.CAN_NOT_DEL_SPECIAL_PROJECT.getCode(), EpmetErrorCode.CAN_NOT_DEL_SPECIAL_PROJECT.getMsg()); + } + baseDao.delSpecialSubject(formDTO.getSpecialSubjectId(), formDTO.getUserId()); + } + } + + /** + * 【专题管理】已有专题列表 + * + * @param formDTO + * @return void + * @author yinzuomei + * @date 2021-07-15 + */ + @Override + public List queryExistedList(QuerySpecialSubFormDTO formDTO) { + Result staffResult = govOrgOpenFeignClient.getAgencyByStaff(formDTO.getUserId()); + if (!staffResult.success() && null == staffResult.getData()) { + throw new RenException("查询当前工作人员信息异常"); + } + List resultDTOList = new ArrayList<>(); + List notList = new ArrayList<>(); + //当前组织或者网格自己建立的 + List currentOrgList = new ArrayList<>(); + List currentOrgCreatedList = baseDao.queryExistedList(formDTO.getOrgId(), notList); + currentOrgCreatedList.forEach(dto -> { + WorkSpecialSubjectResultDTO result = ConvertUtils.sourceToTarget(dto,WorkSpecialSubjectResultDTO.class); + result.setSpecialSubjectId(dto.getId()); + //1、如果当前专题是给当前所在组织(or网格)添加的; + //2、当前工作人员所属的组织,与专题添加人所属的组织一致,同时满足这两个条件即可删除 + if(dto.getAddUserAgencyId().equals(staffResult.getData().getId()) + && dto.getAddOrgId().equals(formDTO.getOrgId())){ + result.setCanDel(true); + }else{ + result.setCanDel(false); + } + currentOrgList.add(result); + }); + if (CollectionUtils.isNotEmpty(currentOrgList)) { + notList = currentOrgList.stream().map(WorkSpecialSubjectResultDTO::getTagId).distinct().collect(Collectors.toList()); + } + if (!NumConstant.ZERO_STR.equals(formDTO.getPids())) { + List pidList = Arrays.asList(formDTO.getPids().split(StrConstant.COLON)); + for (String pid : pidList) { + if(CollectionUtils.isNotEmpty(resultDTOList)){ + List parentAddList=resultDTOList.stream().map(WorkSpecialSubjectResultDTO::getTagId).distinct().collect(Collectors.toList()); + notList.addAll(parentAddList); + } + //优先展示自己的,所以要排除掉自己的,自上向下查,优先展示上层领导们给我建立的专题 + List list = baseDao.queryExistedList(pid, notList); + list.forEach(dto -> { + WorkSpecialSubjectResultDTO result = ConvertUtils.sourceToTarget(dto,WorkSpecialSubjectResultDTO.class); + result.setSpecialSubjectId(dto.getId()); + //1、如果当前专题是给当前所在组织(or网格)添加的; + //2、当前工作人员所属的组织,与专题添加人所属的组织一致,同时满足这两个条件即可删除 + if (dto.getAddUserAgencyId().equals(staffResult.getData().getId()) + && dto.getAddOrgId().equals(formDTO.getOrgId())) { + result.setCanDel(true); + } else { + result.setCanDel(false); + } + resultDTOList.add(result); + }); + } + } + //自己建立的在最后面 + if (CollectionUtils.isNotEmpty(currentOrgList)) { + resultDTOList.addAll(currentOrgList); + } + return resultDTOList; + } + + /** + * 热门标签列表 + * + * @param formDTO + * @return java.util.List + * @author zhaoqifeng + * @date 2021/7/15 15:35 + */ + @Override + public List hotSubjectTagList(HotSubjectTagFormDTO formDTO) { + + List list = tagRedis.zRevRange(formDTO.getCustomerId()); + List orgIds = Stream.of(formDTO.getPids().split(StrConstant.COLON)).collect(Collectors.toList()); + orgIds.add(formDTO.getOrgId()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SpecialSubjectEntity :: getCustomerId, formDTO.getCustomerId()); + wrapper.eq(SpecialSubjectEntity :: getDelFlag, NumConstant.ZERO_STR); + wrapper.in(SpecialSubjectEntity :: getAddOrgId, orgIds); + List specialSubjectList = baseDao.selectList(wrapper); + if (CollectionUtils.isNotEmpty(specialSubjectList)) { + List tags = specialSubjectList.stream().map(SpecialSubjectEntity :: getTagId).distinct().collect(Collectors.toList()); + list = list.stream().filter(item -> !tags.contains(item.getTagId())).collect(Collectors.toList()); + } + return list; + } + + /** + * 效果预览 + * + * @param formDTO + * @return java.util.List + * @author zhaoqifeng + * @date 2021/7/16 14:28 + */ + @Override + public List preview(PreviewFormDTO formDTO) { + List result = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(formDTO.getTagIdList())) { + formDTO.getTagIdList().forEach(tagId -> { + PreviewResultDTO previewResultDTO = new PreviewResultDTO(); +// SpecialSubjectDTO subject = baseDao.getInfo(tagId); +// previewResultDTO.setSpecialSubjectId(subject.getId()); +// previewResultDTO.setTagName(subject.getTagName()); + previewResultDTO.setArticleList(articleService.getArticleListByTag(tagId, (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(), + formDTO.getPageSize())); + result.add(previewResultDTO); + }); + } + return result; + + } + +} diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/TagCustomerServiceImpl.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/TagCustomerServiceImpl.java index 58ece05108..b5c69d76c1 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/TagCustomerServiceImpl.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/TagCustomerServiceImpl.java @@ -29,6 +29,7 @@ import com.epmet.dto.form.UpdateTagFormDTO; import com.epmet.dto.result.UpdateTagUseCountsResultDTO; import com.epmet.entity.TagCustomerEntity; import com.epmet.service.TagCustomerService; +import com.epmet.utils.TagColorUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -114,11 +115,15 @@ public class TagCustomerServiceImpl extends BaseServiceImpl>> customerTag = new HashMap<>(); - customerTagList.stream().forEach(tag -> { - buildZset(customerTag, tag.getCustomerId(), tag.getId(), tag.getTagName(), tag.getUseCount()); + customerTagList.forEach(tag -> { + buildZset(customerTag, tag.getCustomerId(), tag.getId(), tag.getTagName(),tag.getTagColor(), tag.getUseCount()); }); if (customerTag.size() > 0) { - customerTag.forEach((customerId, tagSet) -> tagRedis.zAddCustomerTag(customerId, tagSet)); + customerTag.forEach((customerId, tagSet) -> { + //先删除(排行及关联标签) 再添加 + tagRedis.clearCustomerTag(customerId); + tagRedis.zAddCustomerTag(customerId, tagSet); + }); } //key customerId:tagId Map> reCustomerTagMap = new HashMap<>(); @@ -172,9 +176,13 @@ public class TagServiceImpl implements TagService { throw new RenException("网格标签数为空"); } customerTag.clear(); - gridTagList.stream().forEach(tag -> buildZset(customerTag, tag.getGridId(), tag.getTagId(), tag.getTagName(), tag.getUseCount())); + gridTagList.forEach(tag -> buildZset(customerTag, tag.getGridId(), tag.getTagId(), tag.getTagName(), null, tag.getUseCount())); if (customerTag.size() > 0) { - customerTag.forEach((gridId, tagSet) -> tagRedis.zAddGridTag(gridId, tagSet)); + customerTag.forEach((gridId, tagSet) -> { + //先删除(排行及关联标签) 再添加 + tagRedis.clearGridTag(gridId); + tagRedis.zAddGridTag(gridId, tagSet); + }); } //获取网格发布的文章 按网格排序 @@ -236,7 +244,7 @@ public class TagServiceImpl implements TagService { }); } - private void buildZset(Map>> customerTag, String customerId, String id, String tagName, Integer useCount) { + private void buildZset(Map>> customerTag, String customerId, String id, String tagName, String tagColor, Integer useCount) { Set> typedTupleSet = customerTag.get(customerId); if (typedTupleSet == null) { typedTupleSet = new HashSet<>(); @@ -245,7 +253,8 @@ public class TagServiceImpl implements TagService { UpdateTagUseCountsResultDTO initTag = new UpdateTagUseCountsResultDTO(); initTag.setTagId(id); initTag.setTagName(tagName); + initTag.setTagColor(tagColor); ZSetOperations.TypedTuple typedTuple1 = new DefaultTypedTuple<>(initTag, Double.valueOf(useCount)); typedTupleSet.add(typedTuple1); } -} \ No newline at end of file +} diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/TagColorUtils.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/TagColorUtils.java new file mode 100644 index 0000000000..ce1e289f31 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/TagColorUtils.java @@ -0,0 +1,28 @@ +package com.epmet.utils; + +import java.util.Random; + +/** + * desc:标签颜色工具类 + * + * @author: LiuJanJun + * @date: 2021/7/19 10:39 上午 + * @version: 1.0 + */ +public class TagColorUtils { + private static final String[] tagColorArr = {"#E3271C","#FB7900","#FFC100","#0089FF","#17B886"}; + + /** + * desc: 随机获取标签颜色 + * + * @param + * @return java.lang.String + * @author LiuJanJun + * @date 2021/7/19 2:38 下午 + */ + public static String getRandomColor(){ + int size = tagColorArr.length; + int index = new Random().nextInt(size); + return tagColorArr[index]; + } +} diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.4__create_specialsubject.sql b/epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.4__create_specialsubject.sql new file mode 100644 index 0000000000..87004cd042 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.4__create_specialsubject.sql @@ -0,0 +1,18 @@ +CREATE TABLE `special_subject` ( + `ID` varchar(64) NOT NULL COMMENT '主键(专题id)', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id', + `TAG_ID` varchar(64) NOT NULL COMMENT '标签id', + `ADD_USER_ID` varchar(64) NOT NULL COMMENT '新增此专题的用户id', + `ADD_ORG_ID` varchar(64) NOT NULL COMMENT '新增此专题时用户所在的组织id或者网格id', + `ADD_ORG_PID` varchar(64) NOT NULL COMMENT 'ADD_ORG_ID的上级id', + `ADD_ORG_PIDS` varchar(255) NOT NULL COMMENT '用户所在的组织或者网格的所有上级', + `ORG_LEVEL` varchar(10) NOT NULL COMMENT '网格:grid;社区级:community,\r\n乡(镇、街道)级:street,\r\n区县级: district,\r\n市级: city\r\n省级:province', + `ADD_USER_AGENCY_ID` varchar(64) NOT NULL COMMENT '新增此专题用户所属的组织id', + `DEL_FLAG` char(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除;1已删除', + `REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁', + `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='专题表'; \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.5__add_tag_color.sql b/epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.5__add_tag_color.sql new file mode 100644 index 0000000000..fad88adfab --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.5__add_tag_color.sql @@ -0,0 +1,37 @@ +#添加标签颜色字段 +ALTER TABLE `epmet_gov_voice`.`tag_default` + ADD COLUMN `TAG_COLOR` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '标签颜色' AFTER `TAG_NAME`, + DROP PRIMARY KEY, + ADD PRIMARY KEY (`ID`) USING BTREE; +ALTER TABLE `epmet_gov_voice`.`tag_customer` + ADD COLUMN `TAG_COLOR` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '标签颜色' AFTER `TAG_NAME`, + DROP PRIMARY KEY, + ADD PRIMARY KEY (`ID`) USING BTREE; +#给默认标签添加颜色 +update tag_default set tag_color='#E3271C' where id='6dd39a3dab9011ea8c52c03fd56f7847'; +update tag_default set tag_color='#FB7900' where id='6dd55595ab9011ea8c52c03fd56f7847'; +update tag_default set tag_color='#FFC100' where id='6dd6c2eeab9011ea8c52c03fd56f7847'; +update tag_default set tag_color='#0089FF' where id='6dd804d1ab9011ea8c52c03fd56f7847'; +update tag_default set tag_color='#17B886' where id='6dda6acaab9011ea8c52c03fd56f7847'; + +#给已有的客户默认标签 添加统一的颜色 +update tag_customer set tag_color='#E3271C' where TAG_NAME='发现榜样'; +update tag_customer set tag_color='#FB7900' where TAG_NAME='党建动态'; +update tag_customer set tag_color='#FFC100' where TAG_NAME='通知公告'; +update tag_customer set tag_color='#0089FF' where TAG_NAME='生活服务'; +update tag_customer set tag_color='#17B886' where TAG_NAME='党建要闻'; + +#手动去执行 +#获取有哪些客户的标签需要赋值颜色 +# SELECT CUSTOMER_ID ,COUNT(ID) c FROM tag_customer where tag_color IS NULL GROUP BY CUSTOMER_ID; +#按照时间顺序 依次更新5个颜色 +# update tag_customer set tag_color='#E3271C' where tag_color is null and customer_id = '上面sql客户Id' order by created_time desc limit 1; +# update tag_customer set tag_color='#FB7900' where tag_color is null and customer_id = '上面sql客户Id' order by created_time desc limit 1; +# update tag_customer set tag_color='#FFC100' where tag_color is null and customer_id = '上面sql客户Id' order by created_time desc limit 1; +# update tag_customer set tag_color='#0089FF' where tag_color is null and customer_id = '上面sql客户Id' order by created_time desc limit 1; +# update tag_customer set tag_color='#17B886' where tag_color is null and customer_id = '上面sql客户Id' order by created_time desc limit 1; + + + + + diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.6__add_del_staffid.sql b/epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.6__add_del_staffid.sql new file mode 100644 index 0000000000..edc1c28425 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.6__add_del_staffid.sql @@ -0,0 +1 @@ +alter table special_subject add COLUMN DEL_STAFF_ID VARCHAR(64) COMMENT '删除人id' AFTER ADD_USER_AGENCY_ID; \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml index b781bbd889..732bf2683a 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml @@ -347,4 +347,83 @@ AND a.draft_id = #{draftId} + + + + + + + diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/SpecialSubjectDao.xml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/SpecialSubjectDao.xml new file mode 100644 index 0000000000..d5d457bb02 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/SpecialSubjectDao.xml @@ -0,0 +1,42 @@ + + + + + + + update special_subject set del_flag='1',UPDATED_BY=#{userId},UPDATED_TIME=Now(),DEL_STAFF_ID=#{userId} + where id=#{id} + + + + + \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/TagCustomerDao.xml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/TagCustomerDao.xml index 12da65d434..183eb8317f 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/TagCustomerDao.xml +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/TagCustomerDao.xml @@ -7,11 +7,12 @@ select id from tag_customer where tag_name = #{tagName} AND CUSTOMER_ID = #{customerId} - INSERT INTO tag_customer ( ID, CUSTOMER_ID, TAG_NAME, USE_COUNT, DEL_FLAG, REVISION, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME ) + INSERT INTO tag_customer ( ID, CUSTOMER_ID, TAG_NAME, TAG_COLOR, USE_COUNT, DEL_FLAG, REVISION, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME ) VALUES (REPLACE ( UUID(), '-', '' ), #{customerId}, #{tagName}, + #{tagColor}, #{useCount}, #{delFlag}, #{revision}, @@ -26,11 +27,11 @@ - INSERT INTO tag_customer ( ID, CUSTOMER_ID, TAG_NAME, USE_COUNT, DEL_FLAG, REVISION, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME ) + INSERT INTO tag_customer ( ID, CUSTOMER_ID, TAG_NAME, TAG_COLOR, USE_COUNT, DEL_FLAG, REVISION, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME ) VALUES ( - #{tag.id},#{tag.customerId}, #{tag.tagName}, #{tag.useCount}, #{tag.delFlag}, #{tag.revision}, #{tag.createdBy}, NOW(), #{tag.updatedBy}, NOW() + #{tag.id},#{tag.customerId}, #{tag.tagName}, #{tag.tagColor} #{tag.useCount}, #{tag.delFlag}, #{tag.revision}, #{tag.createdBy}, NOW(), #{tag.updatedBy}, NOW() ) ON DUPLICATE KEY UPDATE @@ -41,6 +42,7 @@ ID, CUSTOMER_ID, TAG_NAME, + TAG_COLOR, USE_COUNT FROM tag_customer @@ -54,4 +56,4 @@ ORDER BY CUSTOMER_ID - \ No newline at end of file + diff --git a/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/OperAccessOpenFeignClient.java b/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/OperAccessOpenFeignClient.java index cba3dfa021..c89b3f39c9 100644 --- a/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/OperAccessOpenFeignClient.java +++ b/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/OperAccessOpenFeignClient.java @@ -1,5 +1,6 @@ package com.epmet.feign; +import com.epmet.feign.fallback.OperAccessOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; @@ -13,7 +14,7 @@ import com.epmet.feign.fallback.OperAccessOpenFeignClientFallback; * @Date 2020/5/21 15:17 本服务对外开放的API,其他服务通过引用此client调用该服务 */ // , url = "http://localhost:8093" -@FeignClient(name = ServiceConstant.OPER_ACCESS_SERVER, fallback = OperAccessOpenFeignClientFallback.class) +@FeignClient(name = ServiceConstant.OPER_ACCESS_SERVER, fallbackFactory = OperAccessOpenFeignClientFallbackFactory.class) public interface OperAccessOpenFeignClient { /** * @param diff --git a/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessOpenFeignClientFallback.java b/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessOpenFeignClientFallback.java index 32693f4ed8..b062f8f372 100644 --- a/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessOpenFeignClientFallback.java +++ b/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessOpenFeignClientFallback.java @@ -11,7 +11,7 @@ import org.springframework.stereotype.Component; * @Author yinzuomei * @Date 2020/5/21 15:47 */ -@Component +//@Component public class OperAccessOpenFeignClientFallback implements OperAccessOpenFeignClient { @Override public Result clearOperUserAccess() { diff --git a/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessOpenFeignClientFallbackFactory.java b/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..cb07e9b4cd --- /dev/null +++ b/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessOpenFeignClientFallbackFactory.java @@ -0,0 +1,19 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.OperAccessOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class OperAccessOpenFeignClientFallbackFactory implements FallbackFactory { + private OperAccessOpenFeignClientFallback fallback = new OperAccessOpenFeignClientFallback(); + + @Override + public OperAccessOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/OperAccessApplication.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/OperAccessApplication.java index 6656d79909..4f8a0d8279 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/OperAccessApplication.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/OperAccessApplication.java @@ -2,6 +2,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -14,6 +15,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class OperAccessApplication { public static void main(String[] args) { SpringApplication.run(OperAccessApplication.class, args); diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java index 04508ac6df..500e09eaca 100644 --- a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java +++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java @@ -10,6 +10,7 @@ import com.epmet.dto.result.CustomerRelationInfoResultDTO; import com.epmet.dto.result.GridCountResultDTO; import com.epmet.dto.result.ThirdplatApiserviceResultDTO; import com.epmet.feign.fallback.OperCrmOpenFeignClientFallback; +import com.epmet.feign.fallback.OperCrmOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -24,8 +25,8 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:25 */ -@FeignClient(name = ServiceConstant.OPER_CRM_SERVER, fallback = OperCrmOpenFeignClientFallback.class) -// @FeignClient(name = ServiceConstant.OPER_CRM_SERVER, fallback = OperCrmOpenFeignClientFallback.class, url = "localhost:8090") +@FeignClient(name = ServiceConstant.OPER_CRM_SERVER, fallbackFactory = OperCrmOpenFeignClientFallbackFactory.class) +// @FeignClient(name = ServiceConstant.OPER_CRM_SERVER, fallbackFactory = OperCrmOpenFeignClientFallbackFactory.class, url = "localhost:8090") public interface OperCrmOpenFeignClient { /** * 获取客户信息 diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java index b718517d4b..c25fbcfc25 100644 --- a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java +++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java @@ -21,7 +21,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:26 */ -@Component +//@Component public class OperCrmOpenFeignClientFallback implements OperCrmOpenFeignClient { @Override public Result getCustomerInfo(CustomerDTO dto) { diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallbackFactory.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..5a1f2e0ded --- /dev/null +++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.OperCrmOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class OperCrmOpenFeignClientFallbackFactory implements FallbackFactory { + + private OperCrmOpenFeignClientFallback fallback = new OperCrmOpenFeignClientFallback(); + + @Override + public OperCrmOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/OperCrmApplication.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/OperCrmApplication.java index e0217c141d..37d5036585 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/OperCrmApplication.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/OperCrmApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class OperCrmApplication { public static void main(String[] args) { diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java index 62c90892f6..7674dbc437 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java @@ -3,6 +3,7 @@ package com.epmet.feign; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.CustomerFootBarDTO; import com.epmet.dto.form.CustomerFootBarFormDTO; +import com.epmet.feign.fallback.OperCustomizeOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import com.epmet.commons.tools.constant.ServiceConstant; @@ -28,7 +29,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:16 */ -@FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallback = OperCustomizeOpenFeignClientFallback.class) +@FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class) public interface OperCustomizeOpenFeignClient { @PostMapping(value = "/oper/customize/customerfootbar/customerfootbars", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java index 3958e89268..3e4664048d 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java @@ -21,7 +21,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:23 */ -@Component +//@Component public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFeignClient { @Override public Result> getCustomerfootbars(CustomerFootBarFormDTO formDTO) { diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallbackFactory.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..935c287323 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.OperCustomizeOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class OperCustomizeOpenFeignClientFallbackFactory implements FallbackFactory { + + private OperCustomizeOpenFeignClientFallback fallback = new OperCustomizeOpenFeignClientFallback(); + + @Override + public OperCustomizeOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/OperCustomizeApplication.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/OperCustomizeApplication.java index ebd25952d0..d69216a53d 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/OperCustomizeApplication.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/OperCustomizeApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class OperCustomizeApplication { public static void main(String[] args) { diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index 3401323760..16e1d8b0c8 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -12,6 +12,7 @@ import com.epmet.resi.group.dto.topic.form.*; import com.epmet.resi.group.dto.topic.result.*; import com.epmet.resi.group.dto.topic.result.TopicInfoResultDTO; import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallback; +import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallbackFactory; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; @@ -26,8 +27,8 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:16 */ -@FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupOpenFeignClientFallback.class) - //@FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupOpenFeignClientFallback.class,url = "localhost:8095") +@FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallbackFactory = ResiGroupOpenFeignClientFallbackFactory.class) + //@FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallbackFactory = ResiGroupOpenFeignClientFallbackFactory.class,url = "localhost:8095") public interface ResiGroupOpenFeignClient { @PostMapping("/resi/group/group/gov-edit-auditing-list") diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index a5e3eb06fe..94f03f3d41 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -25,7 +25,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:17 */ -@Component +//@Component public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClient { @Override public Result> govEditAuditingList(CommonGridAndPageFormDTO param) { diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallbackFactory.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..a0e0c96818 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.resi.group.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class ResiGroupOpenFeignClientFallbackFactory implements FallbackFactory { + + private ResiGroupOpenFeignClientFallback fallback = new ResiGroupOpenFeignClientFallback(); + + @Override + public ResiGroupOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java index b87b17770f..0976927df0 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class ResiGroupApplication { public static void main(String[] args) { diff --git a/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/ResiGuideApplication.java b/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/ResiGuideApplication.java index f0c424d76a..204b468868 100644 --- a/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/ResiGuideApplication.java +++ b/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/ResiGuideApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class ResiGuideApplication { public static void main(String[] args) { diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/ResiHallApplication.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/ResiHallApplication.java index 83139e9255..c8d91862ce 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/ResiHallApplication.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/ResiHallApplication.java @@ -2,6 +2,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -14,6 +15,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class ResiHallApplication { public static void main(String[] args) { diff --git a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/ResiHomeApplication.java b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/ResiHomeApplication.java index 9c7e8f6a66..43f8938fc8 100644 --- a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/ResiHomeApplication.java +++ b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/ResiHomeApplication.java @@ -2,6 +2,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -14,6 +15,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class ResiHomeApplication { public static void main(String[] args) { diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/ResiMineApplication.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/ResiMineApplication.java index a8e461d66a..f179e70961 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/ResiMineApplication.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/ResiMineApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class ResiMineApplication { public static void main(String[] args) { diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java index f823096f15..0eb5f2f018 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java @@ -9,6 +9,7 @@ import com.epmet.resi.partymember.dto.partymember.form.PartyMemberBaseInfoAddFor import com.epmet.resi.partymember.dto.partymember.result.PartyMemberBaseInfoDetailResultDTO; import com.epmet.resi.partymember.dto.partymember.result.PartymemberBaseInfoResultDTO; import com.epmet.resi.partymember.feign.fallback.ResiPartyMemberOpenFeignClientFallback; +import com.epmet.resi.partymember.feign.fallback.ResiPartyMemberOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; @@ -21,8 +22,8 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:12 */ -//@FeignClient(name = ServiceConstant.RESI_PARTYMEMBER_SERVER, fallback = ResiPartyMemberOpenFeignClientFallback.class,url = "http://localhost:8096") -@FeignClient(name = ServiceConstant.RESI_PARTYMEMBER_SERVER, fallback = ResiPartyMemberOpenFeignClientFallback.class) +//@FeignClient(name = ServiceConstant.RESI_PARTYMEMBER_SERVER, fallbackFactory = ResiPartyMemberOpenFeignClientFallbackFactory.class,url = "http://localhost:8096") +@FeignClient(name = ServiceConstant.RESI_PARTYMEMBER_SERVER, fallbackFactory = ResiPartyMemberOpenFeignClientFallbackFactory.class) public interface ResiPartyMemberOpenFeignClient { /** diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java index 3f3ebb8c97..9591f35234 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java @@ -20,7 +20,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:14 */ -@Component +//@Component public class ResiPartyMemberOpenFeignClientFallback implements ResiPartyMemberOpenFeignClient { @Override diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallbackFactory.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..cbf70d12aa --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallbackFactory.java @@ -0,0 +1,20 @@ +package com.epmet.resi.partymember.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class ResiPartyMemberOpenFeignClientFallbackFactory implements FallbackFactory { + + private ResiPartyMemberOpenFeignClientFallback fallback = new ResiPartyMemberOpenFeignClientFallback(); + + @Override + public ResiPartyMemberOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/ResiPartyMemberApplication.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/ResiPartyMemberApplication.java index b5fe00951d..57a43e6f1f 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/ResiPartyMemberApplication.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/ResiPartyMemberApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -22,6 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class ResiPartyMemberApplication { public static void main(String[] args) { diff --git a/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/feign/ResiVoiceOpenFeignClient.java b/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/feign/ResiVoiceOpenFeignClient.java index a31843a85f..accd02d67c 100644 --- a/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/feign/ResiVoiceOpenFeignClient.java +++ b/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/feign/ResiVoiceOpenFeignClient.java @@ -1,5 +1,6 @@ package com.epmet.feign; +import com.epmet.feign.fallback.ResiVoiceOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import com.epmet.commons.tools.constant.ServiceConstant; @@ -11,6 +12,6 @@ import com.epmet.feign.fallback.ResiVoiceOpenFeignClientFallback; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:01 */ -@FeignClient(name = ServiceConstant.RESI_VOICE_SERVER, fallback = ResiVoiceOpenFeignClientFallback.class) +@FeignClient(name = ServiceConstant.RESI_VOICE_SERVER, fallbackFactory = ResiVoiceOpenFeignClientFallbackFactory.class) public interface ResiVoiceOpenFeignClient { } diff --git a/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/feign/fallback/ResiVoiceOpenFeignClientFallback.java b/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/feign/fallback/ResiVoiceOpenFeignClientFallback.java index f538efd990..71a56f62d2 100644 --- a/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/feign/fallback/ResiVoiceOpenFeignClientFallback.java +++ b/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/feign/fallback/ResiVoiceOpenFeignClientFallback.java @@ -9,6 +9,6 @@ import org.springframework.stereotype.Component; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:05 */ -@Component +//@Component public class ResiVoiceOpenFeignClientFallback implements ResiVoiceOpenFeignClient { } diff --git a/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/feign/fallback/ResiVoiceOpenFeignClientFallbackFactory.java b/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/feign/fallback/ResiVoiceOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..3a896e05b6 --- /dev/null +++ b/epmet-module/resi-voice/resi-voice-client/src/main/java/com/epmet/feign/fallback/ResiVoiceOpenFeignClientFallbackFactory.java @@ -0,0 +1,18 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.ResiVoiceOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class ResiVoiceOpenFeignClientFallbackFactory implements FallbackFactory { + private ResiVoiceOpenFeignClientFallback fallback = new ResiVoiceOpenFeignClientFallback(); + @Override + public ResiVoiceOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/ResiVoiceApplication.java b/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/ResiVoiceApplication.java index 27d6017d9a..8dcdc0c704 100644 --- a/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/ResiVoiceApplication.java +++ b/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/ResiVoiceApplication.java @@ -2,6 +2,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -13,6 +14,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class ResiVoiceApplication { public static void main(String[] args) { SpringApplication.run(ResiVoiceApplication.class, args); diff --git a/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/controller/ArticleController.java b/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/controller/ArticleController.java index 2a8bbfd988..e4e7d5628e 100644 --- a/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/controller/ArticleController.java +++ b/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/controller/ArticleController.java @@ -4,13 +4,8 @@ import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.dto.form.ArticlePageFormDTO; -import com.epmet.dto.form.ResiArticleDetailFormDTO; -import com.epmet.dto.form.ResiTagListFormDTO; -import com.epmet.dto.form.TagCascadeListFormDTO; -import com.epmet.dto.result.ArticleDetailResultDTO; -import com.epmet.dto.result.ArticleWithTagsResultDTO; -import com.epmet.dto.result.TagInfoResultDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.*; import com.epmet.feign.GovVoiceOpenFeignClient; import com.epmet.service.ArticleService; import org.springframework.beans.factory.annotation.Autowired; @@ -79,4 +74,28 @@ public class ArticleController { return govVoiceOpenFeignClient.resiArticleDetail(articleDetailFormDTO); } + /** + * @Description 专题文章列表 + * @Param formDTO + * @author zxc + * @date 2021/7/16 1:30 下午 + */ + @PostMapping("subjectarticlelist") + public Result> subjectArticleList(@RequestBody SubjectArticleListFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,SubjectArticleListFormDTO.SubjectArticleListForm.class); + return new Result>().ok(articleService.subjectArticleList(formDTO)); + } + + /** + * @Description 专题列表 + * @Param formDTO + * @author zxc + * @date 2021/7/16 1:30 下午 + */ + @PostMapping("subjectlist") + public Result> subjectList(@RequestBody SubjectListFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, SubjectListFormDTO.SubjectListForm.class); + return new Result>().ok(articleService.subjectList(formDTO)); + } + } diff --git a/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/service/ArticleService.java b/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/service/ArticleService.java index d84c9fb966..ff95816e96 100644 --- a/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/service/ArticleService.java +++ b/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/service/ArticleService.java @@ -1,10 +1,10 @@ package com.epmet.service; import com.epmet.commons.tools.security.dto.TokenDto; -import com.epmet.dto.form.ArticlePageFormDTO; -import com.epmet.dto.form.ResiTagListFormDTO; -import com.epmet.dto.form.TagCascadeListFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.ArticleWithTagsResultDTO; +import com.epmet.dto.result.SubjectArticleListResultDTO; +import com.epmet.dto.result.SubjectListResultDTO; import com.epmet.dto.result.TagInfoResultDTO; import java.util.List; @@ -37,4 +37,20 @@ public interface ArticleService { * @date 2020.06.03 14:19 **/ List articleList(ArticlePageFormDTO articlePageFormDTO); + + /** + * @Description 专题文章列表 + * @Param formDTO + * @author zxc + * @date 2021/7/16 1:31 下午 + */ + List subjectArticleList(SubjectArticleListFormDTO formDTO); + + /** + * @Description 专题列表 + * @Param formDTO + * @author zxc + * @date 2021/7/16 1:31 下午 + */ + List subjectList(SubjectListFormDTO formDTO); } diff --git a/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java b/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java index 55ad32285d..72b5def2d8 100644 --- a/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java +++ b/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java @@ -5,12 +5,8 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.form.ArticlePageFormDTO; -import com.epmet.dto.form.ResiTagListFormDTO; -import com.epmet.dto.form.TagCascadeListFormDTO; -import com.epmet.dto.result.ArticleListResultDTO; -import com.epmet.dto.result.ArticleWithTagsResultDTO; -import com.epmet.dto.result.TagInfoResultDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.*; import com.epmet.feign.GovVoiceOpenFeignClient; import com.epmet.service.ArticleService; import com.epmet.utils.ModuleConstant; @@ -89,4 +85,34 @@ public class ArticleServiceImpl implements ArticleService { throw new RenException(articles.getInternalMsg()); } + /** + * @Description 专题文章列表 + * @Param formDTO + * @author zxc + * @date 2021/7/16 1:31 下午 + */ + @Override + public List subjectArticleList(SubjectArticleListFormDTO formDTO) { + Result> listResult = govVoiceOpenFeignClient.subjectArticleList(formDTO); + if (!listResult.success()){ + throw new RenException("resi-voice调用gov-voice查询 专题文章列表失败【"+listResult.getMsg()+"】"); + } + return listResult.getData(); + } + + /** + * @Description 专题列表 + * @Param formDTO + * @author zxc + * @date 2021/7/16 1:31 下午 + */ + @Override + public List subjectList(SubjectListFormDTO formDTO) { + Result> listResult = govVoiceOpenFeignClient.subjectList(formDTO); + if (!listResult.success()){ + throw new RenException("resi-voice调用gov-voice查询 专题列表失败【"+listResult.getMsg()+"】"); + } + return listResult.getData(); + } + } diff --git a/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/ScanApplication.java b/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/ScanApplication.java index 38f55211d2..7b088fe970 100644 --- a/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/ScanApplication.java +++ b/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/ScanApplication.java @@ -10,6 +10,7 @@ package com.epmet.openapi.scan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.context.annotation.ComponentScan; /** @@ -21,6 +22,7 @@ import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan(basePackages = "com.epmet") +@ServletComponentScan public class ScanApplication { public static void main(String[] args) { diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 6cfb21aa99..e111a8fb6c 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -7,7 +7,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.feign.fallback.EpmetUserOpenFeignClientFallback; +import com.epmet.feign.fallback.EpmetUserOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; @@ -21,8 +21,8 @@ import java.util.Map; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:09 */ -//@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class, url = "localhost:8087") -@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class) +//@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallbackFactory = EpmetUserOpenFeignClientFallbackFactory.class, url = "localhost:8087") +@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallbackFactory = EpmetUserOpenFeignClientFallbackFactory.class) public interface EpmetUserOpenFeignClient { /** diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index b0b8723f01..7398ecb56c 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -19,7 +19,7 @@ import java.util.Map; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:10 */ -@Component +//@Component public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClient { @Override diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallbackFactory.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..9f752bc056 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallbackFactory.java @@ -0,0 +1,18 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.feign.EpmetUserOpenFeignClient; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class EpmetUserOpenFeignClientFallbackFactory implements FallbackFactory { + private EpmetUserOpenFeignClientFallback fallback = new EpmetUserOpenFeignClientFallback(); + @Override + public EpmetUserOpenFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java index 8f8e583add..106c49d028 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java @@ -10,6 +10,7 @@ package com.epmet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -23,6 +24,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients +@ServletComponentScan public class UserApplication { public static void main(String[] args) {