review: 修改 api 结构.

This commit is contained in:
lijiahangmax
2023-11-01 00:53:24 +08:00
parent 3fef9b8ae2
commit 0dfddf68ca
17 changed files with 284 additions and 113 deletions

View File

@@ -7,7 +7,6 @@ import com.orion.ops.framework.log.core.enums.IgnoreLogMode;
import com.orion.ops.framework.web.core.annotation.RestWrapper;
import com.orion.ops.module.infra.define.operator.AuthenticationOperatorType;
import com.orion.ops.module.infra.entity.request.user.UserLoginRequest;
import com.orion.ops.module.infra.entity.request.user.UserUpdatePasswordRequest;
import com.orion.ops.module.infra.entity.vo.UserLoginVO;
import com.orion.ops.module.infra.service.AuthenticationService;
import io.swagger.v3.oas.annotations.Operation;
@@ -58,12 +57,4 @@ public class AuthenticationController {
return HttpWrapper.ok();
}
@OperatorLog(AuthenticationOperatorType.UPDATE_PASSWORD)
@Operation(summary = "修改密码")
@PutMapping("/update-password")
public HttpWrapper<?> updatePassword(@Validated @RequestBody UserUpdatePasswordRequest request) {
authenticationService.updatePassword(request);
return HttpWrapper.ok();
}
}

View File

@@ -0,0 +1,33 @@
### 查询当前用户信息
GET {{baseUrl}}/infra/mine/get-user
Authorization: {{token}}
### 更新当前用户信息
PUT {{baseUrl}}/infra/mine/update-user
Content-Type: application/json
Authorization: {{token}}
{
"nickname": "名称",
"mobile": "15555555555",
"email": "123@123.com"
}
### 修改当前用户密码
PUT {{baseUrl}}/infra/mine/update-password
Content-Type: application/json
Authorization: {{token}}
{
"beforePassword": "21232f297a57a5a743894a0e4a801fc3",
"password": "21232f297a57a5a743894a0e4a801fc3"
}
### 查询当前用户登录日志
GET {{baseUrl}}/infra/mine/login-history
Authorization: {{token}}
###

View File

@@ -0,0 +1,70 @@
package com.orion.ops.module.infra.controller;
import com.orion.lang.define.wrapper.HttpWrapper;
import com.orion.ops.framework.biz.operator.log.core.annotation.OperatorLog;
import com.orion.ops.framework.log.core.annotation.IgnoreLog;
import com.orion.ops.framework.log.core.enums.IgnoreLogMode;
import com.orion.ops.framework.web.core.annotation.RestWrapper;
import com.orion.ops.module.infra.define.operator.AuthenticationOperatorType;
import com.orion.ops.module.infra.entity.request.user.SystemUserUpdateRequest;
import com.orion.ops.module.infra.entity.request.user.UserUpdatePasswordRequest;
import com.orion.ops.module.infra.entity.vo.LoginHistoryVO;
import com.orion.ops.module.infra.entity.vo.SystemUserVO;
import com.orion.ops.module.infra.service.MineService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 个人服务
*
* @author Jiahang Li
* @version 1.0.0
* @since 2023/11/1 0:19
*/
@Tag(name = "infra - 个人服务")
@Slf4j
@Validated
@RestWrapper
@RestController
@RequestMapping("/infra/mine")
@SuppressWarnings({"ELValidationInJSP", "SpringElInspection"})
public class MineController {
@Resource
private MineService mineService;
@IgnoreLog(IgnoreLogMode.RET)
@GetMapping("/get-user")
@Operation(summary = "查询当前用户信息")
public SystemUserVO getCurrentUserInfo() {
return mineService.getCurrentUserInfo();
}
@PutMapping("/update-user")
@Operation(summary = "更新当前用户信息")
public Integer updateCurrentUser(@Validated @RequestBody SystemUserUpdateRequest request) {
return mineService.updateCurrentUser(request);
}
@OperatorLog(AuthenticationOperatorType.UPDATE_PASSWORD)
@Operation(summary = "修改当前用户密码")
@PutMapping("/update-password")
public HttpWrapper<?> updateCurrentUserPassword(@Validated @RequestBody UserUpdatePasswordRequest request) {
mineService.updateCurrentUserPassword(request);
return HttpWrapper.ok();
}
@IgnoreLog(IgnoreLogMode.RET)
@GetMapping("/login-history")
@Operation(summary = "查询当前用户登录日志")
public List<LoginHistoryVO> getCurrentLoginHistory() {
return mineService.getCurrentLoginHistory();
}
}

