陈昶聿
5 天以前 04d04154d9041535342736bd1c924ade5d818614
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package com.ruoyi.task.mapper;
 
import com.ruoyi.task.domain.ServiceSubtask;
import com.ruoyi.task.domain.ServiceSubtaskPreachform;
import org.apache.ibatis.annotations.Mapper;
 
import java.util.List;
 
/**
 * 随访子任务「执行方式明细」({@code service_subtask_preachform})Mapper。
 *
 * <h3>2026-11 归属调整</h3>
 * 该表原先归 {@code ruoyi-inhospvisit}(经 {@code PreachformApi} 契约对外),
 * smartor 侧另有一份同表 CRUD 由一个 {@code @Primary} 委托实现兜着,ruoyi-task 只能经
 * {@code ServiceSubtaskPreachformMapper} 间接读写。按"表跟随业务域"的口径,这张表整体划归 {@code ruoyi-task}:
 * <ul>
 *   <li>SQL 与 Mapper 只有这一份(本接口 + {@code mapper/task/ServiceSubtaskPreachformMapper.xml});</li>
 *   <li>ruoyi-task / ruoyi-phone / smartor / ruoyi-admin / ruoyi-quartz 一律直接注入本 Mapper;</li>
 *   <li>{@code ruoyi-inhospvisit} 反向依赖不成立(它要写这张表),因此仍走
 *       {@code com.ruoyi.common.core.service.PreachformApi} 契约,实现方改为本模块
 *       ({@code com.ruoyi.task.api.contract.PreachformApiImpl})。</li>
 * </ul>
 *
 * <h3>⚠️ 方法名沿用迁移前(smartor / 本模块调用点保持零改动)</h3>
 * 语句 id 与 {@link ServiceSubtaskPreachform} 字段一一对应,条件、顺序照抄原 SQL,
 * 不做"顺手精简"。三个 {@code delete*} 在库里其实是<b>软删</b>({@code update ... set del_flag = 1})。
 */
@Mapper
public interface ServiceSubtaskPreachformMapper {
 
    /**
     * 按主键查(原 {@code selectServiceSubtaskPreachformById})。
     */
    ServiceSubtaskPreachform selectServiceSubtaskPreachformById(Long id);
 
    /**
     * 按条件查(原 {@code selectServiceSubtaskPreachformList})。
     * <p>
     * 固定条件 {@code del_flag = 0},其余 8 个字段为可选条件:
     * {@code subid / taskid / current_send_time / preachform / sendstate / orgid / sort / compensate_time}。
     */
    List<ServiceSubtaskPreachform> selectServiceSubtaskPreachformList(ServiceSubtaskPreachform query);
 
    /**
     * 新增(自增主键回填到 {@code id})。
     */
    int insertServiceSubtaskPreachform(ServiceSubtaskPreachform row);
 
    /**
     * 按主键更新({@code where id = #{id}},SET 各列均为可选)。
     */
    int updateServiceSubtaskPreachform(ServiceSubtaskPreachform row);
 
    /**
     * 按条件更新(SET 同 update,WHERE 按 {@code subid / taskid / preachform / remark / orgid},无 id 条件)。
     */
    int updateSSPByCondition(ServiceSubtaskPreachform row);
 
    /**
     * 微信公众号已领取未填写按默认选项完成时,将当前发送方式置为完成(9)。
     * 仅更新当前子任务、当前公众号行,且只允许从已发送(2)/已领取(3)迁移,避免影响其他任务。
     *
     * @param row 必填 id、subid、preachform、remark
     * @return 影响行数
     */
    int updateWechatPreachformComplete(ServiceSubtaskPreachform row);
 
    /**
     * 按主键软删。
     */
    int deleteServiceSubtaskPreachformById(Long id);
 
    /**
     * 按 {@code subid} 软删。
     */
    int deleteServiceSubtaskPreachformBySubid(Long subid);
 
    /**
     * 按主键集合软删。
     */
    int deleteServiceSubtaskPreachformByIds(Long[] ids);
 
    /**
     * 按 {@code taskid + orgid} 查(方法名沿用旧名,<b>不是</b>按 subtask 主键查)。
     */
    List<ServiceSubtaskPreachform> selectBySubtask(ServiceSubtask subtask);
}