Merge remote-tracking branch 'origin/master'

This commit is contained in:
176yunxuan 2024-01-20 16:02:07 +08:00
commit 94e1fa4cb8
20 changed files with 326 additions and 28 deletions

View File

@ -93,3 +93,21 @@ id为主键不管团队成员信息定义valueorganize_user_info
6. `created_at`: 创建时间 6. `created_at`: 创建时间
7. `updated_at`: 修改时间 7. `updated_at`: 修改时间
8. `autohr`: 填写作者 8. `autohr`: 填写作者
## 新闻信息展示
1. `order`: 展示顺序,可选值[asc|desc]
2. `data`: 数据内容
1. `display_order`:展示顺序
2. `title` 新闻标题
3. `content` 新闻内容
4. `tags` 标签
5. `likes` 点赞数
6. `comments` 评论数
7. `status` 新闻状态
8. `is_active` 是否展示[true|false]
9. `created_at` 创建时间
10. `updated_at` 更新时间
11. `author` 作者名称

View File

@ -44,4 +44,6 @@ public class MailConfiguration {
return mailSender; return mailSender;
} }
} }

View File

@ -73,4 +73,10 @@ public class InfoController {
log.info("请求接口[PUT]: /info/header-image/edit-setting"); log.info("请求接口[PUT]: /info/header-image/edit-setting");
return infoService.editSettingHeaderImage(request, showType); return infoService.editSettingHeaderImage(request, showType);
} }
@GetMapping("info/header-user/get")
public BaseResponse infoGetHeaderUser(@RequestParam String order,@RequestParam String orderBy,HttpServletRequest request){
log.info("请求接口[GET]: /info/header-user/get");
return infoService.getHeaderUser(request,order,orderBy);
}
} }

View File

@ -1,10 +1,15 @@
package com.jsl.oa.controllers; package com.jsl.oa.controllers;
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;
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.springframework.validation.BindingResult;
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;
@ -31,4 +36,18 @@ public class PermissionController {
} else return permissionService.permissionUser(request,uid); } else return permissionService.permissionUser(request,uid);
} }
@GetMapping("/permission/get")
public BaseResponse permissionGet(HttpServletRequest request){
return permissionService.permissionGet(request);
}
@PutMapping("/permission/edit")
public BaseResponse permissionEdit(@RequestBody @Validated PermissionEditVo permissionEditVo, BindingResult bindingResult, HttpServletRequest request){
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return permissionService.permissionEdit(permissionEditVo,request);
}
} }

View File

@ -142,6 +142,13 @@ public class RoleController {
} }
/**
* @Description: 改变用户角色权限信息
* @Date: 2024/1/20
* @Param request:
* @Param uid: 用户id
* @Param rid: 角色id
**/
@PutMapping("role/user/change") @PutMapping("role/user/change")
public BaseResponse roleChangeUser(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long rid) { public BaseResponse roleChangeUser(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long rid) {
log.info("请求接口[POST]: /role/user/change"); log.info("请求接口[POST]: /role/user/change");
@ -151,4 +158,10 @@ public class RoleController {
} }
return roleService.roleChangeUser(request, uid, rid); return roleService.roleChangeUser(request, uid, rid);
} }
} }

View File

