diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/WebSecurityConfiguration.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/WebSecurityConfiguration.java index 76dc965f6..651590aa5 100755 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/WebSecurityConfiguration.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/WebSecurityConfiguration.java @@ -35,7 +35,6 @@ public class WebSecurityConfiguration { /** * spring security 默认的安全策略 - * * @param http security注入点 * @return SecurityFilterChain * @throws Exception @@ -60,7 +59,6 @@ SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Excepti * 暴露静态资源 *

* https://github.com/spring-projects/spring-security/issues/10938 - * * @param http * @return * @throws Exception diff --git a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java index 82184d4ea..87143f372 100644 --- a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java +++ b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java @@ -24,34 +24,31 @@ public class RedisUtils { /** * 指定缓存失效时间 - * - * @param key 键 + * @param key 键 * @param time 时间(秒) */ public boolean expire(String key, long time) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); Optional.ofNullable(redisTemplate) - .filter(template -> time > 0) - .ifPresent(template -> template.expire(key, time, TimeUnit.SECONDS)); + .filter(template -> time > 0) + .ifPresent(template -> template.expire(key, time, TimeUnit.SECONDS)); return true; } /** * 根据 key 获取过期时间 - * * @param key 键 不能为null * @return 时间(秒) 返回0代表为永久有效 */ public long getExpire(Object key) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); return Optional.ofNullable(redisTemplate) - .map(template -> template.getExpire(key, TimeUnit.SECONDS)) - .orElse(-1L); + .map(template -> template.getExpire(key, TimeUnit.SECONDS)) + .orElse(-1L); } /** * 查找匹配key - * * @param pattern key * @return / */ @@ -73,10 +70,9 @@ public List scan(String pattern) { /** * 分页查询 key - * * @param patternKey key - * @param page 页码 - * @param size 每页数目 + * @param page 页码 + * @param size 每页数目 * @return / */ public List findKeysForPage(String patternKey, int page, int size) { @@ -108,7 +104,6 @@ public List findKeysForPage(String patternKey, int page, int size) { /** * 判断key是否存在 - * * @param key 键 * @return true 存在 false不存在 */ @@ -119,7 +114,6 @@ public boolean hasKey(String key) { /** * 删除缓存 - * * @param keys 可以传一个值 或多个 */ public void del(String... keys) { @@ -131,24 +125,22 @@ public void del(String... keys) { /** * 获取锁 - * - * @param lockKey 锁key - * @param value value + * @param lockKey 锁key + * @param value value * @param expireTime:单位-秒 * @return boolean */ public boolean getLock(String lockKey, String value, int expireTime) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); return Optional.ofNullable(redisTemplate) - .map(template -> template.opsForValue().setIfAbsent(lockKey, value, expireTime, TimeUnit.SECONDS)) - .orElse(false); + .map(template -> template.opsForValue().setIfAbsent(lockKey, value, expireTime, TimeUnit.SECONDS)) + .orElse(false); } /** * 释放锁 - * * @param lockKey 锁key - * @param value value + * @param value value * @return boolean */ public boolean releaseLock(String lockKey, String value) { @@ -156,9 +148,9 @@ public boolean releaseLock(String lockKey, String value) { String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end"; RedisScript redisScript = new DefaultRedisScript<>(script, Long.class); return Optional.ofNullable(redisTemplate.execute(redisScript, Collections.singletonList(lockKey), value)) - .map(Convert::toLong) - .filter(SUCCESS::equals) - .isPresent(); + .map(Convert::toLong) + .filter(SUCCESS::equals) + .isPresent(); } // ============================String============================= @@ -175,7 +167,6 @@ public T get(String key) { /** * 批量获取 - * * @param keys * @return */ @@ -186,8 +177,7 @@ public List multiGet(List keys) { /** * 普通缓存放入 - * - * @param key 键 + * @param key 键 * @param value 值 * @return true成功 false失败 */ @@ -202,10 +192,9 @@ public boolean set(String key, Object value) { /** * 普通缓存放入并设置时间 - * - * @param key 键 + * @param key 键 * @param value 值 - * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 * @return true成功 false 失败 */ public boolean set(String key, Object value, long time) { @@ -213,7 +202,7 @@ public boolean set(String key, Object value, long time) { return Optional.ofNullable(redisTemplate).map(template -> { if (time > 0) { template.opsForValue().set(key, value, time, TimeUnit.SECONDS); - } else { + } else { template.opsForValue().set(key, value); } return true; @@ -222,10 +211,9 @@ public boolean set(String key, Object value, long time) { /** * 普通缓存放入并设置时间 - * - * @param key 键 - * @param value 值 - * @param time 时间 + * @param key 键 + * @param value 值 + * @param time 时间 * @param timeUnit 类型 * @return true成功 false 失败 */ @@ -234,7 +222,7 @@ public boolean set(String key, T value, long time, TimeUnit timeUnit) { Optional.ofNullable(redisTemplate).map(template -> { if (time > 0) { template.opsForValue().set(key, value, time, timeUnit); - } else { + } else { template.opsForValue().set(key, value); } return true; @@ -246,8 +234,7 @@ public boolean set(String key, T value, long time, TimeUnit timeUnit) { /** * HashGet - * - * @param key 键 不能为null + * @param key 键 不能为null * @param hashKey 项 不能为null * @return 值 */ @@ -258,7 +245,6 @@ public HV hget(String key, HK hashKey) { /** * 获取hashKey对应的所有键值 - * * @param key 键 * @return 对应的多个键值 */ @@ -284,9 +270,8 @@ public boolean hmset(String key, Map map) { /** * HashSet 并设置时间 - * - * @param key 键 - * @param map 对应多个键值 + * @param key 键 + * @param map 对应多个键值 * @param time 时间(秒) * @return true成功 false失败 */ @@ -319,11 +304,10 @@ public boolean hset(String key, String item, Object value) { /** * 向一张hash表中放入数据,如果不存在将创建 - * - * @param key 键 - * @param item 项 + * @param key 键 + * @param item 项 * @param value 值 - * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 + * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 * @return true 成功 false失败 */ public boolean hset(String key, String item, Object value, long time) { @@ -339,8 +323,7 @@ public boolean hset(String key, String item, Object value, long time) { /** * 删除hash表中的值 - * - * @param key 键 不能为null + * @param key 键 不能为null * @param item 项 可以使多个 不能为null */ public void hdel(String key, Object... item) { @@ -350,8 +333,7 @@ public void hdel(String key, Object... item) { /** * 判断hash表中是否有该项的值 - * - * @param key 键 不能为null + * @param key 键 不能为null * @param item 项 不能为null * @return true 存在 false不存在 */ @@ -362,10 +344,9 @@ public boolean hHasKey(String key, String item) { /** * hash递增 如果不存在,就会创建一个 并把新增后的值返回 - * - * @param key 键 + * @param key 键 * @param item 项 - * @param by 要增加几(大于0) + * @param by 要增加几(大于0) * @return */ public double hincr(String key, String item, double by) { @@ -375,10 +356,9 @@ public double hincr(String key, String item, double by) { /** * hash递减 - * - * @param key 键 + * @param key 键 * @param item 项 - * @param by 要减少记(小于0) + * @param by 要减少记(小于0) * @return */ public double hdecr(String key, String item, double by) { @@ -411,8 +391,7 @@ public boolean sHasKey(String key, Object value) { /** * 将数据放入set缓存 - * - * @param key 键 + * @param key 键 * @param values 值 可以是多个 * @return 成功个数 */ @@ -439,7 +418,6 @@ public long sSetAndTime(String key, long time, Object... values) { /** * 获取set缓存的长度 - * * @param key 键 * @return */ @@ -462,7 +440,6 @@ public long setRemove(String key, Object... values) { /** * 获集合key1和集合key2的差集元素 - * * @param key 键 * @return */ @@ -475,10 +452,9 @@ public Set sDifference(String key, String otherKey) { /** * 获取list缓存的内容 - * - * @param key 键 + * @param key 键 * @param start 开始 - * @param end 结束 0 到 -1代表所有值 + * @param end 结束 0 到 -1代表所有值 * @return */ public List lGet(String key, long start, long end) { @@ -488,7 +464,6 @@ public List lGet(String key, long start, long end) { /** * 获取list缓存的长度 - * * @param key 键 * @return */ @@ -499,8 +474,7 @@ public long lGetListSize(String key) { /** * 通过索引 获取list中的值 - * - * @param key 键 + * @param key 键 * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 * @return */ @@ -511,8 +485,7 @@ public Object lGetIndex(String key, long index) { /** * 将list放入缓存 - * - * @param key 键 + * @param key 键 * @param value 值 * @return */ @@ -540,8 +513,7 @@ public boolean lSet(String key, Object value, long time) { /** * 将list放入缓存 - * - * @param key 键 + * @param key 键 * @param value 值 * @return */ @@ -553,10 +525,9 @@ public boolean lSet(String key, List value) { /** * 将list放入缓存 - * - * @param key 键 + * @param key 键 * @param value 值 - * @param time 时间(秒) + * @param time 时间(秒) * @return */ public boolean lSet(String key, List value, long time) { @@ -570,8 +541,7 @@ public boolean lSet(String key, List value, long time) { /** * 根据索引修改list中的某条数据 - * - * @param key 键 + * @param key 键 * @param index 索引 * @param value 值 * @return / @@ -584,8 +554,7 @@ public boolean lUpdateIndex(String key, long index, Object value) { /** * 移除N个值为value - * - * @param key 键 + * @param key 键 * @param count 移除多少个 * @param value 值 * @return 移除的个数 @@ -597,7 +566,6 @@ public long lRemove(String key, long count, Object value) { /** * 将zSet数据放入缓存 - * * @param key * @param time * @param tuples @@ -615,7 +583,6 @@ public long zSetAndTime(String key, long time, Set zRangeByScore(String key, double min, double max) { /** * Sorted set:有序集合获取 正序 - * * @param key * @param start * @param end diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java index 997409ec3..4af9c4e27 100755 --- a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java @@ -68,7 +68,6 @@ public RequestOriginParser requestOriginParser() { /** * set connection close header - * * @return RequestInterceptor */ @Bean diff --git a/pig-common/pig-common-feign/src/main/java/org/springframework/cloud/openfeign/PigFeignClientsRegistrar.java b/pig-common/pig-common-feign/src/main/java/org/springframework/cloud/openfeign/PigFeignClientsRegistrar.java index 9ce54857b..5df6f772a 100644 --- a/pig-common/pig-common-feign/src/main/java/org/springframework/cloud/openfeign/PigFeignClientsRegistrar.java +++ b/pig-common/pig-common-feign/src/main/java/org/springframework/cloud/openfeign/PigFeignClientsRegistrar.java @@ -48,213 +48,213 @@ */ public class PigFeignClientsRegistrar implements ImportBeanDefinitionRegistrar, BeanClassLoaderAware, EnvironmentAware { - private final static String BASE_URL = "http://127.0.0.1:${server.port}${server.servlet.context-path}"; - - @Getter - private ClassLoader beanClassLoader; - - @Getter - private Environment environment; - - @Override - public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry) { - registerFeignClients(registry); - } - - @Override - public void setBeanClassLoader(ClassLoader classLoader) { - this.beanClassLoader = classLoader; - } - - private void registerFeignClients(BeanDefinitionRegistry registry) { - - List feignClients = new ArrayList<>( - SpringFactoriesLoader.loadFactoryNames(getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader())); - - // 支持 springboot 2.7 + 最新版本的配置方式 - ImportCandidates.load(FeignClient.class, getBeanClassLoader()).forEach(feignClients::add); - // 如果 spring.factories 里为空 - if (feignClients.isEmpty()) { - return; - } - for (String className : feignClients) { - try { - Class clazz = beanClassLoader.loadClass(className); - AnnotationAttributes attributes = AnnotatedElementUtils.getMergedAnnotationAttributes(clazz, - FeignClient.class); - if (attributes == null) { - continue; - } - - // 如果是单体项目自动注入 & url 为空 - Boolean isMicro = environment.getProperty("spring.cloud.nacos.discovery.enabled", Boolean.class, true); - // 如果已经存在该 bean,支持原生的 Feign - if (registry.containsBeanDefinition(className) && isMicro) { - continue; - } - - registerClientConfiguration(registry, getClientName(attributes), attributes.get("configuration")); - - validate(attributes); - BeanDefinitionBuilder definition = BeanDefinitionBuilder - .genericBeanDefinition(FeignClientFactoryBean.class); - definition.addPropertyValue("url", getUrl(registry, attributes)); - definition.addPropertyValue("path", getPath(attributes)); - String name = getName(attributes); - definition.addPropertyValue("name", name); - - // 兼容最新版本的 spring-cloud-openfeign,尚未发布 - StringBuilder aliasBuilder = new StringBuilder(18); - if (attributes.containsKey("contextId")) { - String contextId = getContextId(attributes); - aliasBuilder.append(contextId); - definition.addPropertyValue("contextId", contextId); - } else { - aliasBuilder.append(name); - } - - definition.addPropertyValue("type", className); - definition.addPropertyValue("decode404", attributes.get("decode404")); - definition.addPropertyValue("fallback", attributes.get("fallback")); - definition.addPropertyValue("fallbackFactory", attributes.get("fallbackFactory")); - definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE); - - AbstractBeanDefinition beanDefinition = definition.getBeanDefinition(); - - // alias - String alias = aliasBuilder.append("FeignClient").toString(); - - // has a default, won't be null - boolean primary = (Boolean) attributes.get("primary"); - - beanDefinition.setPrimary(primary); - - String qualifier = getQualifier(attributes); - if (StringUtils.hasText(qualifier)) { - alias = qualifier; - } - - BeanDefinitionHolder holder = new BeanDefinitionHolder(beanDefinition, className, - new String[]{alias}); - BeanDefinitionReaderUtils.registerBeanDefinition(holder, registry); - - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } - } - } - - /** - * Return the class used by {@link SpringFactoriesLoader} to load configuration - * candidates. - * - * @return the factory class - */ - private Class getSpringFactoriesLoaderFactoryClass() { - return PigFeignAutoConfiguration.class; - } - - private void validate(Map attributes) { - AnnotationAttributes annotation = AnnotationAttributes.fromMap(attributes); - // This blows up if an aliased property is overspecified - FeignClientsRegistrar.validateFallback(annotation.getClass("fallback")); - FeignClientsRegistrar.validateFallbackFactory(annotation.getClass("fallbackFactory")); - } - - private String getName(Map attributes) { - String name = (String) attributes.get("serviceId"); - if (!StringUtils.hasText(name)) { - name = (String) attributes.get("name"); - } - if (!StringUtils.hasText(name)) { - name = (String) attributes.get("value"); - } - name = resolve(name); - return FeignClientsRegistrar.getName(name); - } - - private String getContextId(Map attributes) { - String contextId = (String) attributes.get("contextId"); - if (!StringUtils.hasText(contextId)) { - return getName(attributes); - } - - contextId = resolve(contextId); - return FeignClientsRegistrar.getName(contextId); - } - - private String resolve(String value) { - if (StringUtils.hasText(value)) { - return this.environment.resolvePlaceholders(value); - } - return value; - } - - private String getUrl(BeanDefinitionRegistry registry, Map attributes) { - - // 如果是单体项目自动注入 & url 为空 - Boolean isMicro = environment.getProperty("spring.cloud.nacos.discovery.enabled", Boolean.class, true); - - if (isMicro) { - return null; - } - - String url = resolve(BASE_URL); - - return FeignClientsRegistrar.getUrl(url); - } - - private String getPath(Map attributes) { - String path = resolve((String) attributes.get("path")); - return FeignClientsRegistrar.getPath(path); - } - - @Nullable - private String getQualifier(@Nullable Map client) { - if (client == null) { - return null; - } - String qualifier = (String) client.get("qualifier"); - if (StringUtils.hasText(qualifier)) { - return qualifier; - } - return null; - } - - @Nullable - private String getClientName(@Nullable Map client) { - if (client == null) { - return null; - } - String value = (String) client.get("contextId"); - if (!StringUtils.hasText(value)) { - value = (String) client.get("value"); - } - if (!StringUtils.hasText(value)) { - value = (String) client.get("name"); - } - if (!StringUtils.hasText(value)) { - value = (String) client.get("serviceId"); - } - if (StringUtils.hasText(value)) { - return value; - } - - throw new IllegalStateException( - "Either 'name' or 'value' must be provided in @" + FeignClient.class.getSimpleName()); - } - - private void registerClientConfiguration(BeanDefinitionRegistry registry, Object name, Object configuration) { - BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(FeignClientSpecification.class); - builder.addConstructorArgValue(name); - builder.addConstructorArgValue(configuration); - registry.registerBeanDefinition(name + "." + FeignClientSpecification.class.getSimpleName(), - builder.getBeanDefinition()); - } - - @Override - public void setEnvironment(Environment environment) { - this.environment = environment; + private final static String BASE_URL = "http://127.0.0.1:${server.port}${server.servlet.context-path}"; + + @Getter + private ClassLoader beanClassLoader; + + @Getter + private Environment environment; + + @Override + public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry) { + registerFeignClients(registry); + } + + @Override + public void setBeanClassLoader(ClassLoader classLoader) { + this.beanClassLoader = classLoader; + } + + private void registerFeignClients(BeanDefinitionRegistry registry) { + + List feignClients = new ArrayList<>( + SpringFactoriesLoader.loadFactoryNames(getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader())); + + // 支持 springboot 2.7 + 最新版本的配置方式 + ImportCandidates.load(FeignClient.class, getBeanClassLoader()).forEach(feignClients::add); + // 如果 spring.factories 里为空 + if (feignClients.isEmpty()) { + return; + } + for (String className : feignClients) { + try { + Class clazz = beanClassLoader.loadClass(className); + AnnotationAttributes attributes = AnnotatedElementUtils.getMergedAnnotationAttributes(clazz, + FeignClient.class); + if (attributes == null) { + continue; + } + + // 如果是单体项目自动注入 & url 为空 + Boolean isMicro = environment.getProperty("spring.cloud.nacos.discovery.enabled", Boolean.class, true); + // 如果已经存在该 bean,支持原生的 Feign + if (registry.containsBeanDefinition(className) && isMicro) { + continue; + } + + registerClientConfiguration(registry, getClientName(attributes), attributes.get("configuration")); + + validate(attributes); + BeanDefinitionBuilder definition = BeanDefinitionBuilder + .genericBeanDefinition(FeignClientFactoryBean.class); + definition.addPropertyValue("url", getUrl(registry, attributes)); + definition.addPropertyValue("path", getPath(attributes)); + String name = getName(attributes); + definition.addPropertyValue("name", name); + + // 兼容最新版本的 spring-cloud-openfeign,尚未发布 + StringBuilder aliasBuilder = new StringBuilder(18); + if (attributes.containsKey("contextId")) { + String contextId = getContextId(attributes); + aliasBuilder.append(contextId); + definition.addPropertyValue("contextId", contextId); + } else { + aliasBuilder.append(name); + } + + definition.addPropertyValue("type", className); + definition.addPropertyValue("decode404", attributes.get("decode404")); + definition.addPropertyValue("fallback", attributes.get("fallback")); + definition.addPropertyValue("fallbackFactory", attributes.get("fallbackFactory")); + definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE); + + AbstractBeanDefinition beanDefinition = definition.getBeanDefinition(); + + // alias + String alias = aliasBuilder.append("FeignClient").toString(); + + // has a default, won't be null + boolean primary = (Boolean) attributes.get("primary"); + + beanDefinition.setPrimary(primary); + + String qualifier = getQualifier(attributes); + if (StringUtils.hasText(qualifier)) { + alias = qualifier; + } + + BeanDefinitionHolder holder = new BeanDefinitionHolder(beanDefinition, className, + new String[]{alias}); + BeanDefinitionReaderUtils.registerBeanDefinition(holder, registry); + + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + } + } + + /** + * Return the class used by {@link SpringFactoriesLoader} to load configuration + * candidates. + * + * @return the factory class + */ + private Class getSpringFactoriesLoaderFactoryClass() { + return PigFeignAutoConfiguration.class; + } + + private void validate(Map attributes) { + AnnotationAttributes annotation = AnnotationAttributes.fromMap(attributes); + // This blows up if an aliased property is overspecified + FeignClientsRegistrar.validateFallback(annotation.getClass("fallback")); + FeignClientsRegistrar.validateFallbackFactory(annotation.getClass("fallbackFactory")); + } + + private String getName(Map attributes) { + String name = (String) attributes.get("serviceId"); + if (!StringUtils.hasText(name)) { + name = (String) attributes.get("name"); + } + if (!StringUtils.hasText(name)) { + name = (String) attributes.get("value"); + } + name = resolve(name); + return FeignClientsRegistrar.getName(name); + } + + private String getContextId(Map attributes) { + String contextId = (String) attributes.get("contextId"); + if (!StringUtils.hasText(contextId)) { + return getName(attributes); + } + + contextId = resolve(contextId); + return FeignClientsRegistrar.getName(contextId); + } + + private String resolve(String value) { + if (StringUtils.hasText(value)) { + return this.environment.resolvePlaceholders(value); + } + return value; + } + + private String getUrl(BeanDefinitionRegistry registry, Map attributes) { + + // 如果是单体项目自动注入 & url 为空 + Boolean isMicro = environment.getProperty("spring.cloud.nacos.discovery.enabled", Boolean.class, true); + + if (isMicro) { + return null; + } + + String url = resolve(BASE_URL); + + return FeignClientsRegistrar.getUrl(url); + } + + private String getPath(Map attributes) { + String path = resolve((String) attributes.get("path")); + return FeignClientsRegistrar.getPath(path); + } + + @Nullable + private String getQualifier(@Nullable Map client) { + if (client == null) { + return null; + } + String qualifier = (String) client.get("qualifier"); + if (StringUtils.hasText(qualifier)) { + return qualifier; + } + return null; + } + + @Nullable + private String getClientName(@Nullable Map client) { + if (client == null) { + return null; + } + String value = (String) client.get("contextId"); + if (!StringUtils.hasText(value)) { + value = (String) client.get("value"); + } + if (!StringUtils.hasText(value)) { + value = (String) client.get("name"); + } + if (!StringUtils.hasText(value)) { + value = (String) client.get("serviceId"); + } + if (StringUtils.hasText(value)) { + return value; + } + + throw new IllegalStateException( + "Either 'name' or 'value' must be provided in @" + FeignClient.class.getSimpleName()); + } + + private void registerClientConfiguration(BeanDefinitionRegistry registry, Object name, Object configuration) { + BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(FeignClientSpecification.class); + builder.addConstructorArgValue(name); + builder.addConstructorArgValue(configuration); + registry.registerBeanDefinition(name + "." + FeignClientSpecification.class.getSimpleName(), + builder.getBeanDefinition()); + } + + @Override + public void setEnvironment(Environment environment) { + this.environment = environment; } } diff --git a/pig-common/pig-common-mybatis/src/main/java/com/pig4cloud/pig/common/mybatis/resolver/SqlFilterArgumentResolver.java b/pig-common/pig-common-mybatis/src/main/java/com/pig4cloud/pig/common/mybatis/resolver/SqlFilterArgumentResolver.java index 43c846de2..b2fca5f94 100644 --- a/pig-common/pig-common-mybatis/src/main/java/com/pig4cloud/pig/common/mybatis/resolver/SqlFilterArgumentResolver.java +++ b/pig-common/pig-common-mybatis/src/main/java/com/pig4cloud/pig/common/mybatis/resolver/SqlFilterArgumentResolver.java @@ -95,7 +95,7 @@ public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer m .ifPresent(s -> orderItemList.addAll(Arrays.stream(s) .filter(desc -> !SqlInjectionUtils.check(desc)) .map(OrderItem::desc) - .collect(Collectors.toList()))); + .collect(Collectors.toList()))); page.addOrder(orderItemList); return page; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysLogController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysLogController.java index 017a69f6d..a30dc100e 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysLogController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysLogController.java @@ -100,7 +100,7 @@ public R save(@Valid @RequestBody SysLog sysLog) { @ResponseExcel @GetMapping("/export") @PreAuthorize("@pms.hasPermission('sys_log_export')") - public List export(SysLogDTO sysLog) { + public List export(SysLogDTO sysLog) { return sysLogService.getList(sysLog); } diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/SysLogService.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/SysLogService.java index bd3ef1832..d5744321d 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/SysLogService.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/SysLogService.java @@ -55,10 +55,9 @@ public interface SysLogService extends IService { /** * 查询日志列表 - * * @param sysLog 查询条件 - * @return List - */ + * @return List + */ List getList(SysLogDTO sysLog); } diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysLogServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysLogServiceImpl.java index ba21436f3..db3c34365 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysLogServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysLogServiceImpl.java @@ -52,7 +52,6 @@ public Page getLogByPage(Page page, SysLogDTO sysLog) { /** * 插入日志 - * * @param sysLog 日志对象 * @return true/false */ @@ -65,7 +64,6 @@ public Boolean saveLog(SysLog sysLog) { /** * 查询日志列表 - * * @param sysLog 查询条件 * @return List */ @@ -76,7 +74,6 @@ public List getList(SysLogDTO sysLog) { /** * 构建查询条件 - * * @param sysLog 前端条件 * @return LambdaQueryWrapper */ @@ -88,7 +85,7 @@ private LambdaQueryWrapper buildQuery(SysLogDTO sysLog) { if (ArrayUtil.isNotEmpty(sysLog.getCreateTime())) { wrapper.ge(SysLog::getCreateTime, sysLog.getCreateTime()[0]) - .le(SysLog::getCreateTime, sysLog.getCreateTime()[1]); + .le(SysLog::getCreateTime, sysLog.getCreateTime()[1]); } return wrapper; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java index 20b8ecdb3..efcdb30ab 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java @@ -445,9 +445,9 @@ public R changePassword(UserDTO userDto) { @Override public R checkPassword(String password) { String username = SecurityUtils.getUser().getUsername(); - SysUser condition = new SysUser(); - condition.setUsername(username); - SysUser sysUser = this.getOne(new QueryWrapper<>(condition)); + SysUser condition = new SysUser(); + condition.setUsername(username); + SysUser sysUser = this.getOne(new QueryWrapper<>(condition)); if (!ENCODER.matches(password, sysUser.getPassword())) { log.info("原密码错误");