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