diff --git a/buyer-api/src/main/resources/redisson.yaml b/buyer-api/src/main/resources/redisson.yaml deleted file mode 100644 index ac8dfc66..00000000 --- a/buyer-api/src/main/resources/redisson.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -singleServerConfig: - idleConnectionTimeout: 10000 - connectTimeout: 10000 - timeout: 3000 - retryAttempts: 3 - retryInterval: 1500 - password: lilishop - subscriptionsPerConnection: 5 - clientName: null - address: "redis://127.0.0.1:6379" - subscriptionConnectionMinimumIdleSize: 1 - subscriptionConnectionPoolSize: 50 - connectionMinimumIdleSize: 24 - connectionPoolSize: 64 - database: 0 - dnsMonitoringInterval: 5000 -threads: 16 -nettyThreads: 32 -codec: ! {} -transportMode: "NIO" \ No newline at end of file diff --git a/common-api/src/main/resources/redisson.yaml b/common-api/src/main/resources/redisson.yaml deleted file mode 100644 index ac8dfc66..00000000 --- a/common-api/src/main/resources/redisson.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -singleServerConfig: - idleConnectionTimeout: 10000 - connectTimeout: 10000 - timeout: 3000 - retryAttempts: 3 - retryInterval: 1500 - password: lilishop - subscriptionsPerConnection: 5 - clientName: null - address: "redis://127.0.0.1:6379" - subscriptionConnectionMinimumIdleSize: 1 - subscriptionConnectionPoolSize: 50 - connectionMinimumIdleSize: 24 - connectionPoolSize: 64 - database: 0 - dnsMonitoringInterval: 5000 -threads: 16 -nettyThreads: 32 -codec: ! {} -transportMode: "NIO" \ No newline at end of file diff --git a/consumer/src/main/resources/redisson.yaml b/consumer/src/main/resources/redisson.yaml deleted file mode 100644 index ac8dfc66..00000000 --- a/consumer/src/main/resources/redisson.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -singleServerConfig: - idleConnectionTimeout: 10000 - connectTimeout: 10000 - timeout: 3000 - retryAttempts: 3 - retryInterval: 1500 - password: lilishop - subscriptionsPerConnection: 5 - clientName: null - address: "redis://127.0.0.1:6379" - subscriptionConnectionMinimumIdleSize: 1 - subscriptionConnectionPoolSize: 50 - connectionMinimumIdleSize: 24 - connectionPoolSize: 64 - database: 0 - dnsMonitoringInterval: 5000 -threads: 16 -nettyThreads: 32 -codec: ! {} -transportMode: "NIO" \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/cache/config/redis/RedisConfig.java b/framework/src/main/java/cn/lili/cache/config/redis/RedisConfig.java index dbb8ad39..659c1ece 100644 --- a/framework/src/main/java/cn/lili/cache/config/redis/RedisConfig.java +++ b/framework/src/main/java/cn/lili/cache/config/redis/RedisConfig.java @@ -1,12 +1,17 @@ package cn.lili.cache.config.redis; +import cn.hutool.core.text.CharSequenceUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.parser.ParserConfig; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; import org.redisson.Redisson; import org.redisson.api.RedissonClient; +import org.redisson.config.ClusterServersConfig; import org.redisson.config.Config; +import org.redisson.config.SentinelServersConfig; +import org.redisson.config.SingleServerConfig; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -20,7 +25,6 @@ import org.springframework.cache.interceptor.KeyGenerator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; -import org.springframework.core.io.ClassPathResource; import org.springframework.data.redis.cache.RedisCacheConfiguration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.cache.RedisCacheWriter; @@ -31,9 +35,10 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.RedisSerializationContext; import org.springframework.data.redis.serializer.StringRedisSerializer; -import java.io.IOException; import java.time.Duration; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -54,6 +59,9 @@ public class RedisConfig extends CachingConfigurerSupport { @Value("${lili.cache.timeout:7200}") private Integer timeout; + @Autowired + private RedisProperties redisProperties; + /** * 当有多个管理器的时候,必须使用该注解在一个管理器上注释:表示该管理器为默认的管理器 @@ -105,9 +113,41 @@ public class RedisConfig extends CachingConfigurerSupport { } @Bean(destroyMethod = "shutdown") - public RedissonClient redisson() throws IOException { - return Redisson.create( - Config.fromYAML(new ClassPathResource("redisson.yaml").getInputStream())); + public RedissonClient redisson() { + Config config = new Config(); + + if (redisProperties.getSentinel() != null && !redisProperties.getSentinel().getNodes().isEmpty()) { + // 哨兵模式 + SentinelServersConfig sentinelServersConfig = config.useSentinelServers(); + sentinelServersConfig.setMasterName(redisProperties.getSentinel().getMaster()); + List sentinelAddress = new ArrayList<>(); + for (String node : redisProperties.getCluster().getNodes()) { + sentinelAddress.add("redis://" + node); + } + sentinelServersConfig.setSentinelAddresses(sentinelAddress); + if (CharSequenceUtil.isNotEmpty(redisProperties.getSentinel().getPassword())) { + sentinelServersConfig.setSentinelPassword(redisProperties.getSentinel().getPassword()); + } + } else if (redisProperties.getCluster() != null && !redisProperties.getCluster().getNodes().isEmpty()) { + // 集群模式 + ClusterServersConfig clusterServersConfig = config.useClusterServers(); + List clusterNodes = new ArrayList<>(); + for (String node : redisProperties.getCluster().getNodes()) { + clusterNodes.add("redis://" + node); + } + clusterServersConfig.setNodeAddresses(clusterNodes); + if (CharSequenceUtil.isNotEmpty(redisProperties.getPassword())) { + clusterServersConfig.setPassword(redisProperties.getPassword()); + } + } else { + SingleServerConfig singleServerConfig = config.useSingleServer(); + singleServerConfig.setAddress("redis://" + redisProperties.getHost() + ":" + redisProperties.getPort()); + if (CharSequenceUtil.isNotEmpty(redisProperties.getPassword())) { + singleServerConfig.setPassword(redisProperties.getPassword()); + } + } + + return Redisson.create(config); } /** diff --git a/framework/src/main/java/cn/lili/cache/limit/interceptor/LimitInterceptor.java b/framework/src/main/java/cn/lili/cache/limit/interceptor/LimitInterceptor.java index d3c01b1f..402f165d 100644 --- a/framework/src/main/java/cn/lili/cache/limit/interceptor/LimitInterceptor.java +++ b/framework/src/main/java/cn/lili/cache/limit/interceptor/LimitInterceptor.java @@ -1,7 +1,7 @@ package cn.lili.cache.limit.interceptor; -import cn.lili.cache.limit.enums.LimitTypeEnums; import cn.lili.cache.limit.annotation.LimitPoint; +import cn.lili.cache.limit.enums.LimitTypeEnums; import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; import cn.lili.common.utils.IpUtils; @@ -17,7 +17,6 @@ import org.springframework.data.redis.core.script.DefaultRedisScript; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; -import javax.servlet.http.HttpServletRequest; import java.io.Serializable; /** diff --git a/framework/src/main/java/cn/lili/common/aop/annotation/PreventDuplicateSubmissions.java b/framework/src/main/java/cn/lili/common/aop/annotation/PreventDuplicateSubmissions.java index 910906b4..ba884dfe 100644 --- a/framework/src/main/java/cn/lili/common/aop/annotation/PreventDuplicateSubmissions.java +++ b/framework/src/main/java/cn/lili/common/aop/annotation/PreventDuplicateSubmissions.java @@ -1,7 +1,6 @@ package cn.lili.common.aop.annotation; import java.lang.annotation.*; -import java.util.concurrent.TimeUnit; /** * 防止重复提交注解 diff --git a/framework/src/main/java/cn/lili/common/aop/interceptor/DemoInterceptor.java b/framework/src/main/java/cn/lili/common/aop/interceptor/DemoInterceptor.java index d021b474..ed5a365a 100644 --- a/framework/src/main/java/cn/lili/common/aop/interceptor/DemoInterceptor.java +++ b/framework/src/main/java/cn/lili/common/aop/interceptor/DemoInterceptor.java @@ -26,7 +26,7 @@ public class DemoInterceptor { @Before("@annotation(demoSite)") public void doAfter(DemoSite demoSite) { - if (systemSettingProperties.getIsDemoSite()) { + if (Boolean.TRUE.equals(systemSettingProperties.getIsDemoSite())) { throw new ServiceException(ResultCode.DEMO_SITE_EXCEPTION); } } diff --git a/framework/src/main/java/cn/lili/common/utils/SnowflakeInitiator.java b/framework/src/main/java/cn/lili/common/utils/SnowflakeInitiator.java index 4a36af5c..8ffbba1f 100644 --- a/framework/src/main/java/cn/lili/common/utils/SnowflakeInitiator.java +++ b/framework/src/main/java/cn/lili/common/utils/SnowflakeInitiator.java @@ -1,15 +1,11 @@ package cn.lili.common.utils; import cn.lili.cache.Cache; -import com.alibaba.fastjson.JSON; -import lombok.AllArgsConstructor; -import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; -import java.util.concurrent.TimeUnit; /** * SnowflakeInitiator @@ -25,7 +21,7 @@ public class SnowflakeInitiator { /** * 缓存前缀 */ - private static String KEY = "{Snowflake}"; + private static final String KEY = "{Snowflake}"; @Autowired private Cache cache; diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberEvaluationServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberEvaluationServiceImpl.java index bce3490f..868a9abd 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberEvaluationServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberEvaluationServiceImpl.java @@ -106,13 +106,14 @@ public class MemberEvaluationServiceImpl extends ServiceImpl 0) { + if (!signs.isEmpty()) { //截止目前为止 签到总天数 不带今天 Integer signDay = signs.get(0).getSignDay(); memberSign.setSignDay(CurrencyUtil.add(signDay, 1).intValue()); diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponServiceImpl.java index 2514e68f..d46f606f 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponServiceImpl.java @@ -82,6 +82,7 @@ public class MemberCouponServiceImpl extends ServiceImpl ids) { if (ids != null && !ids.isEmpty()) { List memberCoupons = this.listByIds(ids); @@ -247,6 +250,7 @@ public class MemberCouponServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(MemberCoupon::getId, id); @@ -260,6 +264,7 @@ public class MemberCouponServiceImpl extends ServiceImpl couponIds) { LambdaUpdateWrapper memberCouponLambdaUpdateWrapper = new LambdaUpdateWrapper() .in(MemberCoupon::getCouponId, couponIds) diff --git a/framework/src/main/java/cn/lili/modules/system/entity/dto/PointSettingItem.java b/framework/src/main/java/cn/lili/modules/system/entity/dto/PointSettingItem.java index 11d061d8..885b4b19 100644 --- a/framework/src/main/java/cn/lili/modules/system/entity/dto/PointSettingItem.java +++ b/framework/src/main/java/cn/lili/modules/system/entity/dto/PointSettingItem.java @@ -3,6 +3,8 @@ package cn.lili.modules.system.entity.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.io.Serializable; + /** * 积分签到设置 * @@ -10,7 +12,7 @@ import lombok.Data; * @since 2021-02-26 11:48 */ @Data -public class PointSettingItem implements Comparable { +public class PointSettingItem implements Comparable, Serializable { @ApiModelProperty(value = "签到天数") @@ -21,7 +23,7 @@ public class PointSettingItem implements Comparable { private Integer point; public Integer getPoint() { - if (point != null || point < 0) { + if (point == null || point < 0) { return 0; } return point; diff --git a/manager-api/src/main/resources/redisson.yaml b/manager-api/src/main/resources/redisson.yaml deleted file mode 100644 index ac8dfc66..00000000 --- a/manager-api/src/main/resources/redisson.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -singleServerConfig: - idleConnectionTimeout: 10000 - connectTimeout: 10000 - timeout: 3000 - retryAttempts: 3 - retryInterval: 1500 - password: lilishop - subscriptionsPerConnection: 5 - clientName: null - address: "redis://127.0.0.1:6379" - subscriptionConnectionMinimumIdleSize: 1 - subscriptionConnectionPoolSize: 50 - connectionMinimumIdleSize: 24 - connectionPoolSize: 64 - database: 0 - dnsMonitoringInterval: 5000 -threads: 16 -nettyThreads: 32 -codec: ! {} -transportMode: "NIO" \ No newline at end of file diff --git a/seller-api/src/main/resources/redisson.yaml b/seller-api/src/main/resources/redisson.yaml deleted file mode 100644 index ac8dfc66..00000000 --- a/seller-api/src/main/resources/redisson.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -singleServerConfig: - idleConnectionTimeout: 10000 - connectTimeout: 10000 - timeout: 3000 - retryAttempts: 3 - retryInterval: 1500 - password: lilishop - subscriptionsPerConnection: 5 - clientName: null - address: "redis://127.0.0.1:6379" - subscriptionConnectionMinimumIdleSize: 1 - subscriptionConnectionPoolSize: 50 - connectionMinimumIdleSize: 24 - connectionPoolSize: 64 - database: 0 - dnsMonitoringInterval: 5000 -threads: 16 -nettyThreads: 32 -codec: ! {} -transportMode: "NIO" \ No newline at end of file