Merge branch 'master' of https://git-fy.cn/WxxyDeveloper/JSL_OrganizeInternalOA
This commit is contained in:
commit
bdf5e57c0a
@ -5,6 +5,7 @@ import com.jsl.oa.utils.ErrorCode;
|
|||||||
import com.jsl.oa.utils.ResultUtil;
|
import com.jsl.oa.utils.ResultUtil;
|
||||||
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.aspectj.lang.ProceedingJoinPoint;
|
import org.aspectj.lang.ProceedingJoinPoint;
|
||||||
import org.aspectj.lang.annotation.Around;
|
import org.aspectj.lang.annotation.Around;
|
||||||
import org.aspectj.lang.annotation.Aspect;
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
@ -25,6 +26,7 @@ import java.util.Objects;
|
|||||||
* @version v1.0.0
|
* @version v1.0.0
|
||||||
* @since v1.0.0
|
* @since v1.0.0
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@Aspect
|
@Aspect
|
||||||
@Component
|
@Component
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@ -53,7 +55,6 @@ public class AuthControllerAspect {
|
|||||||
} else {
|
} else {
|
||||||
return ResultUtil.error(ErrorCode.TIMESTAMP_ERROR);
|
return ResultUtil.error(ErrorCode.TIMESTAMP_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -63,7 +64,7 @@ public class AuthControllerAspect {
|
|||||||
*
|
*
|
||||||
* @param pjp ProceedingJoinPoint对象
|
* @param pjp ProceedingJoinPoint对象
|
||||||
* @return {@link Object}
|
* @return {@link Object}
|
||||||
* @throws Throwable
|
* @throws Throwable 异常
|
||||||
*/
|
*/
|
||||||
@Around("execution(* com.jsl.oa.controllers.AuthController.authLogout(..)) || execution(* com.jsl.oa.controllers.AuthController.authChangePassword(..))")
|
@Around("execution(* com.jsl.oa.controllers.AuthController.authLogout(..)) || execution(* com.jsl.oa.controllers.AuthController.authChangePassword(..))")
|
||||||
public Object tokenControllerAround(ProceedingJoinPoint pjp) throws Throwable {
|
public Object tokenControllerAround(ProceedingJoinPoint pjp) throws Throwable {
|
||||||
@ -93,7 +94,7 @@ public class AuthControllerAspect {
|
|||||||
* @return {@link Boolean}
|
* @return {@link Boolean}
|
||||||
* @since v1.0.0
|
* @since v1.0.0
|
||||||
*/
|
*/
|
||||||
public Boolean checkTimestamp(@NotNull HttpServletRequest request) {
|
private Boolean checkTimestamp(@NotNull HttpServletRequest request) {
|
||||||
// 获取请求头中的时间戳
|
// 获取请求头中的时间戳
|
||||||
String getTimestamp = request.getHeader("Timestamp");
|
String getTimestamp = request.getHeader("Timestamp");
|
||||||
// 判断是否为空
|
// 判断是否为空
|
||||||
|
@ -60,6 +60,7 @@ public class PermissionController {
|
|||||||
|
|
||||||
@DeleteMapping("/permission/delete")
|
@DeleteMapping("/permission/delete")
|
||||||
public BaseResponse permissionDelete(@RequestParam Long pid,HttpServletRequest request){
|
public BaseResponse permissionDelete(@RequestParam Long pid,HttpServletRequest request){
|
||||||
|
log.info("请求接口[Delete]: /permission/delete");
|
||||||
// 判断是否有参数错误
|
// 判断是否有参数错误
|
||||||
if (pid == null) {
|
if (pid == null) {
|
||||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
|
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
|
||||||
|
@ -23,23 +23,45 @@ public class ProjectController {
|
|||||||
|
|
||||||
private final ProjectService projectService;
|
private final ProjectService projectService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目展示获取
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@GetMapping("/project/header/get")
|
@GetMapping("/project/header/get")
|
||||||
public BaseResponse projectGetHeader(@RequestParam(required = false) Integer id) {
|
public BaseResponse projectGetHeader(@RequestParam(required = false) Integer id) {
|
||||||
log.info("请求接口[GET]: /project/header/get");
|
log.info("请求接口[GET]: /project/header/get");
|
||||||
return projectService.getHeader(id);
|
return projectService.getHeader(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 全部项目的信息获取(打开项目页)
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@GetMapping("/project/get")
|
@GetMapping("/project/get")
|
||||||
public BaseResponse projectGet() {
|
public BaseResponse projectGet() {
|
||||||
|
log.info("请求接口[GET]: /project/get");
|
||||||
return projectService.get();
|
return projectService.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单个项目的详细
|
||||||
|
* @param name
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@GetMapping("/project/header")
|
@GetMapping("/project/header")
|
||||||
public BaseResponse projectGetByName(@RequestParam String name) {
|
public BaseResponse projectGetByName(@RequestParam String name) {
|
||||||
log.info("请求接口[GET]: /project/header");
|
log.info("请求接口[GET]: /project/header");
|
||||||
return projectService.getByName(name);
|
return projectService.getByName(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 增加项目展示
|
||||||
|
* @param projectShowVO
|
||||||
|
* @param request
|
||||||
|
* @param bindingResult
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@PostMapping("/project/header/add")
|
@PostMapping("/project/header/add")
|
||||||
public BaseResponse projectAddHeader(@RequestBody @Validated ProjectShowVO projectShowVO, HttpServletRequest request, @NotNull BindingResult bindingResult) {
|
public BaseResponse projectAddHeader(@RequestBody @Validated ProjectShowVO projectShowVO, HttpServletRequest request, @NotNull BindingResult bindingResult) {
|
||||||
log.info("请求接口[POST]: /project/header/add");
|
log.info("请求接口[POST]: /project/header/add");
|
||||||
@ -51,9 +73,17 @@ public class ProjectController {
|
|||||||
return projectService.addHeader(request, projectShowVO);
|
return projectService.addHeader(request, projectShowVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑展示的项目
|
||||||
|
* @param projectShowVO
|
||||||
|
* @param id
|
||||||
|
* @param request
|
||||||
|
* @param bindingResult
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@PutMapping("/project/header/edit")
|
@PutMapping("/project/header/edit")
|
||||||
public BaseResponse projectEditHeader(@RequestBody @Validated ProjectShowVO projectShowVO, @RequestParam Integer id, HttpServletRequest request, @NotNull BindingResult bindingResult) {
|
public BaseResponse projectEditHeader(@RequestBody @Validated ProjectShowVO projectShowVO, @RequestParam Integer id, HttpServletRequest request, @NotNull BindingResult bindingResult) {
|
||||||
log.info("请求接口[PUT]: /project/header/del");
|
log.info("请求接口[PUT]: /project/header/edit");
|
||||||
// 参数校验
|
// 参数校验
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
log.warn("参数校验失败: {}", Processing.getValidatedErrorList(bindingResult));
|
log.warn("参数校验失败: {}", Processing.getValidatedErrorList(bindingResult));
|
||||||
@ -67,35 +97,58 @@ public class ProjectController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除项目展示
|
||||||
|
* @param id
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@DeleteMapping("/project/header/del")
|
@DeleteMapping("/project/header/del")
|
||||||
public BaseResponse projectDelHeader(@RequestParam Integer id, HttpServletRequest request) {
|
public BaseResponse projectDelHeader(@RequestParam Integer id, HttpServletRequest request) {
|
||||||
log.info("请求接口[Delete]: /project/header/del");
|
log.info("请求接口[Delete]: /project/header/del");
|
||||||
return projectService.delHeader(id, request);
|
return projectService.delHeader(id, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目表进行,项目增加
|
||||||
|
* @param projectAdd
|
||||||
|
* @param bindingResult
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@PostMapping("/project/add")
|
@PostMapping("/project/add")
|
||||||
public BaseResponse projectAdd(@RequestBody @Validated ProjectInfoVO projectAdd, @NotNull BindingResult bindingResult) {
|
public BaseResponse projectAdd(HttpServletRequest request,@RequestBody @Validated ProjectInfoVO projectAdd, @NotNull BindingResult bindingResult) {
|
||||||
log.info("请求接口[PUT]: /project/header/del");
|
log.info("请求接口[POST]: /project/add");
|
||||||
// 判断是否有参数错误
|
// 判断是否有参数错误
|
||||||
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 projectService.projectAdd(projectAdd);
|
return projectService.projectAdd(request,projectAdd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目表进行,项目的修改
|
||||||
|
* @param projectEdit
|
||||||
|
* @param bindingResult
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@PutMapping("/project/edit")
|
@PutMapping("/project/edit")
|
||||||
public BaseResponse projectEdit(@RequestBody @Validated ProjectInfoVO projectEdit, @NotNull BindingResult bindingResult) {
|
public BaseResponse projectEdit(HttpServletRequest request,@RequestBody @Validated ProjectInfoVO projectEdit, @NotNull BindingResult bindingResult) {
|
||||||
log.info("请求接口[PUT]: /project/header/del");
|
log.info("请求接口[PUT]: /project/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 projectService.projectEdit(projectEdit);
|
return projectService.projectEdit(request,projectEdit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户获取所分到的项目模块
|
||||||
|
* @param uid
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@GetMapping("/project/cut/user")
|
@GetMapping("/project/cut/user")
|
||||||
public BaseResponse projectGetUserInCutting(@RequestParam Long uid) {
|
public BaseResponse projectGetUserInCutting(@RequestParam Long uid) {
|
||||||
log.info("请求接口[PUT]: /project/header/del");
|
log.info("请求接口[GET]: /project/cut/user");
|
||||||
// 判断是否有参数错误
|
// 判断是否有参数错误
|
||||||
if (uid == null) {
|
if (uid == null) {
|
||||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
|
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
|
||||||
@ -103,23 +156,34 @@ public class ProjectController {
|
|||||||
return projectService.projectGetUserInCutting(uid);
|
return projectService.projectGetUserInCutting(uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 给某用户分配项目模块
|
||||||
|
* @param uid
|
||||||
|
* @param pid
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@PostMapping("/project/cut/user/add")
|
@PostMapping("/project/cut/user/add")
|
||||||
public BaseResponse projectAddUserForCutting(@RequestParam Long uid, @RequestParam Long pid) {
|
public BaseResponse projectAddUserForCutting(HttpServletRequest request,@RequestParam Long uid, @RequestParam Long pid) {
|
||||||
log.info("请求接口[PUT]: /project/header/del");
|
log.info("请求接口[POST]: /project/cut/user/add");
|
||||||
// 判断是否有参数错误
|
// 判断是否有参数错误
|
||||||
if (uid == null || pid == null) {
|
if (uid == null || pid == null) {
|
||||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
|
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
|
||||||
}
|
}
|
||||||
return projectService.projectAddUserForCutting(uid, pid);
|
return projectService.projectAddUserForCutting(request,uid, pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除某项目记录
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@DeleteMapping("/project/delete")
|
@DeleteMapping("/project/delete")
|
||||||
public BaseResponse projectDelete(@RequestParam Long id){
|
public BaseResponse projectDelete(HttpServletRequest request,@RequestParam Long id){
|
||||||
log.info("请求接口[Delete]: /project/delete");
|
log.info("请求接口[Delete]: /project/delete");
|
||||||
if(id == null){
|
if(id == null){
|
||||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
|
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
|
||||||
}
|
}
|
||||||
return projectService.projectDelete(id);
|
return projectService.projectDelete(request,id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,7 +18,6 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -104,33 +103,28 @@ public class UserController {
|
|||||||
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) {
|
||||||
log.info("请求接口[GET]: /user/current");
|
log.info("请求接口[GET]: /user/current");
|
||||||
// 检查数据是否有问题
|
// 检查数据是否有问题
|
||||||
ArrayList<String> arrayForError = new ArrayList<>();
|
|
||||||
if (id != null && !id.isEmpty()) {
|
if (id != null && !id.isEmpty()) {
|
||||||
if (!Pattern.matches("^[0-9]+$", id)) {
|
if (!Pattern.matches("^[0-9]+$", id)) {
|
||||||
arrayForError.add("id 只能为数字");
|
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, "id 只能为数字");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (username != null && !username.isEmpty()) {
|
if (username != null && !username.isEmpty()) {
|
||||||
if (!Pattern.matches("^[0-9A-Za-z_]+$", username)) {
|
if (!Pattern.matches("^[0-9A-Za-z_]+$", username)) {
|
||||||
arrayForError.add("username 只允许 0-9、A-Z、a-z、_");
|
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, "username 只允许 0-9、A-Z、a-z、_");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (email != null && !email.isEmpty()) {
|
if (email != null && !email.isEmpty()) {
|
||||||
if (!Pattern.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", email)) {
|
if (!Pattern.matches("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", email)) {
|
||||||
arrayForError.add("email 格式不正确");
|
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, "email 格式不正确");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (phone != null && !phone.isEmpty()) {
|
if (phone != null && !phone.isEmpty()) {
|
||||||
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}$", phone)) {
|
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}$", phone)) {
|
||||||
arrayForError.add("手机格式不正确");
|
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, "手机格式不正确");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 检查是否出现错误
|
// 检查是否出现错误
|
||||||
if (arrayForError.isEmpty()) {
|
|
||||||
return userService.userCurrent(request, id, username, email, phone);
|
return userService.userCurrent(request, id, username, email, phone);
|
||||||
} else {
|
|
||||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, arrayForError);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -6,6 +6,9 @@ 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.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.utils.BaseResponse;
|
||||||
|
import com.jsl.oa.utils.ErrorCode;
|
||||||
|
import com.jsl.oa.utils.ResultUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.dao.DuplicateKeyException;
|
import org.springframework.dao.DuplicateKeyException;
|
||||||
|
@ -4,7 +4,6 @@ import com.jsl.oa.mapper.RoleMapper;
|
|||||||
import com.jsl.oa.mapper.UserMapper;
|
import com.jsl.oa.mapper.UserMapper;
|
||||||
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.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.UserCurrentBackVO;
|
||||||
@ -12,11 +11,8 @@ import com.jsl.oa.model.voData.UserEditProfileVO;
|
|||||||
import com.jsl.oa.utils.Processing;
|
import com.jsl.oa.utils.Processing;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.jetbrains.annotations.Contract;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.sql.Timestamp;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -25,7 +21,7 @@ import java.util.List;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class UserDAO {
|
public class UserDAO {
|
||||||
|
|
||||||
private final UserMapper userMapper;
|
public final UserMapper userMapper;
|
||||||
private final RoleMapper roleMapper;
|
private final RoleMapper roleMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -70,6 +66,11 @@ public class UserDAO {
|
|||||||
userMapper.userDelete(id);
|
userMapper.userDelete(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean userGetDelete(Long id) {
|
||||||
|
log.info("\t> 执行 DAO 层 UserDAO.userGetDelete 方法");
|
||||||
|
return userMapper.userGetDelete(id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户账号锁定
|
* 用户账号锁定
|
||||||
*
|
*
|
||||||
@ -106,84 +107,6 @@ public class UserDAO {
|
|||||||
return userCurrentDOList;
|
return userCurrentDOList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Contract("_ -> param1")
|
|
||||||
private @NotNull List<UserCurrentDO> userCurrentAll(@NotNull List<UserCurrentDO> userCurrentDO) {
|
|
||||||
log.info("\t> 执行 DAO 层 UserDAO.userCurrentAll 方法");
|
|
||||||
userCurrentDO.forEach(it -> {
|
|
||||||
it.setRole(roleMapper.getRoleUserByUid(it.getId()));
|
|
||||||
if (it.getRole() == null) {
|
|
||||||
RoleUserDO newRoleUserDO = new RoleUserDO();
|
|
||||||
newRoleUserDO.setRid(0L)
|
|
||||||
.setUid(it.getId())
|
|
||||||
.setCreatedAt(new Timestamp(System.currentTimeMillis()));
|
|
||||||
it.setRole(newRoleUserDO);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return userCurrentDO;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取当前用户信息
|
|
||||||
*
|
|
||||||
* @param uid 用户id
|
|
||||||
* @return {@link UserCurrentDO}
|
|
||||||
*/
|
|
||||||
public UserCurrentDO userCurrentById(Long uid) {
|
|
||||||
log.info("\t> 执行 DAO 层 UserDAO.userCurrentById 方法");
|
|
||||||
UserCurrentDO userCurrentDO = userMapper.getUserCurrentById(uid);
|
|
||||||
return getUserCurrentForRole(userCurrentDO);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取当前用户信息
|
|
||||||
*
|
|
||||||
* @param username 用户名
|
|
||||||
* @return {@link UserCurrentDO}
|
|
||||||
*/
|
|
||||||
public UserCurrentDO userCurrentByUsername(String username) {
|
|
||||||
log.info("\t> 执行 DAO 层 UserDAO.userCurrentByUsername 方法");
|
|
||||||
UserCurrentDO userCurrentDO = userMapper.getUserCurrentByUsername(username);
|
|
||||||
return getUserCurrentForRole(userCurrentDO);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取当前用户信息
|
|
||||||
*
|
|
||||||
* @param email 邮箱
|
|
||||||
* @return {@link UserCurrentDO}
|
|
||||||
*/
|
|
||||||
public UserCurrentDO userCurrentByEmail(String email) {
|
|
||||||
log.info("\t> 执行 DAO 层 UserDAO.userCurrentByEmail 方法");
|
|
||||||
UserCurrentDO userCurrentDO = userMapper.getUserCurrentByEmail(email);
|
|
||||||
return getUserCurrentForRole(userCurrentDO);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取当前用户信息
|
|
||||||
*
|
|
||||||
* @param phone 手机号
|
|
||||||
* @return {@link UserCurrentDO}
|
|
||||||
*/
|
|
||||||
public UserCurrentDO userCurrentByPhone(String phone) {
|
|
||||||
log.info("\t> 执行 DAO 层 UserDAO.userCurrentByPhone 方法");
|
|
||||||
UserCurrentDO userCurrentDO = userMapper.getUserCurrentByPhone(phone);
|
|
||||||
return getUserCurrentForRole(userCurrentDO);
|
|
||||||
}
|
|
||||||
|
|
||||||
private UserCurrentDO getUserCurrentForRole(UserCurrentDO userCurrentDO) {
|
|
||||||
log.info("\t> 执行 DAO 层 UserDAO.getUserCurrentForRole 方法");
|
|
||||||
if (userCurrentDO != null) {
|
|
||||||
RoleUserDO newRoleUserDO = new RoleUserDO();
|
|
||||||
newRoleUserDO.setRid(0L)
|
|
||||||
.setUid(userCurrentDO.getId())
|
|
||||||
.setCreatedAt(new Timestamp(System.currentTimeMillis()));
|
|
||||||
userCurrentDO.setRole(newRoleUserDO);
|
|
||||||
return userCurrentDO;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return
|
* @return
|
||||||
|
@ -42,7 +42,7 @@ public interface ProjectMapper {
|
|||||||
List<ProjectDO> get();
|
List<ProjectDO> get();
|
||||||
|
|
||||||
@Select("select * from organize_oa.oa_project where name=#{name}")
|
@Select("select * from organize_oa.oa_project where name=#{name}")
|
||||||
BaseResponse getByName(String name);
|
ProjectDO getByName(String name);
|
||||||
|
|
||||||
@Delete("DELETE FROM organize_oa.oa_project where id=#{id}")
|
@Delete("DELETE FROM organize_oa.oa_project where id=#{id}")
|
||||||
boolean deleteProject(Long id);
|
boolean deleteProject(Long id);
|
||||||
|
@ -2,7 +2,6 @@ package com.jsl.oa.mapper;
|
|||||||
|
|
||||||
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.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.UserEditProfileVO;
|
import com.jsl.oa.model.voData.UserEditProfileVO;
|
||||||
@ -27,7 +26,7 @@ public interface UserMapper {
|
|||||||
"VALUES (#{jobId}, #{username}, #{password}, #{address}, #{phone}, #{email}, #{age}, #{sex})")
|
"VALUES (#{jobId}, #{username}, #{password}, #{address}, #{phone}, #{email}, #{age}, #{sex})")
|
||||||
boolean insertUser(UserDO userDO);
|
boolean insertUser(UserDO userDO);
|
||||||
|
|
||||||
@Update("UPDATE organize_oa.oa_user SET enabled = 0 ,updated_at = CURRENT_TIMESTAMP WHERE id = #{id} ")
|
@Update("UPDATE organize_oa.oa_user SET is_delete = true ,updated_at = CURRENT_TIMESTAMP WHERE id = #{id}")
|
||||||
void userDelete(Long id);
|
void userDelete(Long id);
|
||||||
|
|
||||||
@Update("UPDATE organize_oa.oa_user SET account_no_locked = #{isLock} ,updated_at = CURRENT_TIMESTAMP WHERE id = #{id} ")
|
@Update("UPDATE organize_oa.oa_user SET account_no_locked = #{isLock} ,updated_at = CURRENT_TIMESTAMP WHERE id = #{id} ")
|
||||||
@ -60,19 +59,6 @@ public interface UserMapper {
|
|||||||
"ORDER BY `id` LIMIT #{page},#{limit}")
|
"ORDER BY `id` LIMIT #{page},#{limit}")
|
||||||
List<UserDO> getAllUserBySearch(UserAllCurrentVO userAllCurrentVO);
|
List<UserDO> getAllUserBySearch(UserAllCurrentVO userAllCurrentVO);
|
||||||
|
|
||||||
@Select("SELECT * FROM organize_oa.oa_user WHERE id = #{uid}")
|
|
||||||
UserCurrentDO getUserCurrentById(Long uid);
|
|
||||||
|
|
||||||
@Select("SELECT * FROM organize_oa.oa_user WHERE username = #{username}")
|
|
||||||
UserCurrentDO getUserCurrentByUsername(String username);
|
|
||||||
|
|
||||||
@Select("SELECT * FROM organize_oa.oa_user WHERE email = #{email}")
|
|
||||||
UserCurrentDO getUserCurrentByEmail(String email);
|
|
||||||
|
|
||||||
@Select("SELECT * FROM organize_oa.oa_user WHERE phone = #{phone}")
|
|
||||||
UserCurrentDO getUserCurrentByPhone(String phone);
|
|
||||||
|
|
||||||
|
|
||||||
@Select("SELECT * FROM organize_oa.oa_role_user WHERE uid = #{userId}")
|
@Select("SELECT * FROM organize_oa.oa_role_user WHERE uid = #{userId}")
|
||||||
RoleUserDO getRoleIdByUserId(Long userId);
|
RoleUserDO getRoleIdByUserId(Long userId);
|
||||||
|
|
||||||
@ -96,4 +82,7 @@ public interface UserMapper {
|
|||||||
|
|
||||||
@Select("SELECT * FROM organize_oa.oa_user WHERE phone = #{phone}")
|
@Select("SELECT * FROM organize_oa.oa_user WHERE phone = #{phone}")
|
||||||
UserDO getUserByPhone(String phone);
|
UserDO getUserByPhone(String phone);
|
||||||
|
|
||||||
|
@Select("SELECT is_delete FROM organize_oa.oa_user WHERE id = #{id}")
|
||||||
|
boolean userGetDelete(Long id);
|
||||||
}
|
}
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
package com.jsl.oa.model.doData;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.experimental.Accessors;
|
|
||||||
|
|
||||||
import java.sql.Timestamp;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Accessors(chain = true)
|
|
||||||
public class UserCurrentDO {
|
|
||||||
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 RoleUserDO role;
|
|
||||||
private Timestamp createdAt;
|
|
||||||
private Timestamp updatedAt;
|
|
||||||
}
|
|
@ -39,4 +39,5 @@ public class UserDO {
|
|||||||
private String description;
|
private String description;
|
||||||
private Timestamp createdAt;
|
private Timestamp createdAt;
|
||||||
private Timestamp updatedAt;
|
private Timestamp updatedAt;
|
||||||
|
private Boolean isDelete;
|
||||||
}
|
}
|
||||||
|
@ -50,5 +50,6 @@ public class UserCurrentBackVO {
|
|||||||
private String description;
|
private String description;
|
||||||
private Timestamp createdAt;
|
private Timestamp createdAt;
|
||||||
private Timestamp updatedAt;
|
private Timestamp updatedAt;
|
||||||
|
private Boolean isDelete;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,13 +8,13 @@ import com.jsl.oa.utils.BaseResponse;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
public interface ProjectService {
|
public interface ProjectService {
|
||||||
BaseResponse projectAdd(ProjectInfoVO projectAdd);
|
BaseResponse projectAdd(HttpServletRequest request,ProjectInfoVO projectAdd);
|
||||||
|
|
||||||
BaseResponse projectEdit(ProjectInfoVO projectEdit);
|
BaseResponse projectEdit(HttpServletRequest request,ProjectInfoVO projectEdit);
|
||||||
|
|
||||||
BaseResponse projectGetUserInCutting(Long uid);
|
BaseResponse projectGetUserInCutting(Long uid);
|
||||||
|
|
||||||
BaseResponse projectAddUserForCutting(Long uid, Long pid);
|
BaseResponse projectAddUserForCutting(HttpServletRequest request,Long uid, Long pid);
|
||||||
|
|
||||||
BaseResponse getHeader(Integer id);
|
BaseResponse getHeader(Integer id);
|
||||||
|
|
||||||
@ -28,5 +28,5 @@ public interface ProjectService {
|
|||||||
|
|
||||||
BaseResponse getByName(String name);
|
BaseResponse getByName(String name);
|
||||||
|
|
||||||
BaseResponse projectDelete(Long id);
|
BaseResponse projectDelete(HttpServletRequest request,Long id);
|
||||||
}
|
}
|
||||||
|
@ -31,25 +31,29 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
|
|
||||||
private final ProjectDAO projectDAO;
|
private final ProjectDAO projectDAO;
|
||||||
private final UserDAO userDAO;
|
private final UserDAO userDAO;
|
||||||
|
|
||||||
private final RoleMapper roleMapper;
|
private final RoleMapper roleMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse projectAdd(ProjectInfoVO projectAdd) {
|
public BaseResponse projectAdd(HttpServletRequest request,ProjectInfoVO projectAdd) {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.projectAdd 方法");
|
log.info("\t> 执行 Service 层 ProjectService.projectAdd 方法");
|
||||||
|
if(Processing.checkUserIsAdmin(request,roleMapper)){
|
||||||
projectDAO.projectAdd(projectAdd);
|
projectDAO.projectAdd(projectAdd);
|
||||||
return ResultUtil.success("添加成功");
|
return ResultUtil.success("添加成功");
|
||||||
|
}else return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse projectEdit(@NotNull ProjectInfoVO projectEdit) {
|
public BaseResponse projectEdit(HttpServletRequest request,@NotNull ProjectInfoVO projectEdit) {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.projectEdit 方法");
|
log.info("\t> 执行 Service 层 ProjectService.projectEdit 方法");
|
||||||
|
if (Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||||
//判断项目是否存在
|
//判断项目是否存在
|
||||||
if (projectDAO.isExistProject(projectEdit.getId())) {
|
if (projectDAO.isExistProject(projectEdit.getId())) {
|
||||||
projectDAO.projectEdit(projectEdit);
|
projectDAO.projectEdit(projectEdit);
|
||||||
return ResultUtil.success("修改成功");
|
return ResultUtil.success("修改成功");
|
||||||
} else {
|
} else return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
|
||||||
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
|
} else return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -64,13 +68,14 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse projectAddUserForCutting(Long uid, Long pid) {
|
public BaseResponse projectAddUserForCutting(HttpServletRequest request,Long uid, Long pid) {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.projectAddUserForCutting 方法");
|
log.info("\t> 执行 Service 层 ProjectService.projectAddUserForCutting 方法");
|
||||||
|
if(Processing.checkUserIsAdmin(request,roleMapper)){
|
||||||
if (userDAO.isExistUser(uid)) {
|
if (userDAO.isExistUser(uid)) {
|
||||||
projectDAO.projectAddUserForCutting(uid, pid);
|
projectDAO.projectAddUserForCutting(uid, pid);
|
||||||
return ResultUtil.success();
|
return ResultUtil.success();
|
||||||
}
|
}else return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||||
return null;
|
}else return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -182,15 +187,19 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
@Override
|
@Override
|
||||||
public BaseResponse getByName(String name) {
|
public BaseResponse getByName(String name) {
|
||||||
log.info("\t> 执行 Service 层 ProjectService.getByName 方法");
|
log.info("\t> 执行 Service 层 ProjectService.getByName 方法");
|
||||||
return ResultUtil.success(projectDAO.getByName(name));
|
if (projectDAO.getByName(name)==null){
|
||||||
|
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
|
||||||
|
}
|
||||||
|
else return ResultUtil.success(projectDAO.getByName(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse projectDelete(Long id) {
|
public BaseResponse projectDelete(HttpServletRequest request,Long id) {
|
||||||
|
if(Processing.checkUserIsAdmin(request,roleMapper)) {
|
||||||
if (!projectDAO.projectDelete(id)) {
|
if (!projectDAO.projectDelete(id)) {
|
||||||
return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR);
|
return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR);
|
||||||
}
|
}else return ResultUtil.success();
|
||||||
return ResultUtil.success();
|
}else return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.jsl.oa.services.impl;
|
package com.jsl.oa.services.impl;
|
||||||
|
|
||||||
import com.jsl.oa.dao.UserDAO;
|
import com.jsl.oa.dao.UserDAO;
|
||||||
|
import com.jsl.oa.mapper.PermissionMapper;
|
||||||
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.RoleUserDO;
|
||||||
import com.jsl.oa.model.doData.UserDO;
|
import com.jsl.oa.model.doData.UserDO;
|
||||||
@ -25,6 +26,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
|
|
||||||
private final UserDAO userDAO;
|
private final UserDAO userDAO;
|
||||||
private final RoleMapper roleMapper;
|
private final RoleMapper roleMapper;
|
||||||
|
private final PermissionMapper permissionMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserDO getUserInfoByUsername(String username) {
|
public UserDO getUserInfoByUsername(String username) {
|
||||||
@ -33,18 +35,27 @@ public class UserServiceImpl implements UserService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse userDelete(HttpServletRequest request, Long id) {
|
public BaseResponse userDelete(HttpServletRequest request, Long id) {
|
||||||
|
log.info("\t> 执行 Service 层 UserService.userDelete 方法");
|
||||||
//判断用户是否存在
|
//判断用户是否存在
|
||||||
if (userDAO.isExistUser(id)) {
|
if (userDAO.isExistUser(id)) {
|
||||||
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
}
|
}
|
||||||
|
// 用户是否已删除
|
||||||
|
if (!userDAO.userGetDelete(id)) {
|
||||||
userDAO.userDelete(id);
|
userDAO.userDelete(id);
|
||||||
return ResultUtil.success("删除成功");
|
return ResultUtil.success("删除成功");
|
||||||
} else return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
} else {
|
||||||
|
return ResultUtil.error(ErrorCode.USER_ALREADY_DELETE);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse userLock(HttpServletRequest request, Long id, Long isLock) {
|
public BaseResponse userLock(HttpServletRequest request, Long id, Long isLock) {
|
||||||
|
log.info("\t> 执行 Service 层 UserService.userLock 方法");
|
||||||
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
}
|
}
|
||||||
@ -57,6 +68,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse userEditProfile(@NotNull UserEditProfileVO userEditProfileVO) {
|
public BaseResponse userEditProfile(@NotNull UserEditProfileVO userEditProfileVO) {
|
||||||
|
log.info("\t> 执行 Service 层 UserService.userEditProfile 方法");
|
||||||
if (userDAO.isExistUser(userEditProfileVO.getId())) {
|
if (userDAO.isExistUser(userEditProfileVO.getId())) {
|
||||||
userDAO.userEditProfile(userEditProfileVO);
|
userDAO.userEditProfile(userEditProfileVO);
|
||||||
return ResultUtil.success("修改成功");
|
return ResultUtil.success("修改成功");
|
||||||
@ -65,6 +77,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse userCurrentAll(HttpServletRequest request, @NotNull UserAllCurrentVO userAllCurrentVO) {
|
public BaseResponse userCurrentAll(HttpServletRequest request, @NotNull UserAllCurrentVO userAllCurrentVO) {
|
||||||
|
log.info("\t> 执行 Service 层 UserService.userCurrentAll 方法");
|
||||||
// 检查是否是管理员用户
|
// 检查是否是管理员用户
|
||||||
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
@ -102,6 +115,16 @@ 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) {
|
||||||
|
log.info("\t> 执行 Service 层 UserService.userCurrent 方法");
|
||||||
|
// 检查用户是否有权限继续
|
||||||
|
log.info("\t> 检查用户是否有权限继续");
|
||||||
|
BaseResponse userAbleNext = Processing.checkUserAbleToNext(request, userDAO.userMapper);
|
||||||
|
if (userAbleNext != null) {
|
||||||
|
return userAbleNext;
|
||||||
|
}
|
||||||
|
if (!Processing.checkUserHasPermission(request, roleMapper, permissionMapper, "<permission>")) {
|
||||||
|
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
|
||||||
|
}
|
||||||
if (id == null && username == null && email == null && phone == null) {
|
if (id == null && username == null && email == null && phone == null) {
|
||||||
// Token获取信息
|
// Token获取信息
|
||||||
UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request));
|
UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request));
|
||||||
@ -138,6 +161,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse userAdd(UserAddVo userAddVo, HttpServletRequest request) {
|
public BaseResponse userAdd(UserAddVo userAddVo, HttpServletRequest request) {
|
||||||
|
log.info("\t> 执行 Service 层 UserService.userAdd 方法");
|
||||||
// 检测用户是否为管理员
|
// 检测用户是否为管理员
|
||||||
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
@ -206,6 +230,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse userProfileGet(HttpServletRequest request) {
|
public BaseResponse userProfileGet(HttpServletRequest request) {
|
||||||
|
log.info("\t> 执行 Service 层 UserService.userProfileGet 方法");
|
||||||
// 获取用户Id
|
// 获取用户Id
|
||||||
UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request));
|
UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request));
|
||||||
UserProfileVo userProfileVo = new UserProfileVo();
|
UserProfileVo userProfileVo = new UserProfileVo();
|
||||||
|
@ -15,6 +15,7 @@ public enum ErrorCode {
|
|||||||
USER_ROLE_NOT_EXIST("UserRoleNotExist", 40016, "用户角色不存在"),
|
USER_ROLE_NOT_EXIST("UserRoleNotExist", 40016, "用户角色不存在"),
|
||||||
USER_ROLE_NOT_MANAGER("UserRoleNotExist", 40017, "用户角色非管理员"),
|
USER_ROLE_NOT_MANAGER("UserRoleNotExist", 40017, "用户角色非管理员"),
|
||||||
USER_NOT_CHANGE_TO_THEMSELVES("UserNotChangeToThemselves", 40018, "用户不能改变自己的角色"),
|
USER_NOT_CHANGE_TO_THEMSELVES("UserNotChangeToThemselves", 40018, "用户不能改变自己的角色"),
|
||||||
|
NOT_PERMISSION("NotPermission", 40019, "没有权限"),
|
||||||
UNAUTHORIZED("Unauthorized", 40100, "未授权"),
|
UNAUTHORIZED("Unauthorized", 40100, "未授权"),
|
||||||
TOKEN_EXPIRED("TokenExpired", 40101, "Token已过期"),
|
TOKEN_EXPIRED("TokenExpired", 40101, "Token已过期"),
|
||||||
VERIFICATION_INVALID("VerificationInvalid", 40102, "验证码无效"),
|
VERIFICATION_INVALID("VerificationInvalid", 40102, "验证码无效"),
|
||||||
@ -26,6 +27,9 @@ public enum ErrorCode {
|
|||||||
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, "请为用户添加角色"),
|
PLEASE_ASSIGN_ROLE_TO_USER("PleaseAssignRoleToUser", 40305, "请为用户添加角色"),
|
||||||
|
USER_ALREADY_DELETE("UserAlreadyDelete", 40306, "用户已被删除"),
|
||||||
|
USER_DISABLED("UserDisabled", 40307, "用户已被禁用"),
|
||||||
|
USER_LOCKED("UserLocked", 40308, "用户已被锁定"),
|
||||||
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, "角色名称重复"),
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package com.jsl.oa.utils;
|
package com.jsl.oa.utils;
|
||||||
|
|
||||||
import com.jsl.oa.exception.ClassCopyException;
|
import com.jsl.oa.exception.ClassCopyException;
|
||||||
|
import com.jsl.oa.mapper.PermissionMapper;
|
||||||
import com.jsl.oa.mapper.RoleMapper;
|
import com.jsl.oa.mapper.RoleMapper;
|
||||||
|
import com.jsl.oa.mapper.UserMapper;
|
||||||
import com.jsl.oa.model.doData.PermissionDO;
|
import com.jsl.oa.model.doData.PermissionDO;
|
||||||
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;
|
||||||
@ -213,7 +215,7 @@ public class Processing {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//如果获取的值不为数字且等于“”,则跳过
|
//如果获取的值不为数字且等于“”,则跳过
|
||||||
if ( !(value instanceof Number) && value.equals("")) {
|
if ("".equals(value)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -285,7 +287,8 @@ public class Processing {
|
|||||||
.setAccountNoLocked(userDO.getAccountNoLocked())
|
.setAccountNoLocked(userDO.getAccountNoLocked())
|
||||||
.setDescription(userDO.getDescription())
|
.setDescription(userDO.getDescription())
|
||||||
.setCreatedAt(userDO.getCreatedAt())
|
.setCreatedAt(userDO.getCreatedAt())
|
||||||
.setUpdatedAt(userDO.getUpdatedAt()))
|
.setUpdatedAt(userDO.getUpdatedAt())
|
||||||
|
.setIsDelete(userDO.getIsDelete()))
|
||||||
.setRole(new UserCurrentBackVO.ReturnUserRole()
|
.setRole(new UserCurrentBackVO.ReturnUserRole()
|
||||||
.setRid(getUserRole.getRid()))
|
.setRid(getUserRole.getRid()))
|
||||||
.setPermission(new ArrayList<>());
|
.setPermission(new ArrayList<>());
|
||||||
@ -343,7 +346,6 @@ public class Processing {
|
|||||||
return vos;
|
return vos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 封装PermissionContentVo的子类,被convertToVoList方法调用
|
* @Description: 封装PermissionContentVo的子类,被convertToVoList方法调用
|
||||||
* @Date: 2024/1/20
|
* @Date: 2024/1/20
|
||||||
@ -367,6 +369,31 @@ public class Processing {
|
|||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static @Nullable BaseResponse checkUserAbleToNext(HttpServletRequest request, @NotNull UserMapper userMapper) {
|
||||||
|
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||||
|
// 获取用户信息
|
||||||
|
UserDO userDO = userMapper.getUserById(userId);
|
||||||
|
// 用户不存在
|
||||||
|
if (userDO == null) {
|
||||||
|
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||||
|
}
|
||||||
|
// 用户是否被禁用
|
||||||
|
if (!userDO.getEnabled()) {
|
||||||
|
return ResultUtil.error(ErrorCode.USER_DISABLED);
|
||||||
|
}
|
||||||
|
// 用户是否被封禁
|
||||||
|
if (!userDO.getAccountNoLocked()) {
|
||||||
|
return ResultUtil.error(ErrorCode.USER_LOCKED);
|
||||||
|
}
|
||||||
|
// 用户是否被删除
|
||||||
|
if (userDO.getIsDelete()) {
|
||||||
|
return ResultUtil.error(ErrorCode.USER_ALREADY_DELETE);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean checkUserHasPermission(HttpServletRequest request, RoleMapper roleMapper, PermissionMapper permissionMapper, String permission) {
|
||||||
|
// TODO: 10003-用户权限及权限组校验
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ spring:
|
|||||||
port: 6379
|
port: 6379
|
||||||
password: 123456
|
password: 123456
|
||||||
profiles:
|
profiles:
|
||||||
active: test
|
active: dev
|
||||||
mybatis:
|
mybatis:
|
||||||
configuration:
|
configuration:
|
||||||
map-underscore-to-camel-case: true
|
map-underscore-to-camel-case: true
|
Loading…
x
Reference in New Issue
Block a user