liusheng
8 天以前 f0a09ee996ab2605869844d6a3d812709e2bf0fa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.ruoyi.task.api.spi;
 
import com.ruoyi.task.domain.ServiceSubtaskRecord;
 
import java.util.List;
import java.util.Map;
 
/**
 * 子任务「发送记录」({@code service_subtask_record})读取能力 ——
 * <b>ruoyi-task 的对外 SPI,由 smartor 侧实现</b>。
 *
 * <h3>为什么需要它</h3>
 * {@code service_subtask_record} 这张表<b>不在本次模块化范围内</b>(它的 Mapper/XML/Service
 * 仍留在 smartor),但它的<b>实体类型</b> {@link ServiceSubtaskRecord} 已随
 * {@code ServiceSubtask} 的字段 `List&lt;ServiceSubtaskRecord&gt; serviceSubtaskRecordList`
 * 一起搬进了 ruoyi-task。
 * <p>
 * 任务侧(原 {@code ServiceSubtaskController} 的 2 处调用)要读这张表,
 * 故经本端口取用 —— 方向仍是「接口在 ruoyi-task、实现在 smartor」,编译期无环。
 *
 * <h3>⚠️ 这是【过渡】端口,形态刻意与旧 Service 一致</h3>
 * 逐方法镜像 smartor 的 {@code IServiceSubtaskRecordService} 中任务侧真正用到的那两个方法
 * (同名、同参数、同返回类型),使 Controller 搬进 ruoyi-task 时
 * <b>只需换注入字段类型,调用点一行都不用改</b>。
 *
 * <h3>将来动作</h3>
 * 若将来 {@code service_subtask_record} 也纳入任务模块,本端口即可删除,
 * 改为模块内直接调用。
 *
 * <h3>⚠️ 实现必须保持"纯转发"</h3>
 */
public interface TaskSubtaskRecordPort {
 
    /**
     * 按条件查发送记录列表(原 {@code IServiceSubtaskRecordService#selectServiceSubtaskRecordList})。
     */
    List<ServiceSubtaskRecord> selectServiceSubtaskRecordList(ServiceSubtaskRecord query);
 
    /**
     * 按子任务 id 集合批量查发送记录,按 subid 分组
     * (原 {@code IServiceSubtaskRecordService#selectRecordMapBySubtaskIds})。
     *
     * @param subtaskIds 子任务 id 集合
     * @return subid -> 该子任务的记录列表
     */
    Map<Long, List<ServiceSubtaskRecord>> selectRecordMapBySubtaskIds(List<Long> subtaskIds);
}