62b1eef3af7e21041000a486f6b606ce55556ca1
- 添加 UserRoleRepository 实现用户角色关联查询 - 添加 RolePermissionRepository 实现角色权限关联查询 - 完善 PermissionCheckService 实现核心权限验证逻辑 - hasRole(): 检查用户是否拥有指定角色 - getUserPermissions(): 获取用户所有权限 - getUserDataScope(): 获取用户数据权限范围 - getUserRoleCodes(): 获取用户角色代码列表 - roleHasPermission(): 检查角色是否拥有权限 - getRolePermissions(): 获取角色权限列表
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 - 使用(仅凭明文密钥,无需 ID):
POST /api/v1/api-keys/validate
- 创建:
-
用户端体验
- 邀请信息:
GET /api/v1/me/invitation-info - 邀请好友分页:
GET /api/v1/me/invited-friends - 海报图片:
GET /api/v1/me/poster/image - 海报 HTML:
GET /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中调整):leaderboards5m、activities1m、activity_stats2m、activity_graph10m
- 生产环境必须设置
app.security.encryption-key(例如环境变量APP_SECURITY_ENCRYPTION_KEY) - 覆盖率门禁:
pom.xml中启用 JaCoCo,阈值 80%,在verify阶段校验
更多接口与错误码见 docs/api.md。
Description
Languages
Java
60.6%
Shell
39.4%