Ver código fonte

1、用户登录获取信息接口

machaoyi 1 ano atrás
pai
commit
764c4629ec

+ 16 - 15
.idea/workspace.xml

@@ -4,26 +4,18 @@
     <option name="autoReloadType" value="SELECTIVE" />
   </component>
   <component name="ChangeListManager">
-    <list default="true" id="1dc46973-e6f5-473b-a131-bf2bbc2dca15" name="更改" comment="1、用户修改密码">
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/Enum/ErrorCodeEnum.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/utils/CaptchaUtil.java" afterDir="false" />
+    <list default="true" id="1dc46973-e6f5-473b-a131-bf2bbc2dca15" name="更改" comment="1、登录接口新增验证码、记住我字段">
+      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/Auth/entity/UserInfoPO.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/Auth/entity/UserForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/Auth/entity/UserForm.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/Auth/web/login.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/Auth/web/login.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/config/SaTokenConfigure.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/config/SaTokenConfigure.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/utils/ApiResult.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/utils/ApiResult.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/resources/application.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/System/SysUser/service/SysUserService.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/System/SysUser/service/SysUserService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/utils/CaptchaUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/utils/CaptchaUtil.java" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
     <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
     <option name="LAST_RESOLUTION" value="IGNORE" />
   </component>
-  <component name="ChangesViewManager">
-    <option name="groupingKeys">
-      <option value="directory" />
-    </option>
-  </component>
   <component name="FileTemplateManagerImpl">
     <option name="RECENT_TEMPLATES">
       <list>
@@ -134,7 +126,7 @@
       <workItem from="1704693899463" duration="56714000" />
       <workItem from="1704875622703" duration="2299000" />
       <workItem from="1704932572547" duration="31458000" />
-      <workItem from="1705278479826" duration="10248000" />
+      <workItem from="1705278479826" duration="13746000" />
     </task>
     <task id="LOCAL-00001" summary="基础框架配置">
       <option name="closed" value="true" />
@@ -304,7 +296,15 @@
       <option name="project" value="LOCAL" />
       <updated>1705285128154</updated>
     </task>
-    <option name="localTasksCounter" value="22" />
+    <task id="LOCAL-00022" summary="1、登录接口新增验证码、记住我字段">
+      <option name="closed" value="true" />
+      <created>1705289308166</created>
+      <option name="number" value="00022" />
+      <option name="presentableId" value="LOCAL-00022" />
+      <option name="project" value="LOCAL" />
+      <updated>1705289308166</updated>
+    </task>
+    <option name="localTasksCounter" value="23" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -343,7 +343,8 @@
     <MESSAGE value="1、long都改成string传输&#10;2、包整理" />
     <MESSAGE value="1、获取用户菜单排序" />
     <MESSAGE value="1、用户修改密码" />
-    <option name="LAST_COMMIT_MESSAGE" value="1、用户修改密码" />
+    <MESSAGE value="1、登录接口新增验证码、记住我字段" />
+    <option name="LAST_COMMIT_MESSAGE" value="1、登录接口新增验证码、记住我字段" />
   </component>
   <component name="XSLT-Support.FileAssociations.UIState">
     <expand />

+ 32 - 0
application/src/main/java/com/ctsi/Auth/entity/UserInfoPO.java

@@ -0,0 +1,32 @@
+package com.ctsi.Auth.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ctsi.utils.LongtoStringSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+* 用户信息表;
+* @author : machaoyi
+* @date : 2024-1-10
+*/
+@ApiModel(value = "获取当前用户信息",description = "")
+@TableName("sys_user_detail")
+public class UserInfoPO implements Serializable,Cloneable{
+   /** 姓名 */
+   @ApiModelProperty(value = "姓名",notes = "")
+   private String name ;
+
+   /** 姓名 */
+   public String getName(){
+       return this.name;
+   }
+   /** 姓名 */
+   public void setName(String name){
+       this.name=name;
+   }
+}

+ 28 - 11
application/src/main/java/com/ctsi/Auth/web/login.java

@@ -2,18 +2,23 @@ package com.ctsi.Auth.web;
 
 import cn.dev33.satoken.stp.StpUtil;
 import com.ctsi.Auth.entity.UserForm;
