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);
+ }
+}
+