@ -149,7 +149,7 @@ public class UserController {
/** /**
* @Description: TODO 管理员添加用户 * @Description: 管理员添加用户
* @Date: 2024/1/18 * @Date: 2024/1/18
* @Param userEditProfileVO: * @Param userEditProfileVO:
* @Param bindingResult: * @Param bindingResult:
@ -178,4 +178,7 @@ public class UserController {
public BaseResponse userProfileGet(HttpServletRequest request) { public BaseResponse userProfileGet(HttpServletRequest request) {
return userService.userProfileGet(request); return userService.userProfileGet(request);
} }
} }

View File

@ -236,4 +236,9 @@ public class UserDAO {
} }
return false; return false;
} }
public List<UserDO> getRecommendUser(){
return userMapper.getRecommendUser();
}
} }

View File

@ -1,8 +1,11 @@
package com.jsl.oa.mapper; package com.jsl.oa.mapper;
import com.jsl.oa.model.doData.PermissionDO;
import com.jsl.oa.model.doData.RolePermissionDO;
import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List; import java.util.List;
@ -16,4 +19,17 @@ public interface PermissionMapper {
"from organize_oa.oa_role_permissions where rid=" + "from organize_oa.oa_role_permissions where rid=" +
"(select rid from organize_oa.oa_role_user where uid=#{uid}) )") "(select rid from organize_oa.oa_role_user where uid=#{uid}) )")
List<String> permissionUser(Long uid); List<String> permissionUser(Long uid);
@Select("SELECT * FROM organize_oa.oa_permissions where id=#{id}")
PermissionDO permissionGetById(Long id);
@Select("SELECT * FROM organize_oa.oa_role_permissions where pid=#{pid}")
RolePermissionDO rolePermissionGetByPid(Long pid);
@Select("SELECT * FROM organize_oa.oa_permissions")
List<PermissionDO> getAllPermission();
@Update("UPDATE organize_oa.oa_permissions SET pid = #{pid}, name = #{name}, code = #{code}, " +
"type = #{type} WHERE id = #{id}")
boolean updatePermission(PermissionDO permissionDO);
} }

View File

@ -1,5 +1,6 @@
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;
@ -79,6 +80,8 @@ public interface UserMapper {
@Select("SELECT * FROM organize_oa.oa_role WHERE id = #{roleId}") @Select("SELECT * FROM organize_oa.oa_role WHERE id = #{roleId}")
RoleDO getRoleById(Long roleId); RoleDO getRoleById(Long roleId);
@Select("SELECT * FROM organize_oa.oa_user WHERE recommend = 1")
List<UserDO> getRecommendUser();
@Update("UPDATE organize_oa.oa_user " + @Update("UPDATE organize_oa.oa_user " +
@ -86,6 +89,7 @@ public interface UserMapper {
"signature = #{signature}, sex = #{sex}, avatar = #{avatar}, nickname = #{nickname}, " + "signature = #{signature}, sex = #{sex}, avatar = #{avatar}, nickname = #{nickname}, " +
"description = #{description} " + "description = #{description} " +
"WHERE id = #{id}") "WHERE id = #{id}")
void updateUser(UserDO userDO); void updateUser(UserDO userDO);
} }

View File

@ -0,0 +1,18 @@
package com.jsl.oa.model.voData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.util.List;
@Data
public class PermissionContentVo {
private Long id;
private String name;
private String code;
private Short type;
private List<PermissionContentVo> children;
}

View File

@ -0,0 +1,20 @@
package com.jsl.oa.model.voData;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.sql.Timestamp;
@Data
public class PermissionEditVo {
@NotNull
private Long id;
private Long pid;
private String name;
private String code;
private Short type;
}

View File

@ -1,14 +1,12 @@
package com.jsl.oa.model.voData; package com.jsl.oa.model.voData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import lombok.Value;
import org.springframework.boot.context.properties.bind.DefaultValue;
@Data @Data
public class UserProfile { public class UserProfileVo {
private Long id;
private String username; private String username;
private String address; private String address;
private String phone; private String phone;

View File

@ -67,4 +67,6 @@ public interface InfoService {
* @return {@link BaseResponse} * @return {@link BaseResponse}
*/ */
BaseResponse editSettingHeaderImage(HttpServletRequest request, Boolean showType); BaseResponse editSettingHeaderImage(HttpServletRequest request, Boolean showType);
BaseResponse getHeaderUser(HttpServletRequest request, String order, String orderBy);
} }

View File

@ -1,5 +1,6 @@
package com.jsl.oa.services; package com.jsl.oa.services;
import com.jsl.oa.model.voData.PermissionEditVo;
import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.BaseResponse;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -9,4 +10,8 @@ public interface PermissionService {
BaseResponse permissionAdd(HttpServletRequest request, Long rid, Long pid); BaseResponse permissionAdd(HttpServletRequest request, Long rid, Long pid);
BaseResponse permissionUser(HttpServletRequest request, Long uid); BaseResponse permissionUser(HttpServletRequest request, Long uid);
BaseResponse permissionGet(HttpServletRequest request);
BaseResponse permissionEdit(PermissionEditVo permissionEditVo, HttpServletRequest request);
} }

