郑永安
2023-06-19 7a6abd05683528032687c75e80e0bd2030a3e46c
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
145
<?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.gkhy.safePlatform.account.repository.schedule.GroupMemberInfoRepository" >
 
    <resultMap id="GroupMemberInfo" type="com.gkhy.safePlatform.account.entity.schedule.GroupMemberInfo">
        <result column="id"  property="id"/>
        <result column="uid"  property="uid"/>
        <result column="group_id"  property="groupId"/>
    </resultMap>
 
 
    <resultMap id="GroupMemberDO" type="com.gkhy.safePlatform.account.entity.schedule.GroupMemberInfoDO">
        <result column="uid"  property="uid"/>
        <result column="username"  property="username"/>
        <result column="real_name"  property="realName"/>
        <result column="status"  property="status"/>
    </resultMap>
 
    <resultMap id="GroupInfoDO" type="com.gkhy.safePlatform.account.entity.schedule.GroupInfoDO">
        <result column="id"  property="id"/>
        <result column="name"  property="name"/>
        <result column="info"  property="info"/>
        <result column="group_strategy_id"  property="groupStrategyId"/>
        <result column="status"  property="status"/>
        <result column="dep_id"  property="depId"/>
    </resultMap>
 
 
 
    <insert id="insertBatch"
            parameterType="com.gkhy.safePlatform.account.entity.schedule.GroupMemberInfo">
        insert into
        schedule_group_member
        <trim prefix="(" suffix=") values" suffixOverrides=",">
            group_id,
            uid,
        </trim>
        <foreach collection="list" item="item" separator=",">
            <trim prefix="(" suffix=")" suffixOverrides=",">
                #{item.groupId},
                #{item.uid},
            </trim>
        </foreach>
 
    </insert>
 
 
    <delete id="deleteByGroupId" parameterType="long" >
        delete from schedule_group_member
        where group_id = #{groupId}
    </delete>
    <delete id="deleteByGroupIdAndUids">
        delete
        from schedule_group_member
        where
        group_id = #{groupId}
        and
        <foreach collection="list" item="id" separator="or">
            uid = #{id}
        </foreach>
 
    </delete>
 
    <select id="getGroupMembersByGroupId"
            parameterType="long"
            resultMap="GroupMemberDO">
       select
       user.uid,
       user.username,
       user.real_name,
       user.status
       from  schedule_group_member as groupMember
       inner join sys_user as user on user.uid = groupMember.uid
       inner join schedule_group as groupInfo on groupInfo.id = groupMember.group_id and groupInfo.status = 1
       where groupMember.group_id = #{groupId}
       order by user.gmt_create
    </select>
 
    <select id="getGroupMembersIdsByGroupId"
            parameterType="long"
            resultType="java.lang.Long">
        select
        groupMember.uid
        from schedule_group_member as groupMember
        where groupMember.group_id = #{groupId}
    </select>
 
    <select id="getGroupMemberInfoByUserId"
            parameterType="long"
            resultMap="GroupMemberInfo">
        select
        groupMember.id,
        groupMember.uid,
        groupMember.group_id
        from schedule_group_member as groupMember
        where groupMember.uid = #{uid}
    </select>
    <select id="listGroupMemberDO"
            parameterType="com.gkhy.safePlatform.account.model.query.db.GroupMemberPageDBQuery"
            resultMap="GroupMemberDO">
       select
       user.uid,
       user.username,
       user.real_name,
       user.status
       from  schedule_group_member as groupMember
       inner join sys_user as user on user.uid = groupMember.uid
       inner join schedule_group as groupInfo on groupInfo.id = groupMember.group_id and groupInfo.status = 1
       where groupMember.group_id = #{query.groupId}
       <if test="query.realName != null and query.realName != ''">
           and user.real_name like concat("%",#{query.realName},"%")
       </if>
       order by user.gmt_create
 
    </select>
    <select id="getGroupInfoDOByUserId" parameterType="long" resultMap="GroupInfoDO">
        select
        groupInfo.id,
        groupInfo.name,
        groupInfo.info,
        groupInfo.group_strategy_id,
        groupInfo.status,
        groupInfo.dep_id
        from schedule_group_member as groupMember
        inner join schedule_group as groupInfo on groupInfo.id = groupMember.group_id and groupInfo.status = 1
        where groupMember.uid = #{uid}
 
    </select>
    <select id="listGroupDOByUids" resultMap="GroupInfoDO">
        select
        groupInfo.id,
        groupInfo.name,
        groupInfo.group_strategy_id,
        groupInfo.status,
        groupInfo.dep_id
        from schedule_group_member as groupMember
        inner join schedule_group as groupInfo on groupInfo.id = groupMember.group_id and groupInfo.status = 1
        where groupMember.uid in
        <foreach collection="list" item="item" open="(" close=")" separator=",">
            #{item}
        </foreach>
 
 
    </select>
</mapper>