Browse Source

fix[litemall-admin-api]: 跟统记录管理员登录信息。

Junling Bu 6 years ago
parent
commit
8c0c737c12

+ 11 - 2
litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminAuthController.java

@@ -12,6 +12,7 @@ import org.apache.shiro.subject.Subject;
 import org.linlinjava.litemall.admin.service.LogHelper;
 import org.linlinjava.litemall.admin.service.LogHelper;
 import org.linlinjava.litemall.admin.util.Permission;
 import org.linlinjava.litemall.admin.util.Permission;
 import org.linlinjava.litemall.admin.util.PermissionUtil;
 import org.linlinjava.litemall.admin.util.PermissionUtil;
+import org.linlinjava.litemall.core.util.IpUtil;
 import org.linlinjava.litemall.core.util.JacksonUtil;
 import org.linlinjava.litemall.core.util.JacksonUtil;
 import org.linlinjava.litemall.core.util.ResponseUtil;
 import org.linlinjava.litemall.core.util.ResponseUtil;
 import org.linlinjava.litemall.db.domain.LitemallAdmin;
 import org.linlinjava.litemall.db.domain.LitemallAdmin;
@@ -26,6 +27,8 @@ import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.*;
 
 
 import static org.linlinjava.litemall.admin.util.AdminResponseCode.ADMIN_INVALID_ACCOUNT;
 import static org.linlinjava.litemall.admin.util.AdminResponseCode.ADMIN_INVALID_ACCOUNT;
@@ -49,7 +52,7 @@ public class AdminAuthController {
      *  { username : value, password : value }
      *  { username : value, password : value }
      */
      */
     @PostMapping("/login")
     @PostMapping("/login")
-    public Object login(@RequestBody String body) {
+    public Object login(@RequestBody String body, HttpServletRequest request) {
         String username = JacksonUtil.parseString(body, "username");
         String username = JacksonUtil.parseString(body, "username");
         String password = JacksonUtil.parseString(body, "password");
         String password = JacksonUtil.parseString(body, "password");
 
 
@@ -72,6 +75,12 @@ public class AdminAuthController {
             return ResponseUtil.fail(ADMIN_INVALID_ACCOUNT, "认证失败");
             return ResponseUtil.fail(ADMIN_INVALID_ACCOUNT, "认证失败");
         }
         }
 
 
+        currentUser = SecurityUtils.getSubject();
+        LitemallAdmin admin = (LitemallAdmin) currentUser.getPrincipal();
+        admin.setLastLoginIp(IpUtil.getIpAddr(request));
+        admin.setLastLoginTime(LocalDateTime.now());
+        adminService.updateById(admin);
+
         logHelper.logAuthSucceed("登录");
         logHelper.logAuthSucceed("登录");
         return ResponseUtil.ok(currentUser.getSession().getId());
         return ResponseUtil.ok(currentUser.getSession().getId());
     }
     }
@@ -81,7 +90,7 @@ public class AdminAuthController {
      */
      */
     @RequiresAuthentication
     @RequiresAuthentication
     @PostMapping("/logout")
     @PostMapping("/logout")
-    public Object login() {
+    public Object logout() {
         Subject currentUser = SecurityUtils.getSubject();
         Subject currentUser = SecurityUtils.getSubject();
 
 
         logHelper.logAuthSucceed("退出");
         logHelper.logAuthSucceed("退出");