diff --git a/spec/ai-robot/tasks.md b/spec/ai-robot/tasks.md index 5133528..ee7eac0 100644 --- a/spec/ai-robot/tasks.md +++ b/spec/ai-robot/tasks.md @@ -166,15 +166,15 @@ last_updated: "2026-02-24" - [x] 幂等性检查 ### TASK-022: 重构 MessageProcessService -- **状态**: ⏳ 待开始 +- **状态**: ✅ 已完成 - **优先级**: P0 - **关联 AC**: AC-MCA-08 - **描述**: 将现有 MessageProcessService 逻辑迁移到 MessageRouterServiceImpl - **产出物**: - `src/main/java/com/wecom/robot/service/MessageProcessService.java` 更新或删除 - **验收标准**: - - [ ] 现有功能保持兼容 - - [ ] 微信专属逻辑移至 WeChatAdapter + - [x] 现有功能保持兼容 + - [x] 微信专属逻辑移至 WeChatAdapter ### TASK-023: 更新 SessionManagerService - **状态**: ⏳ 待开始 diff --git a/src/main/java/com/wecom/robot/entity/Session.java b/src/main/java/com/wecom/robot/entity/Session.java index ef8fcd4..5b56999 100644 --- a/src/main/java/com/wecom/robot/entity/Session.java +++ b/src/main/java/com/wecom/robot/entity/Session.java @@ -22,6 +22,8 @@ public class Session implements Serializable { private String kfId; + private String channelType; + private String status; private Integer wxServiceState; @@ -39,4 +41,8 @@ public class Session implements Serializable { public static final String STATUS_PENDING = "PENDING"; public static final String STATUS_MANUAL = "MANUAL"; public static final String STATUS_CLOSED = "CLOSED"; + + public static final String CHANNEL_WECHAT = "wechat"; + public static final String CHANNEL_DOUYIN = "douyin"; + public static final String CHANNEL_JD = "jd"; } diff --git a/src/main/java/com/wecom/robot/service/SessionManagerService.java b/src/main/java/com/wecom/robot/service/SessionManagerService.java index 5364de4..85a5360 100644 --- a/src/main/java/com/wecom/robot/service/SessionManagerService.java +++ b/src/main/java/com/wecom/robot/service/SessionManagerService.java @@ -17,6 +17,11 @@ import java.time.LocalDateTime; import java.util.List; import java.util.concurrent.TimeUnit; +/** + * 会话管理服务 + * + *
关联 AC: [AC-MCA-11] 会话管理, [AC-MCA-12] 渠道类型支持
+ */
@Slf4j
@Service
@RequiredArgsConstructor
@@ -31,6 +36,10 @@ public class SessionManagerService {
private final StringRedisTemplate redisTemplate;
public Session getOrCreateSession(String customerId, String kfId) {
+ return getOrCreateSession(customerId, kfId, Session.CHANNEL_WECHAT);
+ }
+
+ public Session getOrCreateSession(String customerId, String kfId, String channelType) {
LambdaQueryWrapper