Your Name ddae0432f4 fix(permission): 修复 JPA 查询兼容性问题
- 修改 UserRoleRepository 使用两步查询替代 JOIN...ON
- 修改 RolePermissionRepository 使用两步查询
- 修改 PermissionCheckService 使用新的查询方法
- 修改 RoleRepository 使用 @Query 注解
- 修复测试文件中的实体类访问修饰符

注:PermissionSchemaVerificationTest 有环境问题待修复
2026-03-05 07:46:03 +08:00

mosquito

Spring Boot 3 (Java 17) 应用,用于活动传播、邀请奖励与运营分析。

快速开始

  • 构建与测试:mvn -B -DskipTests=false clean verify(将触发 Flyway 迁移与覆盖率门禁)
  • 运行(开发):mvn spring-boot:run(默认 dev 配置)

关键端点

  • 所有 JSON 响应统一为 ApiResponse,业务数据位于 data 字段。

  • /api/** 需要 X-API-Key/api/v1/me/**/api/v1/activities/**/api/v1/api-keys/**/api/v1/share/** 还需要 Authorization: Bearer <token>

  • API 密钥

    • 创建:POST /api/v1/api-keys
    • 吊销:DELETE /api/v1/api-keys/{id}
    • 使用(按 ID 校验并打点):POST /api/v1/api-keys/{id}/use
    • 使用(仅凭明文密钥,无需 IDPOST /api/v1/api-keys/validate
  • 用户端体验

    • 邀请信息:GET /api/v1/me/invitation-info
    • 邀请好友分页:GET /api/v1/me/invited-friends
    • 海报图片:GET /api/v1/me/poster/image
    • 海报 HTMLGET /api/v1/me/poster/html
    • 海报配置:GET /api/v1/me/poster/config
  • 缓存管理(需要管理令牌)

    • 清空缓存:DELETE /api/v1/cache/{cacheName}
    • 失效键:DELETE /api/v1/cache/{cacheName}/{key}

运维与安全

  • 配置管理令牌:app.cache.admin-token(通过环境变量或配置文件注入)
  • 缓存失效限流:app.cache.rate-limit-per-minute(默认 60
  • Redis 缓存分组 TTL可在 CacheConfig 中调整):
    • leaderboards 5m、activities 1m、activity_stats 2m、activity_graph 10m
  • 生产环境必须设置 app.security.encryption-key(例如环境变量 APP_SECURITY_ENCRYPTION_KEY
  • 覆盖率门禁:pom.xml 中启用 JaCoCo阈值 80%,在 verify 阶段校验

更多接口与错误码见 docs/api.md

Description
蚊子项目 - Mosquito Project
Readme 5.8 MiB
Languages
Java 60.6%
Shell 39.4%