|
|
@ -60,6 +60,7 @@ |
|
|
|
<!-- 里边的sql,尽管有去重,一个人有多个角色时,在里边sql查询出来的是一个人两条数据,is_first一个是0一个是1,所以外层需要在按人分组 --> |
|
|
|
SELECT DISTINCT<!-- 没有这个去重会改变最终的结果顺序,至于为什么还不清楚 --> |
|
|
|
sr.staff_id, |
|
|
|
cs.created_time, |
|
|
|
case when gsr.role_key = |
|
|
|
<choose> |
|
|
|
<when test="orgType != null and orgType == 'agency' "> |
|
|
@ -74,6 +75,7 @@ |
|
|
|
</choose> |
|
|
|
then 1 else 0 end is_first<!-- 有单位领导角色的人赋值为1,没有的赋值为0 --> |
|
|
|
FROM staff_role sr |
|
|
|
INNER JOIN customer_staff cs ON sr.staff_id = cs.user_id |
|
|
|
INNER JOIN gov_staff_role gsr ON sr.role_id = gsr.id AND gsr.customer_id = #{customerId} |
|
|
|
WHERE |
|
|
|
sr.del_flag = '0' |
|
|
@ -96,10 +98,9 @@ |
|
|
|
'grid_manager' |
|
|
|
</otherwise> |
|
|
|
</choose> |
|
|
|
, sr.created_time DESC |
|
|
|
) t |
|
|
|
GROUP BY t.staff_id |
|
|
|
ORDER BY t.is_first <![CDATA[<>]]> 1, t.staff_id desc<!-- 标注有单位领导角色的人不参与排序也就是默认拍在前边 --> |
|
|
|
ORDER BY t.is_first <![CDATA[<>]]> 1, t.created_time desc<!-- 标注有单位领导角色的人不参与排序也就是默认拍在前边,再按创建时间降序 --> |
|
|
|
LIMIT #{pageNo}, #{pageSize} |
|
|
|
</select> |
|
|
|
|
|
|
|