SysUserInfoMapper.xml 8.38 KB
Newer Older
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
<?xml version="1.0" encoding="UTF-8"?>

<!--
  ~
  ~      Copyright (c) 2018-2025, lengleng All rights reserved.
  ~
  ~  Redistribution and use in source and binary forms, with or without
  ~  modification, are permitted provided that the following conditions are met:
  ~
  ~ Redistributions of source code must retain the above copyright notice,
  ~  this list of conditions and the following disclaimer.
  ~  Redistributions in binary form must reproduce the above copyright
  ~  notice, this list of conditions and the following disclaimer in the
  ~  documentation and/or other materials provided with the distribution.
  ~  Neither the name of the yifu4cloud.com developer nor the names of its
  ~  contributors may be used to endorse or promote products derived from
  ~  this software without specific prior written permission.
  ~  Author: lengleng (wangiegie@gmail.com)
  ~
  -->

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.yifu.cloud.plus.v1.permission.mapper.SysUserInfoMapper">

  <resultMap id="sysUserInfoMap" type="com.yifu.cloud.plus.v1.yifu.permission.entity.SysUserInfo">
    <id property="fdId" column="fd_id"/>
    <result property="fdName" column="fd_name"/>
    <result property="fdLoginName" column="fd_login_name"/>
    <result property="fdLdapDn" column="fd_ldap_dn"/>
    <result property="fdDeptName" column="fd_dept_name"/>
    <result property="fdMobileNo" column="fd_mobile_no"/>
    <result property="fdEmail" column="fd_email"/>
    <result property="status" column="status"/>
    <result property="roleNames" column="role_names"/>
    <result property="createBy" column="CREATE_BY"/>
    <result property="createName" column="CREATE_NAME"/>
    <result property="createTime" column="CREATE_TIME"/>
    <result property="updateBy" column="UPDATE_BY"/>
    <result property="updateTime" column="UPDATE_TIME"/>
  </resultMap>
    <sql id="Base_Column_List">
                a.fd_id,
                a.fd_name,
                a.fd_login_name,
                a.fd_ldap_dn,
                a.fd_dept_name,
                a.fd_mobile_no,
                a.fd_email,
                a.status,
51
                GROUP_CONCAT(r.role_name ORDER BY r.create_time asc) as role_names,
52 53 54 55 56 57 58 59 60 61 62 63
                a.CREATE_BY,
                a.CREATE_NAME,
                a.CREATE_TIME,
                a.UPDATE_BY,
                a.UPDATE_TIME
    </sql>
    <sql id="sysUserInfo_where">
        <if test="sysUserInfo != null">
                    <if test="sysUserInfo.fdId != null and sysUserInfo.fdId.trim() != ''">
                        AND a.fd_id = #{sysUserInfo.fdId}
                    </if>
                    <if test="sysUserInfo.fdName != null and sysUserInfo.fdName.trim() != ''">
