广州市综治平台后端
xusd
2025-06-07 36306491396230522fa20585c2621a7fc899849a
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
88
89
90
91
92
93
94
95
96
97
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 
 * @title: 修改记录表
 * @description: 自定义sql,请自行实现业务逻辑
 * @company: hugeinfo
 * @author: trae
 * @time:2024-06-20 10:00:00
 * @version 1.0.0
-->
<mapper namespace="cn.huge.module.cases.dao.mapper.CaseModifyRecordMapper">
    <!-- 结果集 -->
    <resultMap id="dataResult" type="cn.huge.module.cases.domain.po.CaseModifyRecord">
        <result property="id" column="id"/>
        <result property="caseId" column="case_id"/>
        <result property="modifyType" column="modify_type"/>
        <result property="modifyItem" column="modify_item"/>
        <result property="modifyAttribute" column="modify_attribute"/>
        <result property="beforeContent" column="before_content"/>
        <result property="afterContent" column="after_content"/>
        <result property="modifyTime" column="modify_time"/>
        <result property="modifyUser" column="modify_user"/>
    </resultMap>
    
    <!-- 聚合查询结果集 -->
    <resultMap id="groupResult" type="cn.huge.module.cases.domain.dto.CaseModifyRecordGroupDTO">
        <result property="modifyTime" column="modify_time"/>
        <result property="modifyUser" column="modify_user"/>
        <result property="modifyCount" column="modify_count"/>
    </resultMap>
    
    <!-- 表 -->
    <sql id='table-name'>dyh_case_modify_record</sql>
    <insert id="insertCaseModifyRecord">
        INSERT INTO
            <include refid="table-name"/>
        (
            case_id,
            modify_type,
            modify_item,
            modify_attribute,
            before_content,
            after_content,
            modify_time,
            modify_user,
            file_url
        )
        VALUES
        (
            #{caseId},
            #{modifyType},
            #{modifyItem},
            #{modifyAttribute},
            #{beforeContent},
            #{afterContent},
            #{modifyTime},
            #{modifyUser},
            #{fileUrl}
        )
    </insert>
 
    <!-- 按修改时间和修改人聚合查询修改记录 -->
    <select id="listGroupByTimeAndUser" resultMap="groupResult">
        SELECT 
            modify_time, 
            modify_user, 
            COUNT(*) as modify_count
        FROM 
            <include refid="table-name"/>
        WHERE 
            1=1
            <if test="caseId != null and caseId != ''">
                AND case_id = #{caseId}
            </if>
        GROUP BY 
            modify_time, modify_user
        ORDER BY 
            modify_time DESC
    </select>
    
    <!-- 查询同一时间同一人的修改记录明细 -->
    <select id="listDetailByTimeAndUser" resultMap="dataResult">
        SELECT 
            *
        FROM 
            <include refid="table-name"/>
        WHERE 
            modify_time = #{modifyTime}
        AND 
            modify_user = #{modifyUser}
        <if test="caseId != null and caseId != ''">
            AND case_id = #{caseId}
        </if>
        ORDER BY 
            modify_time DESC
    </select>
</mapper>