View File

@@ -48,7 +48,6 @@ public class OperatorLogController {
}
// fixme 权限配置
@IgnoreLog(IgnoreLogMode.RET)
@GetMapping("/login-history")
@Operation(summary = "查询用户登录日志")
@@ -56,13 +55,5 @@ public class OperatorLogController {
return operatorLogService.getLoginHistory(username);
}
@IgnoreLog(IgnoreLogMode.RET)
@GetMapping("/current-login-history")
@Operation(summary = "查询当前用户登录日志")
public List<LoginHistoryVO> getCurrentLoginHistory() {
String username = SecurityUtils.getLoginUsername();
return operatorLogService.getLoginHistory(username);
}
}

View File

@@ -7,7 +7,6 @@ import com.orion.ops.framework.biz.operator.log.core.annotation.OperatorLog;
import com.orion.ops.framework.common.validator.group.Page;
import com.orion.ops.framework.log.core.annotation.IgnoreLog;
import com.orion.ops.framework.log.core.enums.IgnoreLogMode;
import com.orion.ops.framework.security.core.utils.SecurityUtils;
import com.orion.ops.framework.web.core.annotation.RestWrapper;
import com.orion.ops.module.infra.define.operator.SystemUserOperatorType;
import com.orion.ops.module.infra.entity.request.user.*;
@@ -96,20 +95,6 @@ public class SystemUserController {
return HttpWrapper.ok();
}
@IgnoreLog(IgnoreLogMode.RET)
@GetMapping("/get-current")
@Operation(summary = "查询当前用户信息")
public SystemUserVO getCurrentUserInfo() {
return systemUserService.getSystemUserById(SecurityUtils.getLoginUserId());
}
@PutMapping("/update-current")
@Operation(summary = "更新当前用户信息")
public Integer updateCurrentUser(@Validated @RequestBody SystemUserUpdateRequest request) {
request.setId(SecurityUtils.getLoginUserId());
return systemUserService.updateSystemUserById(request);
}
@IgnoreLog(IgnoreLogMode.RET)
@GetMapping("/get")
@Operation(summary = "通过 id 查询用户")

View File

