From 4155135bb0247685ce3652fe0257c39ff3e21ced Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期四, 27 七月 2023 14:45:00 +0800 Subject: [PATCH] 重构app用户由角色转为用户配置 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 14 ++-- ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java | 15 ---- ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java | 39 +++++++++---- ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 22 ++---- lib/webrtc/setup.bat | 2 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java | 6 +- ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java | 32 +++++----- ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java | 6 + ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java | 2 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java | 2 10 files changed, 71 insertions(+), 69 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java b/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java index 94e936d..6a3de03 100644 --- a/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java +++ b/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java @@ -139,18 +139,7 @@ List<SysUser> list = sysUserService.selectUserList(user); return AjaxResult.success(list); } - /** - * 鑾峰彇鎵�鏈塧pp鐢ㄦ埛 - */ - @ApiOperation("鑾峰彇鎵�鏈塧pp鐢ㄦ埛") - @GetMapping("/getAppUserlist") - public AjaxResult getAppUserlist(Long deptId) - { - SysUser user=new SysUser(); - user.setDeptId(deptId); - List<SysUser> list = sysUserService.selectAppUserList(user); - return AjaxResult.success(list); - } + /** * 鑾峰彇鎵�鏈塧pp鐢ㄦ埛 @@ -161,7 +150,7 @@ { SysUser user=new SysUser(); user.setDeptId(deptId); - List<SysUser> list = sysUserService.selectAppUserList(user); + List<SysUser> list = sysUserService.selectAllAppUserList(user); List<SysUser> onLineList=new ArrayList<>(); List<SysUser> offLineList=new ArrayList<>(); for(SysUser sysUser:list) diff --git a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java index a3c2f72..3314c4d 100644 --- a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java +++ b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/AppPositionPush.java @@ -8,6 +8,7 @@ import com.ruoyi.system.service.ISysUserService; import javax.websocket.Session; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -28,18 +29,25 @@ //app浣嶇疆涓婁紶 public static final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(20); public static final Map<Session, ScheduledFuture<?>> taskMap = new HashMap<>(); - public static final Map<Session, Map> defaultDataMap = new HashMap<>();//榛樿浼氳瘽鍙戦�佹暟鎹甿ap + public static final Map<Session, Map<String, ArdAppPosition>> defaultDataMap = new HashMap<>();//榛樿浼氳瘽鍙戦�佹暟鎹甿ap // 鍒濆瀹氭椂浠诲姟锛屾牴鎹敤鎴疯缃殑棰戠巼瀹氭湡鎺ㄩ�佸疄鏃朵綅缃俊鎭� public static void initPushTask(Session session, int pushFrequency) { // 鍚姩鏂扮殑瀹氭椂浠诲姟 if (pushFrequency > 0) { scheduler.scheduleAtFixedRate(() -> { - Map map = defaultDataMap.get(session); - WebSocketUtils.sendMessage(session, map); + Map<String, ArdAppPosition> map = defaultDataMap.get(session); + Map newMap = new HashMap<>(); + List<ArdAppPosition> positionList = new ArrayList<>(); + for (String key : map.keySet()) { + positionList.add(map.get(key)); + } + newMap.put("50000", positionList); + WebSocketUtils.sendMessage(session, newMap); }, 0, pushFrequency, TimeUnit.MILLISECONDS); } } + // 鏂扮殑瀹氭椂浠诲姟锛屾牴鎹敤鎴疯缃殑棰戠巼瀹氭湡鎺ㄩ�佸疄鏃朵綅缃俊鎭� public static void startLocationPushTask(String userId, Session session, int pushFrequency) { // 鍙栨秷涔嬪墠璁剧疆鐨勫畾鏃朵换鍔� @@ -51,14 +59,22 @@ taskMap.put(session, task); // 瀛樺偍鏂扮殑瀹氭椂浠诲姟 } } + public static ScheduledFuture<?> ScheduledFutureTask(Session session, String userId, Integer pushFrequency) { return scheduler.scheduleAtFixedRate(() -> { ArdAppPosition ardAppPosition = getAppPositionList().get(userId); Map<String, ArdAppPosition> DataMap = new HashMap<>(); - DataMap.put(userId,ardAppPosition); - WebSocketUtils.sendMessage(session, DataMap); + DataMap.put(userId, ardAppPosition); + Map newMap = new HashMap<>(); + List<ArdAppPosition> positionList = new ArrayList<>(); + for (String key : DataMap.keySet()) { + positionList.add(DataMap.get(key)); + } + newMap.put("50000", positionList); + WebSocketUtils.sendMessage(session, newMap); }, 0, pushFrequency, TimeUnit.MILLISECONDS); } + //鍙栨秷瀹氭椂浠诲姟 public static void stopLocationPushTask(Session session) { ScheduledFuture<?> scheduledTask = taskMap.get(session); @@ -66,18 +82,17 @@ scheduledTask.cancel(false); } } + //鏌ヨ鎵�鏈塧pp鐢ㄦ埛鐨勪綅缃俊鎭� - public static Map<String,ArdAppPosition> getAppPositionList() - { - Map<String,ArdAppPosition> userMap=new HashMap<>(); + public static Map<String, ArdAppPosition> getAppPositionList() { + Map<String, ArdAppPosition> userMap = new HashMap<>(); ISysUserService sysUserService = SpringUtils.getBean(ISysUserService.class); //鑾峰彇鎵�鏈塧pp鐢ㄦ埛 - List<SysUser> list = sysUserService.selectAppUserListNoDataScope(new SysUser()); - for(SysUser sysUser:list) - { + List<SysUser> list = sysUserService.selectAllocatedList(new SysUser()); + for (SysUser sysUser : list) { IArdAppPositionService ardAppPositionService = SpringUtils.getBean(IArdAppPositionService.class); ArdAppPosition ardAppPosition = ardAppPositionService.selectLastArdAppPositionByUserId(sysUser.getUserId()); - userMap.put(sysUser.getUserId(),ardAppPosition); + userMap.put(sysUser.getUserId(), ardAppPosition); } return userMap; diff --git a/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java b/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java index 9b86968..3910fd7 100644 --- a/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java +++ b/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java @@ -6,7 +6,9 @@ import com.alibaba.fastjson2.JSONObject; import com.ruoyi.alarm.steal.domain.ArdAlarmStealelec; import com.ruoyi.app.task.domain.ArdAppTaskDetail; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.system.service.ISysUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.catalina.security.SecurityUtil; @@ -35,7 +37,8 @@ public class ArdAppTaskController extends BaseController { @Autowired private IArdAppTaskService ardAppTaskService; - + @Autowired + private ISysUserService sysUserService; /** * 鏌ヨapp浠诲姟绠$悊鍒楄〃 */ @@ -132,5 +135,4 @@ public AjaxResult getTaskDetailInfo(@PathVariable("id") String id) { return success(ardAppTaskService.selectArdAppTaskDetailById(id)); } - } diff --git a/lib/webrtc/setup.bat b/lib/webrtc/setup.bat index 283612d..16a4bff 100644 --- a/lib/webrtc/setup.bat +++ b/lib/webrtc/setup.bat @@ -1,3 +1,3 @@ cd %~dp0 -webrtc-streamer.exe -o \ No newline at end of file +start /b webrtc-streamer.exe -o \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index b711841..1f48457 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -139,11 +139,26 @@ * 鐢ㄦ埛铻嶄簯token */ private String rongCloudToken; - + /** + * app鐢ㄦ埛绫诲瀷 + * 0-app鎸囨尌绔� 1-app鍗曞叺绔� 绌�-pc绔� + */ + private String appUserType; + /** + * 鍏宠仈鎶ヨ绫诲瀷缁� + */ private List<String> commands; public SysUser() { + } + + public String getAppUserType() { + return appUserType; + } + + public void setAppUserType(String appUserType) { + this.appUserType = appUserType; } public List<String> getCommands() { @@ -188,21 +203,6 @@ public static boolean isAdmin(String userId) { return userId != null && userId.equals("1"); - } - - /** - * 鏄惁app鎸囨尌绔� - */ - public boolean isAppLeader() { - return isAppLeader(this.userId); - } - - public boolean isAppLeader(String userId) { - List<SysRole> roles = this.getRoles(); - if(roles==null) - {return false;} - boolean appLeader = roles.stream().anyMatch(sysRole -> sysRole.getRoleKey().contains("appLeader")); - return userId != null && appLeader; } public Long getDeptId() { diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java index 9fbf323..a4dcc41 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java @@ -70,7 +70,7 @@ { SysUser currentUser = loginUser.getUser(); // 濡傛灉鏄秴绾х鐞嗗憳锛屽垯涓嶈繃婊ゆ暟鎹�;濡傛灉鏄痑pp鎸囨尌绔紝鍒欎笉杩囨护鏁版嵁; - if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()&& !currentUser.isAppLeader()) + if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) { String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), PermissionContextHolder.getContext()); dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index 0c7859e..bb854de 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -26,7 +26,7 @@ * @param sysUser APP鐢ㄦ埛淇℃伅 * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 */ - public List<SysUser> selectAppUserList(SysUser sysUser); + public List<SysUser> selectAllAppUserList(SysUser sysUser); /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸查厤鐢ㄦ埛瑙掕壊鍒楄〃 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 6249b54..c90c6cd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -20,13 +20,13 @@ public List<SysUser> selectUserList(SysUser user); /** - * 鏍规嵁鏉′欢鍒嗛〉鏌ヨAPP鐢ㄦ埛鍒楄〃 + * 鑾峰彇App鍗曞叺鍜屾寚鎸ョ鐢ㄦ埛鍒楄〃 * * @param user APP鐢ㄦ埛淇℃伅 * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 */ - public List<SysUser> selectAppUserList(SysUser user); - public List<SysUser> selectAppUserListNoDataScope(SysUser user); + public List<SysUser> selectAllAppUserList(SysUser user); + /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛� * diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 8100fa0..67dbedb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -136,14 +136,16 @@ public List<SysUser> selectUserList(SysUser user) { return userMapper.selectUserList(user); } + /** + * 鑾峰彇App鍗曞叺鍜屾寚鎸ョ鐢ㄦ埛鍒楄〃 + * + * @param user APP鐢ㄦ埛淇℃伅 + * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 + */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List<SysUser> selectAppUserList(SysUser user) { - return userMapper.selectAppUserList(user); - } - @Override - public List<SysUser> selectAppUserListNoDataScope(SysUser user) { - return userMapper.selectAppUserList(user); + public List<SysUser> selectAllAppUserList(SysUser user) { + return userMapper.selectAllAppUserList(user); } /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛� diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 5f916c9..79ee9f1 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -24,6 +24,7 @@ <result property="updateTime" column="update_time"/> <result property="cameraPriority" column="camera_priority"/> <result property="rongCloudToken" column="rong_cloud_token"/> + <result property="appUserType" column="app_user_type"/> <result property="remark" column="remark"/> <association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult"/> <collection property="roles" javaType="java.util.List" resultMap="RoleResult"/> @@ -66,6 +67,7 @@ u.create_time, u.camera_priority, u.rong_cloud_token, + u.app_user_type, u.remark, d.dept_id, d.parent_id, @@ -87,9 +89,6 @@ </sql> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> --- select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, --- u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.camera_priority,u.rong_cloud_token, d.dept_name, d.leader from sys_user u --- left join sys_dept d on u.dept_id = d.dept_id <include refid="selectUserVo"/> where u.del_flag = '0' <if test="userId != null and userId != ''"> @@ -110,21 +109,13 @@ <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� --> AND u.create_time <= to_timestamp(#{params.endTime},'yyyy-MM-DD') </if> - <if test="deptId != null and deptId != 0"> - AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE cast(#{deptId} as - varchar) = any(string_to_array(ancestors,',')) )) - </if> + <if test="appUserType!=null and appUserType!=''"> AND u.app_user_type = #{appUserType}</if> <!-- 鏁版嵁鑼冨洿杩囨护 --> ${params.dataScope} </select> - <select id="selectAppUserList" parameterType="SysUser" resultMap="SysUserResult"> + <select id="selectAllAppUserList" parameterType="SysUser" resultMap="SysUserResult"> <include refid="selectUserVo"/> - where u.del_flag = '0' - and LOWER(r.role_name) like '%app%' - <if test="deptId != null and deptId != 0"> - AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE cast(#{deptId} as - varchar) = any(string_to_array(ancestors,',')) )) - </if> + where u.del_flag = '0' and u.app_user_type in('0','1') <!-- 鏁版嵁鑼冨洿杩囨护 --> ${params.dataScope} </select> @@ -210,6 +201,7 @@ <if test="createBy != null and createBy != ''">create_by,</if> <if test="remark != null and remark != ''">remark,</if> <if test="cameraPriority != null">camera_priority,</if> + <if test="appUserType != null and appUserType != ''">app_user_type,</if> create_time )values( <if test="userId != null and userId != ''">#{userId},</if> @@ -225,6 +217,7 @@ <if test="createBy != null and createBy != ''">#{createBy},</if> <if test="remark != null and remark != ''">#{remark},</if> <if test="cameraPriority != null">#{cameraPriority},</if> + <if test="appUserType != null">#{appUserType},</if> now() ) </insert> @@ -247,6 +240,7 @@ <if test="remark != null">remark = #{remark},</if> <if test="cameraPriority != null">camera_priority = #{cameraPriority},</if> <if test="rongCloudToken != null">rong_cloud_token = #{rongCloudToken},</if> + <if test="appUserType != null">app_user_type = #{appUserType},</if> update_time = now() </set> where user_id = #{userId} -- Gitblit v1.9.3