wangliang 4 years ago
parent
commit
48980e273f

+ 7 - 5
themis-admin/src/main/java/com/qmth/themis/admin/api/TBUserController.java

@@ -18,10 +18,7 @@ import com.qmth.themis.business.entity.TBUserRole;
 import com.qmth.themis.business.enums.FieldUniqueEnum;
 import com.qmth.themis.business.enums.FieldUniqueEnum;
 import com.qmth.themis.business.enums.MqTagEnum;
 import com.qmth.themis.business.enums.MqTagEnum;
 import com.qmth.themis.business.enums.SystemOperationEnum;
 import com.qmth.themis.business.enums.SystemOperationEnum;
-import com.qmth.themis.business.service.CacheService;
-import com.qmth.themis.business.service.MqDtoService;
-import com.qmth.themis.business.service.TBUserRoleService;
-import com.qmth.themis.business.service.TBUserService;
+import com.qmth.themis.business.service.*;
 import com.qmth.themis.business.util.*;
 import com.qmth.themis.business.util.*;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.enums.Platform;
 import com.qmth.themis.common.enums.Platform;
@@ -76,6 +73,9 @@ public class TBUserController {
     @Resource
     @Resource
     MqUtil mqUtil;
     MqUtil mqUtil;
 
 
+    @Resource
+    TBSessionService tbSessionService;
+
     @ApiOperation(value = "用户登录接口")
     @ApiOperation(value = "用户登录接口")
     @RequestMapping(value = "/login/account", method = RequestMethod.POST)
     @RequestMapping(value = "/login/account", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "用户信息", response = TBUser.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "用户信息", response = TBUser.class)})
@@ -550,7 +550,7 @@ public class TBUserController {
         }
         }
         //mq发送消息start
         //mq发送消息start
         MqDto mqDto = new MqDto(mqUtil.getMqGroupDomain().getTopic(), MqTagEnum.USER.name(), SystemOperationEnum.LOGOUT,
         MqDto mqDto = new MqDto(mqUtil.getMqGroupDomain().getTopic(), MqTagEnum.USER.name(), SystemOperationEnum.LOGOUT,
-                MqTagEnum.USER, String.valueOf(tbUser.getId()), tbUser.getLoginName());
+                MqTagEnum.USER, String.valueOf(tbUser.getId()), tbSession.getId());
         mqDtoService.assembleSendOneWayMsg(mqDto);
         mqDtoService.assembleSendOneWayMsg(mqDto);
         //mq发送消息end
         //mq发送消息end
         return ResultUtil.ok(true);
         return ResultUtil.ok(true);
@@ -659,6 +659,7 @@ public class TBUserController {
                     String sessionId = SessionUtil
                     String sessionId = SessionUtil
                             .digest(tbUser.getId(), Math.abs(authDto.getRoleCodes().toString().hashCode()),
                             .digest(tbUser.getId(), Math.abs(authDto.getRoleCodes().toString().hashCode()),
                                     s.name());
                                     s.name());
+                    tbSessionService.removeById(sessionId);
                     redisUtil.deleteUserSession(sessionId);
                     redisUtil.deleteUserSession(sessionId);
                 }
                 }
                 cacheService.removeAccountCache(tbUser.getId());
                 cacheService.removeAccountCache(tbUser.getId());
@@ -739,6 +740,7 @@ public class TBUserController {
                     String sessionId = SessionUtil
                     String sessionId = SessionUtil
                             .digest(tbUser.getId(), Math.abs(authDto.getRoleCodes().toString().hashCode()),
                             .digest(tbUser.getId(), Math.abs(authDto.getRoleCodes().toString().hashCode()),
                                     s.name());
                                     s.name());
+                    tbSessionService.removeById(sessionId);
                     redisUtil.deleteUserSession(sessionId);
                     redisUtil.deleteUserSession(sessionId);
                 }
                 }
             }
             }

+ 4 - 0
themis-mq/src/main/java/com/qmth/themis/mq/service/impl/MqLogicServiceImpl.java

@@ -170,6 +170,10 @@ public class MqLogicServiceImpl implements MqLogicService {
                         SystemOperationEnum.valueOf(String.valueOf(mqDto.getBody())).getCode(),
                         SystemOperationEnum.valueOf(String.valueOf(mqDto.getBody())).getCode(),
                         SystemOperationEnum.valueOf(String.valueOf(mqDto.getBody())).getCode(),
                         SystemOperationEnum.valueOf(String.valueOf(mqDto.getBody())).getCode(),
                         Long.parseLong(String.valueOf(mqDto.getObjId())));
                         Long.parseLong(String.valueOf(mqDto.getObjId())));
+                SystemOperationEnum systemOperationEnum = SystemOperationEnum.valueOf(String.valueOf(mqDto.getBody()));
+                if (systemOperationEnum == SystemOperationEnum.LOGOUT && Objects.nonNull(mqDto.getObjName())) {
+                    tbSessionService.removeById(mqDto.getObjName());
+                }
             }
             }
             teExamStudentLogService.save(teExamStudentLog);
             teExamStudentLogService.save(teExamStudentLog);
         }
         }