feat: 提交校园智能助手后端工程源码(Spring Boot 2.7.18 + 平台 starter + JPA + Nacos)
build / build-push (push) Successful in 40s
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:
@@ -0,0 +1,90 @@
|
||||
package com.yunhai.agent.tool.defs;
|
||||
|
||||
import com.yunhai.agent.tool.ToolDef;
|
||||
import com.yunhai.agent.tool.ToolParam;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 教师专业发展模块工具 —— 后端 Profession,前缀 /api/profession、/api/moudule、/api/points、/api/stats。
|
||||
*/
|
||||
public final class ProfessionTools {
|
||||
|
||||
public static final String MODULE = "profession";
|
||||
|
||||
private ProfessionTools() {
|
||||
}
|
||||
|
||||
public static List<ToolDef> defs() {
|
||||
List<ToolDef> list = new ArrayList<>();
|
||||
|
||||
list.add(ToolDef.of("profession.homeRecords", MODULE, "栏目最新记录",
|
||||
"各栏目最新发布的记录块(专业发展首页内容)。",
|
||||
"GET", "/api/profession/HomeModuleRecords")
|
||||
.p(ToolParam.optional("size", "integer", "每栏取几条").dft("6"))
|
||||
.readAt("/home"));
|
||||
|
||||
list.add(ToolDef.of("profession.list", MODULE, "专业发展记录列表",
|
||||
"后台口径的专业发展记录分页查询,可按栏目/教师/时间筛选。",
|
||||
"GET", "/api/profession/ProfessionList")
|
||||
.p(ToolParam.optional("pageIndex", "integer", "页码").dft("1"),
|
||||
ToolParam.optional("pageSize", "integer", "每页条数").dft("10"),
|
||||
ToolParam.optional("keyword", "string", "标题关键词"),
|
||||
ToolParam.optional("moduleId", "integer", "栏目 id"),
|
||||
ToolParam.optional("starttime", "string", "开始时间 yyyy-MM-dd"),
|
||||
ToolParam.optional("endtime", "string", "结束时间 yyyy-MM-dd"))
|
||||
.readAt("/module/list"));
|
||||
|
||||
list.add(ToolDef.of("profession.moduleRecords", MODULE, "栏目文章列表",
|
||||
"某个栏目下的文章分页(附同校其他栏目)。",
|
||||
"GET", "/api/profession/ModuleRecordList")
|
||||
.p(ToolParam.required("moduleId", "integer", "栏目 id"),
|
||||
ToolParam.optional("pageIndex", "integer", "页码").dft("1"),
|
||||
ToolParam.optional("pageSize", "integer", "每页条数").dft("10"))
|
||||
.readAt("/module/list"));
|
||||
|
||||
list.add(ToolDef.of("profession.myRecords", MODULE, "我的栏目文章",
|
||||
"查询我在某栏目下发表的文章。",
|
||||
"GET", "/api/profession/MyModuleRecordList")
|
||||
.p(ToolParam.required("moduleId", "integer", "栏目 id"),
|
||||
ToolParam.optional("pageIndex", "integer", "页码").dft("1"),
|
||||
ToolParam.optional("pageSize", "integer", "每页条数").dft("10"))
|
||||
.readAt("/timeline"));
|
||||
|
||||
list.add(ToolDef.of("profession.detail", MODULE, "记录详情",
|
||||
"查看一条专业发展记录的详情。",
|
||||
"GET", "/api/profession/ProfessionDetail")
|
||||
.p(ToolParam.required("SerID", "integer", "记录 id"))
|
||||
.readAt("/module/list"));
|
||||
|
||||
list.add(ToolDef.of("profession.moduleTree", MODULE, "栏目树",
|
||||
"专业发展的栏目树(含我的栏目),发布记录时选栏目用。",
|
||||
"GET", "/api/moudule/ModuleTree")
|
||||
.readAt("/record/new"));
|
||||
|
||||
list.add(ToolDef.of("profession.myPoints", MODULE, "我的积分",
|
||||
"查询我的专业发展积分与来源明细。",
|
||||
"GET", "/api/profession/MyPoints")
|
||||
.readAt("/timeline"));
|
||||
|
||||
list.add(ToolDef.of("profession.pointsRank", MODULE, "积分排行",
|
||||
"积分排行榜。",
|
||||
"GET", "/api/profession/PointsRank")
|
||||
.p(ToolParam.optional("top", "integer", "取前几名").dft("8"))
|
||||
.readAt("/home"));
|
||||
|
||||
list.add(ToolDef.of("profession.publish", MODULE, "发布专业发展记录",
|
||||
"发布一条专业发展记录(教案/学习资料/反思等)。调用前必须确认栏目 moduleId、标题与内容。",
|
||||
"POST_FORM", "/api/profession/Create")
|
||||
.p(ToolParam.required("moduleId", "integer", "栏目 id,来自 profession.moduleTree")
|
||||
.label("所属栏目").optionsFrom("profession.moduleTree"),
|
||||
ToolParam.required("title", "string", "记录标题")
|
||||
.label("记录标题").eg("2026年秋季公开课教学设计"),
|
||||
ToolParam.optional("content", "string", "记录正文")
|
||||
.label("记录正文").as("textarea"))
|
||||
.write("/record/new"));
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user