Showing
8 changed files
with
59 additions
and
53 deletions
@@ -92,6 +92,7 @@ public class YtUserController extends BaseController { | @@ -92,6 +92,7 @@ public class YtUserController extends BaseController { | ||
92 | @RequestParam(value = "realName", required = false) String realName, | 92 | @RequestParam(value = "realName", required = false) String realName, |
93 | @RequestParam(value = "username", required = false) String username, | 93 | @RequestParam(value = "username", required = false) String username, |
94 | @RequestParam(value = "tenantId", required = false) String tenantId, | 94 | @RequestParam(value = "tenantId", required = false) String tenantId, |
95 | + @RequestParam(value = "organizationId", required = false) String organizationId, | ||
95 | @RequestParam(value = "roleType", required = false) RoleEnum roleType, | 96 | @RequestParam(value = "roleType", required = false) RoleEnum roleType, |
96 | @RequestParam(value = ORDER_FILED, required = false) String orderBy, | 97 | @RequestParam(value = ORDER_FILED, required = false) String orderBy, |
97 | @RequestParam(value = ORDER_TYPE, required = false) OrderTypeEnum orderType) | 98 | @RequestParam(value = ORDER_TYPE, required = false) OrderTypeEnum orderType) |
@@ -107,16 +108,18 @@ public class YtUserController extends BaseController { | @@ -107,16 +108,18 @@ public class YtUserController extends BaseController { | ||
107 | } else { | 108 | } else { |
108 | tenantId = getCurrentUser().getCurrentTenantId(); | 109 | tenantId = getCurrentUser().getCurrentTenantId(); |
109 | } | 110 | } |
111 | + if(organizationId != null){ | ||
112 | + queryMap.put("organizationId",organizationId); | ||
113 | + } | ||
110 | if (orderType != null) { | 114 | if (orderType != null) { |
111 | queryMap.put(ORDER_TYPE, orderType.name()); | 115 | queryMap.put(ORDER_TYPE, orderType.name()); |
112 | } | 116 | } |
117 | + queryMap.put("currentUserId", getCurrentUser().getCurrentUserId()); | ||
113 | queryMap.put("tenantId", tenantId); | 118 | queryMap.put("tenantId", tenantId); |
114 | return userService.page( | 119 | return userService.page( |
115 | queryMap, | 120 | queryMap, |
116 | getCurrentUser().isPtSysadmin(), | 121 | getCurrentUser().isPtSysadmin(), |
117 | - getCurrentUser().isPtAdmin(), | ||
118 | - getCurrentUser().isPtTenantAdmin(), | ||
119 | - tenantId); | 122 | + getCurrentUser().isTenantAdmin()); |
120 | } | 123 | } |
121 | 124 | ||
122 | @PutMapping | 125 | @PutMapping |
@@ -5,11 +5,15 @@ import java.util.regex.Pattern; | @@ -5,11 +5,15 @@ import java.util.regex.Pattern; | ||
5 | public interface FastIotConstants { | 5 | public interface FastIotConstants { |
6 | 6 | ||
7 | /** 默认密码 */ | 7 | /** 默认密码 */ |
8 | - public static final String DEFAULT_PWD = "123456"; | 8 | + String DEFAULT_PWD = "123456"; |
9 | 9 | ||
10 | class DefaultOrder { | 10 | class DefaultOrder { |
11 | public static final String CREATE_TIME="create_time"; | 11 | public static final String CREATE_TIME="create_time"; |
12 | } | 12 | } |
13 | + class MagicNumber{ | ||
14 | + public static final int ZERO = 0; | ||
15 | + public static final int ONE = 1; | ||
16 | + } | ||
13 | 17 | ||
14 | String MOBILE = | 18 | String MOBILE = |
15 | "^[1](([3][0-9])|([4][0,1,4-9])|([5][0-3,5-9])|([6][2,5,6,7])|([7][0-8])|([8][0-9])|([9][0-3,5-9]))[0-9]{8}$"; | 19 | "^[1](([3][0-9])|([4][0,1,4-9])|([5][0-3,5-9])|([6][2,5,6,7])|([7][0-8])|([8][0-9])|([9][0-3,5-9]))[0-9]{8}$"; |
@@ -252,28 +252,33 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> | @@ -252,28 +252,33 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> | ||
252 | public YtPageData<UserDTO> page( | 252 | public YtPageData<UserDTO> page( |
253 | Map<String, Object> queryMap, | 253 | Map<String, Object> queryMap, |
254 | boolean isPtSysadmin, | 254 | boolean isPtSysadmin, |
255 | - boolean isPlatformAdmin, | ||
256 | - boolean isTenantAdmin, | ||
257 | - String tenantId) { | ||
258 | - IPage<UserDTO> userPage = new Page<>(); | 255 | + boolean isTenantAdmin) { |
256 | + String tenantId = (String) queryMap.get("tenantId"); | ||
257 | + IPage<UserDTO> userPage = null; | ||
259 | IPage<User> userIPage = getPage(queryMap, "create_time", true); | 258 | IPage<User> userIPage = getPage(queryMap, "create_time", true); |
259 | + String organizationId = queryMap.get("organizationId") != null ? (String) queryMap.get("organizationId") : null; | ||
260 | + List<String> userIds = null; | ||
261 | + if(null != organizationId){ | ||
262 | + userIds = userOrganizationMappingService.getUserIdByOrganizationIds(tenantId,organizationId); | ||
263 | + queryMap.put("userIds",userIds); | ||
264 | + } | ||
260 | if (isPtSysadmin) { | 265 | if (isPtSysadmin) { |
261 | String roleType = (String) queryMap.get("roleType"); | 266 | String roleType = (String) queryMap.get("roleType"); |
262 | - if (StringUtils.isEmpty(roleType)) { | ||
263 | - roleType = RoleEnum.PLATFORM_ADMIN.name(); | ||
264 | - userPage = baseMapper.getAdminUserPage(userIPage, tenantId, roleType); | ||
265 | - } else { | 267 | + if (!StringUtils.isEmpty(roleType)) { |
266 | userPage = baseMapper.getTenantAdminPage(userIPage, tenantId); | 268 | userPage = baseMapper.getTenantAdminPage(userIPage, tenantId); |
269 | + } else { | ||
270 | + if(null != organizationId && (userIds.size()==FastIotConstants.MagicNumber.ZERO)){ | ||
271 | + userPage = new Page<>(); | ||
272 | + }else{ | ||
273 | + userPage = baseMapper.getUserPage(userIPage, queryMap); | ||
274 | + } | ||
267 | } | 275 | } |
268 | - } else if (isPlatformAdmin) { | ||
269 | - // 平台管理员只能管理租户 | ||
270 | - userPage = baseMapper.selectAllTenantUser(userIPage); | ||
271 | } else if (isTenantAdmin) { | 276 | } else if (isTenantAdmin) { |
272 | - Map<String, Object> map = new HashMap<>(); | ||
273 | - map.put("realName", queryMap.get("realName")); | ||
274 | - map.put("username", queryMap.get("username")); | ||
275 | - map.put("tenantId", tenantId); | ||
276 | - userPage = baseMapper.getUserPage(userIPage, map); | 277 | + if(null != organizationId && (userIds.size()==FastIotConstants.MagicNumber.ZERO)){ |
278 | + userPage = new Page<>(); | ||
279 | + }else{ | ||
280 | + userPage = baseMapper.getUserPage(userIPage, queryMap); | ||
281 | + } | ||
277 | } | 282 | } |
278 | if (null != userPage) { | 283 | if (null != userPage) { |
279 | userPage | 284 | userPage |
@@ -8,6 +8,7 @@ import org.thingsboard.server.common.data.Device; | @@ -8,6 +8,7 @@ import org.thingsboard.server.common.data.Device; | ||
8 | import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; | 8 | import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; |
9 | import org.thingsboard.server.dao.yunteng.entities.YtDevice; | 9 | import org.thingsboard.server.dao.yunteng.entities.YtDevice; |
10 | 10 | ||
11 | +import java.util.List; | ||
11 | import java.util.Map; | 12 | import java.util.Map; |
12 | 13 | ||
13 | @Mapper | 14 | @Mapper |
@@ -17,4 +18,11 @@ public interface DeviceMapper extends BaseMapper<YtDevice> { | @@ -17,4 +18,11 @@ public interface DeviceMapper extends BaseMapper<YtDevice> { | ||
17 | IPage<?> page, @Param("queryMap") Map<String, Object> queryMap); | 18 | IPage<?> page, @Param("queryMap") Map<String, Object> queryMap); |
18 | 19 | ||
19 | DeviceDTO selectDetail(@Param("tenantId") String tenantId,@Param("id") String id); | 20 | DeviceDTO selectDetail(@Param("tenantId") String tenantId,@Param("id") String id); |
21 | + | ||
22 | + /** | ||
23 | + * 通过客户的ID,查询改客户能查看的所有设备 | ||
24 | + * @param userId 客户ID | ||
25 | + * @return 能查看的设备 | ||
26 | + */ | ||
27 | + List<DeviceDTO> getDeviceByCustomerUserId(@Param("userId") String userId); | ||
20 | } | 28 | } |
@@ -22,13 +22,8 @@ public interface UserMapper extends BaseMapper<User> { | @@ -22,13 +22,8 @@ public interface UserMapper extends BaseMapper<User> { | ||
22 | 22 | ||
23 | IPage<UserDTO> getUserPage(IPage<?> page, @Param("queryMap") Map<String, Object> queryMap); | 23 | IPage<UserDTO> getUserPage(IPage<?> page, @Param("queryMap") Map<String, Object> queryMap); |
24 | 24 | ||
25 | - IPage<UserDTO> getAdminUserPage( | ||
26 | - IPage<?> page, @Param("tenantId") String tenantId, @Param("roleType") String roleType); | ||
27 | - | ||
28 | IPage<UserDTO> getTenantAdminPage(IPage<?> page, @Param("tenantId") String tenantId); | 25 | IPage<UserDTO> getTenantAdminPage(IPage<?> page, @Param("tenantId") String tenantId); |
29 | 26 | ||
30 | - IPage<UserDTO> selectAllTenantUser(IPage<?> page); | ||
31 | - | ||
32 | Set<String> getAllIdsByTenantId(@Param("tenantIds") Collection<String> tenantIds); | 27 | Set<String> getAllIdsByTenantId(@Param("tenantIds") Collection<String> tenantIds); |
33 | 28 | ||
34 | void setPassword2NullAndInsertActiveToken( | 29 | void setPassword2NullAndInsertActiveToken( |
@@ -29,9 +29,7 @@ public interface YtUserService { | @@ -29,9 +29,7 @@ public interface YtUserService { | ||
29 | YtPageData<UserDTO> page( | 29 | YtPageData<UserDTO> page( |
30 | Map<String, Object> queryMap, | 30 | Map<String, Object> queryMap, |
31 | boolean isPtSysadmin, | 31 | boolean isPtSysadmin, |
32 | - boolean isPlatformAdmin, | ||
33 | - boolean isTenantAdmin, | ||
34 | - String tenantId); | 32 | + boolean isTenantAdmin); |
35 | 33 | ||
36 | UserDTO updateUser(UserDTO userDTO, boolean isPtSysadmin, String tenantId); | 34 | UserDTO updateUser(UserDTO userDTO, boolean isPtSysadmin, String tenantId); |
37 | 35 |
@@ -31,10 +31,13 @@ | @@ -31,10 +31,13 @@ | ||
31 | <result property="name" column="organization_name"/> | 31 | <result property="name" column="organization_name"/> |
32 | </association> | 32 | </association> |
33 | </resultMap> | 33 | </resultMap> |
34 | - <sql id="columns"> | 34 | + <sql id="basicColumns"> |
35 | ifd.id,ifd.name,ifd.device_info,ifd.profile_id,ifd.active_time,ifd.device_token,ifd.tenant_id,ifd.description | 35 | ifd.id,ifd.name,ifd.device_info,ifd.profile_id,ifd.active_time,ifd.device_token,ifd.tenant_id,ifd.description |
36 | ,ifd.tb_device_id,ifd.label,ifd.last_connect_time,ifd.device_type,ifd.device_state,ifd.create_time,ifd.update_time,ifd.creator, | 36 | ,ifd.tb_device_id,ifd.label,ifd.last_connect_time,ifd.device_type,ifd.device_state,ifd.create_time,ifd.update_time,ifd.creator, |
37 | ifd.updater,ifd.organization_id,ifd,alarm_status | 37 | ifd.updater,ifd.organization_id,ifd,alarm_status |
38 | + </sql> | ||
39 | + <sql id="columns"> | ||
40 | + <include refid="basicColumns"/> | ||
38 | ,ifdp.name AS profile_name,ifdp.transport_type | 41 | ,ifdp.name AS profile_name,ifdp.transport_type |
39 | ,io.name AS organization_name | 42 | ,io.name AS organization_name |
40 | </sql> | 43 | </sql> |
@@ -89,4 +92,11 @@ | @@ -89,4 +92,11 @@ | ||
89 | 92 | ||
90 | </where> | 93 | </where> |
91 | </select> | 94 | </select> |
95 | + | ||
96 | + <select id="getDeviceByCustomerUserId" resultMap="deviceMap"> | ||
97 | + SELECT <include refid="basicColumns"/> FROM iotfs_device ifd | ||
98 | + WHERE ifd.organization_id IN | ||
99 | + ( SELECT iuom.organization_id FROM iotfs_user_organization_mapping iuom | ||
100 | + WHERE iuom.user_id = #{userId}); | ||
101 | + </select> | ||
92 | </mapper> | 102 | </mapper> |
@@ -85,6 +85,7 @@ | @@ -85,6 +85,7 @@ | ||
85 | FROM sys_user su | 85 | FROM sys_user su |
86 | LEFT JOIN sys_tenant st ON su.tenant_id = st.tenant_id | 86 | LEFT JOIN sys_tenant st ON su.tenant_id = st.tenant_id |
87 | <where> | 87 | <where> |
88 | + su.id != #{queryMap.currentUserId} | ||
88 | <if test="queryMap.realName!=null and queryMap.realName!=''"> | 89 | <if test="queryMap.realName!=null and queryMap.realName!=''"> |
89 | AND su.real_name LIKE CONCAT('%',#{queryMap.realName}::TEXT,'%') | 90 | AND su.real_name LIKE CONCAT('%',#{queryMap.realName}::TEXT,'%') |
90 | </if> | 91 | </if> |
@@ -94,25 +95,15 @@ | @@ -94,25 +95,15 @@ | ||
94 | <if test="queryMap.tenantId !=null and queryMap.tenantId!=''"> | 95 | <if test="queryMap.tenantId !=null and queryMap.tenantId!=''"> |
95 | AND su.tenant_id=#{queryMap.tenantId} | 96 | AND su.tenant_id=#{queryMap.tenantId} |
96 | </if> | 97 | </if> |
98 | + <if test="queryMap.userIds !=null"> | ||
99 | + AND su.id IN | ||
100 | + <foreach collection="queryMap.userIds" item="userId" open="(" separator="," close=")"> | ||
101 | + #{userId} | ||
102 | + </foreach> | ||
103 | + </if> | ||
97 | </where> | 104 | </where> |
98 | </select> | 105 | </select> |
99 | 106 | ||
100 | - <select id="getAdminUserPage" resultMap="userDTOMap"> | ||
101 | - SELECT | ||
102 | - <include refid="columns"/>, | ||
103 | - st.name AS tenant_name | ||
104 | - FROM sys_user su | ||
105 | - LEFT JOIN sys_tenant st ON su.tenant_id = st.tenant_id | ||
106 | - WHERE su.ID IN (SELECT user_id | ||
107 | - FROM sys_user_role | ||
108 | - WHERE role_id IN (SELECT ID | ||
109 | - FROM sys_role | ||
110 | - WHERE role_type = #{roleType} | ||
111 | - <if test="roleType == 'PLATFORM_ADMIN'"> | ||
112 | - OR role_type = 'SYS_ADMIN' | ||
113 | - </if> | ||
114 | - AND tenant_id = #{tenantId})) | ||
115 | - </select> | ||
116 | <select id="getTenantAdminPage" resultMap="userDTOMap"> | 107 | <select id="getTenantAdminPage" resultMap="userDTOMap"> |
117 | SELECT | 108 | SELECT |
118 | <include refid="columns"/>, | 109 | <include refid="columns"/>, |
@@ -121,14 +112,6 @@ | @@ -121,14 +112,6 @@ | ||
121 | LEFT JOIN sys_tenant st ON su.tenant_id = st.tenant_id | 112 | LEFT JOIN sys_tenant st ON su.tenant_id = st.tenant_id |
122 | WHERE su.level = 2 AND su.tenant_id = #{tenantId} | 113 | WHERE su.level = 2 AND su.tenant_id = #{tenantId} |
123 | </select> | 114 | </select> |
124 | - <select id="selectAllTenantUser" resultMap="userDTOMap"> | ||
125 | - SELECT | ||
126 | - <include refid="columns"/>, | ||
127 | - st.name AS tenant_name | ||
128 | - FROM sys_user su | ||
129 | - LEFT JOIN sys_tenant st ON su.tenant_id = st.tenant_id | ||
130 | - WHERE su.level = 2; | ||
131 | - </select> | ||
132 | <select id="getAllIdsByTenantId" resultType="java.lang.String"> | 115 | <select id="getAllIdsByTenantId" resultType="java.lang.String"> |
133 | SELECT id FROM sys_user WHERE tenant_id IN | 116 | SELECT id FROM sys_user WHERE tenant_id IN |
134 | <foreach collection="tenantIds" item="tenantId" open="(" separator="," close=")"> | 117 | <foreach collection="tenantIds" item="tenantId" open="(" separator="," close=")"> |