View File

@ -3,8 +3,10 @@ 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.business.info.CarouselVO; import com.jsl.oa.model.voData.business.info.CarouselVO;
import com.jsl.oa.services.InfoService; import com.jsl.oa.services.InfoService;
import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.BaseResponse;
@ -18,6 +20,7 @@ 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.ArrayList;
import java.util.List;
@Slf4j @Slf4j
@Service @Service
@ -138,4 +141,34 @@ public class InfoServiceImpl implements InfoService {
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR); return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
} }
} }
@Override
public BaseResponse getHeaderUser(HttpServletRequest request, String order, String orderBy) {
// 用户权限校验
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 检查参数是否错误
if( !(order.equals("asc")||order.equals("desc")) || !(orderBy.equals("userName")||orderBy.equals("userId")) ){
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
}
//获取用户信息
List<UserDO> userDOS = userDAO.getRecommendUser();
//进行排序
userDOS = Processing.orderUser(userDOS,order,orderBy);
//封装VO类
List<UserProfileVo> userProfileVos = new ArrayList<>();
for(UserDO userDO :userDOS){
UserProfileVo userProfileVo = new UserProfileVo();
Processing.copyProperties(userDO,userProfileVo);
userProfileVo.setSex(Processing.getSex(userDO.getSex()));
userProfileVos.add(userProfileVo);
}
return ResultUtil.success(userProfileVos);
}
} }

View File

@ -1,8 +1,14 @@
package com.jsl.oa.services.impl; package com.jsl.oa.services.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jsl.oa.dao.UserDAO; import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.PermissionMapper; import com.jsl.oa.mapper.PermissionMapper;
import com.jsl.oa.mapper.RoleMapper; import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.doData.PermissionDO;
import com.jsl.oa.model.doData.RolePermissionDO;
import com.jsl.oa.model.voData.PermissionContentVo;
import com.jsl.oa.model.voData.PermissionEditVo;
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;
@ -12,7 +18,10 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@ -28,7 +37,7 @@ public class PermissionServiceImpl implements PermissionService {
return ResultUtil.error(ErrorCode.NOT_ADMIN); return ResultUtil.error(ErrorCode.NOT_ADMIN);
} }
permissionMapper.permissionAdd(rid,pid); permissionMapper.permissionAdd(rid,pid);
return null; return ResultUtil.success();
} }
@Override @Override
@ -39,4 +48,41 @@ public class PermissionServiceImpl implements PermissionService {
} }
return ResultUtil.error(ErrorCode.USER_NOT_EXIST); return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
} }
@Override
public BaseResponse permissionGet(HttpServletRequest request) {
//检验用户权限是否为管理员
if(!Processing.checkUserIsAdmin(request,roleMapper)){
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
//获取所有权限数据
List<PermissionDO> permissionDOS = permissionMapper.getAllPermission();
//将数据按父子类封装
List<PermissionContentVo> permissionContentVos = Processing.convertToVoList(permissionDOS);
return ResultUtil.success(permissionContentVos);
}
@Override
public BaseResponse permissionEdit(PermissionEditVo permissionEditVo, HttpServletRequest request) {
//检验用户权限是否为管理员
if(!Processing.checkUserIsAdmin(request,roleMapper)){
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
//根据id获取对应permission数据
PermissionDO permissionDO = permissionMapper.permissionGetById(permissionEditVo.getId());
if(permissionDO == null){
return ResultUtil.error(ErrorCode.PERMISSION_NOT_EXIST);
}
//传递要编辑的数据
Processing.copyProperties(permissionEditVo,permissionDO);
//更新permission
if(!permissionMapper.updatePermission(permissionDO)){
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
}
return ResultUtil.success();
}
} }

