跳转到正文

下载中心重点文件与方法

下载中心登记生成任务的结果和状态,不负责生成文件或调度任务。本页解释服务与两端 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

源码: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 请求、筛选字段和删除确认流程见查询与删除