|
|
640f57b6da
|
feat: 通知系统(notifications表+CRUD接口+管理员接口)
|
2026-05-26 15:02:49 +08:00 |
|
|
|
722ab837d0
|
refactor: is_paid→is_member, paid_expires_at→membership_expires_at 全局重命名
|
2026-05-25 15:33:31 +08:00 |
|
|
|
5f3b919e92
|
fix: 添加后台定时重试 + 管理员强制确认 + 审计日志 + mock守卫
|
2026-05-25 13:04:19 +08:00 |
|
|
|
54484482c3
|
feat: 抽测风速改为用户可自定义次数(增删按钮)
- models.rs:新增 spot_check_count 字段(默认 5)
- db.rs:INSERT/SELECT 添加 spotcheckcount 列
- migrations/007:ALTER TABLE weather_data ADD spotcheckcount
- afterbody.js:使用 data.spotCheckCount 动态渲染抽测数据
|
2026-05-18 09:51:43 +08:00 |
|
|
|
a588478ab0
|
fix: 修复付费会员累加逻辑和迁移误判问题
- 修复 confirm_payment_order 累加逻辑:GREATEST(COALESCE(paid_expires_at, NOW()), NOW()) + days
- 永久会员改为 2099-12-31 而非 NULL,避免与未付费用户的 NULL 混淆
- 禁用 003_set_all_users_paid.sql 迁移(将所有已有用户设为永久付费)
- 后端部署后已回滚 Dev 数据库中 73 个被误设为付费的用户
|
2026-05-07 15:55:37 +08:00 |
|
|
|
e6048ea010
|
feat(auth): 实现登录限流和性能优化
性能优化:
- 添加数据库索引优化查询性能 (006)
- weather_data: user_id, date, is_favorite 索引
- users: openid 索引
- payment_orders: status 索引
- 新增 refresh_tokens 表支持双 Token 机制 (004)
- 新增 web_login_codes 表支持网页端扫码登录 (005)
安全增强:
- 实现基于 IP 的登录限流 (rate_limiter.rs)
- 滑动窗口算法: 5次/分钟/IP
- 自动清理过期记录
- 429 TooManyRequests 响应
新模块:
- src/rate_limiter.rs: 限流模块
- src/alipay.rs: 支付宝签名模块 (RSA2)
- src/error.rs: 统一错误类型 (含 TooManyRequests)
- src/handlers/meta.rs: 元数据处理器
代码清理:
- 修复 .gitignore 规则,正确跟踪 src/ 和 migrations/
|
2026-04-24 16:13:49 +08:00 |
|
|
|
454139f70d
|
feat: add payment_orders table migration
|
2026-04-17 12:40:31 +08:00 |
|
|
|
6d2824589c
|
feat: 添加用户信息存储功能
- 添加 avatar_url 和 nickname 字段到 users 表
- 修改 get_user_by_id 查询包含新字段
- 添加 save_user_profile API
- 优化 deploy.sh 默认使用 release 模式
|
2026-03-26 14:28:46 +08:00 |
|
|
|
484146aba9
|
支付系统核心:配额限制与用户付费状态管理
- 添加 tokio 依赖用于异步测试
- 启用 User 结构体,添加 is_paid/is_admin/paid_expires_at 字段
- 添加 UpdatePaymentRequest 请求体
- insert_weather_data 集成配额检查逻辑
- 新增 get_user_by_id、count_user_weather_data、update_user_payment_status
- 添加 payment_fields 数据库迁移脚本
|
2026-03-25 13:17:36 +08:00 |
|