View File

@ -1,15 +1,13 @@
package com.jsl.oa.services.impl; package com.jsl.oa.services.impl;
import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.RoleDAO;
import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.exception.ClassCopyException; import com.jsl.oa.exception.ClassCopyException;
import com.jsl.oa.model.doData.RoleDO; 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.BaseResponse; import com.jsl.oa.utils.*;
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;
@ -22,6 +20,7 @@ import java.util.regex.Pattern;
public class RoleServiceImpl implements RoleService { public class RoleServiceImpl implements RoleService {
private final RoleDAO roleDAO; private final RoleDAO roleDAO;
private final UserDAO userDAO;
@Override @Override
public BaseResponse roleAddUser(HttpServletRequest request, Long uid, Long rid) { public BaseResponse roleAddUser(HttpServletRequest request, Long uid, Long rid) {
@ -41,10 +40,18 @@ 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)){
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
}
//检测要改变的用户权限是否为自己
String token = request.getHeader("Authorization").replace("Bearer ", "");
if(uid == JwtUtil.getUserId(token)){
return ResultUtil.error(ErrorCode.USER_NOT_CHANGE_TO_THEMSELVES);
}
//检测用户权限是否为管理员
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) { if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
// TODO: 2023-01-20|List:10002-未判断用户是否存在
// TODO: 2023-01-20|List:10003-保险起见默认用户主键为 1 的用户为超级管理员
// 不可以修改自己权限组避免修改后不存在管理员无管理组
if (!roleDAO.roleChangeUser(uid, rid)) { if (!roleDAO.roleChangeUser(uid, rid)) {
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR); return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
} }

View File

@ -190,15 +190,15 @@ public class UserServiceImpl implements UserService {
public BaseResponse userProfileGet(HttpServletRequest request) { public BaseResponse userProfileGet(HttpServletRequest request) {
// 获取用户Id // 获取用户Id
UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)); UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request));
UserProfile userProfile = new UserProfile(); UserProfileVo userProfileVo = new UserProfileVo();
Processing.copyProperties(userDO, userProfile); Processing.copyProperties(userDO, userProfileVo);
userProfile.setSex(Processing.getSex(userDO.getSex())); userProfileVo.setSex(Processing.getSex(userDO.getSex()));
return ResultUtil.success(userProfile); return ResultUtil.success(userProfileVo);
} }
/** /**
* @Description: TODO 判断用户是否为管理员 * @Description: 判断用户是否为管理员
* @Date: 2024/1/18 * @Date: 2024/1/18
* @Param request: 请求头 * @Param request: 请求头
**/ **/

View File

@ -12,8 +12,9 @@ public enum ErrorCode {
USER_EXIST("UserExist", 40013, "用户名已存在"), USER_EXIST("UserExist", 40013, "用户名已存在"),
TIMESTAMP_ERROR("TimestampError", 40014, "时间戳错误"), TIMESTAMP_ERROR("TimestampError", 40014, "时间戳错误"),
USER_NOT_EXIST("UserNotExist", 40015, "用户不存在"), USER_NOT_EXIST("UserNotExist", 40015, "用户不存在"),
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, "用户不能改变自己的角色"),
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,7 +27,8 @@ public enum ErrorCode {
PASSWORD_NOT_SAME("PasswordNotSame", 40304, "两次密码不一致"), PASSWORD_NOT_SAME("PasswordNotSame", 40304, "两次密码不一致"),
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, "角色名称重复"),
PERMISSION_NOT_EXIST("permissionNotExist",40501,"权限不存在"),
DATABASE_INSERT_ERROR("DatabaseInsertError", 50010, "数据库插入错误"), DATABASE_INSERT_ERROR("DatabaseInsertError", 50010, "数据库插入错误"),
DATABASE_UPDATE_ERROR("DatabaseUpdateError", 50011, "数据库更新错误"), DATABASE_UPDATE_ERROR("DatabaseUpdateError", 50011, "数据库更新错误"),
DATABASE_DELETE_ERROR("DatabaseDeleteError", 50012, "数据库删除错误"), DATABASE_DELETE_ERROR("DatabaseDeleteError", 50012, "数据库删除错误"),

