Ver código fonte

新增查询登录用户信息
修改登录用户邮箱

tanzhongran 3 anos atrás
pai
commit
7093cc4143

+ 22 - 7
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/LoginController.java

@@ -1,9 +1,8 @@
 package com.abi.qms.platform.controller.console;
 
 import com.abi.qms.platform.annotation.PassToken;
-import com.abi.qms.platform.dto.req.LoginReq;
-import com.abi.qms.platform.dto.req.ResetPasswordReq;
-import com.abi.qms.platform.dto.req.UpdatePasswordReq;
+import com.abi.qms.platform.dto.req.*;
+import com.abi.qms.platform.dto.res.GetLoginUserInfoRes;
 import com.abi.qms.platform.dto.res.LoginRes;
 import com.abi.qms.platform.service.LoginService;
 import com.abi.task.common.api.base.BaseResponse;
@@ -12,10 +11,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * <p>
@@ -55,6 +51,25 @@ public class LoginController {
         loginService.updatePassword(req);
         return BaseResponse.create();
     }
+
+    @ApiOperation("修改登录用户邮箱")
+    @PostMapping("/updateLoginUserEmail")
+    public BaseResponse updateLoginUserEmail(@Validated @RequestBody UpdateLoginUserEmailReq updateLoginUserEmailReq) throws Exception{
+        //修改登录用户邮箱
+        loginService.updateLoginUserEmail(updateLoginUserEmailReq);
+        //包装出参
+        return BaseResponse.create();
+    }
+
+    @ApiOperation("查询登录用户信息")
+    @GetMapping("/getLoginUserInfo")
+    public BaseResponse<GetLoginUserInfoRes> getLoginUserInfo(@Validated GetLoginUserInfoReq getLoginUserInfoReq) throws Exception{
+        //查询登录用户信息
+        GetLoginUserInfoRes result = loginService.getLoginUserInfo(getLoginUserInfoReq);
+        //包装出参
+        return BaseResponse.create(result);
+    }
+
 }
 
 

+ 15 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/GetLoginUserInfoReq.java

@@ -0,0 +1,15 @@
+package com.abi.qms.platform.dto.req;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 查询登录用户信息入参
+ */
+@Data
+@Schema
+public class GetLoginUserInfoReq implements Serializable {
+
+}

+ 19 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/UpdateLoginUserEmailReq.java

@@ -0,0 +1,19 @@
+package com.abi.qms.platform.dto.req;
+
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 修改登录用户邮箱入参
+ */
+@Data
+@Schema
+public class UpdateLoginUserEmailReq implements Serializable {
+
+    @ApiModelProperty(value = "邮箱")
+    private String email;
+
+}

+ 38 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/GetLoginUserInfoRes.java

@@ -0,0 +1,38 @@
+package com.abi.qms.platform.dto.res;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 查询登录用户信息出参
+ */
+@Data
+@Schema
+public class GetLoginUserInfoRes implements Serializable {
+
+    @ApiModelProperty(value = "用户id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "用户名")
+    private String userName;
+
+    @ApiModelProperty(value = "工号")
+    private String employeeNo;
+
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "邮箱")
+    private String email;
+
+}

+ 19 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/UpdateLoginUserEmailRes.java

@@ -0,0 +1,19 @@
+package com.abi.qms.platform.dto.res;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+/**
+ * @author:Andy.Tan
+ * @Description: 修改登录用户邮箱出参
+ */
+@Data
+@Schema
+public class UpdateLoginUserEmailRes implements Serializable {
+
+}

+ 16 - 7
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/LoginService.java

@@ -2,10 +2,8 @@ package com.abi.qms.platform.service;
 
 
 import com.abi.qms.platform.dao.entity.UserInfo;
-import com.abi.qms.platform.dto.req.LoginReq;
-import com.abi.qms.platform.dto.req.ResetPasswordReq;
-import com.abi.qms.platform.dto.req.TokenReq;
-import com.abi.qms.platform.dto.req.UpdatePasswordReq;
+import com.abi.qms.platform.dto.req.*;
+import com.abi.qms.platform.dto.res.GetLoginUserInfoRes;
 import com.abi.qms.platform.dto.res.LoginActivateRes;
 import com.abi.qms.platform.dto.res.LoginRes;
 
@@ -46,9 +44,20 @@ public interface LoginService {
     void updatePassword(UpdatePasswordReq req);
 
     /**
-     * token校验
-     * @param req
+     * 修改登录用户邮箱
+     * @param updateLoginUserEmailReq
+     * @throws Exception
+     */
+    void updateLoginUserEmail(UpdateLoginUserEmailReq updateLoginUserEmailReq) throws Exception;
+
+    /**
+     * 查询登录用户信息
+     * @param getLoginUserInfoReq
      * @return
+     * @throws Exception
      */
-    UserInfo validateToken(TokenReq req);
+    GetLoginUserInfoRes getLoginUserInfo(GetLoginUserInfoReq getLoginUserInfoReq) throws Exception;
+
+
+
 }

+ 75 - 40
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/LoginServiceImpl.java

@@ -9,10 +9,8 @@ import com.abi.qms.platform.dao.enums.FactoryTypeEnum;
 import com.abi.qms.platform.dao.enums.TrueFalseEnum;
 import com.abi.qms.platform.dao.mapper.UserInfoMapper;
 import com.abi.qms.platform.dao.mapper.UserRoleMapper;
-import com.abi.qms.platform.dto.req.LoginReq;
-import com.abi.qms.platform.dto.req.ResetPasswordReq;
-import com.abi.qms.platform.dto.req.TokenReq;
-import com.abi.qms.platform.dto.req.UpdatePasswordReq;
+import com.abi.qms.platform.dto.req.*;
+import com.abi.qms.platform.dto.res.GetLoginUserInfoRes;
 import com.abi.qms.platform.dto.res.LoginActivateRes;
 import com.abi.qms.platform.dto.res.LoginRes;
 import com.abi.qms.platform.infrastructure.util.UserUtil;
