From 3eb445291f45a4aeb4984e331ecca0e33ff74a4a Mon Sep 17 00:00:00 2001 From: jiangh277 Date: Wed, 24 Dec 2025 14:14:59 +0800 Subject: [PATCH] =?UTF-8?q?common=E5=B7=A5=E7=A8=8B=E5=A2=9E=E5=8A=A0Redis?= =?UTF-8?q?=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timeline-component-common/pom.xml | 21 +++++- .../common/constants/CommonConstants.java | 48 ++++++++++++- .../com/timeline/common/utils/RedisUtils.java | 67 +++++++++++++++++++ 3 files changed, 134 insertions(+), 2 deletions(-) create mode 100644 timeline-component-common/src/main/java/com/timeline/common/utils/RedisUtils.java diff --git a/timeline-component-common/pom.xml b/timeline-component-common/pom.xml index 8d00550..8f1aec0 100644 --- a/timeline-component-common/pom.xml +++ b/timeline-component-common/pom.xml @@ -20,6 +20,7 @@ org.projectlombok lombok true + provided org.springframework.boot @@ -50,9 +51,27 @@ 1.2.83 compile + + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + + + + org.springframework.boot spring-boot-maven-plugin @@ -75,4 +94,4 @@ - \ No newline at end of file + diff --git a/timeline-component-common/src/main/java/com/timeline/common/constants/CommonConstants.java b/timeline-component-common/src/main/java/com/timeline/common/constants/CommonConstants.java index 3b78ca3..874884a 100644 --- a/timeline-component-common/src/main/java/com/timeline/common/constants/CommonConstants.java +++ b/timeline-component-common/src/main/java/com/timeline/common/constants/CommonConstants.java @@ -1,5 +1,10 @@ package com.timeline.common.constants; +/** + * 通用常量类,定义系统中使用的各种常量值 + * 包括关系类型、删除状态、用户状态、故事权限、好友状态等常量 + * @author adm + */ public class CommonConstants { private static final int RELATION_USER_AND_STORY = 1; public static final int RELATION_USER_AND_STORY_ITEM = 2; @@ -15,7 +20,48 @@ public class CommonConstants { public static final int NOT_DELETED = 0; public static final String LOW_RESOLUTION_PREFIX = "low_res_"; - // 用户状态 + /** + * 正常用户状态 + */ public static final int USER_STATUS_NORMAL = 0; + /** + * 禁用用户状态 + */ public static final int USER_STATUS_DISABLED = 1; + + // 故事权限 + /** + * 所有者权限 + */ + public static final int STORY_PERMISSION_TYPE_OWNER = 1; + /** + * 仅查看权限 + */ + public static final int STORY_PERMISSION_TYPE_READ = 2; + /** + * 可编辑权限 + */ + public static final int STORY_PERMISSION_TYPE_WRITE = 3; + /** + * 管理权限 + */ + public static final int STORY_PERMISSION_TYPE_ADMIN = 4; + + /** + * 好友状态 + */ + public static final String FRIENDSHIP_PENDING = "pending"; + /** + * 已接收 + */ + public static final String FRIENDSHIP_ACCEPTED = "accepted"; + /** + * 已拒绝 + */ + public static final String FRIENDSHIP_REJECTED = "rejected"; + + /** + * 默认sortKey + */ + public static final Integer DEFAULT_SORT_KEY = 999; } diff --git a/timeline-component-common/src/main/java/com/timeline/common/utils/RedisUtils.java b/timeline-component-common/src/main/java/com/timeline/common/utils/RedisUtils.java new file mode 100644 index 0000000..0ad1bb2 --- /dev/null +++ b/timeline-component-common/src/main/java/com/timeline/common/utils/RedisUtils.java @@ -0,0 +1,67 @@ +package com.timeline.common.utils; + +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.lang.NonNull; +import org.springframework.stereotype.Component; + +import java.time.Duration; +import java.util.concurrent.TimeUnit; + +/** + * Redis 公共工具:基于 StringRedisTemplate 的常用操作封装。 + */ +@Component +public class RedisUtils { + + private final StringRedisTemplate stringRedisTemplate; + + public RedisUtils(StringRedisTemplate stringRedisTemplate) { + this.stringRedisTemplate = stringRedisTemplate; + } + + /** 设置值(无过期时间) */ + public void set(@NonNull String key, @NonNull String value) { + stringRedisTemplate.opsForValue().set(key, value); + } + + /** 设置值并指定过期(毫秒) */ + public void set(@NonNull String key, @NonNull String value, long timeoutMs) { + stringRedisTemplate.opsForValue().set(key, value, timeoutMs, TimeUnit.MILLISECONDS); + } + + /** 设置值并指定过期(Duration) */ + public void set(@NonNull String key, @NonNull String value, @NonNull Duration ttl) { + stringRedisTemplate.opsForValue().set(key, value, ttl); + } + + /** 获取值 */ + public String get(@NonNull String key) { + return stringRedisTemplate.opsForValue().get(key); + } + + /** 删除键 */ + public Boolean del(@NonNull String key) { + return stringRedisTemplate.delete(key); + } + + /** 自增 */ + public Long incr(@NonNull String key) { + return stringRedisTemplate.opsForValue().increment(key); + } + + /** 自减 */ + public Long decr(@NonNull String key) { + return stringRedisTemplate.opsForValue().decrement(key); + } + + /** 设置过期(秒) */ + public Boolean expire(@NonNull String key, long seconds) { + return stringRedisTemplate.expire(key, seconds, TimeUnit.SECONDS); + } + + /** 判断键是否存在 */ + public Boolean hasKey(@NonNull String key) { + return stringRedisTemplate.hasKey(key); + } +} +