View File

@ -2,8 +2,12 @@ package com.jsl.oa.utils;
import com.jsl.oa.exception.ClassCopyException; import com.jsl.oa.exception.ClassCopyException;
import com.jsl.oa.mapper.RoleMapper; import com.jsl.oa.mapper.RoleMapper;
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;
import com.jsl.oa.model.doData.UserDO;
import com.jsl.oa.model.voData.PermissionContentVo;
import com.jsl.oa.model.voData.UserProfileVo;
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;
@ -11,8 +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.util.ArrayList; import java.util.*;
import java.util.Random;
/** /**
* <h1>自定义快捷工具类</h1> * <h1>自定义快捷工具类</h1>
@ -163,7 +166,8 @@ 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) {
RoleDO roleDO = roleMapper.getRoleByRoleName("admin"); //默认主键为1的用户为管理员
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;
@ -178,7 +182,7 @@ public class Processing {
/** /**
* @Description: TODO VO类与实体类属性赋值 * @Description: VO类与实体类属性赋值
* @Date: 2024/1/18 * @Date: 2024/1/18
* @Param source: * @Param source:
* @Param dest: * @Param dest:
@ -225,10 +229,10 @@ public class Processing {
return null; return null;
} }
/**
* @Description: TODO 将性别转为字符形式
* @Date: 2024/1/18
/**
* @Description: 将性别转为字符形式
* @Date: 2024/1/18
**/ **/
public static String getSex(short sex){ public static String getSex(short sex){
if(sex == 0){ if(sex == 0){
@ -244,4 +248,81 @@ public class Processing {
} }
public static List<UserDO> orderUser(List<UserDO> userDOS,String order,String orderBy){
Comparator<UserDO> comparator = null;
if (order.equals("asc")) {
if (orderBy.equals("userName")) {
comparator = Comparator.comparing(UserDO::getUsername);
} else if (orderBy.equals("userId")) {
comparator = Comparator.comparingLong(UserDO::getId);
}
} else if (order.equals("desc")) {
if (orderBy.equals("userName")) {
comparator = Comparator.comparing(UserDO::getUsername).reversed();
} else if (orderBy.equals("userId")) {
comparator = Comparator.comparingLong(UserDO::getId).reversed();
}
}
userDOS.sort(comparator);
return userDOS;
}
/**
* @Description: 将Permission归纳为父子关系的json形式
* @Date: 2024/1/20
* @Param permissions: 权限实体类
**/
public static List<PermissionContentVo> convertToVoList(List<PermissionDO> permissions) {
List<PermissionContentVo> vos = new ArrayList<>();
Map<Long, List<PermissionDO>> childrenMap = new HashMap<>();
for (PermissionDO permission : permissions) {
if (permission.getPid() != null) {
List<PermissionDO> children = childrenMap.getOrDefault(permission.getPid(), new ArrayList<>());
children.add(permission);
childrenMap.put(permission.getPid(), children);
}
}
for (PermissionDO permission : permissions) {
if (permission.getPid() == null) {
PermissionContentVo vo = convertToVo(permission, childrenMap);
vos.add(vo);
}
}
return vos;
}
/**
* @Description: 封装PermissionContentVo的子类被convertToVoList方法调用
* @Date: 2024/1/20
* @Param permission: 权限实体类
* @Param childrenMap: 要封装的子类
**/
public static PermissionContentVo convertToVo(PermissionDO permission, Map<Long, List<PermissionDO>> childrenMap) {
PermissionContentVo vo = new PermissionContentVo();
copyProperties(permission,vo);
List<PermissionDO> children = childrenMap.get(permission.getId());
if (children != null) {
List<PermissionContentVo> childVos = new ArrayList<>();
for (PermissionDO child : children) {
PermissionContentVo childVo = convertToVo(child, childrenMap);
childVos.add(childVo);
}
vo.setChildren(childVos);
}
return vo;
}
} }