@@ -3,7 +3,6 @@ package com.orion.ops.module.infra.service;
import com.orion.ops.framework.common.security.LoginUser;
import com.orion.ops.module.infra.entity.dto.LoginTokenDTO;
import com.orion.ops.module.infra.entity.request.user.UserLoginRequest;
import com.orion.ops.module.infra.entity.request.user.UserUpdatePasswordRequest;
import com.orion.ops.module.infra.entity.vo.UserLoginVO;
import javax.servlet.http.HttpServletRequest;
@@ -43,13 +42,6 @@ public interface AuthenticationService {
*/
void logout(HttpServletRequest servletRequest);
/**
* 修改密码
*
* @param request request
*/
void updatePassword(UserUpdatePasswordRequest request);
/**
* 获取登录用户信息
*

View File

@@ -0,0 +1,48 @@
package com.orion.ops.module.infra.service;
import com.orion.ops.module.infra.entity.request.user.SystemUserUpdateRequest;
import com.orion.ops.module.infra.entity.request.user.UserUpdatePasswordRequest;
import com.orion.ops.module.infra.entity.vo.LoginHistoryVO;
import com.orion.ops.module.infra.entity.vo.SystemUserVO;
import java.util.List;
/**
* 个人服务
*
* @author Jiahang Li
* @version 1.0.0
* @since 2023/11/1 0:25
*/
public interface MineService {
/**
* 获取当前登录用户信息
*
* @return user
*/
SystemUserVO getCurrentUserInfo();
/**
* 更新当前登录用户信息
*
* @param request request
* @return effect
*/
Integer updateCurrentUser(SystemUserUpdateRequest request);
/**
* 修改当前用户密码
*
* @param request request
*/
void updateCurrentUserPassword(UserUpdatePasswordRequest request);
/**
* 获取当前用户登录日志
*
* @return 登录日志
*/
List<LoginHistoryVO> getCurrentLoginHistory();
}

View File

@@ -24,8 +24,6 @@ import com.orion.ops.module.infra.entity.domain.SystemRoleDO;
import com.orion.ops.module.infra.entity.domain.SystemUserDO;
import com.orion.ops.module.infra.entity.dto.LoginTokenDTO;
import com.orion.ops.module.infra.entity.request.user.UserLoginRequest;
import com.orion.ops.module.infra.entity.request.user.UserResetPasswordRequest;
import com.orion.ops.module.infra.entity.request.user.UserUpdatePasswordRequest;
import com.orion.ops.module.infra.entity.vo.UserLoginVO;
import com.orion.ops.module.infra.enums.LoginTokenStatusEnum;
import com.orion.ops.module.infra.enums.UserStatusEnum;
@@ -60,9 +58,6 @@ public class AuthenticationServiceImpl implements AuthenticationService {
@Resource
private SystemUserRoleDAO systemUserRoleDAO;
@Resource
private SystemUserService systemUserService;
@Resource
private PermissionService permissionService;
@@ -127,22 +122,6 @@ public class AuthenticationServiceImpl implements AuthenticationService {
redisTemplate.delete(Lists.of(loginKey, refreshKey));
}
@Override
public void updatePassword(UserUpdatePasswordRequest request) {
Long userId = SecurityUtils.getLoginUserId();
// 查询用户信息
SystemUserDO record = systemUserDAO.selectById(userId);
Valid.notNull(record, ErrorMessage.USER_ABSENT);
// 对比原始密码
String beforePassword = Signatures.md5(request.getBeforePassword());
Valid.eq(beforePassword, record.getPassword(), ErrorMessage.BEFORE_PASSWORD_ERROR);
// 重置密码
UserResetPasswordRequest reset = new UserResetPasswordRequest();
reset.setId(userId);
reset.setPassword(request.getPassword());
systemUserService.resetPassword(reset);
}
@Override
public LoginUser getLoginUser(Long id) {
String userInfoKey = UserCacheKeyDefine.USER_INFO.format(id);

View File

@@ -0,0 +1,76 @@
package com.orion.ops.module.infra.service.impl;
import com.orion.lang.utils.crypto.Signatures;
import com.orion.ops.framework.common.constant.ErrorMessage;
import com.orion.ops.framework.common.utils.Valid;
import com.orion.ops.framework.security.core.utils.SecurityUtils;
import com.orion.ops.module.infra.dao.SystemUserDAO;
import com.orion.ops.module.infra.entity.domain.SystemUserDO;
import com.orion.ops.module.infra.entity.request.user.SystemUserUpdateRequest;
import com.orion.ops.module.infra.entity.request.user.UserResetPasswordRequest;
import com.orion.ops.module.infra.entity.request.user.UserUpdatePasswordRequest;
import com.orion.ops.module.infra.entity.vo.LoginHistoryVO;
import com.orion.ops.module.infra.entity.vo.SystemUserVO;
import com.orion.ops.module.infra.service.MineService;
import com.orion.ops.module.infra.service.OperatorLogService;
import com.orion.ops.module.infra.service.SystemUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 个人服务实现
*
* @author Jiahang Li
* @version 1.0.0
* @since 2023/11/1 0:25
*/
@Slf4j
@Service
public class MineServiceImpl implements MineService {
@Resource
private SystemUserService systemUserService;
@Resource
private OperatorLogService operatorLogService;
@Resource
private SystemUserDAO systemUserDAO;
@Override
public SystemUserVO getCurrentUserInfo() {
return systemUserService.getSystemUserById(SecurityUtils.getLoginUserId());
}
@Override
public Integer updateCurrentUser(SystemUserUpdateRequest request) {
request.setId(SecurityUtils.getLoginUserId());
return systemUserService.updateSystemUserById(request);
}
@Override
public void updateCurrentUserPassword(UserUpdatePasswordRequest request) {
Long userId = SecurityUtils.getLoginUserId();
// 查询用户信息
SystemUserDO record = systemUserDAO.selectById(userId);
Valid.notNull(record, ErrorMessage.USER_ABSENT);
// 对比原始密码
String beforePassword = Signatures.md5(request.getBeforePassword());
Valid.eq(beforePassword, record.getPassword(), ErrorMessage.BEFORE_PASSWORD_ERROR);
// 重置密码
UserResetPasswordRequest reset = new UserResetPasswordRequest();
reset.setId(userId);
reset.setPassword(request.getPassword());
systemUserService.resetPassword(reset);
}
@Override
public List<LoginHistoryVO> getCurrentLoginHistory() {
String username = SecurityUtils.getLoginUsername();
return operatorLogService.getLoginHistory(username);
}
}