feat(database): 迁移用户关联字段并优化打卡系统

- 修改数据库配置将MYSQL_DB从mys_info_v3改为mys_info_test
- 新增auth_users表wechat_openid字段并建立唯一索引
- 为plan_checkins表添加计划性能索引(idx_plan_period_student)
- 将checkin_records_old表关联方式从student_id改为user_id
- 将plan_checkins表关联方式从student_id改为user_id并更新附件路径
- 移除routes/auth.py中的uuid导入使用安全token生成函数
- 重构routes/checkin.py打卡逻辑去除course_type字段并优化返回结构
- 添加打卡时间限制验证功能防止过期打卡操作
- 实现小组统计功能支持老师查看各组打卡情况
- 更新主页index.html界面适配新的打卡和计划功能
- 调整计划提交时间规则为周五至周四周期
- 添加月度和年度计划提交状态验证机制
This commit is contained in:
王宏豪
2026-09-10 14:11:59 +08:00
parent 4fbcff2bb4
commit 9a7681112b
17 changed files with 876 additions and 168 deletions

42
stop_prd.sh Normal file
View File

@@ -0,0 +1,42 @@
#!/usr/bin/env bash
# 明缘进阶场 FastAPI 停止脚本 (CentOS7, 固定路径)
PID_FILE=/home/clock_server/logs/prd/server.pid
PORT=8001
kill_pid() {
local pid="$1"
[ -z "$pid" ] && return 0
echo "停止 PID $pid"
kill "$pid" 2>/dev/null || true
for _ in $(seq 1 30); do
if ! kill -0 "$pid" 2>/dev/null; then break; fi
sleep 0.5
done
if kill -0 "$pid" 2>/dev/null; then
echo "进程未退出,强制结束 PID $pid"
kill -9 "$pid" 2>/dev/null || true
fi
}
# 1) 按 PID 文件
if [ -f "$PID_FILE" ]; then
PID="$(cat "$PID_FILE" 2>/dev/null || true)"
kill_pid "$PID"
rm -f "$PID_FILE"
fi
# 2) 按命令行兜底(uvicorn)
for p in $(pgrep -f "uvicorn server_prd.main:app" 2>/dev/null || true); do
kill_pid "$p"
done
# 3) 按端口兜底:杀掉占用 8001 的任何进程
FUSER_BIN="$(command -v fuser || true)"
if [ -n "$FUSER_BIN" ]; then
echo "检查并释放端口 $PORT"
$FUSER_BIN -k "$PORT/tcp" 2>/dev/null || true
$FUSER_BIN -k -n tcp "$PORT" 2>/dev/null || true
fi
sleep 1
echo "完成"