64
                        AND a.fd_name like concat('%',#{sysUserInfo.fdName},'%')
65 66 67 68 69 70 71 72
                    </if>
                    <if test="sysUserInfo.fdLoginName != null and sysUserInfo.fdLoginName.trim() != ''">
                        AND a.fd_login_name = #{sysUserInfo.fdLoginName}
                    </if>
                    <if test="sysUserInfo.fdLdapDn != null and sysUserInfo.fdLdapDn.trim() != ''">
                        AND a.fd_ldap_dn = #{sysUserInfo.fdLdapDn}
                    </if>
                    <if test="sysUserInfo.fdDeptName != null and sysUserInfo.fdDeptName.trim() != ''">
73
                        AND a.fd_dept_name like concat('%',#{sysUserInfo.fdDeptName},'%')
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
                    </if>
                    <if test="sysUserInfo.fdMobileNo != null and sysUserInfo.fdMobileNo.trim() != ''">
                        AND a.fd_mobile_no = #{sysUserInfo.fdMobileNo}
                    </if>
                    <if test="sysUserInfo.fdEmail != null and sysUserInfo.fdEmail.trim() != ''">
                        AND a.fd_email = #{sysUserInfo.fdEmail}
                    </if>
                    <if test="sysUserInfo.status != null">
                        AND a.status = #{sysUserInfo.status}
                    </if>
                    <if test="sysUserInfo.createBy != null and sysUserInfo.createBy.trim() != ''">
                        AND a.CREATE_BY = #{sysUserInfo.createBy}
                    </if>
                    <if test="sysUserInfo.createName != null and sysUserInfo.createName.trim() != ''">
                        AND a.CREATE_NAME = #{sysUserInfo.createName}
                    </if>
                    <if test="sysUserInfo.createTime != null">
                        AND a.CREATE_TIME = #{sysUserInfo.createTime}
                    </if>
                    <if test="sysUserInfo.updateBy != null and sysUserInfo.updateBy.trim() != ''">
                        AND a.UPDATE_BY = #{sysUserInfo.updateBy}
                    </if>
                    <if test="sysUserInfo.updateTime != null">
                        AND a.UPDATE_TIME = #{sysUserInfo.updateTime}
                    </if>
        </if>
    </sql>
    <!--sysUserInfo简单分页查询-->
    <select id="getSysUserInfoPage" resultMap="sysUserInfoMap">
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
		SELECT
			a.fd_id,
			a.fd_name,
			a.fd_login_name,
			a.fd_ldap_dn,
			a.fd_dept_name,
			a.fd_mobile_no,
			a.fd_email,
			a.status,
			a.role_names,
			a.CREATE_BY,
			a.CREATE_NAME,
			a.CREATE_TIME,
			a.UPDATE_BY,
			a.UPDATE_TIME
		from (
			SELECT
			<include refid="Base_Column_List"/>
			FROM sys_user_info a
huyuchen's avatar
huyuchen committed
122
			LEFT JOIN sys_user_role_res res on a.fd_login_name=res.login_name
123 124 125 126 127 128 129 130 131
			LEFT JOIN sys_role_info r on res.role_id=r.fd_id and r.delete_flag = 0 and r.status = 0
			<where>
				1=1
				<include refid="sysUserInfo_where"/>
			</where>
			GROUP BY a.fd_id
		) a
		<if test="sysUserInfo != null">
			<if test="sysUserInfo.roleNames != null and sysUserInfo.roleNames.trim() != ''">
132
				where a.role_names like concat('%',#{sysUserInfo.roleNames},'%')
133 134
			</if>
		</if>
135
		order by a.CREATE_TIME desc
136
    </select>
137 138 139 140 141 142 143

	<!--list-->
    <select id="getEkpUser" resultMap="sysUserInfoMap">
		select e.fd_id,e.fd_name,p.fd_login_name,e.fd_ldap_dn
			 ,SUBSTRING_INDEX(SUBSTRING_INDEX(e.fd_ldap_dn,',ou', 2),',ou=', -1) AS fd_dept_name
			 ,p.fd_mobile_no,p.fd_email
		from sys_org_element e JOIN sys_org_person p on e.fd_id=p.fd_id
144
		where e.fd_is_available = '1'
145 146
    </select>

147 148 149 150 151 152 153 154 155
	<!--list-->
	<select id="getResAndRoleNameUserId" resultType="com.yifu.cloud.plus.v1.yifu.permission.entity.SysUserRoleRes">
		SELECT
			a.fd_id as fdId
			,a.user_id as userId
			,a.role_id as roleId
			,r.role_name as roleName
		FROM sys_user_role_res a
		LEFT JOIN sys_role_info r on a.role_id=r.fd_id and r.delete_flag = 0 and r.status = 0
huyuchen's avatar
huyuchen committed
156
		where a.login_name=#{loginName}
157 158
	</select>

159 160
	<!--给EKP用的,获取列表是否全量的权限-->
	<!--#全量0;部分全量1;数据权限2;客户a;商机b;报价单c;合同d;项目e;BUf;条线g;收入归属h;)-->
161
	<select id="getAuthByUserIdAndModelId" resultType="java.lang.Integer">
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
		select
			case
				when a.data_auth is null then 0
				when a.data_auth like "%0%" then 1
				when a.data_auth like "%a%" and a.CUSTOMER_ID is not null then 1
				when a.data_auth like "%b%" and a.BUSSINESS_ID is not null then 1
				when a.data_auth like "%c%" and a.QUOTATION_ID is not null then 1
				when a.data_auth like "%d%" and a.CONTRACT_ID is not null then 1
				when a.data_auth like "%e%" and a.DOMAIN_ID is not null then 1
				when a.data_auth like "%f%" and a.BU_ID is not null then 1
				when a.data_auth like "%g%" and a.LINE_ID is not null then 1
				when a.data_auth like "%h%" and a.INCOME_ID is not null then 1
				else 2 end
		from (
				 SELECT
					 GROUP_CONCAT(DISTINCT a.data_auth) as data_auth
					  ,b.INCOME_ID
					  ,b.CUSTOMER_ID
					  ,b.CONTRACT_ID
					  ,b.BUSSINESS_ID
					  ,b.QUOTATION_ID
					  ,b.DOMAIN_ID
					  ,b.BU_ID
					  ,b.LINE_ID
				 FROM
					 sys_menu b
						 join sys_role_menu_res m on b.id=m.menu_id
						 join sys_role_info a on m.role_id = a.fd_id
						 join sys_user_role_res r on r.role_id = a.fd_id
				 where a.delete_flag = 0 and a.status = 0 and b.DELETE_STATUS='1' and b.PERMISSION_STATUS='0'
192
				   and r.user_id = #{userId} and b.MODEL_ID=#{modelId}
193
			 ) a
194 195
	</select>

huyuchen's avatar
huyuchen committed
196 197 198 199 200 201
	<select id="getUserByCodeOrLoginName" resultMap="sysUserInfoMap">
		SELECT
		a.fd_id,
		a.fd_name,
		a.fd_login_name,
		a.fd_dept_name
huyuchen's avatar
huyuchen committed
202
		FROM sys_user_info a
huyuchen's avatar
huyuchen committed
203
		<where>
huyuchen's avatar
huyuchen committed
204
			1=1 and a.status = 0
huyuchen's avatar
huyuchen committed
205 206 207 208 209 210
			<if test="code != null and code != ''">
				AND (a.fd_login_name like concat('%',#{code},'%') or a.fd_name like concat('%',#{code},'%'))
			</if>
		</where>
		order by a.CREATE_TIME desc
	</select>
211
</mapper>