# school-miniprogram **Repository Path**: dawson-mic/school-miniprogram ## Basic Information - **Project Name**: school-miniprogram - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-26 - **Last Updated**: 2026-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 校园小程序一体化项目(小程序 + 后端 + 管理端) 本仓库包含一套“校园服务”场景的三端工程: - 小程序端:微信小程序(用户使用) - 后端服务:Spring Boot(提供业务 API、鉴权、AI 知识库能力) - 管理端 UI:Vue3 管理后台(管理员/老师使用) 如果你要快速了解整体架构与代码关键路径,先读 [代码技术分析.md](file:///d:/微信web开发者工具/code/miniprogram-3/代码技术分析.md)。 ## 近期更新 (2026-04) - **移除微信一键登录**:已从前端和后端移除了微信授权登录相关的冗余代码,当前小程序仅保留学号+密码的安全登录模式。 - **新增校园公告功能**: - 管理端:支持管理员发布、编辑、隐藏公告。 - 图片上传:管理端公告发布已集成 OSS 上传,并自动插入 Markdown 图片链接。 - 小程序端:首页实时同步展示最新公告,详情页集成 `Towxml` 支持富文本(Markdown)排版和图片渲染。 - **新增服务信息管理**:管理端侧边栏新增“服务信息”模块,支持对“二手市场”、“失物招领”、“论坛管理”进行统一的增删改查及状态变更(如上下架、置顶、加精等)。 - **向量知识库降级保护**:针对本地 Qdrant 未启动导致的整体流程崩溃问题,已在后端增加异常捕获和降级策略,即使向量库连接失败,仍可正常保存数据到 MySQL,保证主干业务不受阻断。 ## 目录结构 ```text miniprogram-3/ # 微信小程序工程 school-miniprogram-admin/ # Spring Boot 后端(Java 17) school-miniprogram-admin-ui/ # Vue3 管理端 UI ``` ## 技术栈概览 **小程序端** - 微信小程序原生:WXML / WXSS / JS - Markdown/富文本渲染:Towxml([app.js](file:///d:/微信web开发者工具/code/miniprogram-3/miniprogram-3/app.js#L1-L10)、`miniprogram-3/towxml-2.x/`) **后端** - Java 17 + Spring Boot 3([pom.xml](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin/pom.xml)) - MyBatis(XML 映射)+ Spring Data JPA(混合数据访问) - JWT 鉴权(header `token`)+ Spring MVC 拦截器([AuthInterceptor](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin/src/main/java/com/miniprogram/common/auth/AuthInterceptor.java#L16-L55)、[WebConfig](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin/src/main/java/com/miniprogram/config/WebConfig.java#L9-L28)) - OpenAPI/Knife4j 文档([OpenApiConfig](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin/src/main/java/com/miniprogram/config/OpenApiConfig.java#L11-L29)) - AI/RAG:Qdrant(HTTP)+ 向量化服务 + DeepSeek([AIChatController](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin/src/main/java/com/miniprogram/controller/user/AIChatController.java#L28-L505)、[QdrantVectorServiceImpl](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin/src/main/java/com/miniprogram/service/impl/QdrantVectorServiceImpl.java#L25-L318)) **管理端 UI** - Vue 3 + Vite + Element Plus + Pinia + Axios([package.json](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin-ui/package.json#L1-L37)) ## 运行前准备 - JDK 17(后端) - Maven 3.6+(后端) - Node.js 16+ / npm 8+(管理端 UI) - MySQL 5.7+(业务数据) - 可选:Qdrant(AI 知识库能力依赖),以及向量化/大模型 API(DeepSeek 或兼容网关)。 - 若需开启 AI RAG 知识库功能,请确保本地已安装 [Docker Desktop](https://www.docker.com/products/docker-desktop/)(Windows 下推荐开启 WSL 2 后端),并运行 Qdrant 容器:`docker run -p 6333:6333 -p 6334:6334 -d qdrant/qdrant` ## 快速启动 ### 1) 启动后端(school-miniprogram-admin) 1. 初始化数据库:执行 SQL 脚本(见 `school-miniprogram-admin/src/main/resources/sql/`)。 2. 修改后端配置:主要是数据库连接与外部服务配置(见 [application.yml](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin/src/main/resources/application.yml) 与 [application-dev.yml](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin/src/main/resources/application-dev.yml))。 3. 启动服务: ```bash cd school-miniprogram-admin mvn spring-boot:run ``` 或打包后运行: ```bash cd school-miniprogram-admin mvn clean package -DskipTests java -jar target/school-miniprogram-admin-0.0.1-SNAPSHOT.jar ``` 默认端口:`8080`(见 [application.yml](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin/src/main/resources/application.yml#L1-L3))。 ### 2) 启动管理端 UI(school-miniprogram-admin-ui) ```bash cd school-miniprogram-admin-ui npm install npm run dev ``` 管理端的请求默认走 `/api` 代理到后端(见 [vite.config.js](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin-ui/vite.config.js) 与 [request.js](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin-ui/src/api/request.js#L6-L95))。 ### 3) 运行小程序端(miniprogram-3) - 用微信开发者工具打开 `miniprogram-3/` 目录 - 小程序 API 基础地址在 [utils/config.js](file:///d:/微信web开发者工具/code/miniprogram-3/miniprogram-3/utils/config.js#L1-L39): - 默认开发环境:`http://127.0.0.1:8080/api` - 生产环境:需要改成你的域名与 HTTPS 配置 注意:部分页面存在 `localhost:8080` 的硬编码请求地址,若你修改了后端地址,需要统一替换/收敛到配置文件。 ## 接口文档与认证 - OpenAPI:`/v3/api-docs` - Swagger UI:`/swagger-ui/index.html` - Knife4j:`/doc.html` 认证方式:登录成功后会拿到 JWT token,后续请求在 header 携带 `token`。拦截器会对 `/api/**` 执行校验([WebConfig](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin/src/main/java/com/miniprogram/config/WebConfig.java#L15-L28)、[AuthInterceptor](file:///d:/微信web开发者工具/code/miniprogram-3/school-miniprogram-admin/src/main/java/com/miniprogram/common/auth/AuthInterceptor.java#L24-L54))。 ## 安全提示(重要) - 当前后端配置文件中包含明文敏感信息(数据库口令、OSS/向量库/大模型等 key)。建议仅用于本地开发,生产环境请改为环境变量/配置中心注入,并避免提交到版本库。 ## 相关文档 - 后端部署说明:`school-miniprogram-admin/DEPLOYMENT_GUIDE.md` - 管理端 UI 说明:`school-miniprogram-admin-ui/README.md` - 个人中心页面说明:`miniprogram-3/README-profile功能说明.md`