feat: 提交校园智能助手后端工程源码(Spring Boot 2.7.18 + 平台 starter + JPA + Nacos)
build / build-push (push) Successful in 40s

- com.yunhai.agent,端口 8093,context-path /agent,制品 target/agent.jar;与 NoticeService 同构
- CAS 单点登录 + 三层角色权限(学生/教师/管理员/访客)+ 会话与工具调用审计落库
- DeepSeek 大模型编排 + 7 个业务模块工具(请假/公告/宿舍/活动/作业/资源库/教师发展)
- 浏览器代执行协议(服务端挂起 → 前端用登录态代调 → toolResult 续跑)+ 调用失败深链兜底
- 登出修复:服务端真正 session.invalidate() + 前端两步登出 + logout-guard
- 保留 projman 注入的 .gitea/workflows/build.yml 与 docker/Dockerfile;docker/application-prod.yml、run-app.sh 随工程入库
This commit is contained in:
lijing
2026-10-12 11:18:29 +08:00
parent 8589afd69a
commit 8303b857e9
58 changed files with 6883 additions and 2 deletions
@@ -0,0 +1,51 @@
package com.yunhai.agent.entity;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Index;
import javax.persistence.Lob;
import javax.persistence.Table;
/**
* 会话里的一条消息(system / user / assistant / tool),按 seq_no 保序。
*
* <p>assistant 消息可能携带工具调用请求,序列化进 {@link #toolCalls};
* tool 消息用于回填工具执行结果,关联 {@link #toolCallId}。
*/
@Entity
@Table(name = "agent_message", indexes = {
@Index(name = "idx_agent_msg_sid", columnList = "session_id,seq_no")
})
@Getter
@Setter
public class AgentMessage extends BaseEntity {
/** 所属会话 id */
@Column(name = "session_id", nullable = false, length = 64)
private String sessionId;
/** 会话内顺序(从 0 递增) */
@Column(name = "seq_no")
private Integer seqNo;
/** 角色:system / user / assistant / tool */
@Column(name = "role", length = 16)
private String role;
/** 正文(可能为空:assistant 只想调工具时) */
@Lob
@Column(name = "content", columnDefinition = "TEXT")
private String content;
/** assistant 的 tool_calls(JSON 数组字符串) */
@Lob
@Column(name = "tool_calls", columnDefinition = "TEXT")
private String toolCalls;
/** role=tool 时关联的调用 id */
@Column(name = "tool_call_id", length = 64)
private String toolCallId;
}