瀏覽代碼

update 默认权限体系

18339543638 3 年之前
父節點
當前提交
741203f4c5

+ 0 - 5
nb-common/crud-common/src/main/java/com/nb/common/crud/controller/BaseCrudController.java

@@ -31,9 +31,4 @@ public abstract class BaseCrudController<E, K extends Serializable> implements
     public String getPermissionPrefix() {
         return null;
     }
-
-    @Override
-    public StpLogic getStpLogin() {
-        return SecurityUtil.getStpLogic();
-    }
 }

+ 5 - 1
nb-common/crud-common/src/main/java/com/nb/common/crud/controller/BaseCurdAuthController.java

@@ -2,6 +2,8 @@ package com.nb.common.crud.controller;
 
 import cn.dev33.satoken.stp.StpLogic;
 import cn.hutool.core.text.CharSequenceUtil;
+import com.nb.auth.utils.SecurityUtil;
+
 import java.util.Arrays;
 import java.util.List;
 
@@ -22,7 +24,9 @@ public interface BaseCurdAuthController {
      **/
     String getPermissionPrefix();
 
-    StpLogic getStpLogin();
+    default StpLogic getStpLogin(){
+        return SecurityUtil.getStpLogic();
+    };
 
     default void saveAuth(){
         if(isAuth()){

+ 0 - 5
nb-im/src/main/java/com/nb/im/controller/ImRoomController.java

@@ -179,9 +179,4 @@ public class ImRoomController implements BaseSaveController<ImRoomEntity,String>
     public String getPermissionPrefix() {
         return null;
     }
-
-    @Override
-    public StpLogic getStpLogin() {
-        return SecurityUtil.getStpLogic();
-    }
 }

+ 4 - 0
nb-im/src/main/java/com/nb/im/room/ImRoomOperator.java

@@ -23,6 +23,9 @@ public class ImRoomOperator {
     @Getter
     private final String doctorId;
 
+    @Getter
+    private final Date startTime;
+
     private boolean doctorOnline=false;
     /**
      * 根据userId+roomId记录未读消息数量,并对未读的key进行保存
@@ -38,6 +41,7 @@ public class ImRoomOperator {
         this.redissonClient=redissonClient;
         this.assitId=room.getAssistId();
         this.doctorId=room.getDoctorId();
+        this.startTime=new Date();
         userIds
                 .forEach(userId-> unReadMap.computeIfAbsent(userId,k->redissonClient.getSet("im:unread:"+id+":"+userId)));
 

+ 37 - 6
nb-im/src/main/java/com/nb/im/room/ImRoomOperatorManager.java

@@ -1,5 +1,7 @@
 package com.nb.im.room;
 
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.nb.im.entity.ImRoomUserEntity;
 import com.nb.im.service.LocalImRoomService;
@@ -8,12 +10,11 @@ import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.lang.ref.Reference;
-import java.lang.ref.WeakReference;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.WeakHashMap;
+import javax.annotation.PostConstruct;
+import java.util.*;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -26,6 +27,7 @@ import java.util.stream.Collectors;
 @Component
 public class ImRoomOperatorManager {
 
+
     private final Map<String,ImRoomOperator> imRoomOperatorMap=new HashMap<>();
 
     @Autowired
@@ -36,6 +38,35 @@ public class ImRoomOperatorManager {
 
     @Autowired
     private LocalImRoomUserService roomUserService;
+
+    private final ScheduledExecutorService singleThreadEventExecutor = Executors.newSingleThreadScheduledExecutor();
+    public ImRoomOperatorManager(RedissonClient redissonClient, LocalImRoomService roomService, LocalImRoomUserService roomUserService) {
+        this.redissonClient = redissonClient;
+        this.roomService = roomService;
+        this.roomUserService = roomUserService;
+    }
+
+    @PostConstruct
+    public void init(){
+        //定时清除map中的过期房间
+        singleThreadEventExecutor.scheduleAtFixedRate(()->{
+            Date now = new Date();
+            imRoomOperatorMap.values()
+                    .removeIf(roomOperator -> {
+                        Date startTime = roomOperator.getStartTime();
+                        long betweenHours = DateUtil.between(startTime, now, DateUnit.HOUR);
+                        if(betweenHours>48){
+                            //超过48小时强制删除
+                            return true;
+                        }else if(betweenHours>24&&roomOperator.isOnlineDoctor()){
+                            //超过24小时且医生不在线删除
+                            return true;
+                        }
+                        return false;
+                    });
+        },24,24, TimeUnit.HOURS);
+    }
+
     public ImRoomOperator getRoomOperator(String roomId){
         return imRoomOperatorMap.computeIfAbsent(new String(roomId),k->
                 new ImRoomOperator(roomId,

+ 0 - 5
nb-service/app-assistant/src/main/java/com/nb/app/assistant/controller/base/AppAssistantBaseCrudController.java

@@ -21,9 +21,4 @@ public abstract class AppAssistantBaseCrudController<E, K extends Serializable>
     public boolean isAuth() {
         return false;
     }
-
-    @Override
-    public StpLogic getStpLogin() {
-        return SaManager.getStpLogic(StpTypeEnum.ASSISTANT.getText());
-    }
 }

+ 0 - 4
nb-service/app-doctor/src/main/java/com/nb/app/doctor/controller/base/AppDoctorBaseCrudController.java

@@ -21,8 +21,4 @@ public abstract class AppDoctorBaseCrudController<E, K extends Serializable> ext
         return true;
     }
 
-    @Override
-    public StpLogic getStpLogin() {
-        return SaManager.getStpLogic(StpTypeEnum.APP_DOCTOR.getText());
-    }
 }

+ 0 - 5
nb-service/app-msg/src/main/java/com/nb/app/msg/controller/AppConsultController.java

@@ -44,9 +44,4 @@ public class AppConsultController implements BaseSaveController<AppConsultEntity
     public String getPermissionPrefix() {
         return null;
     }
-
-    @Override
-    public StpLogic getStpLogin() {
-        return SecurityUtil.getStpLogic();
-    }
 }

+ 0 - 4
nb-service/app-msg/src/main/java/com/nb/app/msg/controller/AppMsgController.java

@@ -43,8 +43,4 @@ public class AppMsgController implements BaseSaveController<AppMsgEntity,String>
         return null;
     }
 
-    @Override
-    public StpLogic getStpLogin() {
-        return SecurityUtil.getStpLogic();
-    }
 }

+ 1 - 5
nb-service/web-service/src/main/java/com/nb/web/service/bus/controller/BusDeviceController.java

@@ -9,6 +9,7 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.mapper.Mapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.nb.auth.utils.SecurityUtil;
 import com.nb.web.service.bus.controller.vo.DeviceBindVo;
 import com.nb.web.api.entity.BusDeviceEntity;
 import com.nb.web.api.enums.DeviceAlarmEnum;
@@ -86,11 +87,6 @@ public class BusDeviceController implements
         return "device:info";
     }
 
-    @Override
-    public StpLogic getStpLogin() {
-        return SaManager.getStpLogic("");
-    }
-
 
     @Override
     public BaseService<? extends Mapper<BusDeviceEntity>, BusDeviceEntity, String> getService() {

+ 0 - 5
nb-service/web-service/src/main/java/com/nb/web/service/bus/controller/BusInfusionHistoryController.java

@@ -94,9 +94,4 @@ public class BusInfusionHistoryController implements BaseQueryController<BusInfu
     public String getPermissionPrefix() {
         return "bus:infusion";
     }
-
-    @Override
-    public StpLogic getStpLogin() {
-        return SaManager.getStpLogic("");
-    }
 }

+ 0 - 4
nb-service/web-service/src/main/java/com/nb/web/service/bus/controller/BusPatientController.java

@@ -374,8 +374,4 @@ public class BusPatientController  implements BaseQueryController<BusPatientEnti
         return "bus:patient:";
     }
 
-    @Override
-    public StpLogic getStpLogin() {
-        return SaManager.getStpLogic("");
-    }
 }

+ 0 - 6
nb-service/web-service/src/main/java/com/nb/web/service/log/controller/SysRunningLogController.java

@@ -37,10 +37,4 @@ public class SysRunningLogController implements BaseQueryController<SysRunningLo
     public String getPermissionPrefix() {
         return "sys:rlog:";
     }
-
-    @Override
-    public StpLogic getStpLogin() {
-        return SecurityUtil.getStpLogic();
-    }
-
 }

+ 0 - 6
nb-service/web-service/src/main/java/com/nb/web/service/system/controller/SysApplyController.java

@@ -63,10 +63,4 @@ public class SysApplyController extends BaseCrudController<SysApply,String> {
     public String getPermissionPrefix() {
         return "system:open:";
     }
-
-    @Override
-    public StpLogic getStpLogin() {
-        return SaManager.getStpLogic("");
-    }
-
 }