🎬 秋野醬:《個人主頁》
🔥 個人專欄:《Java專欄》《Python專欄》
??心若有所向往,何懼道阻且長
文章目錄
- .🚀 技術架構
- 技術棧全景
- 🎯 功能模塊
- 功能矩陣表
- 📊 數據庫設計
- 核心ER關系圖
- 💻 核心實現
- 創建數據庫
- 導入數據
- 后端啟動
- 典型接口示例:
.🚀 技術架構
技術棧全景
mermaidpietitle 技術棧分布"SpringBoot" : 35"Vue3" : 30"MyBatisPlus" : 15"ElementPlus" : 10"Redis" : 10
🎯 功能模塊
功能矩陣表
模塊 學生端能力 教師端能力 管理端能力
課程管理 在線學習/課件下載 課程發布/學習監控 課程資源調度
宿舍管理 報修申請/歸寢登記 維修處理/查寢記錄 樓棟資產統計
成績系統 成績查詢/趨勢分析 成績錄入/智能分析 數據報表導出
📊 數據庫設計
核心ER關系圖
mermaid
erDiagram
STUDENT ||–o{ COURSE_RECORD : “學習記錄”
STUDENT ||–o{ DORM_REPAIR : “發起報修”
TEACHER ||–o{ SCORE : “錄入成績”
DORM ||–o{ CHECK_RECORD : “每日查寢”
💻 核心實現
### 智能登錄驗證
// 登錄攔截器核心邏輯
@Interceptor
public class AuthInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {// 驗證碼校驗(如圖形驗證碼)if (!verifyCaptcha(request)) {response.sendRedirect("/error/captcha");return false;}// JWT令牌驗證String token = request.getHeader("Authorization");if (!jwtUtil.validateToken(token)) {response.setStatus(HttpStatus.FORBIDDEN.value());return false;}return true;}
}
創建數據庫
mysql> CREATE DATABASE smart_campus DEFAULT CHARSET utf8mb4;
導入數據
mysql -u root -p smart_campus < init.sql
前端構建
cd frontend
npm install
npm run build
后端啟動
mvn clean package
java -jar target/smart-campus-1.0.0.jar
典型接口示例:
// 微信支付回調接口
@PostMapping("/payment/wechat/callback")
public String wechatPayCallback(@RequestBody String notifyData) {// 1. 驗證簽名if (!wechatPayService.verifySign(notifyData)) {return "FAIL";}// 2. 更新訂單狀態paymentService.updateOrderStatus(parseOrderNo(notifyData));// 3. 推送消息messageService.pushPaymentSuccess(parseUserId(notifyData));return "SUCCESS";
}