<?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.model2d3d.viewer.back.dao.ex.BasicUserMapperExt" >
<select id= "checkExist" resultType= "java.lang.Long" >
SELECT
COUNT(1)
FROM
basic_user buser
WHERE
buser.flag != 1 AND (buser.login_name = #{email} OR buser.email = #{loginName} OR buser.email = #{email})
<if test= "userId != null" >
AND buser.id != #{userId}
</if>
</select>
<select id= "getListPage" resultType= "com.model2d3d.viewer.back.vo.user.UserPageDTO" >
SELECT
bcom.id companyId,
bcom.company_name companyName,
buser.id userId,
buser.username username,
buser.login_name loginName,
buser.email,
buser.mobile_number mobileNumber,
buser.create_time createTime,
any_value(brole.id) roleId,
any_value(brole.role_name) roleName
FROM
basic_user buser
INNER JOIN basic_company bcom ON buser.company_id = bcom.id
INNER JOIN basic_role_user_relation brur ON brur.user_id = buser.id
INNER JOIN basic_role brole ON brur.role_id = brole.id
WHERE
buser.flag != 1 AND brole.flag != 1 AND buser.company_id IN <foreach collection= "params.companyIdList" item= "item" open= "(" separator= "," close= ")" > #{item}</foreach>
<if test= "params.userId != null" >
AND buser.id != #{params.userId}
</if>
<if test= "params.keyword != null and params.keyword !=''" >
AND (
buser.username LIKE CONCAT('%',#{params.keyword},'%')
OR
buser.email LIKE CONCAT('%',#{params.keyword},'%')
)
</if>
ORDER BY buser.create_time DESC, buser.id DESC
</select>
<select id= "getMenuIdsByUserId" resultType= "java.lang.String" >
SELECT
GROUP_CONCAT(bmenu.id)
FROM
<choose >
<when test= "userId != null and userId == 1" >
basic_menu bmenu WHERE bmenu.flag != 1
</when>
<otherwise >
basic_role_user_relation brur
INNER JOIN basic_role brole ON brole.id = brur.role_id
INNER JOIN basic_role_menu_relation brmr ON brur.role_id = brmr.role_id
INNER JOIN basic_menu bmenu ON bmenu.id = brmr.menu_id
WHERE
brole.flag != 1 AND bmenu.flag != 1 AND brur.user_id = #{userId}
</otherwise>
</choose>
</select>
<select id= "getAccountInfo" resultType= "com.model2d3d.viewer.back.vo.user.UserInfoVO" >
SELECT
buser.id,
buser.company_id,
buser.username,
buser.login_name,
buser.`password`,
buser.salt,
buser.email,
buser.mobile_number,
buser.last_login_time,
buser.flag,
buser.expire_time,
buser.create_time,
buser.creator_id,
buser.modify_time,
buser.modifier_id,
bcom.parent_id parentCompanyId
FROM
basic_user buser
inner join basic_company bcom on bcom.id = buser.company_id
WHERE buser.flag != 1 and bcom.flag != 1 and (buser.login_name = #{loginname} OR buser.email = #{loginname})
</select>
</mapper>