SELECT IF(aua.id IS NULL,CONCAT('u-',au.id),CONCAT('f-',aua.id)) AS 'key',au.id,au.avatar,au.login_name,au.`name` AS 'userName',fun_getUserCompanys(au.company_id) AS 'companyName',au.`name`,au.email,au.sales_user_name,IF(au.is_primary,fun_getPrimaryUserArea(au.company_id),aa.`name`) AS 'areaName',au.state AS 'userState',au.expire_time,IF(aua.id IS NOT NULL,0,IF(CONVERT_TZ(NOW(), @@session.time_zone, '+00:00') < au.expire_time,1,2)) AS 'state',au.create_by,au.create_time,au.update_by,au.update_time,au.last_login_time,au.is_primary,au.company_id,au.phone,au.area_id,au.language_code,p.position_name AS 'title',au.title_id
FROM app_user au
LEFT JOIN app_area aa ON au.area_id=aa.id
LEFT JOIN app_user_applyfor aua ON aua.user_id=au.id AND aua.state=0
LEFT JOIN t_base_position p ON au.title_id=p.id
<where>
<iftest="loginName!=null and loginName!=''">
AND au.login_name LIKE concat('%', #{loginName}, '%')
</if>
<iftest="name!=null and name!=''">
AND au.`name` LIKE concat('%', #{name}, '%')
</if>
<iftest="companyName!=null and companyName!=''">
AND fun_getUserCompanys(au.company_id) LIKE concat('%', #{companyName}, '%')
</if>
<iftest="userState!=null">
AND au.state=#{userState}
</if>
<iftest="state==0">
AND aua.id IS NOT NULL
</if>
<iftest="state==1">
AND aua.id IS NULL AND CONVERT_TZ(NOW(), @@session.time_zone, '+00:00') < au.expire_time
</if>
<iftest="state==2">
AND aua.id IS NULL AND CONVERT_TZ(NOW(), @@session.time_zone, '+00:00') >= au.expire_time
</if>
</where>
UNION
SELECT CONCAT('f-',aua.id) AS 'key',aua.id,aua.user_avatar AS 'avatar',aua.user_email AS 'loginName',aua.`user_name` AS 'userName',fun_getUserCompanys(aua.company_id) AS 'companyName',aua.user_name AS 'name',aua.user_email AS 'email',aua.sales_user_name,IF(aua.is_primary,fun_getPrimaryUserArea(aua.company_id),aa.`name`) AS 'areaName',0 AS 'userState',null AS 'expireTime',0 AS 'state',aua.create_by,aua.create_time,null AS 'updateBy',null AS 'updateTime',null AS 'lastLoginTime',aua.is_primary,aua.company_id,aua.user_phone AS 'phone',aua.area_id,aua.language_code,p.position_name AS 'title',aua.title_id
FROM app_user_applyfor aua
LEFT JOIN app_area aa ON aua.area_id=aa.id
LEFT JOIN t_base_position p ON aua.title_id=p.id
WHERE aua.type=0 AND aua.state=0
<iftest="loginName!=null and loginName!=''">
AND aua.user_email LIKE concat('%', #{loginName}, '%')
</if>
<iftest="name!=null and name!=''">
AND aua.user_name LIKE concat('%', #{name}, '%')
</if>
<iftest="companyName!=null and companyName!=''">
AND fun_getUserCompanys(aua.company_id) LIKE concat('%', #{companyName}, '%')