@@ -20,6 +18,7 @@ import com.abi.qms.platform.service.LoginService;
 import com.abi.qms.platform.service.RoleManagerService;
 import com.abi.task.common.api.exception.BusinessException;
 import com.abi.task.common.utils.AESEncodeTwoUtil;
+import com.abi.task.common.utils.PojoConverterUtils;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
@@ -198,25 +197,29 @@ public class LoginServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> impl
         }
 
         UserInfo userInfo = userInfoMapper.selectById(req.getId());
-        if (ObjectUtil.isNotEmpty(userInfo)) {
-            if(TrueFalseEnum.TRUE.is(req.getIsDefaultPassword())){
-                userInfo.setPassword(DEFAULT_PASSWORD);
-            }else{
-                userInfo.setPassword(req.getPassword());
-            }
-            userInfoMapper.updateById(userInfo);
-            userUtil.releaseUser();
-            //删除redis用户token信息
-            String userToken = TOKEN_KEY_USER_ID + userInfo.getId();
-            if (!redisClient.hasKey(userToken)) {
-                return ;
-            }
-            String token  = redisClient.get(userToken);
-            redisClient.delete(TOKEN_KEY_USER_ID + userInfo.getId());
-            if (!StringUtils.isEmpty(token)){
-                String redisTokenKey = MessageFormat.format("{0}:{1}",TOKEN_KEY,token);
-                redisClient.delete(redisTokenKey);
-            }
+        if (ObjectUtil.isEmpty(userInfo)) {
+            throw new BusinessException("用户不存在");
+        }
+
+        //如果前端灭有传重置得密码,则用默认密码
+        if(TrueFalseEnum.TRUE.is(req.getIsDefaultPassword())){
+            userInfo.setPassword(DEFAULT_PASSWORD);
+        }else{
+            userInfo.setPassword(req.getPassword());
+        }
+        userInfoMapper.updateById(userInfo);
+        userUtil.releaseUser();
+
+        //删除redis用户token信息
+        String userToken = TOKEN_KEY_USER_ID + userInfo.getId();
+        if (!redisClient.hasKey(userToken)) {
+            return ;
+        }
+        String token  = redisClient.get(userToken);
+        redisClient.delete(TOKEN_KEY_USER_ID + userInfo.getId());
+        if (!StringUtils.isEmpty(token)){
+            String redisTokenKey = MessageFormat.format("{0}:{1}",TOKEN_KEY,token);
+            redisClient.delete(redisTokenKey);
         }
     }
 
@@ -224,28 +227,60 @@ public class LoginServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> impl
     @Transactional(rollbackFor = Exception.class)
     public void updatePassword(UpdatePasswordReq req) {
         UserInfo userInfo = userInfoMapper.selectById(req.getId());
+
+        //校验旧密码
         String oldPassword = AESEncodeTwoUtil.encrypt(req.getOldPassword());
-        if (oldPassword.equals(userInfo.getPassword())) {
-            userInfo.setPassword(req.getNewPassword());
-            userInfoMapper.updateById(userInfo);
-            String userToken = TOKEN_KEY_USER_ID + userInfo.getId();
-            if (!redisClient.hasKey(userToken)) {
-                return ;
-            }
-            String token  = redisClient.get(userToken);
-            redisClient.delete(TOKEN_KEY_USER_ID + userInfo.getId());
-            if (!StringUtils.isEmpty(token)){
-                String redisTokenKey = MessageFormat.format("{0}:{1}",TOKEN_KEY,token);
-                redisClient.delete(redisTokenKey);
-            }
-        } else {
-            throw new BusinessException("请输入正确的密码");
+        if (!oldPassword.equals(userInfo.getPassword())) {
+            throw new BusinessException("原密码不正确");
+        }
+
+        //修改密码
+        userInfo.setPassword(req.getNewPassword());
+        userInfoMapper.updateById(userInfo);
+
+        //清空用户token
+        userUtil.releaseUser();
+        //删除redis用户token信息
+        String userToken = TOKEN_KEY_USER_ID + userInfo.getId();
+        if (!redisClient.hasKey(userToken)) {
+            return ;
+        }
+        String token  = redisClient.get(userToken);
+        redisClient.delete(TOKEN_KEY_USER_ID + userInfo.getId());
+        if (!StringUtils.isEmpty(token)){
+            String redisTokenKey = MessageFormat.format("{0}:{1}",TOKEN_KEY,token);
+            redisClient.delete(redisTokenKey);
         }
     }
 
+    /**
+     * 修改登录用户邮箱
+     **/
     @Override
-    public UserInfo validateToken(TokenReq req) {
+    public void updateLoginUserEmail(UpdateLoginUserEmailReq req) {
+        UserInfo userInfo = userInfoMapper.selectById(userUtil.getUser().getId());
+        if(userInfo == null){
+            throw new BusinessException("用户不存在");
+        }
+
+        userInfo.setEmail(req.getEmail());
+        userInfoMapper.updateById(userInfo);
+    }
+
+    /**
+     * 查询登录用户信息
+     **/
+    @Override
+    public GetLoginUserInfoRes getLoginUserInfo(GetLoginUserInfoReq req) {
+        UserInfo userInfo = userInfoMapper.selectById(userUtil.getUser().getId());
+        if(userInfo == null){
+            throw new BusinessException("用户不存在");
+        }
+
+        GetLoginUserInfoRes res = PojoConverterUtils.copy(userInfo,GetLoginUserInfoRes.class);
 
-        return null;
+        return res;
     }
+
+
 }