fix(移动端): 没有角色的用户无法查看分享仪表板

This commit is contained in:
fit2cloud-chenyw 2022-11-02 16:29:02 +08:00
parent 4a165ae0d4
commit fce9905c23
2 changed files with 34 additions and 24 deletions

View File

@ -3,15 +3,15 @@
<mapper namespace="io.dataease.ext.HomeMapper">
<select id="queryStore" resultType="io.dataease.mobile.dto.HomeItemDTO">
select
s.panel_group_id as id,
g.name as title,
s.create_time as `time`
select
s.panel_group_id as id,
g.name as title,
s.create_time as `time`
from( SELECT GET_V_AUTH_MODEL_ID_P_USE_MOBILE ( #{userId}, 'panel' ) cids ) t, panel_store s
inner join panel_group g
on s.panel_group_id = g.id
on s.panel_group_id = g.id
where s.user_id = #{userId}
and FIND_IN_SET( g.id, cids )
and FIND_IN_SET( g.id, cids )
<if test="lastTime != null">
and #{lastTime} > s.create_time
</if>
@ -20,25 +20,32 @@
<select id="queryShare" resultType="io.dataease.mobile.dto.HomeItemShareDTO">
select
distinct(s.panel_group_id) as id,
g.name as title,
s.create_time as `time`,
u.nick_name,
u.user_id
distinct(s.panel_group_id) as id,
g.name as title,
s.create_time as `time`,
u.nick_name,
u.user_id
from panel_share s
inner join panel_group g
on s.panel_group_id = g.id
on s.panel_group_id = g.id
left join sys_user u on u.username = IFNULL(s.granter,g.create_by)
where
g.mobile_layout = 1 and (
( s.target_id = #{userId} and s.type = 0 ) or
( s.target_id = #{deptId} and s.type = 2 ) or
( s.target_id in
<foreach collection="roleIds" item="roleId" open='(' separator=',' close=')'>
#{roleId}
</foreach>
and s.type = 1 )
)
g.mobile_layout = 1 and (
( s.target_id = #{userId} and s.type = 0 )
<if test="deptId != null">
or ( s.target_id = #{deptId} and s.type = 2 )
</if>
<if test="roleIds != null">
or
( s.target_id in
<foreach collection="roleIds" item="roleId" open='(' separator=',' close=')'>
#{roleId}
</foreach>
and s.type = 1 )
</if>
)
<if test="lastTime != null">
and #{lastTime} > s.create_time
</if>
@ -46,6 +53,4 @@
</select>
</mapper>

View File

@ -11,7 +11,9 @@ import io.dataease.mobile.dto.HomeItemDTO;
import io.dataease.mobile.dto.HomeItemShareDTO;
import io.dataease.ext.HomeMapper;
import io.dataease.mobile.dto.HomeRequest;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
@ -47,7 +49,10 @@ public class HomeService {
List<Long> roleIds = user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList());
param.put("deptId", deptId);
param.put("roleIds", roleIds);
if (CollectionUtils.isNotEmpty(roleIds)) {
param.put("roleIds", roleIds);
}
if (null != request.getLastTime()) {
param.put("lastTime", request.getLastTime());
}