fix: Auth信息规整修改,Current(All)信息返回修改,日志补丁
This commit is contained in:
parent
94e1fa4cb8
commit
fc51326449
@ -30,6 +30,7 @@ public class ShiroConfiguration {
|
|||||||
filterChainDefinitionMap.put("/unauthorized", "anon"); // 未授权接口允许匿名访问
|
filterChainDefinitionMap.put("/unauthorized", "anon"); // 未授权接口允许匿名访问
|
||||||
filterChainDefinitionMap.put("/", "anon"); // 首页允许匿名访问
|
filterChainDefinitionMap.put("/", "anon"); // 首页允许匿名访问
|
||||||
filterChainDefinitionMap.put("/info/header-image/get", "anon"); // 信息接口允许匿名访问
|
filterChainDefinitionMap.put("/info/header-image/get", "anon"); // 信息接口允许匿名访问
|
||||||
|
filterChainDefinitionMap.put("/info/header-user/get", "anon"); // 信息接口允许匿名访问
|
||||||
filterChainDefinitionMap.put("/**/**", "authc"); // 其他接口一律拦截(需要Token)
|
filterChainDefinitionMap.put("/**/**", "authc"); // 其他接口一律拦截(需要Token)
|
||||||
|
|
||||||
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
|
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
|
||||||
|
@ -10,6 +10,7 @@ import com.jsl.oa.utils.ErrorCode;
|
|||||||
import com.jsl.oa.utils.Processing;
|
import com.jsl.oa.utils.Processing;
|
||||||
import com.jsl.oa.utils.ResultUtil;
|
import com.jsl.oa.utils.ResultUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.validation.BindingResult;
|
import org.springframework.validation.BindingResult;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@ -33,6 +34,7 @@ import java.util.regex.Pattern;
|
|||||||
* @see ResultUtil
|
* @see ResultUtil
|
||||||
* @since v1.0.0
|
* @since v1.0.0
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class AuthController {
|
public class AuthController {
|
||||||
@ -49,6 +51,7 @@ public class AuthController {
|
|||||||
*/
|
*/
|
||||||
@PostMapping("/auth/register")
|
@PostMapping("/auth/register")
|
||||||
public BaseResponse authRegister(@RequestBody @Validated UserRegisterVO userRegisterVO, @NotNull BindingResult bindingResult) {
|
public BaseResponse authRegister(@RequestBody @Validated UserRegisterVO userRegisterVO, @NotNull BindingResult bindingResult) {
|
||||||
|
log.info("请求接口[POST]: /auth/register");
|
||||||
// 判断是否有参数错误
|
// 判断是否有参数错误
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||||
@ -69,6 +72,7 @@ public class AuthController {
|
|||||||
*/
|
*/
|
||||||
@PostMapping("/auth/login")
|
@PostMapping("/auth/login")
|
||||||
public BaseResponse authLogin(@RequestBody @Validated UserLoginVO userLoginVO, @NotNull BindingResult bindingResult) {
|
public BaseResponse authLogin(@RequestBody @Validated UserLoginVO userLoginVO, @NotNull BindingResult bindingResult) {
|
||||||
|
log.info("请求接口[POST]: /auth/login");
|
||||||
// 判断是否有参数错误
|
// 判断是否有参数错误
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||||
@ -88,6 +92,7 @@ public class AuthController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/auth/email/code")
|
@GetMapping("/auth/email/code")
|
||||||
public BaseResponse authSendEmailCode(@RequestParam String email) {
|
public BaseResponse authSendEmailCode(@RequestParam String email) {
|
||||||
|
log.info("请求接口[GET]: /auth/email/code");
|
||||||
if (email != null) {
|
if (email != null) {
|
||||||
if (Pattern.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", email)) {
|
if (Pattern.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", email)) {
|
||||||
return authService.authLoginSendEmailCode(email);
|
return authService.authLoginSendEmailCode(email);
|
||||||
@ -101,6 +106,7 @@ public class AuthController {
|
|||||||
|
|
||||||
@GetMapping("/auth/login/email")
|
@GetMapping("/auth/login/email")
|
||||||
public BaseResponse authLoginByEmail(@RequestParam String email, @RequestParam String code) {
|
public BaseResponse authLoginByEmail(@RequestParam String email, @RequestParam String code) {
|
||||||
|
log.info("请求接口[GET]: /auth/login/email");
|
||||||
if (email != null && code != null && !email.isEmpty() && !code.isEmpty()) {
|
if (email != null && code != null && !email.isEmpty() && !code.isEmpty()) {
|
||||||
System.out.println("测试");
|
System.out.println("测试");
|
||||||
if (Pattern.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", email)) {
|
if (Pattern.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", email)) {
|
||||||
@ -128,11 +134,14 @@ public class AuthController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/auth/logout")
|
@GetMapping("/auth/logout")
|
||||||
public BaseResponse authLogout(HttpServletRequest request) {
|
public BaseResponse authLogout(HttpServletRequest request) {
|
||||||
|
log.info("请求接口[GET]: /auth/logout");
|
||||||
return authService.authLogout(request);
|
return authService.authLogout(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/auth/password")
|
@PutMapping("/auth/password")
|
||||||
public BaseResponse authChangePassword(@RequestBody @Validated UserChangePasswordVO userChangePasswordVO, HttpServletRequest request, @NotNull BindingResult bindingResult) {
|
public BaseResponse authChangePassword(@RequestBody @Validated UserChangePasswordVO userChangePasswordVO, HttpServletRequest request, @NotNull BindingResult bindingResult) {
|
||||||
|
log.info("请求接口[PUT]: /auth/password");
|
||||||
|
// 判断是否有参数错误
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||||
}
|
}
|
||||||
@ -141,6 +150,8 @@ public class AuthController {
|
|||||||
|
|
||||||
@PutMapping("auth/password/forget")
|
@PutMapping("auth/password/forget")
|
||||||
public BaseResponse authForgetPassword(@RequestBody @Validated UserForgetPasswordVO userForgetPasswordVO, @NotNull BindingResult bindingResult) {
|
public BaseResponse authForgetPassword(@RequestBody @Validated UserForgetPasswordVO userForgetPasswordVO, @NotNull BindingResult bindingResult) {
|
||||||
|
log.info("请求接口[PUT]: /auth/password/forget");
|
||||||
|
// 判断是否有参数错误
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ public class InfoController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("info/header-user/get")
|
@GetMapping("info/header-user/get")
|
||||||
public BaseResponse infoGetHeaderUser(@RequestParam String order,@RequestParam String orderBy,HttpServletRequest request){
|
public BaseResponse infoGetHeaderUser(@RequestParam(required = false) String order,@RequestParam(required = false) String orderBy,HttpServletRequest request){
|
||||||
log.info("请求接口[GET]: /info/header-user/get");
|
log.info("请求接口[GET]: /info/header-user/get");
|
||||||
return infoService.getHeaderUser(request,order,orderBy);
|
return infoService.getHeaderUser(request,order,orderBy);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.jsl.oa.controllers;
|
package com.jsl.oa.controllers;
|
||||||
|
|
||||||
import com.jsl.oa.model.voData.PermissionEditVo;
|
import com.jsl.oa.model.voData.PermissionEditVo;
|
||||||
import com.jsl.oa.model.voData.UserEditVo;
|
|
||||||
import com.jsl.oa.services.PermissionService;
|
import com.jsl.oa.services.PermissionService;
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
import com.jsl.oa.utils.ErrorCode;
|
import com.jsl.oa.utils.ErrorCode;
|
||||||
|
@ -11,7 +11,6 @@ import com.jsl.oa.utils.ResultUtil;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
import org.springframework.validation.BindingResult;
|
import org.springframework.validation.BindingResult;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -44,7 +43,7 @@ public class RoleController {
|
|||||||
* @return {@link BaseResponse}
|
* @return {@link BaseResponse}
|
||||||
*/
|
*/
|
||||||
@GetMapping("/role/get")
|
@GetMapping("/role/get")
|
||||||
public BaseResponse roleGet(HttpServletRequest request, @RequestParam @Nullable String id) {
|
public BaseResponse roleGet(HttpServletRequest request, @RequestParam(required = false) String id) {
|
||||||
log.info("请求接口[GET]: /role/get");
|
log.info("请求接口[GET]: /role/get");
|
||||||
return roleService.roleGet(request, id);
|
return roleService.roleGet(request, id);
|
||||||
}
|
}
|
||||||
|
@ -3,13 +3,14 @@ package com.jsl.oa.controllers;
|
|||||||
import com.jsl.oa.model.voData.UserAddVo;
|
import com.jsl.oa.model.voData.UserAddVo;
|
||||||
import com.jsl.oa.model.voData.UserAllCurrentVO;
|
import com.jsl.oa.model.voData.UserAllCurrentVO;
|
||||||
import com.jsl.oa.model.voData.UserEditProfileVO;
|
import com.jsl.oa.model.voData.UserEditProfileVO;
|
||||||
import com.jsl.oa.model.voData.UserEditVo;
|
import com.jsl.oa.model.voData.UserEditVO;
|
||||||
import com.jsl.oa.services.UserService;
|
import com.jsl.oa.services.UserService;
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
import com.jsl.oa.utils.ErrorCode;
|
import com.jsl.oa.utils.ErrorCode;
|
||||||
import com.jsl.oa.utils.Processing;
|
import com.jsl.oa.utils.Processing;
|
||||||
import com.jsl.oa.utils.ResultUtil;
|
import com.jsl.oa.utils.ResultUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.lang.Nullable;
|
import org.springframework.lang.Nullable;
|
||||||
import org.springframework.validation.BindingResult;
|
import org.springframework.validation.BindingResult;
|
||||||
@ -30,6 +31,7 @@ import java.util.regex.Pattern;
|
|||||||
* @see UserEditProfileVO
|
* @see UserEditProfileVO
|
||||||
* @since v1.0.0
|
* @since v1.0.0
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class UserController {
|
public class UserController {
|
||||||
@ -95,10 +97,6 @@ public class UserController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/user/current")
|
@GetMapping("/user/current")
|
||||||
public BaseResponse userCurrent(HttpServletRequest request, @RequestParam @Nullable String id, @RequestParam @Nullable String username, @RequestParam @Nullable String email, @RequestParam @Nullable String phone) {
|
public BaseResponse userCurrent(HttpServletRequest request, @RequestParam @Nullable String id, @RequestParam @Nullable String username, @RequestParam @Nullable String email, @RequestParam @Nullable String phone) {
|
||||||
// 判断是否有参数错误
|
|
||||||
if (id == null && username == null && email == null && phone == null) {
|
|
||||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
|
|
||||||
}
|
|
||||||
// 检查数据是否有问题
|
// 检查数据是否有问题
|
||||||
ArrayList<String> arrayForError = new ArrayList<>();
|
ArrayList<String> arrayForError = new ArrayList<>();
|
||||||
if (id != null && !id.isEmpty()) {
|
if (id != null && !id.isEmpty()) {
|
||||||
@ -165,12 +163,13 @@ public class UserController {
|
|||||||
|
|
||||||
|
|
||||||
@PutMapping("/user/edit")
|
@PutMapping("/user/edit")
|
||||||
public BaseResponse userEdit(@RequestBody @Validated UserEditVo userEditVo, BindingResult bindingResult, HttpServletRequest request) {
|
public BaseResponse userEdit(@RequestBody @Validated UserEditVO userEditVO, BindingResult bindingResult, HttpServletRequest request) {
|
||||||
|
log.info("请求接口[PUT]: /user/edit");
|
||||||
// 判断是否有参数错误
|
// 判断是否有参数错误
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||||
}
|
}
|
||||||
return userService.userEdit(userEditVo,request);
|
return userService.userEdit(userEditVO,request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -35,7 +35,9 @@ public class RoleDAO {
|
|||||||
return roleMapper.getRole();
|
return roleMapper.getRole();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void roleAdd(RoleDO roleDO) { roleMapper.roleAdd(roleDO);}
|
public void roleAdd(RoleDO roleDO) {
|
||||||
|
roleMapper.roleAdd(roleDO);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean roleEdit(RoleDO getRole) {
|
public boolean roleEdit(RoleDO getRole) {
|
||||||
return roleMapper.roleEdit(getRole);
|
return roleMapper.roleEdit(getRole);
|
||||||
|
@ -7,15 +7,20 @@ import com.jsl.oa.model.doData.RoleUserDO;
|
|||||||
import com.jsl.oa.model.doData.UserCurrentDO;
|
import com.jsl.oa.model.doData.UserCurrentDO;
|
||||||
import com.jsl.oa.model.doData.UserDO;
|
import com.jsl.oa.model.doData.UserDO;
|
||||||
import com.jsl.oa.model.voData.UserAllCurrentVO;
|
import com.jsl.oa.model.voData.UserAllCurrentVO;
|
||||||
|
import com.jsl.oa.model.voData.UserCurrentBackVO;
|
||||||
import com.jsl.oa.model.voData.UserEditProfileVO;
|
import com.jsl.oa.model.voData.UserEditProfileVO;
|
||||||
|
import com.jsl.oa.utils.Processing;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.jetbrains.annotations.Contract;
|
import org.jetbrains.annotations.Contract;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class UserDAO {
|
public class UserDAO {
|
||||||
@ -50,9 +55,7 @@ public class UserDAO {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public Boolean isExistUser(Long id) {
|
public Boolean isExistUser(Long id) {
|
||||||
if (userMapper.getUserById(id) == null) {
|
return userMapper.getUserById(id) != null;
|
||||||
return false;
|
|
||||||
} else return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -77,15 +80,23 @@ public class UserDAO {
|
|||||||
userMapper.userEditProfile(userEditProfileVO);
|
userMapper.userEditProfile(userEditProfileVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<UserCurrentDO> userCurrentAll(UserAllCurrentVO userAllCurrentVO) {
|
public List<UserCurrentBackVO> userCurrentAll(UserAllCurrentVO userAllCurrentVO) {
|
||||||
List<UserCurrentDO> userCurrentDO = userMapper.getAllUser(userAllCurrentVO);
|
List<UserDO> userCurrentDO = userMapper.getAllUser(userAllCurrentVO);
|
||||||
return this.userCurrentAll(userCurrentDO);
|
List<UserCurrentBackVO> userCurrentDOList = new ArrayList<>();
|
||||||
|
userCurrentDO.forEach(it -> {
|
||||||
|
userCurrentDOList.add(Processing.ReturnUserInfo(it, roleMapper));
|
||||||
|
});
|
||||||
|
return userCurrentDOList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<UserCurrentDO> userCurrentAllLike(UserAllCurrentVO userAllCurrentVO) {
|
public List<UserCurrentBackVO> userCurrentAllLike(UserAllCurrentVO userAllCurrentVO) {
|
||||||
List<UserCurrentDO> userCurrentDO = userMapper.getAllUserBySearch(userAllCurrentVO);
|
List<UserDO> userCurrentDO = userMapper.getAllUserBySearch(userAllCurrentVO);
|
||||||
return this.userCurrentAll(userCurrentDO);
|
List<UserCurrentBackVO> userCurrentDOList = new ArrayList<>();
|
||||||
|
userCurrentDO.forEach(it -> {
|
||||||
|
userCurrentDOList.add(Processing.ReturnUserInfo(it, roleMapper));
|
||||||
|
});
|
||||||
|
return userCurrentDOList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Contract("_ -> param1")
|
@Contract("_ -> param1")
|
||||||
@ -172,6 +183,7 @@ public class UserDAO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void userEdit(UserDO userDO) {
|
public void userEdit(UserDO userDO) {
|
||||||
|
log.info("> 执行 DAO 层 userEdit 方法");
|
||||||
userMapper.updateUser(userDO);
|
userMapper.updateUser(userDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -207,6 +219,7 @@ public class UserDAO {
|
|||||||
* @Param userId
|
* @Param userId
|
||||||
**/
|
**/
|
||||||
public UserDO getUserById(Long userId) {
|
public UserDO getUserById(Long userId) {
|
||||||
|
log.info("> 执行 DAO 层 getUserById 方法");
|
||||||
return userMapper.getUserById(userId);
|
return userMapper.getUserById(userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -241,4 +254,12 @@ public class UserDAO {
|
|||||||
public List<UserDO> getRecommendUser(){
|
public List<UserDO> getRecommendUser(){
|
||||||
return userMapper.getRecommendUser();
|
return userMapper.getRecommendUser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UserDO getUserByEmail(String email) {
|
||||||
|
return userMapper.getUserByEmail(email);
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserDO getUserByPhone(String phone) {
|
||||||
|
return userMapper.getUserByPhone(phone);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.jsl.oa.mapper;
|
package com.jsl.oa.mapper;
|
||||||
|
|
||||||
import com.jsl.oa.dao.UserDAO;
|
|
||||||
import com.jsl.oa.model.doData.RoleDO;
|
import com.jsl.oa.model.doData.RoleDO;
|
||||||
import com.jsl.oa.model.doData.RoleUserDO;
|
import com.jsl.oa.model.doData.RoleUserDO;
|
||||||
import com.jsl.oa.model.doData.UserCurrentDO;
|
import com.jsl.oa.model.doData.UserCurrentDO;
|
||||||
@ -52,14 +51,14 @@ public interface UserMapper {
|
|||||||
boolean updateUserPassword(Long id, String newPassword);
|
boolean updateUserPassword(Long id, String newPassword);
|
||||||
|
|
||||||
@Select("SELECT * FROM organize_oa.oa_user ORDER BY `id` DESC LIMIT #{page},#{limit}")
|
@Select("SELECT * FROM organize_oa.oa_user ORDER BY `id` DESC LIMIT #{page},#{limit}")
|
||||||
List<UserCurrentDO> getAllUser(UserAllCurrentVO userAllCurrentVO);
|
List<UserDO> getAllUser(UserAllCurrentVO userAllCurrentVO);
|
||||||
|
|
||||||
@Select("SELECT * FROM organize_oa.oa_user " +
|
@Select("SELECT * FROM organize_oa.oa_user " +
|
||||||
"WHERE username LIKE CONCAT('%',#{search},'%') " +
|
"WHERE username LIKE CONCAT('%',#{search},'%') " +
|
||||||
"OR email LIKE CONCAT('%',#{search},'%') " +
|
"OR email LIKE CONCAT('%',#{search},'%') " +
|
||||||
"OR phone LIKE CONCAT('%',#{search},'%') " +
|
"OR phone LIKE CONCAT('%',#{search},'%') " +
|
||||||
"ORDER BY `id` LIMIT #{page},#{limit}")
|
"ORDER BY `id` LIMIT #{page},#{limit}")
|
||||||
List<UserCurrentDO> getAllUserBySearch(UserAllCurrentVO userAllCurrentVO);
|
List<UserDO> getAllUserBySearch(UserAllCurrentVO userAllCurrentVO);
|
||||||
|
|
||||||
@Select("SELECT * FROM organize_oa.oa_user WHERE id = #{uid}")
|
@Select("SELECT * FROM organize_oa.oa_user WHERE id = #{uid}")
|
||||||
UserCurrentDO getUserCurrentById(Long uid);
|
UserCurrentDO getUserCurrentById(Long uid);
|
||||||
@ -92,4 +91,9 @@ public interface UserMapper {
|
|||||||
|
|
||||||
void updateUser(UserDO userDO);
|
void updateUser(UserDO userDO);
|
||||||
|
|
||||||
|
@Select("SELECT * FROM organize_oa.oa_user WHERE email = #{email}")
|
||||||
|
UserDO getUserByEmail(String email);
|
||||||
|
|
||||||
|
@Select("SELECT * FROM organize_oa.oa_user WHERE phone = #{phone}")
|
||||||
|
UserDO getUserByPhone(String phone);
|
||||||
}
|
}
|
||||||
|
54
src/main/java/com/jsl/oa/model/voData/UserCurrentBackVO.java
Executable file
54
src/main/java/com/jsl/oa/model/voData/UserCurrentBackVO.java
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
package com.jsl.oa.model.voData;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <h1>用户注册成功UserDO自定义实体类</h1>
|
||||||
|
* <hr/>
|
||||||
|
* 用于处理用户注册表单输出的数据
|
||||||
|
*
|
||||||
|
* @author 筱锋xiao_lfeng
|
||||||
|
* @version v1.1.0
|
||||||
|
* @since v1.1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class UserCurrentBackVO {
|
||||||
|
private ReturnUser user;
|
||||||
|
private ReturnUserRole role;
|
||||||
|
private List<String> permission;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public static class ReturnUserRole {
|
||||||
|
private Long rid;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public static class ReturnUser {
|
||||||
|
private Long id;
|
||||||
|
private String jobId;
|
||||||
|
private String username;
|
||||||
|
private String address;
|
||||||
|
private String phone;
|
||||||
|
private String email;
|
||||||
|
private Short age;
|
||||||
|
private String signature;
|
||||||
|
private String avatar;
|
||||||
|
private String nickname;
|
||||||
|
private Short sex;
|
||||||
|
private Boolean enabled;
|
||||||
|
private Boolean accountNoExpired;
|
||||||
|
private Boolean credentialsNoExpired;
|
||||||
|
private Boolean recommend;
|
||||||
|
private Boolean accountNoLocked;
|
||||||
|
private String description;
|
||||||
|
private Timestamp createdAt;
|
||||||
|
private Timestamp updatedAt;
|
||||||
|
}
|
||||||
|
}
|
@ -1,10 +1,10 @@
|
|||||||
package com.jsl.oa.model.voData;
|
package com.jsl.oa.model.voData;
|
||||||
|
|
||||||
import com.jsl.oa.model.doData.RoleUserDO;
|
import lombok.Data;
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.Setter;
|
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <h1>用户注册成功UserDO自定义实体类</h1>
|
* <h1>用户注册成功UserDO自定义实体类</h1>
|
||||||
* <hr/>
|
* <hr/>
|
||||||
@ -14,17 +14,27 @@ import lombok.experimental.Accessors;
|
|||||||
* @version v1.1.0
|
* @version v1.1.0
|
||||||
* @since v1.1.0
|
* @since v1.1.0
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Data
|
||||||
@Setter
|
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class UserReturnBackVO {
|
public class UserReturnBackVO {
|
||||||
|
private ReturnUser user;
|
||||||
|
private ReturnUserRole role;
|
||||||
|
private String token;
|
||||||
|
private List<String> permission;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public static class ReturnUserRole {
|
||||||
|
private Long rid;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public static class ReturnUser {
|
||||||
|
private Long id;
|
||||||
private String jobId;
|
private String jobId;
|
||||||
private String username;
|
private String username;
|
||||||
private String address;
|
|
||||||
private String phone;
|
private String phone;
|
||||||
private String email;
|
private String email;
|
||||||
private Short age;
|
}
|
||||||
private Short sex;
|
|
||||||
private String token;
|
|
||||||
private RoleUserDO role;
|
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ import com.jsl.oa.model.doData.UserDO;
|
|||||||
import com.jsl.oa.model.voData.UserAddVo;
|
import com.jsl.oa.model.voData.UserAddVo;
|
||||||
import com.jsl.oa.model.voData.UserAllCurrentVO;
|
import com.jsl.oa.model.voData.UserAllCurrentVO;
|
||||||
import com.jsl.oa.model.voData.UserEditProfileVO;
|
import com.jsl.oa.model.voData.UserEditProfileVO;
|
||||||
import com.jsl.oa.model.voData.UserEditVo;
|
import com.jsl.oa.model.voData.UserEditVO;
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@ -86,7 +86,7 @@ public interface UserService {
|
|||||||
|
|
||||||
BaseResponse userAdd(UserAddVo userAddVo, HttpServletRequest request);
|
BaseResponse userAdd(UserAddVo userAddVo, HttpServletRequest request);
|
||||||
|
|
||||||
BaseResponse userEdit(UserEditVo userEditVo, HttpServletRequest request);
|
BaseResponse userEdit(UserEditVO userEditVo, HttpServletRequest request);
|
||||||
|
|
||||||
|
|
||||||
BaseResponse userProfileGet(HttpServletRequest request);
|
BaseResponse userProfileGet(HttpServletRequest request);
|
||||||
|
@ -12,12 +12,14 @@ import com.jsl.oa.utils.*;
|
|||||||
import com.jsl.oa.utils.redis.EmailRedisUtil;
|
import com.jsl.oa.utils.redis.EmailRedisUtil;
|
||||||
import com.jsl.oa.utils.redis.TokenRedisUtil;
|
import com.jsl.oa.utils.redis.TokenRedisUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.mindrot.jbcrypt.BCrypt;
|
import org.mindrot.jbcrypt.BCrypt;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -29,6 +31,7 @@ import java.util.regex.Pattern;
|
|||||||
* @see AuthService
|
* @see AuthService
|
||||||
* @since v1.0.0
|
* @since v1.0.0
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class AuthServiceImpl implements AuthService {
|
public class AuthServiceImpl implements AuthService {
|
||||||
@ -78,15 +81,19 @@ public class AuthServiceImpl implements AuthService {
|
|||||||
UserDO userDO;
|
UserDO userDO;
|
||||||
if (Pattern.matches("^[0-9A-Za-z_]{3,40}$", userLoginVO.getUser())) {
|
if (Pattern.matches("^[0-9A-Za-z_]{3,40}$", userLoginVO.getUser())) {
|
||||||
// 是否为用户名
|
// 是否为用户名
|
||||||
|
log.info("userLogin: 用户名登陆");
|
||||||
userDO = userMapper.getUserInfoByUsername(userLoginVO.getUser());
|
userDO = userMapper.getUserInfoByUsername(userLoginVO.getUser());
|
||||||
} else if (Pattern.matches("^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", userLoginVO.getUser())) {
|
} else if (Pattern.matches("^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", userLoginVO.getUser())) {
|
||||||
// 是否为手机号
|
// 是否为手机号
|
||||||
|
log.info("userLogin: 手机号登陆");
|
||||||
userDO = userMapper.getUserInfoByPhone(userLoginVO.getUser());
|
userDO = userMapper.getUserInfoByPhone(userLoginVO.getUser());
|
||||||
} else if (Pattern.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", userLoginVO.getUser())) {
|
} else if (Pattern.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", userLoginVO.getUser())) {
|
||||||
// 是否为邮箱
|
// 是否为邮箱
|
||||||
|
log.info("userLogin: 邮箱登陆");
|
||||||
return ResultUtil.error(ErrorCode.EMAIL_LOGIN_NOT_SUPPORT);
|
return ResultUtil.error(ErrorCode.EMAIL_LOGIN_NOT_SUPPORT);
|
||||||
} else {
|
} else {
|
||||||
// 工号
|
// 工号
|
||||||
|
log.info("userLogin: 工号登陆");
|
||||||
userDO = userMapper.getUserByJobId(userLoginVO.getUser());
|
userDO = userMapper.getUserByJobId(userLoginVO.getUser());
|
||||||
}
|
}
|
||||||
if (userDO != null) {
|
if (userDO != null) {
|
||||||
@ -236,15 +243,16 @@ public class AuthServiceImpl implements AuthService {
|
|||||||
} else {
|
} else {
|
||||||
getUserRole.setUid(null);
|
getUserRole.setUid(null);
|
||||||
}
|
}
|
||||||
userReturnBackVO.setAddress(userDO.getAddress())
|
userReturnBackVO.setUser(new UserReturnBackVO.ReturnUser()
|
||||||
.setAge(userDO.getAge())
|
.setId(userDO.getId())
|
||||||
.setEmail(userDO.getEmail())
|
|
||||||
.setJobId(userDO.getJobId())
|
.setJobId(userDO.getJobId())
|
||||||
.setPhone(userDO.getPhone())
|
|
||||||
.setSex(userDO.getSex())
|
|
||||||
.setUsername(userDO.getUsername())
|
.setUsername(userDO.getUsername())
|
||||||
|
.setEmail(userDO.getEmail())
|
||||||
|
.setPhone(userDO.getPhone()))
|
||||||
|
.setRole(new UserReturnBackVO.ReturnUserRole()
|
||||||
|
.setRid(getUserRole.getRid()))
|
||||||
.setToken(token)
|
.setToken(token)
|
||||||
.setRole(getUserRole);
|
.setPermission(new ArrayList<>());
|
||||||
return ResultUtil.success("登陆成功", userReturnBackVO);
|
return ResultUtil.success("登陆成功", userReturnBackVO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ package com.jsl.oa.services.impl;
|
|||||||
import com.jsl.oa.dao.InfoDAO;
|
import com.jsl.oa.dao.InfoDAO;
|
||||||
import com.jsl.oa.dao.UserDAO;
|
import com.jsl.oa.dao.UserDAO;
|
||||||
import com.jsl.oa.mapper.RoleMapper;
|
import com.jsl.oa.mapper.RoleMapper;
|
||||||
import com.jsl.oa.model.doData.UserCurrentDO;
|
|
||||||
import com.jsl.oa.model.doData.UserDO;
|
import com.jsl.oa.model.doData.UserDO;
|
||||||
import com.jsl.oa.model.doData.info.CarouselDO;
|
import com.jsl.oa.model.doData.info.CarouselDO;
|
||||||
import com.jsl.oa.model.voData.UserProfileVo;
|
import com.jsl.oa.model.voData.UserProfileVo;
|
||||||
@ -144,9 +143,12 @@ public class InfoServiceImpl implements InfoService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse getHeaderUser(HttpServletRequest request, String order, String orderBy) {
|
public BaseResponse getHeaderUser(HttpServletRequest request, String order, String orderBy) {
|
||||||
// 用户权限校验
|
// 默认无参数情况
|
||||||
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
if (order == null) {
|
||||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
order = "asc";
|
||||||
|
}
|
||||||
|
if (orderBy == null) {
|
||||||
|
orderBy = "userId";
|
||||||
}
|
}
|
||||||
// 检查参数是否错误
|
// 检查参数是否错误
|
||||||
if (!(order.equals("asc") || order.equals("desc")) || !(orderBy.equals("userName") || orderBy.equals("userId"))) {
|
if (!(order.equals("asc") || order.equals("desc")) || !(orderBy.equals("userName") || orderBy.equals("userId"))) {
|
||||||
@ -155,7 +157,7 @@ public class InfoServiceImpl implements InfoService {
|
|||||||
//获取用户信息
|
//获取用户信息
|
||||||
List<UserDO> userDOS = userDAO.getRecommendUser();
|
List<UserDO> userDOS = userDAO.getRecommendUser();
|
||||||
//进行排序
|
//进行排序
|
||||||
userDOS = Processing.orderUser(userDOS,order,orderBy);
|
Processing.orderUser(userDOS, order, orderBy);
|
||||||
//封装VO类
|
//封装VO类
|
||||||
List<UserProfileVo> userProfileVos = new ArrayList<>();
|
List<UserProfileVo> userProfileVos = new ArrayList<>();
|
||||||
for (UserDO userDO : userDOS) {
|
for (UserDO userDO : userDOS) {
|
||||||
@ -164,11 +166,8 @@ public class InfoServiceImpl implements InfoService {
|
|||||||
userProfileVo.setSex(Processing.getSex(userDO.getSex()));
|
userProfileVo.setSex(Processing.getSex(userDO.getSex()));
|
||||||
userProfileVos.add(userProfileVo);
|
userProfileVos.add(userProfileVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return ResultUtil.success(userProfileVos);
|
return ResultUtil.success(userProfileVos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,20 +6,17 @@ import com.jsl.oa.mapper.RoleMapper;
|
|||||||
import com.jsl.oa.model.doData.ProjectCuttingDO;
|
import com.jsl.oa.model.doData.ProjectCuttingDO;
|
||||||
import com.jsl.oa.model.doData.ProjectDO;
|
import com.jsl.oa.model.doData.ProjectDO;
|
||||||
import com.jsl.oa.model.doData.UserDO;
|
import com.jsl.oa.model.doData.UserDO;
|
||||||
import com.jsl.oa.model.doData.info.CarouselDO;
|
|
||||||
import com.jsl.oa.model.doData.info.ProjectShowDO;
|
import com.jsl.oa.model.doData.info.ProjectShowDO;
|
||||||
import com.jsl.oa.model.voData.ProjectInfoVO;
|
import com.jsl.oa.model.voData.ProjectInfoVO;
|
||||||
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
|
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
|
||||||
import com.jsl.oa.services.ProjectService;
|
import com.jsl.oa.services.ProjectService;
|
||||||
import com.jsl.oa.services.UserService;
|
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
import com.jsl.oa.utils.ErrorCode;
|
import com.jsl.oa.utils.ErrorCode;
|
||||||
import com.jsl.oa.utils.Processing;
|
import com.jsl.oa.utils.Processing;
|
||||||
import com.jsl.oa.utils.ResultUtil;
|
import com.jsl.oa.utils.ResultUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
@ -42,7 +39,7 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse projectEdit(ProjectInfoVO projectEdit) {
|
public BaseResponse projectEdit(@NotNull ProjectInfoVO projectEdit) {
|
||||||
//判断项目是否存在
|
//判断项目是否存在
|
||||||
if(projectDAO.isExistProject(projectEdit.getId())) {
|
if(projectDAO.isExistProject(projectEdit.getId())) {
|
||||||
projectDAO.projectEdit(projectEdit);
|
projectDAO.projectEdit(projectEdit);
|
||||||
|
@ -7,7 +7,10 @@ import com.jsl.oa.model.doData.RoleDO;
|
|||||||
import com.jsl.oa.model.voData.RoleAddVo;
|
import com.jsl.oa.model.voData.RoleAddVo;
|
||||||
import com.jsl.oa.model.voData.RoleEditVO;
|
import com.jsl.oa.model.voData.RoleEditVO;
|
||||||
import com.jsl.oa.services.RoleService;
|
import com.jsl.oa.services.RoleService;
|
||||||
import com.jsl.oa.utils.*;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
|
import com.jsl.oa.utils.ErrorCode;
|
||||||
|
import com.jsl.oa.utils.Processing;
|
||||||
|
import com.jsl.oa.utils.ResultUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -40,22 +43,21 @@ public class RoleServiceImpl implements RoleService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse roleChangeUser(HttpServletRequest request, Long uid, Long rid) {
|
public BaseResponse roleChangeUser(HttpServletRequest request, Long uid, Long rid) {
|
||||||
|
|
||||||
//检测用户是否存在
|
//检测用户是否存在
|
||||||
if (!userDAO.isExistUser(uid)) {
|
if (!userDAO.isExistUser(uid)) {
|
||||||
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||||
}
|
}
|
||||||
//检测要改变的用户权限是否为自己
|
//检测要改变的用户权限是否为自己
|
||||||
String token = request.getHeader("Authorization").replace("Bearer ", "");
|
if (uid.equals(Processing.getAuthHeaderToUserId(request))) {
|
||||||
if(uid == JwtUtil.getUserId(token)){
|
|
||||||
return ResultUtil.error(ErrorCode.USER_NOT_CHANGE_TO_THEMSELVES);
|
return ResultUtil.error(ErrorCode.USER_NOT_CHANGE_TO_THEMSELVES);
|
||||||
}
|
}
|
||||||
//检测用户权限是否为管理员
|
//检测用户权限是否为管理员
|
||||||
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
|
||||||
if (!roleDAO.roleChangeUser(uid, rid)) {
|
if (roleDAO.roleChangeUser(uid, rid)) {
|
||||||
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
|
|
||||||
}
|
|
||||||
return ResultUtil.success();
|
return ResultUtil.success();
|
||||||
|
} else {
|
||||||
|
return ResultUtil.error(ErrorCode.PLEASE_ASSIGN_ROLE_TO_USER);
|
||||||
|
}
|
||||||
} else return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
} else return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,7 +127,6 @@ public class RoleServiceImpl implements RoleService {
|
|||||||
} else {
|
} else {
|
||||||
return ResultUtil.error(ErrorCode.ROLE_NOT_FOUNDED);
|
return ResultUtil.error(ErrorCode.ROLE_NOT_FOUNDED);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -145,9 +146,6 @@ public class RoleServiceImpl implements RoleService {
|
|||||||
}
|
}
|
||||||
//向数据库中插入数据
|
//向数据库中插入数据
|
||||||
roleDAO.roleAdd(roleDO);
|
roleDAO.roleAdd(roleDO);
|
||||||
|
|
||||||
return ResultUtil.success();
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,13 +2,15 @@ package com.jsl.oa.services.impl;
|
|||||||
|
|
||||||
import com.jsl.oa.dao.UserDAO;
|
import com.jsl.oa.dao.UserDAO;
|
||||||
import com.jsl.oa.mapper.RoleMapper;
|
import com.jsl.oa.mapper.RoleMapper;
|
||||||
import com.jsl.oa.model.doData.RoleUserDO;
|
|
||||||
import com.jsl.oa.model.doData.UserCurrentDO;
|
|
||||||
import com.jsl.oa.model.doData.UserDO;
|
import com.jsl.oa.model.doData.UserDO;
|
||||||
import com.jsl.oa.model.voData.*;
|
import com.jsl.oa.model.voData.*;
|
||||||
import com.jsl.oa.services.UserService;
|
import com.jsl.oa.services.UserService;
|
||||||
import com.jsl.oa.utils.*;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
|
import com.jsl.oa.utils.ErrorCode;
|
||||||
|
import com.jsl.oa.utils.Processing;
|
||||||
|
import com.jsl.oa.utils.ResultUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.mindrot.jbcrypt.BCrypt;
|
import org.mindrot.jbcrypt.BCrypt;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -18,6 +20,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class UserServiceImpl implements UserService {
|
public class UserServiceImpl implements UserService {
|
||||||
@ -80,7 +83,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
userAllCurrentVO.setPage((userAllCurrentVO.getPage() - 1) * userAllCurrentVO.getLimit());
|
userAllCurrentVO.setPage((userAllCurrentVO.getPage() - 1) * userAllCurrentVO.getLimit());
|
||||||
}
|
}
|
||||||
// 检查是否处于模糊查询
|
// 检查是否处于模糊查询
|
||||||
List<UserCurrentDO> userAllCurrentVOList;
|
List<UserCurrentBackVO> userAllCurrentVOList;
|
||||||
if (userAllCurrentVO.getSearch() != null && !userAllCurrentVO.getSearch().isEmpty()) {
|
if (userAllCurrentVO.getSearch() != null && !userAllCurrentVO.getSearch().isEmpty()) {
|
||||||
if (Pattern.matches("^[0-9A-Za-z_@]+$", userAllCurrentVO.getSearch())) {
|
if (Pattern.matches("^[0-9A-Za-z_@]+$", userAllCurrentVO.getSearch())) {
|
||||||
userAllCurrentVOList = userDAO.userCurrentAllLike(userAllCurrentVO);
|
userAllCurrentVOList = userDAO.userCurrentAllLike(userAllCurrentVO);
|
||||||
@ -101,39 +104,46 @@ public class UserServiceImpl implements UserService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse userCurrent(HttpServletRequest request, String id, String username, String email, String phone) {
|
public BaseResponse userCurrent(HttpServletRequest request, String id, String username, String email, String phone) {
|
||||||
|
if (id == null && username == null && email == null && phone == null) {
|
||||||
|
// Token获取信息
|
||||||
|
UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request));
|
||||||
|
if (userDO != null) {
|
||||||
|
return ResultUtil.success(Processing.ReturnUserInfo(userDO, roleMapper));
|
||||||
|
} else {
|
||||||
|
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
// 检查是否是管理员用户
|
// 检查是否是管理员用户
|
||||||
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
}
|
}
|
||||||
// 根据顺序优先级进行用户信息获取
|
// 根据顺序优先级进行用户信息获取
|
||||||
UserCurrentDO userCurrentDO = null;
|
UserDO userDO = null;
|
||||||
if (id != null && !id.isEmpty()) {
|
if (id != null && !id.isEmpty()) {
|
||||||
userCurrentDO = userDAO.userCurrentById(Long.valueOf(id));
|
userDO = userDAO.getUserById(Long.valueOf(id));
|
||||||
} else if (username != null && !username.isEmpty()) {
|
} else if (username != null && !username.isEmpty()) {
|
||||||
userCurrentDO = userDAO.userCurrentByUsername(username);
|
userDO = userDAO.getUserInfoByUsername(username);
|
||||||
} else if (email != null && !email.isEmpty()) {
|
} else if (email != null && !email.isEmpty()) {
|
||||||
userCurrentDO = userDAO.userCurrentByEmail(email);
|
userDO = userDAO.getUserByEmail(email);
|
||||||
} else if (phone != null && !phone.isEmpty()) {
|
} else if (phone != null && !phone.isEmpty()) {
|
||||||
userCurrentDO = userDAO.userCurrentByPhone(phone);
|
userDO = userDAO.getUserByPhone(phone);
|
||||||
}
|
}
|
||||||
// 返回结果
|
// 返回结果
|
||||||
if (userCurrentDO != null) {
|
if (userDO != null) {
|
||||||
return ResultUtil.success(userCurrentDO);
|
return ResultUtil.success(Processing.ReturnUserInfo(userDO, roleMapper));
|
||||||
} else {
|
} else {
|
||||||
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse userAdd(UserAddVo userAddVo, HttpServletRequest request) {
|
public BaseResponse userAdd(UserAddVo userAddVo, HttpServletRequest request) {
|
||||||
|
|
||||||
// 检测用户是否为管理员
|
// 检测用户是否为管理员
|
||||||
BaseResponse checkManagerResult = isManager(request);
|
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||||
if (checkManagerResult.getCode() != 200) {
|
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
return checkManagerResult;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//如果用户不重复,添加用户
|
//如果用户不重复,添加用户
|
||||||
if (!userDAO.isRepeatUser(userAddVo.getUsername())) {
|
if (!userDAO.isRepeatUser(userAddVo.getUsername())) {
|
||||||
// 生成工号
|
// 生成工号
|
||||||
@ -164,22 +174,32 @@ public class UserServiceImpl implements UserService {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse userEdit(UserEditVo userEditVo, HttpServletRequest request) {
|
public BaseResponse userEdit(UserEditVO userEditVO, HttpServletRequest request) {
|
||||||
|
log.info("> 执行 Service 层 userEdit 方法");
|
||||||
// 检测用户是否为管理员
|
// 检测用户是否为管理员
|
||||||
BaseResponse checkManagerResult = isManager(request);
|
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||||
if (checkManagerResult.getCode() != 200) {
|
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
return checkManagerResult;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//根据id获取用户信息
|
//根据id获取用户信息
|
||||||
UserDO userDO = userDAO.getUserById(userEditVo.getId());
|
UserDO userDO = userDAO.getUserById(userEditVO.getId());
|
||||||
if (userDO == null) {
|
if (userDO == null) {
|
||||||
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
//修改非空属性
|
//修改非空属性
|
||||||
Processing.copyProperties(userEditVo, userDO);
|
userDO.setAddress(userEditVO.getAddress())
|
||||||
|
.setPhone(userEditVO.getPhone())
|
||||||
|
.setEmail(userEditVO.getEmail())
|
||||||
|
.setAge(userEditVO.getAge())
|
||||||
|
.setSex(userEditVO.getSex())
|
||||||
|
.setSignature(userEditVO.getSignature())
|
||||||
|
.setAvatar(userEditVO.getAvatar())
|
||||||
|
.setNickname(userEditVO.getNickname())
|
||||||
|
.setDescription(userEditVO.getDescription())
|
||||||
|
.setEnabled(userEditVO.getEnabled())
|
||||||
|
.setAccountNoExpired(userEditVO.getIsExpired())
|
||||||
|
.setCredentialsNoExpired(userEditVO.getPasswordExpired())
|
||||||
|
.setRecommend(userEditVO.getRecommend())
|
||||||
|
.setAccountNoLocked(userEditVO.getIsLocked());
|
||||||
//向数据库中修改属性
|
//向数据库中修改属性
|
||||||
userDAO.userEdit(userDO);
|
userDAO.userEdit(userDO);
|
||||||
|
|
||||||
@ -195,29 +215,4 @@ public class UserServiceImpl implements UserService {
|
|||||||
userProfileVo.setSex(Processing.getSex(userDO.getSex()));
|
userProfileVo.setSex(Processing.getSex(userDO.getSex()));
|
||||||
return ResultUtil.success(userProfileVo);
|
return ResultUtil.success(userProfileVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: 判断用户是否为管理员
|
|
||||||
* @Date: 2024/1/18
|
|
||||||
* @Param request: 请求头
|
|
||||||
**/
|
|
||||||
public BaseResponse isManager(HttpServletRequest request) {
|
|
||||||
//获取token
|
|
||||||
String originalAuthorization = request.getHeader("Authorization");
|
|
||||||
String token = originalAuthorization.replace("Bearer ", "");
|
|
||||||
//获取操作用户的权限
|
|
||||||
RoleUserDO roleUserDO = userDAO.getRoleFromUser(JwtUtil.getUserId(token));
|
|
||||||
//用户权限不为空
|
|
||||||
if (roleUserDO == null) {
|
|
||||||
return ResultUtil.error(ErrorCode.USER_ROLE_NOT_EXIST);
|
|
||||||
}
|
|
||||||
//用户权限应为管理员
|
|
||||||
if (!userDAO.isManagerByRoleId(roleUserDO.getRid())) {
|
|
||||||
return ResultUtil.error(ErrorCode.USER_ROLE_NOT_MANAGER);
|
|
||||||
}
|
|
||||||
return ResultUtil.success();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ public enum ErrorCode {
|
|||||||
NOT_ADMIN("NotAdmin", 40302, "不是管理员"),
|
NOT_ADMIN("NotAdmin", 40302, "不是管理员"),
|
||||||
EMAIL_LOGIN_NOT_SUPPORT("EmailLoginNotSupport", 40303, "请使用邮箱登陆"),
|
EMAIL_LOGIN_NOT_SUPPORT("EmailLoginNotSupport", 40303, "请使用邮箱登陆"),
|
||||||
PASSWORD_NOT_SAME("PasswordNotSame", 40304, "两次密码不一致"),
|
PASSWORD_NOT_SAME("PasswordNotSame", 40304, "两次密码不一致"),
|
||||||
|
PLEASE_ASSIGN_ROLE_TO_USER("PleaseAssignRoleToUser", 40305, "请为用户添加角色"),
|
||||||
ID_NOT_EXIST("IdNotExist", 40400, "ID不存在"),
|
ID_NOT_EXIST("IdNotExist", 40400, "ID不存在"),
|
||||||
ROLE_NOT_FOUNDED("RoleNotFounded", 40401, "角色不存在"),
|
ROLE_NOT_FOUNDED("RoleNotFounded", 40401, "角色不存在"),
|
||||||
ROLE_NAME_REPEAT("RoleNameRepeat", 40402, "角色名称重复"),
|
ROLE_NAME_REPEAT("RoleNameRepeat", 40402, "角色名称重复"),
|
||||||
|
@ -7,7 +7,7 @@ import com.jsl.oa.model.doData.RoleDO;
|
|||||||
import com.jsl.oa.model.doData.RoleUserDO;
|
import com.jsl.oa.model.doData.RoleUserDO;
|
||||||
import com.jsl.oa.model.doData.UserDO;
|
import com.jsl.oa.model.doData.UserDO;
|
||||||
import com.jsl.oa.model.voData.PermissionContentVo;
|
import com.jsl.oa.model.voData.PermissionContentVo;
|
||||||
import com.jsl.oa.model.voData.UserProfileVo;
|
import com.jsl.oa.model.voData.UserCurrentBackVO;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.springframework.validation.BindingResult;
|
import org.springframework.validation.BindingResult;
|
||||||
@ -15,6 +15,7 @@ import org.springframework.validation.ObjectError;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
import java.sql.Timestamp;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -166,8 +167,7 @@ public class Processing {
|
|||||||
public static @NotNull Boolean checkUserIsAdmin(HttpServletRequest request, @NotNull RoleMapper roleMapper) {
|
public static @NotNull Boolean checkUserIsAdmin(HttpServletRequest request, @NotNull RoleMapper roleMapper) {
|
||||||
RoleUserDO roleUserDO = roleMapper.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
|
RoleUserDO roleUserDO = roleMapper.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
|
||||||
if (roleUserDO != null) {
|
if (roleUserDO != null) {
|
||||||
//默认主键为1的用户为管理员
|
RoleDO roleDO = roleMapper.getRoleByRoleName("admin");
|
||||||
RoleDO roleDO = roleMapper.getRoleById(Long.valueOf(1));
|
|
||||||
return roleUserDO.getRid().equals(roleDO.getId());
|
return roleUserDO.getRid().equals(roleDO.getId());
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
@ -247,6 +247,50 @@ public class Processing {
|
|||||||
return " ";
|
return " ";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <h2>封装返回内容</h2>
|
||||||
|
* <hr/>
|
||||||
|
* 封装返回内容
|
||||||
|
*
|
||||||
|
* @param userDO 用户信息
|
||||||
|
* @return {@link BaseResponse}
|
||||||
|
*/
|
||||||
|
public static @NotNull UserCurrentBackVO ReturnUserInfo(@NotNull UserDO userDO, RoleMapper roleMapper) {
|
||||||
|
UserCurrentBackVO userCurrentBackVO = new UserCurrentBackVO();
|
||||||
|
// 获取用户角色
|
||||||
|
RoleUserDO getUserRole = roleMapper.getRoleUserByUid(userDO.getId());
|
||||||
|
if (getUserRole == null) {
|
||||||
|
getUserRole = new RoleUserDO();
|
||||||
|
getUserRole.setRid(0L)
|
||||||
|
.setCreatedAt(new Timestamp(System.currentTimeMillis()));
|
||||||
|
} else {
|
||||||
|
getUserRole.setUid(null);
|
||||||
|
}
|
||||||
|
userCurrentBackVO.setUser(new UserCurrentBackVO.ReturnUser()
|
||||||
|
.setId(userDO.getId())
|
||||||
|
.setJobId(userDO.getJobId())
|
||||||
|
.setUsername(userDO.getUsername())
|
||||||
|
.setAddress(userDO.getAddress())
|
||||||
|
.setPhone(userDO.getPhone())
|
||||||
|
.setEmail(userDO.getEmail())
|
||||||
|
.setAge(userDO.getAge())
|
||||||
|
.setSignature(userDO.getSignature())
|
||||||
|
.setAvatar(userDO.getAvatar())
|
||||||
|
.setNickname(userDO.getNickname())
|
||||||
|
.setSex(userDO.getSex())
|
||||||
|
.setEnabled(userDO.getEnabled())
|
||||||
|
.setAccountNoExpired(userDO.getAccountNoExpired())
|
||||||
|
.setCredentialsNoExpired(userDO.getCredentialsNoExpired())
|
||||||
|
.setRecommend(userDO.getRecommend())
|
||||||
|
.setAccountNoLocked(userDO.getAccountNoLocked())
|
||||||
|
.setDescription(userDO.getDescription())
|
||||||
|
.setCreatedAt(userDO.getCreatedAt())
|
||||||
|
.setUpdatedAt(userDO.getUpdatedAt()))
|
||||||
|
.setRole(new UserCurrentBackVO.ReturnUserRole()
|
||||||
|
.setRid(getUserRole.getRid()))
|
||||||
|
.setPermission(new ArrayList<>());
|
||||||
|
return userCurrentBackVO;
|
||||||
|
}
|
||||||
|
|
||||||
public static List<UserDO> orderUser(List<UserDO> userDOS,String order,String orderBy){
|
public static List<UserDO> orderUser(List<UserDO> userDOS,String order,String orderBy){
|
||||||
|
|
||||||
|
@ -34,24 +34,24 @@ public class ResultUtil {
|
|||||||
|
|
||||||
@Contract("_ -> new")
|
@Contract("_ -> new")
|
||||||
public static @NotNull BaseResponse error(@NotNull ErrorCode errorCode) {
|
public static @NotNull BaseResponse error(@NotNull ErrorCode errorCode) {
|
||||||
log.warn("失败: 错误码[" + errorCode.getCode() + "]: {} - {}", errorCode.getOutput(), errorCode.getMessage());
|
log.warn("失败: 错误码[" + errorCode.getCode() + "] {} - {}", errorCode.getOutput(), errorCode.getMessage());
|
||||||
return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage());
|
return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Contract("_, _ -> new")
|
@Contract("_, _ -> new")
|
||||||
public static @NotNull BaseResponse error(@NotNull ErrorCode errorCode, Object data) {
|
public static @NotNull BaseResponse error(@NotNull ErrorCode errorCode, Object data) {
|
||||||
log.warn("失败: 错误码[" + errorCode.getCode() + "]: {} - {}", errorCode.getOutput(), errorCode.getMessage());
|
log.warn("失败: 错误码[" + errorCode.getCode() + "] {} - {}", errorCode.getOutput(), errorCode.getMessage());
|
||||||
return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage(), data);
|
return new BaseResponse(errorCode.getOutput(), errorCode.getCode(), errorCode.getMessage(), data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Contract(value = "_, _, _, _ -> new", pure = true)
|
@Contract(value = "_, _, _, _ -> new", pure = true)
|
||||||
public static @NotNull BaseResponse error(String output, Integer code, String message, Object data) {
|
public static @NotNull BaseResponse error(String output, Integer code, String message, Object data) {
|
||||||
log.warn("失败: 错误码[" + code + "]: {} - {}", output, message);
|
log.warn("失败: 错误码[" + code + "] {} - {}", output, message);
|
||||||
return new BaseResponse(output, code, message, data);
|
return new BaseResponse(output, code, message, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static @NotNull ResponseEntity<BaseResponse> error(String output, Integer code, String message) {
|
public static @NotNull ResponseEntity<BaseResponse> error(String output, Integer code, String message) {
|
||||||
log.warn("失败: 错误码[" + code + "]: {} - {}", output, message);
|
log.warn("失败: 错误码[" + code + "] {} - {}", output, message);
|
||||||
return ResponseEntity.status(code)
|
return ResponseEntity.status(code)
|
||||||
.body(new BaseResponse(output, code, message));
|
.body(new BaseResponse(output, code, message));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user