“djh”
5 天以前 99132a43bf344f2aafdd9894b0762d2eedd9767b
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
146
147
148
149
150
151
152
153
154
155
156
157
<?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.exam.system.mapper.SysUserMapper">
 
    <resultMap type="com.gkhy.exam.common.domain.entity.SysUser" id="SysUserResult">
        <id     property="id"        column="id"         />
        <result property="username"     column="username"      />
        <result property="name"      column="name"       />
        <result property="userType"      column="user_type"       />
        <result property="phone"   column="phone"     />
        <result property="sex"           column="sex"             />
        <result property="companyId"      column="company_id"        />
        <result property="parentId"      column="parent_id"        />
        <result property="password"      column="password"        />
        <result property="status"        column="status"          />
        <result property="delFlag"       column="del_flag"        />
        <result property="loginIp"       column="login_ip"        />
        <result property="loginDate"     column="login_date"      />
        <result property="pwdUpdateDate" column="pwd_update_date" />
        <result property="createBy"      column="create_by"       />
        <result property="createTime"    column="create_time"     />
        <result property="updateBy"      column="update_by"       />
        <result property="updateTime"    column="update_time"     />
        <result property="remark"        column="remark"          />
        <result property="version"        column="version"          />
        <result property="companyName"        column="company_name"          />
        <result property="remainPeriod"        column="remain_period"          />
        <result property="parentName"        column="parent_name"          />
        <result property="idCard"        column="id_card"          />
        <result property="duty"        column="duty"          />
        <result property="post"        column="post"          />
        <result property="deptId"        column="dept_id"          />
        <result property="deptName"        column="dept_name"          />
        <result  property="entryTime"        column="entry_time"          />
    </resultMap>
 
 
 
    <delete id="deleteUserById" parameterType="java.lang.Long">
        update sys_user set del_flag=1 where id=#{userId}
    </delete>
 
 
    <select id="getUserByUsername" resultMap="SysUserResult">
        select id,username,name,password,user_type,company_id,status,del_flag,parent_id from sys_user
        where username=#{username} and del_flag=0 limit 1
    </select>
 
    <select id="userList"  resultMap="SysUserResult">
        select u.id,u.username,u.name,u.user_type,u.phone,u.parent_id,u.company_id,u.sex,u.status,u.del_flag,u.version,
               u.login_ip,u.login_date,u.create_by,u.create_time,u.remark,c.name as company_name,su.name as parent_name,
                u.dept_id,d.dept_name,u.duty,u.post,u.id_card,u.entry_time
        from sys_user u
        left join sys_company c on c.id=u.company_id
        left join sys_user su on su.id=u.parent_id and u.parent_id!=0
        left join sys_dept  d on d.dept_id=u.dept_id
        <where>
            and u.del_flag = 0
            <if test="username != null and username != ''">
                AND u.username like concat('%', #{username}, '%')
            </if>
            <if test="name != null and name != ''">
                AND u.name like concat('%', #{name}, '%')
            </if>
            <if test="status != null and status != ''">
                AND u.status = #{status}
            </if>
            <if test="userType != null">
                AND u.user_type = #{userType}
            </if>
            <if test="companyId != null ">
                AND u.company_id = #{companyId}
            </if>
            <if test="phone != null and phone != ''">
                AND u.phone like concat('%', #{phone}, '%')
            </if>
            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
            </if>
            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
                AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
            </if>
            <if test="params.userType != null and (params.userType==4 or params.userType==1)">
                AND u.user_type in (2,3)
            </if>
            <if test="params.userType != null and params.userType==2">
                AND u.user_type in (3)
            </if>
            <if test="params.userType != null and params.userType==0">
                AND u.user_type in (1,2,3,4)
            </if>
        </where>
        order by u.id desc
    </select>
 
 
 
    <select id="getUserByPhone" resultMap="SysUserResult">
        select id,username,name,password,parent_id,company_id,phone,status,del_flag from sys_user
        where phone=#{phone} and del_flag=0
    </select>
 
    <select id="getUserById" resultMap="SysUserResult">
        select u.id,u.username,u.user_type,u.name,u.phone,u.parent_id,u.company_id,u.status,u.sex,u.del_flag,u.version,c.name as company_name,
               c.remain_period,su.name as parent_name,u.dept_id,d.dept_name,u.duty,u.post,u.id_card,u.entry_time
        from sys_user u
       left join sys_company c on c.id=u.company_id
       left join sys_user su on su.id=u.parent_id and u.parent_id!=0
        left join sys_dept  d on d.dept_id=u.dept_id
        where u.id=#{userId}
    </select>
 
    <select id="checkLoginNameUnique" resultMap="SysUserResult">
        select id,username from sys_user where username=#{username} and del_flag=0 limit 1
    </select>
 
    <select id="checkPhoneUnique" resultMap="SysUserResult">
        select id,phone from sys_user where phone=#{phone} and del_flag=0 limit 1
    </select>
 
    <select id="selectWorkshopUserIds" resultType="java.lang.Long" parameterType="java.lang.Long">
        select id from sys_user where parent_id=#{departUserId} and del_flag=0 and user_type=3
    </select>
 
 
    <select id="selectAllocatedList" parameterType="com.gkhy.exam.common.domain.entity.SysUser" resultMap="SysUserResult">
        select distinct u.id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
        from sys_user u
        left join sys_dept d on u.dept_id = d.dept_id
        left join sys_user_role ur on u.id = ur.user_id
        left join sys_role r on r.role_id = ur.role_id
        where u.del_flag = '0' and r.role_id = #{roleId}
        <if test="userName != null and userName != ''">
            AND u.user_name like concat('%', #{userName}, '%')
        </if>
        <if test="phonenumber != null and phonenumber != ''">
            AND u.phonenumber like concat('%', #{phonenumber}, '%')
        </if>
    </select>
 
    <select id="selectUnallocatedList" parameterType="com.gkhy.exam.common.domain.entity.SysUser" resultMap="SysUserResult">
        select distinct u.id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
        from sys_user u
        left join sys_dept d on u.dept_id = d.dept_id
        left join sys_user_role ur on u.id = ur.user_id
        left join sys_role r on r.role_id = ur.role_id
        where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL)
        and u.id not in (select u.id from sys_user u inner join sys_user_role ur on u.id = ur.user_id and ur.role_id = #{roleId})
        <if test="userName != null and userName != ''">
            AND u.user_name like concat('%', #{userName}, '%')
        </if>
        <if test="phonenumber != null and phonenumber != ''">
            AND u.phonenumber like concat('%', #{phonenumber}, '%')
        </if>
    </select>
 
</mapper>