hexiao 2 лет назад
Родитель
Сommit
ada64161d3

+ 32 - 0
purchase-admin/src/main/java/com/ozs/web/controller/system/SysLoginController.java

@@ -3,6 +3,11 @@ package com.ozs.web.controller.system;
 import java.util.List;
 import java.util.Set;
 
+import com.ozs.common.core.domain.model.LoginUser;
+import com.ozs.common.utils.StringUtils;
+import com.ozs.framework.manager.AsyncManager;
+import com.ozs.framework.manager.factory.AsyncFactory;
+import com.ozs.framework.web.service.TokenService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +25,8 @@ import com.ozs.framework.web.service.SysLoginService;
 import com.ozs.framework.web.service.SysPermissionService;
 import com.ozs.system.service.ISysMenuService;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * 登录验证
  *
@@ -38,6 +45,9 @@ public class SysLoginController
     @Autowired
     private SysPermissionService permissionService;
 
+    @Autowired
+    private TokenService tokenService;
+
     /**
      * 登录方法
      *
@@ -90,4 +100,26 @@ public class SysLoginController
         List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
         return AjaxResult.success(menuService.buildMenus(menus));
     }
+
+    /**
+     * 登录方法
+     *
+     * @return 结果
+     */
+    @ApiOperation("退出方法")
+    @PostMapping("/logout")
+    public AjaxResult logout(HttpServletRequest request)
+    {
+        AjaxResult ajax = AjaxResult.success();
+        LoginUser loginUser = tokenService.getLoginUser(request);
+        if (StringUtils.isNotNull(loginUser))
+        {
+            String userName = loginUser.getUsername();
+            // 删除用户缓存记录
+            tokenService.delLoginUser(loginUser.getToken());
+            // 记录用户退出日志
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, "退出成功"));
+        }
+        return ajax;
+    }
 }