SELECT s.*, c.name AS companyName, d.simplename AS deptName,
(SELECT GROUP_CONCAT(r.name) FROM sys_role r WHERE FIND_IN_SET(r.id, s.roleid)) AS roleName
FROM sys_user_company_scope s
LEFT JOIN t_company c ON c.id = s.companyId
LEFT JOIN sys_dept d ON d.id = s.deptid
WHERE s.userId = #{userId}
AND s.status = 1
ORDER BY s.isDefault ASC, s.id ASC
SELECT *
FROM sys_user_company_scope
WHERE userId = #{userId}
AND status = 1
AND roleid IS NOT NULL
AND TRIM(roleid) != ''
AND companyId = #{companyId}
ORDER BY isDefault ASC, id ASC
LIMIT 1
SELECT COUNT(1)
FROM sys_user_company_scope
WHERE userId = #{userId}
AND status = 1
UPDATE sys_user_company_scope
SET isDefault = 2, updateTime = NOW()
WHERE userId = #{userId}
AND status = 1
DELETE FROM sys_user_company_scope WHERE userId = #{userId}