外观
下载中心重点文件与方法
下载中心登记生成任务的结果和状态,不负责生成文件或调度任务。本页解释服务与两端 Controller 的每个业务方法;所有继承的查询、写入和删除重载见 CRUD 方法参考。
本页按重点文件查阅方法;表内方法名可打开源码。重载共享的约束写在表前,差异在各行说明。源码链接固定到核对版本,接入前提见快速开始。
DownloadCenterService
源码:DownloadCenterService;实现:DownloadCenterServiceImpl。
在通用 CRUD 之外增加按记录 ID 与用户 ID 的联合操作。userId 必须由可信认证上下文提供。
| 方法 / 重载 | 用途、参数与返回值 | 注意事项 |
|---|---|---|
| getVoByIdAndUserId(Long id, Long userId) | 按 id、fkUserId 同时筛选,返回 DownloadCenterVo。 | 调用 getVoByWrapper,缺失/逻辑删除/归属不符抛 business_not_found,不返回 null。 |
| deleteByIdAndUserId(Long id, Long userId) | 按 ID 和用户联合删除,返回 void。 | 实现有事务;逻辑删除不删物理文件,不检查影响行数,缺失或非本人可无操作。 |
DownloadCenterServiceImpl
Service 的数据库实现,继承 AbstractBaseService。此类直接声明三个方法;两个归属方法见上方接口,第三个是查询扩展。
| 方法 / 重载 | 用途、参数与返回值 | 注意事项 |
|---|---|---|
| lambdaQueryWrapper(DownloadCenterQuery query) | 追加文件名 LIKE;文件类型/路径/大小、用户、状态、进度等值条件,按创建时间倒序。 | query 不能 null;userId=null 时没有归属限制。 |
| getVoByIdAndUserId(Long id, Long userId) | 构造联合条件后使用必取 VO 路径。 | 不是先按 ID 读取后由客户端判断所属用户。 |
| deleteByIdAndUserId(Long id, Long userId) | 在事务中调用 Mapper 按联合条件删除。 | 方法名提供范围限定,认证仍由上游负责。 |
AdminDownloadCenterController
源码:AdminDownloadCenterController。
HTTP 前缀 /api/admin/download/center,统一返回 ResultModel。管理端使用模块权限注解,查询不强制当前用户。
| 方法 / 重载 | 用途、参数与返回值 | 注意事项 |
|---|---|---|
| page(DownloadCenterQuery query) | POST /page;请求体为 Query,data 为 PageModel<DownloadCenterVo>。 | 管理端允许按指定用户查询。 |
| deleteById(Long id) | DELETE /id/{id};调用完成返回 data=true。 | 有请求确认注解;不代表删除了物理文件或影响行数大于零。 |
| getById(Long id) | GET /id/{id};返回单个 VO。 | 缺失抛异常。仅按 ID 必取。 |
AppDownloadCenterController
源码:AppDownloadCenterController。
HTTP 前缀 /api/app/download/center,统一返回 ResultModel。App 从 SessionUserUtil 取当前用户,覆盖客户端提交的 userId。
| 方法 / 重载 | 用途、参数与返回值 | 注意事项 |
|---|---|---|
| page(DownloadCenterQuery query) | POST /page;请求体为 Query,data 为 PageModel<DownloadCenterVo>。 | 先强制写 query.userId;Java null 入参会新建 Query,HTTP 请求体仍受 Spring 绑定要求约束。 |
| deleteById(Long id) | DELETE /id/{id};调用完成返回 data=true。 | 有请求确认注解;不代表删除了物理文件或影响行数大于零。 |
| getById(Long id) | GET /id/{id};返回单个 VO。 | 缺失抛异常。服务同时限定当前 userId。 |
在后台读取、在 App 限定归属
在已接入模块且已注入 DownloadCenterService downloads 的服务方法中,使用 SessionUserUtil 的 import com.own.component.base.login.util.SessionUserUtil:
java
Long currentUserId = SessionUserUtil.getLoginUser().userId();
var record = downloads.getVoByIdAndUserId(id, currentUserId);
// record 是已匹配当前用户的记录;生成文件和下载授权仍由应用负责。记录新增与状态维护见记录写入。继承的批量写入受 MapperUtil 惰性分组问题影响,不能以返回列表确认落库。HTTP 请求、筛选字段和删除确认流程见查询与删除。