+import com.ctsi.Auth.entity.UserInfoPO;
 import com.ctsi.Enum.ErrorCodeEnum;
 import com.ctsi.System.SysMenu.entity.PO.SysMenuSearchPO;
 import com.ctsi.System.SysMenu.service.SysMenuService;
 import com.ctsi.System.SysUser.entity.SysUser;
 import com.ctsi.System.SysUser.service.SysUserService;
+import com.ctsi.System.SysUserDetail.entity.SysUserDetail;
+import com.ctsi.System.SysUserDetail.service.SysUserDetailService;
 import com.ctsi.utils.ApiResult;
 import com.ctsi.utils.CaptchaUtil;
 import com.ctsi.utils.PasswordEncoderUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
+import sun.misc.BASE64Encoder;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -32,6 +37,8 @@ public class login {
     private SysUserService sysUserService;
     @Resource
     private SysMenuService sysMenuService;
+    @Resource
+    private SysUserDetailService sysUserDetailService;
     @ApiOperation("登录")
     @PostMapping(value = "/login",name = "登录")
     public ApiResult auth(@RequestBody UserForm userForm, HttpServletRequest request){
@@ -64,28 +71,38 @@ public class login {
         return ApiResult.success("退出成功");
     }
 
-    @PostMapping(value = "/islogin",name = "是否登录")
-    public ApiResult islogin(){
-        return ApiResult.success(StpUtil.getLoginId());
-    }
-
     @ApiOperation("获取当前用户菜单树")
     @GetMapping(value = "/getMenuTree",name = "获取当前用户菜单树")
     public ApiResult<List<SysMenuSearchPO>> getMenuTree(){
         return ApiResult.success(sysMenuService.getMenuTree(StpUtil.getLoginIdAsLong()));
     }
 
+    @ApiOperation("获取当前用户信息")
+    @GetMapping(value = "/getUserInfo",name = "获取当前用户信息")
+    public ApiResult<UserInfoPO> getUserInfo(){
+        try {
+            UserInfoPO userInfoPO = new UserInfoPO();
+            SysUserDetail sysUserDetail = sysUserDetailService.queryById(StpUtil.getLoginIdAsLong());
+            BeanUtils.copyProperties(sysUserDetail, userInfoPO);
+            return ApiResult.success(userInfoPO);
+        } catch (Exception e) {
+            return ApiResult.failure("获取用户信息失败",null);
+        }
+    }
+
     @ApiOperation("获取验证码")
     @GetMapping("/captcha")
-    public void getCaptcha(HttpServletResponse response, HttpSession session) {
+    public ApiResult getCaptcha(HttpServletRequest request) {
         try {
-            byte[] captchaImage = CaptchaUtil.generateCaptcha(session);
-            response.setContentType("image/png");
-            response.getOutputStream().write(captchaImage);
-            response.getOutputStream().flush();
+            byte[] captchaImage = CaptchaUtil.generateCaptcha(request.getSession());
+            BASE64Encoder encoder = new BASE64Encoder();
+            String png_base64 = encoder.encodeBuffer(captchaImage).trim();//转换成base64串
+            png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");
+            System.out.println("值为:" + "data:image/jpg;base64," + png_base64);
+            return ApiResult.success("data:image/jpg;base64," + png_base64);
         } catch (IOException e) {
-            // Handle exception
             e.printStackTrace();
+            return ApiResult.failure("获取验证码失败",null);
         }
     }
 }

+ 1 - 1
application/src/main/java/com/ctsi/System/SysUser/service/SysUserService.java

@@ -55,5 +55,5 @@ public interface SysUserService{
      */
     boolean deleteById(Long id);
 
-     SysUser queryByUserName(String userName);
+    SysUser queryByUserName(String userName);
 }

+ 4 - 2
application/src/main/java/com/ctsi/utils/CaptchaUtil.java

@@ -1,5 +1,7 @@
 package com.ctsi.utils;
 
+import sun.misc.BASE64Encoder;
+
 import java.awt.*;
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayOutputStream;
@@ -9,8 +11,8 @@ import javax.imageio.ImageIO;
 import javax.servlet.http.HttpSession;
 
 public class CaptchaUtil {
-    private static final int WIDTH = 120;
-    private static final int HEIGHT = 40;
+    private static final int WIDTH = 140;
+    private static final int HEIGHT = 35;
     private static final int LENGTH = 4;
 
     public static byte[] generateCaptcha(HttpSession session) throws IOException {