CustomerMessage类包含id、customerName、contact、content、createTime、status、handler、handleTime字段,用ArrayList管理留言,支持增删查及new→processing→replied→closed状态流转,时间戳统一管理确保排序与校验。

客服留言记录的数据结构设计
用一个简单的 Java 类来表示每条留言,核心字段包括:留言 ID、客户姓名、联系方式、留言时间、留言内容、处理状态、处理人、处理时间。不需要复杂框架,用 POJO + ArrayList 就能支撑基础功能。
示例代码:
public class CustomerMessage {
private String id;
private String customerName;
private String contact;
private String content;
private long createTime; // 时间戳,便于排序和查询
private String status; // "new", "processing", "replied", "closed"
private String handler;
private long handleTime;
// 构造方法、getter/setter 略(实际开发中建议生成)
}
留言的增删查与状态流转逻辑
留言生命周期通常为:新增 → 分配/认领 → 处理中 → 回复完成 → 归档。关键不是做完整工作流引擎,而是把几个状态变更点写清楚。
- 新增留言:用
System.currentTimeMillis()记录时间,初始状态设为"new" - 认领处理:检查当前状态是否为
"new",是则更新为"processing"并填入处理人 - 标记已回复:仅允许从
"processing"变更为"replied",同时记录handleTime - 关闭留言:支持手动设为
"closed",用于已解决且无需跟进的情况
简易内存版留言管理器(无数据库)
适合演示、内部工具或轻量场景。用 ArrayList 存储,配合简单方法实现常用操作:
立即学习“Java免费学习笔记(深入)”;
-
addMessage(CustomerMessage msg):添加新留言,自动赋 ID(如用时间戳+随机数) -
getNewMessages():筛选status == "new"的列表,供客服查看待办 -
markAsReplied(String id, String handler):按 ID 查找并更新状态和处理人 -
searchByCustomer(String keyword):模糊匹配客户姓名或联系方式
注意:不加锁也能跑通单线程演示;若需多线程安全,可将 List 替换为 CopyOnWriteArrayList 或加同步块。
控制台交互示例(快速验证逻辑)
写个简短的 Main 方法,模拟客服日常操作流程:
public static void main(String[] args) {
MessageManager manager = new MessageManager();
manager.addMessage(new CustomerMessage("张三", "138****1234", "APP登录不了"));
manager.addMessage(new CustomerMessage("李四", "021-****5678", "订单没收到货"));
System.out.println("待处理留言:" + manager.getNewMessages().size());
manager.markAsReplied("msg_1712345678901", "客服A");
System.out.println("张三的留言:" + manager.searchByCustomer("张三"));
}
运行后就能看到状态变化是否符合预期。后续扩展时,再把内存存储换成文件(如 JSON 序列化)或 SQLite 即可。
基本上就这些 —— 不复杂但容易忽略的是状态校验和时间字段的统一管理,补上这两点,逻辑就稳了。










