tj
2025-06-05 2d549a04870d1315868a7cf19952b64e8071e711
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?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">
<mapper namespace="com.cloudroam.mapper.MeetingMapperCustom">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.cloudroam.model.MeetingDO">
        <id column="id" property="id" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="delete_time" property="deleteTime" />
        <result column="meeting_title" property="meetingTitle" />
        <result column="meeting_date" property="meetingDate" />
        <result column="meeting_type" property="meetingType" />
        <result column="meeting_content" property="meetingContent" />
        <result column="meeting_start_time" property="meetingStartTime" />
        <result column="meeting_end_time" property="meetingEndTime" />
        <result column="create_user_id" property="createUserId" />
        <result column="create_user_name" property="createUserName" />
        <result column="update_user_id" property="updateUserId" />
        <result column="update_user_name" property="updateUserName" />
 
        <result column="is_commit" property="isCommit" />
        <result column="commit_user_id" property="commitUserId" />
        <result column="commit_user_name" property="commitUserName" />
        <result column="commit_time" property="commitTime" />
 
    </resultMap>
 
 
    <resultMap id="UserDOResultMap" type="com.cloudroam.model.UserDO">
        <id column="user_id" property="id"/>
        <result column="username" property="username"/>
        <result column="nickname" property="nickname"/>
        <result column="avatar" property="avatar"/>
        <result column="email" property="email"/>
    </resultMap>
 
    <resultMap id="ResultMapWithUser" type="com.cloudroam.bo.meeting.MeetingBO">
        <id column="id" property="id" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="delete_time" property="deleteTime" />
        <result column="meeting_title" property="meetingTitle" />
        <result column="meeting_date" property="meetingDate" />
        <result column="meeting_type" property="meetingType" />
        <result column="meeting_content" property="meetingContent" />
        <result column="meeting_start_time" property="meetingStartTime" />
        <result column="meeting_end_time" property="meetingEndTime" />
        <result column="create_user_id" property="createUserId" />
        <result column="create_user_name" property="createUserName" />
        <result column="update_user_id" property="updateUserId" />
        <result column="update_user_name" property="updateUserName" />
 
        <result column="is_commit" property="isCommit" />
        <result column="commit_user_id" property="commitUserId" />
        <result column="commit_user_name" property="commitUserName" />
        <result column="commit_time" property="commitTime" />
 
        <result column="meeting_type_name" property="meetingTypeName" />
 
 
        
<!--        嵌套查询获取员工列表-->
        <collection property="userDOList" resultMap="UserDOResultMap" />
    </resultMap>
    <delete id="delProjectDailyProcess">
        update project_daily set daily_process_meeting_id=null ,daily_process_state=null,daily_process_remark=null,daily_process_user_id=null,daily_process_user_name=null,daily_process_time=null where daily_process_meeting_id=#{id}
    </delete>
    <delete id="delMeetingUserByMeetingId">
        delete from meeting_user_re where meeting_id=#{id}
    </delete>
 
 
    <select id="selectMeetingWithRelation" resultMap="ResultMapWithUser">
        select m.* ,u.id as user_id,u.username,u.nickname,u.avatar,u.email,meeting_type.label as meeting_type_name
        from meeting m
        left join meeting_user_re mr
        on m.id=mr.meeting_id
        left join lin_user u
        on mr.meeting_user_id=u.id
        left join ( select label,value from sys_dict_item where dict_type='meeting_type' ) meeting_type
        on m.meeting_type=meeting_type.`value`
        where m.is_deleted=0
        <if test=" dto.keyword !=null and dto.keyword !='' ">
            and (
            m.meeting_title like concat('%',#{dto.keyword},'%')
            or m.meeting_content like concat('%',#{dto.keyword},'%')
            )
        </if>
        <if test=" dto.startTime !=null and dto.startTime !='' ">
            and m.meeting_date &gt;= #{dto.startTime}
        </if>
        <if test=" dto.endTime !=null and dto.endTime !='' ">
            and m.meeting_date &lt;= #{dto.endTime}
        </if>
        <if test=" dto.meetingType !=null and dto.meetingType !='' ">
            and m.meeting_type=#{dto.meetingType}
        </if>
        <if test=" dto.id !=null and dto.id !='' ">
            and m.id=#{dto.id}
        </if>
 
    </select>
    <select id="selectMeetingPage" resultType="com.cloudroam.bo.meeting.MeetingBO">
        select m.* ,user_list.meeting_user_names,meeting_type.label as meeting_type_name
        from meeting m
        left join (
            select
            mr.meeting_id, GROUP_CONCAT(u.nickname) as meeting_user_names
            from meeting_user_re mr
            left join lin_user u
            on mr.meeting_user_id=u.id
            group by mr.meeting_id
        )user_list
        on m.id=user_list.meeting_id
        left join ( select label,value from sys_dict_item where dict_type='meeting_type' ) meeting_type
        on m.meeting_type=meeting_type.`value`
        where m.is_deleted=0
 
 
        <if test=" dto.keyword !=null and dto.keyword !='' ">
            and (
            m.meeting_title like concat('%',#{dto.keyword},'%')
            or m.meeting_content like concat('%',#{dto.keyword},'%')
            )
        </if>
        <if test=" dto.startTime !=null and dto.startTime !='' ">
            and m.meeting_date &gt;= #{dto.startTime}
        </if>
        <if test=" dto.endTime !=null and dto.endTime !='' ">
            and m.meeting_date &lt;= #{dto.endTime}
        </if>
        <if test=" dto.meetingType !=null and dto.meetingType !='' ">
            and m.meeting_type=#{dto.meetingType}
        </if>
        <if test=" dto.id !=null and dto.id !='' ">
            and m.id=#{dto.id}
        </if>
 
        order by meeting_date desc
 
    </select>
 
</mapper>