feat: 消息删除,消息查询,发送消息几个场景的方法 feature-jie #11

Merged
XiaoLFeng merged 4 commits from feature-jie into develop 2024-04-11 20:04:12 +08:00
35 changed files with 605 additions and 467 deletions

View File

@ -39,7 +39,7 @@ public class JslOrganizeInternalOaRunnerApplication implements SmartInitializing
public void afterSingletonsInstantiated() {
// 获取数据库中的 SecurityKey
try {
SafeConstants.SECRET_KEY = infoMapper.getSecurityKey().getData();
SafeConstants.setSecretKey(infoMapper.getSecurityKey().getData());
} catch (NullPointerException exception) {
// 生成密钥
String key = Processing.generateKey(System.currentTimeMillis());
@ -53,7 +53,7 @@ public class JslOrganizeInternalOaRunnerApplication implements SmartInitializing
.setData(json)
.setCreatedAt(new Timestamp(System.currentTimeMillis()));
infoMapper.insertSecurityKey(configDO);
SafeConstants.SECRET_KEY = key;
SafeConstants.setSecretKey(key);
}
}
}

View File

@ -91,12 +91,12 @@ public class AnnotationsAspect {
} else {
log.info("\t> 用户权限不足,检查是否是管理员");
// 检查用户是管理员
RoleUserDO roleUserDO = roleDAO.roleMapper
RoleUserDO roleUserDO = roleDAO
.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
if (roleUserDO == null) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
RoleDO roleDO = roleDAO.roleMapper.getRoleByRoleName("admin");
RoleDO roleDO = roleDAO.getRoleByRoleName("admin");
if (roleUserDO.getRid().equals(roleDO.getId())) {
return pjp.proceed();
} else {

View File

@ -1,5 +1,12 @@
package com.jsl.oa.common.constant;
import lombok.Getter;
import lombok.Setter;
public class SafeConstants {
public static String SECRET_KEY;
@Getter
@Setter
private static String secretKey;
}

View File

@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* <h1>消息控制器</h1>
@ -59,11 +59,12 @@ public class MessageController {
* @return 消息列表
*/
@GetMapping("/message/get")
public BaseResponse messageGet(@RequestParam(defaultValue = "1") Long page,
@RequestParam(defaultValue = "10") Long pageSize,
HttpServletRequest request,
@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
public BaseResponse messageGet(
@RequestParam(required = false, defaultValue = "1") Integer page,
@RequestParam(required = false, defaultValue = "10") Integer pageSize,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime begin,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime end,
HttpServletRequest request) {
log.info("请求接口[GET]:/message/get");
String token = request.getHeader("Authorization").replace("Bearer ", "");
Long uid = JwtUtil.getUserId(token);
@ -73,34 +74,5 @@ public class MessageController {
return messageService.messageGet(begin, end, page, pageSize, uid);
}
}
/**
* 获取所有消息列表
*
* @param page 页码
* @param pageSize 每页条数
* @param request 请求对象
* @param begin 开始日期
* @param end 结束日期
* @param uid 用户id
* @return 消息列表
*/
@GetMapping("/message/get/all")
public BaseResponse messageGetAll(@RequestParam(defaultValue = "1") Long page,
@RequestParam(defaultValue = "10") Long pageSize,
HttpServletRequest request,
@RequestParam Long uid,
@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
log.info("请求接口[GET]:/message/get/all");
String token = request.getHeader("Authorization").replace("Bearer ", "");
Long loginId = JwtUtil.getUserId(token);
if (loginId == null) {
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
} else {
return messageService.messageGetAll(request, begin, end, page, pageSize, loginId, uid);
}
}
}

View File

@ -88,7 +88,11 @@ public class PermissionController {
* @return {@link BaseResponse} 对象包含操作结果
*/
@PutMapping("/permission/edit")
public BaseResponse permissionEdit(@RequestBody @Validated PermissionEditVO permissionEditVo, BindingResult bindingResult, HttpServletRequest request) {
public BaseResponse permissionEdit(
@RequestBody @Validated PermissionEditVO permissionEditVo,
BindingResult bindingResult,
HttpServletRequest request
) {
log.info("请求接口[PUT]: /permission/edit");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {

View File

@ -1,8 +1,6 @@
package com.jsl.oa.controllers;
import com.jsl.oa.model.vodata.ProjectCuttingAddVO;
import com.jsl.oa.model.vodata.ProjectCuttingEditVO;
import com.jsl.oa.model.vodata.ProjectEditVO;
import com.jsl.oa.model.vodata.ProjectInfoVO;
import com.jsl.oa.model.vodata.ProjectWorkVO;
import com.jsl.oa.model.vodata.business.info.ProjectShowVO;
import com.jsl.oa.services.ProjectService;
@ -16,7 +14,6 @@ import org.jetbrains.annotations.NotNull;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@ -140,7 +137,9 @@ public class ProjectController {
* @return {@link BaseResponse}
*/
@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");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
@ -160,7 +159,10 @@ public class ProjectController {
* @return {@link BaseResponse}
*/
@PutMapping("/project/header/edit/{projectId}")
public BaseResponse projectEditById(@RequestParam Long projectId, HttpServletRequest request, @RequestBody @Validated ProjectEditVO projectEdit, @NotNull BindingResult bindingResult) {
public BaseResponse projectEditById(@RequestParam Long projectId,
@RequestBody @Validated ProjectEditVO projectEdit,
@NotNull BindingResult bindingResult,
HttpServletRequest request) {
log.info("请求接口[PUT]: /project/header/edit/{projectId}");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
@ -177,7 +179,9 @@ public class ProjectController {
* @return {@link BaseResponse}
*/
@PostMapping("/project/work/add")
public BaseResponse projectWorkAdd(HttpServletRequest request, @RequestBody @Validated ProjectWorkVO projectWorkVO, @NotNull BindingResult bindingResult) {
public BaseResponse projectWorkAdd(HttpServletRequest request,
@RequestBody @Validated ProjectWorkVO projectWorkVO,
@NotNull BindingResult bindingResult) {
log.info("请求接口[POST]: /project/work/add");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
@ -186,6 +190,19 @@ public class ProjectController {
return projectService.projecWorktAdd(request, projectWorkVO);
}
@PostMapping("/project/add")
public BaseResponse projectAdd(HttpServletRequest request,
@RequestBody @Validated ProjectInfoVO projectInfoVO,
@NotNull BindingResult bindingResult) {
log.info("请求接口[POST]: /project/add");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return ResultUtil.success(projectService.projectAdd(request, projectInfoVO));
}
/**
* 获取负责人id
*
@ -196,39 +213,6 @@ public class ProjectController {
return projectService.projectPrincipalGet();
}
/**
* 用户获取所分到的项目模块
*
* @param uid 用户 id
* @return {@link BaseResponse}
*/
@GetMapping("/project/cut/user")
public BaseResponse projectGetUserInCutting(@RequestParam Long uid) {
log.info("请求接口[GET]: /project/cut/user");
// 判断是否有参数错误
if (uid == null) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
}
return projectService.projectGetUserInCutting(uid);
}
/**
* 给某用户分配项目模块
*
* @param uid 用户 id
* @param pid 项目 id
* @return {@link BaseResponse}
*/
@PostMapping("/project/cut/user/add")
public BaseResponse projectAddUserForCutting(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long pid) {
log.info("请求接口[Post]: /project/cut/user/add");
// 判断是否有参数错误
if (uid == null || pid == null) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
}
return projectService.projectAddUserForCutting(request, uid, pid);
}
/**
* 删除某项目记录
*
@ -244,51 +228,6 @@ public class ProjectController {
return projectService.projectDelete(request, id);
}
/**
* 项目轮播图
*
* @param request 请求
* @param projectCuttingAddVO 项目轮播图信息
* @param bindingResult 参数校验
* @return {@link BaseResponse}
*/
@PostMapping("/project/cut/add")
public BaseResponse projectCuttingAdd(HttpServletRequest request, @RequestBody @Validated ProjectCuttingAddVO projectCuttingAddVO, @NotNull BindingResult bindingResult) {
log.info("请求接口[Post]: /project/cut/add");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return projectService.addProjectCutting(request, projectCuttingAddVO);
}
@PutMapping("/project/cut/edit")
public BaseResponse projectCuttingEdit(HttpServletRequest request, @RequestBody @Validated ProjectCuttingEditVO projectCuttingEditVO, @NotNull BindingResult bindingResult) {
log.info("请求接口[Put]: /project/cut/edit");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return projectService.editProjectCutting(request, projectCuttingEditVO);
}
@PutMapping("/project/cut/user/to")
public BaseResponse projectToOtherUserForCutting(
HttpServletRequest request,
@RequestParam Long oldUid,
@RequestParam Long pid,
@RequestParam Long newUid
) {
log.info("请求接口[Put]: /project/cut/user/to");
// 判断是否有参数错误
if (oldUid == null || pid == null || newUid == null) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR);
}
return projectService.projectToOtherUserForCutting(request, oldUid, pid, newUid);
}
@GetMapping("/project/file")
public BaseResponse getProjectFile(HttpServletRequest request, @RequestParam Long projectId) {
log.info("请求接口[Get]: /project/file");

View File

@ -58,7 +58,11 @@ public class RoleController {
* @return {@link BaseResponse}
*/
@PutMapping("/role/edit")
public BaseResponse roleEdit(HttpServletRequest request, @RequestBody @Validated RoleEditVO roleEditVO, @NotNull BindingResult bindingResult) {
public BaseResponse roleEdit(
@RequestBody @Validated RoleEditVO roleEditVO,
@NotNull BindingResult bindingResult,
HttpServletRequest request
) {
log.info("请求接口[PUT]: /role/edit");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
@ -89,7 +93,7 @@ public class RoleController {
/**
* 用户权限授予
*
* @return
* @return baseResponse
*/
@PostMapping("role/user/add")
public BaseResponse roleAddUser(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long rid) {
@ -104,7 +108,7 @@ public class RoleController {
/**
* 用户权限删除
*
* @return
* @return baseResponse
*/
@DeleteMapping("role/user/remove")
public BaseResponse roleRemoveUser(HttpServletRequest request, @RequestParam Long uid) {
@ -116,15 +120,17 @@ public class RoleController {
return roleService.roleRemoveUser(request, uid);
}
/**
* @Description: 添加用户权限
* @Date: 2024/1/19
* @Param request:
* @Param uid:
**/
* <h2>角色添加</h2>
* <hr/>
* 角色添加接口
*/
@PostMapping("role/add")
public BaseResponse addRole(HttpServletRequest request, @RequestBody @Validated RoleAddVo roleAddVO, @NotNull BindingResult bindingResult) throws ClassCopyException {
public BaseResponse addRole(
@RequestBody @Validated RoleAddVo roleAddVO,
@NotNull BindingResult bindingResult,
HttpServletRequest request
) throws ClassCopyException {
log.info("请求接口[POST]: /role/add");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
@ -133,14 +139,11 @@ public class RoleController {
return roleService.addRole(request, roleAddVO);
}
/**
* @Description: 改变用户角色权限信息
* @Date: 2024/1/20
* @Param request:
* @Param uid: 用户id
* @Param rid: 角色id
**/
* <h2>角色用户修改</h2>
* <hr/>
* 角色用户修改接口
*/
@PutMapping("role/user/change")
public BaseResponse roleChangeUser(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long rid) {
log.info("请求接口[POST]: /role/user/change");

View File

@ -77,7 +77,10 @@ public class UserController {
* @return {@link BaseResponse}
*/
@PutMapping("/user/profile/edit")
public BaseResponse userEditProfile(@RequestBody @Validated UserEditProfileVO userEditProfileVO, BindingResult bindingResult) {
public BaseResponse userEditProfile(
@RequestBody @Validated UserEditProfileVO userEditProfileVO,
BindingResult bindingResult
) {
log.info("请求接口[PUT]: /user/profile/edit");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
@ -100,7 +103,13 @@ public class UserController {
* @return {@link BaseResponse}
*/
@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(
@RequestParam @Nullable String id,
@RequestParam @Nullable String username,
@RequestParam @Nullable String email,
@RequestParam @Nullable String phone,
@NotNull HttpServletRequest request
) {
log.info("请求接口[GET]: /user/current");
// 检查数据是否有问题
if (id != null && !id.isEmpty()) {
@ -119,7 +128,10 @@ public class UserController {
}
}
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
)) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, "手机格式不正确");
}
}
@ -136,8 +148,11 @@ public class UserController {
* @return {@link BaseResponse}
*/
@PostMapping("/user/current/all")
public BaseResponse userCurrentAll(@RequestBody @Validated UserAllCurrentVO userAllCurrentVO,
HttpServletRequest request, @NotNull BindingResult bindingResult) {
public BaseResponse userCurrentAll(
@RequestBody @Validated UserAllCurrentVO userAllCurrentVO,
@NotNull BindingResult bindingResult,
HttpServletRequest request
) {
log.info("请求接口[POST]: /user/current/all");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
@ -154,7 +169,11 @@ public class UserController {
* @Param bindingResult:
**/
@PostMapping("/user/add")
public BaseResponse userAdd(@RequestBody @Validated UserAddVO userAddVo, BindingResult bindingResult, HttpServletRequest request) {
public BaseResponse userAdd(
@RequestBody @Validated UserAddVO userAddVo,
BindingResult bindingResult,
HttpServletRequest request
) {
log.info("请求接口[POST]: /user/add");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
@ -170,7 +189,11 @@ public class UserController {
* @Param bindingResult:
**/
@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()) {

View File

@ -1,10 +1,7 @@
package com.jsl.oa.dao;
import com.google.gson.Gson;
import com.jsl.oa.mapper.ProjectMapper;
import com.jsl.oa.model.dodata.ProjectCuttingDO;
import com.jsl.oa.model.dodata.ProjectDO;
import com.jsl.oa.model.dodata.ProjectUserDO;
import com.jsl.oa.model.dodata.ProjectWorkDO;
import com.jsl.oa.model.dodata.info.ProjectShowDO;
import com.jsl.oa.model.vodata.ProjectEditVO;
@ -61,18 +58,6 @@ public class ProjectDAO {
return projectMapper.getProjectById(id) != null;
}
public List<ProjectCuttingDO> projectGetUserInCutting(Long uid) {
log.info("\t> 执行 DAO 层 ProjectDAO.projectGetUserInCutting 方法");
log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.projectGetUserInCutting(uid);
}
public void projectAddUserForCutting(Long uid, Long pid) {
log.info("\t> 执行 DAO 层 ProjectDAO.projectAddUserForCutting 方法");
log.info("\t\t> 从 MySQL 获取数据");
projectMapper.projectAddUserInCutting(uid, pid);
}
public ProjectShowDO getHeader() {
log.info("\t> 执行 DAO 层 ProjectDAO.getHeader 方法");
log.info("\t\t> 从 MySQL 获取数据");
@ -150,7 +135,8 @@ public class ProjectDAO {
}
}
public List<ProjectDO> workget(Long userId, Integer listAll, List<String> tags, List<Integer> isFinish, Integer is) {
public List<ProjectDO> workget(Long userId, Integer listAll,
List<String> tags, List<Integer> isFinish, Integer is) {
log.info("\t> 执行 DAO 层 ProjectDAO.workget 方法");
log.info("\t\t> 从 MySQL 获取数据");
if (tags != null && !tags.isEmpty()) {
@ -180,46 +166,12 @@ public class ProjectDAO {
return projectMapper.deleteProject(id);
}
public void projectCuttingAdd(ProjectCuttingDO projectCuttingDO) {
log.info("\t> 执行 DAO 层 ProjectDAO.projectCuttingAdd 方法");
log.info("\t\t> 从 MySQL 获取数据");
projectMapper.projectCuttingAdd(projectCuttingDO);
}
public boolean isExistProjectById(Long id) {
log.info("\t> 执行 DAO 层 ProjectDAO.isExistProjectById 方法");
log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.getProjectById(id) != null;
}
public boolean updateProjectCutting(ProjectCuttingDO projectCuttingDO) {
log.info("\t> 执行 DAO 层 ProjectDAO.updateProjectCutting 方法");
log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.projectCuttingUpdate(projectCuttingDO);
}
public boolean isExistProjectCutting(Long id) {
log.info("\t> 执行 DAO 层 ProjectDAO.isExistProjectCutting 方法");
log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.getProjectCuttingById(id) != null;
}
public boolean isExistProjectUser(Long pid, Long uid) {
log.info("\t> 执行 DAO 层 ProjectDAO.isExistProjectUse 方法");
log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.getProjectUserByPidAndUid(pid, uid) != null;
}
public boolean updateUserForProjectUserByPidAndUid(Long pid, Long oldUid, Long newUid) {
log.info("\t> 执行 DAO 层 ProjectDAO.updateUserForProjectUserByPidAndUid 方法");
log.info("\t\t> 从 MySQL 获取数据");
ProjectUserDO projectUserDO = projectMapper.getProjectUserByPidAndUid(pid, oldUid);
if (projectUserDO == null) {
return false;
}
log.info("\t\t> 从 MySQL 更新数据");
return projectMapper.updateUserForProjectUser(newUid, projectUserDO.getId());
}
public boolean isPrincipalUser(Long uid, Long projectId) {
log.info("\t> 执行 DAO 层 ProjectDAO.isPrincipalUser 方法");

View File

@ -18,7 +18,7 @@ import java.util.List;
@Component
@RequiredArgsConstructor
public class RoleDAO {
public final RoleMapper roleMapper;
private final RoleMapper roleMapper;
private final Gson gson;
private final RoleRedisUtil<String> roleRedisUtil;
@ -26,7 +26,12 @@ public class RoleDAO {
log.info("\t> 执行 DAO 层 RoleDAO.addRoleUser 方法");
log.info("\t\t> 从 MySQL 获取数据");
roleMapper.roleAddUser(uid, rid);
roleRedisUtil.setData(BusinessConstants.USER, uid.toString(), gson.toJson(roleMapper.getRoleUserByUid(uid)), 120);
roleRedisUtil.setData(
BusinessConstants.USER,
uid.toString(),
gson.toJson(roleMapper.getRoleUserByUid(uid)),
120
);
}
public void delRoleUser(Long uid) {
@ -82,8 +87,7 @@ public class RoleDAO {
public RoleDO getRoleNameByUid(Long uid) {
log.info("\t> 执行 DAO 层 RoleDAO.getRoleNameByUid 方法");
log.info("\t\t> 从 MySQL 获取数据");
RoleDO roleDO = roleMapper.getRoleById(getRoleUserByUid(uid).getRid());
return roleDO;
return roleMapper.getRoleById(getRoleUserByUid(uid).getRid());
}
@ -122,7 +126,12 @@ public class RoleDAO {
log.info("\t> 执行 DAO 层 RoleDAO.roleChangeUser 方法");
log.info("\t\t> 从 MySQL 获取数据");
if (roleMapper.roleChangeUser(uid, rid)) {
roleRedisUtil.setData(BusinessConstants.USER, uid.toString(), gson.toJson(roleMapper.getRoleUserByUid(uid)), 120);
roleRedisUtil.setData(
BusinessConstants.USER,
uid.toString(),
gson.toJson(roleMapper.getRoleUserByUid(uid)),
120
);
return true;
} else {
return false;
@ -140,4 +149,14 @@ public class RoleDAO {
return gson.fromJson(getRedisData, RoleUserDO.class);
}
}
/**
* 根据角色名获取角色信息
*
* @param roleName 角色名
* @return 角色信息
*/
public RoleDO getRoleByRoleName(String roleName) {
return roleMapper.getRoleByRoleName(roleName);
}
}

View File

@ -133,7 +133,8 @@ public class UserDAO {
UserCurrentBackVO userCurrentBackVO = new UserCurrentBackVO();
userCurrentBackVO.setUsers(new ArrayList<>())
.setCount(userMapper.getUsersCount());
userCurrentDO.forEach(it -> userCurrentBackVO.getUsers().add(Processing.returnUserInfo(it, roleDAO, permissionDAO)));
userCurrentDO.forEach(it -> userCurrentBackVO.getUsers()
.add(Processing.returnUserInfo(it, roleDAO, permissionDAO)));
return userCurrentBackVO;
}
@ -145,7 +146,8 @@ public class UserDAO {
UserCurrentBackVO userCurrentBackVO = new UserCurrentBackVO();
userCurrentBackVO.setUsers(new ArrayList<>())
.setCount(userMapper.getUsersCount());
userCurrentDO.forEach(it -> userCurrentBackVO.getUsers().add(Processing.returnUserInfo(it, roleDAO, permissionDAO)));
userCurrentDO.forEach(it -> userCurrentBackVO.getUsers()
.add(Processing.returnUserInfo(it, roleDAO, permissionDAO)));
return userCurrentBackVO;
}

View File

@ -1,11 +1,13 @@
package com.jsl.oa.mapper;
import com.jsl.oa.model.dodata.MessageDO;
import com.jsl.oa.model.vodata.MessageAddVO;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@ -13,17 +15,18 @@ import java.util.List;
public interface MessageMapper {
@Update("UPDATE organize_oa.oa_message "
+ "SET `read` = 1, deleted_at = CURRENT_TIMESTAMP "
+ "SET `is_delete` = 1, deleted_at = CURRENT_TIMESTAMP "
+ "WHERE id = #{mid}")
boolean deleteMessage(Long mid);
@Select("SELECT * FROM organize_oa.oa_message where id = #{mid}")
MessageDO getMessageById(Long mid);
@Select("select count(*) from organize_oa.oa_message where uid = #{uid}")
Long count(Long uid);
@Select("select * from organize_oa.oa_message where uid = #{uid} and is_delete = 0 "
+ "and created_at between #{begin} and #{end}")
List<MessageDO> page(LocalDateTime begin, LocalDateTime end, Long uid);
@Select("select * from organize_oa.oa_message where uid = #{uid}")
//and created_at between #{begin} and #{end} limit #{start},#{pageSize}")
List<MessageDO> page(LocalDate begin, LocalDate end, Long uid, Long start, Long pageSize);
@Insert("insert into organize_oa.oa_message (uid, title, text, sid) "
+ "values(#{uid},#{title},#{text},#{sid})")
void messageAdd(MessageAddVO messageAddVO);
}

View File

@ -1,8 +1,6 @@
package com.jsl.oa.mapper;
import com.jsl.oa.model.dodata.ProjectCuttingDO;
import com.jsl.oa.model.dodata.ProjectDO;
import com.jsl.oa.model.dodata.ProjectUserDO;
import com.jsl.oa.model.dodata.ProjectWorkDO;
import com.jsl.oa.model.vodata.ProjectInfoVO;
import com.jsl.oa.model.vodata.ProjectWorkSimpleVO;
@ -12,6 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.time.LocalDateTime;
import java.util.List;
@Mapper
@ -73,26 +72,15 @@ public interface ProjectMapper {
@Update("UPDATE organize_oa.oa_project SET is_delete = 1 where id=#{id}")
boolean deleteProject(Long id);
@Insert("INSERT INTO organize_oa.oa_project_cutting (pid, name, tag, real_time) "
+ "VALUES (#{pid}, #{name}, #{tag}, #{realTime})")
void projectCuttingAdd(ProjectCuttingDO projectCuttingDO);
@Update("UPDATE organize_oa.oa_project_cutting SET name = #{name}, "
+ "tag = #{tag}, engineering = #{engineering}, estimated_time = #{estimatedTime}, "
+ "real_time = #{realTime}, updated_at = CURRENT_TIMESTAMP WHERE id = #{id}")
boolean projectCuttingUpdate(ProjectCuttingDO projectCuttingDO);
@Select("SELECT * FROM organize_oa.oa_project_cutting WHERE id = #{id}")
ProjectCuttingDO getProjectCuttingById(Long id);
@Select("SELECT * FROM organize_oa.oa_project_user WHERE pid = #{pid} AND uid = #{uid}")
ProjectUserDO getProjectUserByPidAndUid(Long pid, Long uid);
@Update("UPDATE organize_oa.oa_project_user SET uid = #{uid} , updated_at = CURRENT_TIMESTAMP WHERE id = #{id}")
boolean updateUserForProjectUser(Long uid, Long id);
//@Select("select * from organize_oa.oa_project_work where is_finish=#{isFinish} and is_delete=false and principal_id =#{userId}")
List<ProjectDO> workgetByIsfinish(Long userId, List<Integer> isFinish, Integer is);
List<ProjectDO> workgetByTags(Long userId, List<String> tags, Integer is, List<Integer> isFinish);
@ -122,4 +110,15 @@ public interface ProjectMapper {
@Select("select * from organize_oa.oa_project_work where id=#{id}")
ProjectWorkDO getProjectWorkById(Long id);
@Select("select principal_id from organize_oa.oa_project_work where project_id=#{id}")
List <Long> getMemberByProjectId(Integer id);
@Select("select principal_id from organize_oa.oa_project_work where pid=#{id}")
List <Long> getMemberBySystemId(Integer id);
@Select("select * from organize_oa.oa_project_work "
+ "where DATE(deadline) = DATE(#{threeDayLater}) and is_finish != 1")
List<ProjectWorkDO> getProjectWorkByTime(LocalDateTime threeDayLater);
}

View File

@ -30,7 +30,8 @@ public interface RoleMapper {
@Select("SELECT * FROM organize_oa.oa_role ORDER BY id DESC")
List<RoleDO> getRole();
@Update("UPDATE organize_oa.oa_role SET role_name=#{roleName},display_name=#{displayName},updated_at=CURRENT_TIMESTAMP WHERE id=#{id}")
@Update("UPDATE organize_oa.oa_role "
+ "SET role_name=#{roleName},display_name=#{displayName},updated_at=CURRENT_TIMESTAMP WHERE id=#{id}")
boolean roleEdit(RoleDO getRole);
@Update("UPDATE organize_oa.oa_role_user SET rid = #{rid},updated_at = current_timestamp WHERE uid = #{uid}")

View File

@ -37,7 +37,8 @@ public interface UserMapper {
@Update("UPDATE organize_oa.oa_user SET is_delete = true ,updated_at = CURRENT_TIMESTAMP WHERE id = #{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}")
void userLock(Long id, Long isLock);
@Select("SELECT * FROM organize_oa.oa_user WHERE id = #{id}")
@ -77,11 +78,11 @@ public interface UserMapper {
List<UserDO> getRecommendUser();
@Update("UPDATE organize_oa.oa_user " +
"SET address = #{address}, phone = #{phone}, email = #{email}, age = #{age}, " +
"signature = #{signature}, sex = #{sex}, avatar = #{avatar}, nickname = #{nickname}, " +
"description = #{description} ,updated_at = current_timestamp " +
"WHERE id = #{id}")
@Update("UPDATE organize_oa.oa_user "
+ "SET address = #{address}, phone = #{phone}, email = #{email}, age = #{age}, "
+ "signature = #{signature}, sex = #{sex}, avatar = #{avatar}, nickname = #{nickname}, "
+ "description = #{description} ,updated_at = current_timestamp "
+ "WHERE id = #{id}")
void updateUser(UserDO userDO);
@Select("SELECT * FROM organize_oa.oa_user WHERE email = #{email}")
@ -96,7 +97,8 @@ public interface UserMapper {
@Select("SELECT COUNT(*) FROM organize_oa.oa_user")
Long getUsersCount();
@Select("select oa_user.id,oa_user.username,oa_role.role_name from organize_oa.oa_user join organize_oa.oa_role_user " +
"on oa_user.id = oa_role_user.uid join organize_oa.oa_role on oa_role_user.rid = oa_role.id")
@Select("select oa_user.id,oa_user.username,oa_role.role_name "
+ "from organize_oa.oa_user join organize_oa.oa_role_user "
+ "on oa_user.id = oa_role_user.uid join organize_oa.oa_role on oa_role_user.rid = oa_role.id")
List<PrincipalSelectVO> getPrincipal();
}

View File

@ -22,9 +22,10 @@ public class MessageDO {
private Long id;
private Long uid;
private Long sid;
private String title;
private String text;
private Short read;
private Integer isDelete;
private Timestamp createdAt;
private Timestamp deletedAt;

View File

@ -27,8 +27,8 @@ public class ProjectCuttingDO {
private Long cycle;
private String name;
private String description;
private Integer is_delete;
private Integer is_finish;
private Integer isDelete;
private Integer isFinish;
private Integer status;
private boolean type;
private Timestamp beginTime;

View File

@ -0,0 +1,18 @@
package com.jsl.oa.model.vodata;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MessageAddVO {
private String text;
private String title;
private Long uid;
private Long sid;
private String type;
private Integer toId;
}

View File

@ -0,0 +1,17 @@
package com.jsl.oa.model.vodata;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MessageGetVO {
private String text;
private String title;
private Timestamp createdAt;
private String senderName;
}

View File

@ -1,12 +1,12 @@
package com.jsl.oa.model.vodata;
import lombok.Getter;
import lombok.Data;
import javax.validation.constraints.*;
@Getter
@Data
public class UserAddVO {
@NotBlank(message = "用户名不能为空")
@ -20,7 +20,8 @@ public class UserAddVO {
private String address;
@NotBlank(message = "电话不能为空")
@Pattern(regexp = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", message = "电话格式错误")
@Pattern(regexp = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$",
message = "电话格式错误")
private String phone;
@NotBlank(message = "邮箱不能为空")

View File

@ -21,7 +21,8 @@ public class UserEditVO {
private String address;
@Pattern(regexp = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", message = "电话格式错误")
@Pattern(regexp = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$",
message = "电话格式错误")
private String phone;
@Pattern(regexp = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", message = "邮箱格式错误")

View File

@ -3,7 +3,7 @@ package com.jsl.oa.services;
import com.jsl.oa.utils.BaseResponse;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* <h1>消息服务接口</h1>
@ -18,15 +18,18 @@ public interface MessageService {
BaseResponse messageDelete(Long mid, HttpServletRequest request);
BaseResponse messageGet(LocalDate begin, LocalDate end, Long page, Long pageSize, Long uid);
BaseResponse messageGet(
LocalDateTime begin,
LocalDateTime end,
Integer page,
Integer pageSize,
Long uid);
BaseResponse messageGetAll(
HttpServletRequest request,
LocalDate begin,
LocalDate end,
Long page,
Long pageSize,
Long loginId,
Long uid
);
void messageAdd(Integer pId, Integer systemId, Integer moddleId, Long uid, HttpServletRequest request);
void messageAdd(Integer pId, Integer systemId, Integer moddleId, Long uid, Long isPass, HttpServletRequest request);
void messageAdd(Integer pId, Integer type, Integer systemId, HttpServletRequest request);
void messageAdd(Integer pId, Integer systmeId, Integer moddleId, Integer type, HttpServletRequest request);
void messageAdd(Integer pId, Integer systemId, Integer moddleId);
void messageRemind();
}

View File

@ -8,14 +8,9 @@ import javax.servlet.http.HttpServletRequest;
import java.util.List;
public interface ProjectService {
BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd);
BaseResponse projectEdit(HttpServletRequest request, ProjectEditVO projectEdit, Long projectId);
BaseResponse projectGetUserInCutting(Long uid);
BaseResponse projectAddUserForCutting(HttpServletRequest request, Long uid, Long pid);
BaseResponse getHeader(Integer id);
BaseResponse addHeader(HttpServletRequest request, ProjectShowVO projectShowVO);
@ -24,19 +19,17 @@ public interface ProjectService {
BaseResponse editHeader(HttpServletRequest request, ProjectShowVO projectShowVO, Integer id);
BaseResponse get(Integer listAll, HttpServletRequest request, List<String> tags, List<Integer> isFinish, Integer page, Integer pageSize);
BaseResponse get(Integer listAll, HttpServletRequest request,
List<String> tags, List<Integer> isFinish, Integer page, Integer pageSize);
BaseResponse getByName(String name);
BaseResponse projectDelete(HttpServletRequest request, List<Long> id);
BaseResponse addProjectCutting(HttpServletRequest request, ProjectCuttingAddVO projectCuttingAddVO);
BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectVO);
BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO);
BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid);
BaseResponse workget(Integer listAll, HttpServletRequest request, List<String> tags, List<Integer> isFinish, Integer is, Integer page, Integer pageSize);
BaseResponse workget(Integer listAll, HttpServletRequest request,
List<String> tags, List<Integer> isFinish, Integer is, Integer page, Integer pageSize);
BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO);

View File

@ -16,9 +16,9 @@ import javax.servlet.http.HttpServletRequest;
* @since v1.1.0
*/
public interface RoleService {
BaseResponse roleAddUser(HttpServletRequest request,Long uid, Long rid);
BaseResponse roleAddUser(HttpServletRequest request, Long uid, Long rid);
BaseResponse roleRemoveUser(HttpServletRequest request,Long uid);
BaseResponse roleRemoveUser(HttpServletRequest request, Long uid);
BaseResponse roleGet(HttpServletRequest request, String id);

View File

@ -273,7 +273,7 @@ public class AuthServiceImpl implements AuthService {
getPermissionForString = permissionDAO.getPermission(userDO.getId());
}
// 获取用户角色
RoleUserDO getUserRole = roleDAO.roleMapper.getRoleUserByUid(userDO.getId());
RoleUserDO getUserRole = roleDAO.getRoleUserByUid(userDO.getId());
if (getUserRole == null) {
getUserRole = new RoleUserDO();
getUserRole.setRid(0L)

View File

@ -2,8 +2,8 @@ package com.jsl.oa.services.impl;
import com.jsl.oa.annotations.CheckUserHasPermission;
import com.jsl.oa.dao.InfoDAO;
import com.jsl.oa.dao.RoleDAO;
import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.dodata.UserDO;
import com.jsl.oa.model.dodata.info.CarouselDO;
import com.jsl.oa.model.vodata.UserProfileVo;
@ -36,9 +36,9 @@ import java.util.List;
@Service
@RequiredArgsConstructor
public class InfoServiceImpl implements InfoService {
private final RoleMapper roleMapper;
private final InfoDAO infoDAO;
private final UserDAO userDAO;
private final RoleDAO roleDAO;
@Override
@CheckUserHasPermission("info.image.add")
@ -131,7 +131,7 @@ public class InfoServiceImpl implements InfoService {
public BaseResponse delHeaderImage(HttpServletRequest request, Integer id) {
log.info("\t> 执行 Service 层 InfoService.delHeaderImage 方法");
// 用户权限校验
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 获取轮播图信息
@ -154,7 +154,7 @@ public class InfoServiceImpl implements InfoService {
public BaseResponse editSettingHeaderImage(HttpServletRequest request, Boolean showType) {
log.info("\t> 执行 Service 层 InfoService.editSettingHeaderImage 方法");
// 用户权限校验
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 获取轮播图信息

View File

@ -1,26 +1,22 @@
package com.jsl.oa.services.impl;
import com.jsl.oa.annotations.CheckUserAbleToUse;
import com.jsl.oa.annotations.CheckUserHasPermission;
import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.MessageMapper;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.mapper.ProjectMapper;
import com.jsl.oa.model.dodata.MessageDO;
import com.jsl.oa.model.dodata.PageBeanDO;
import com.jsl.oa.model.dodata.ProjectWorkDO;
import com.jsl.oa.model.vodata.MessageAddVO;
import com.jsl.oa.model.vodata.MessageGetVO;
import com.jsl.oa.services.MessageService;
import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode;
import com.jsl.oa.utils.JwtUtil;
import com.jsl.oa.utils.ResultUtil;
import com.jsl.oa.utils.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* <h1>消息服务层实现类</h1>
* <hr/>
@ -36,10 +32,11 @@ import java.util.List;
public class MessageServiceImpl implements MessageService {
private final MessageMapper messageMapper;
private final RoleMapper roleMapper;
private final UserDAO userDAO;
private final ProjectMapper projectMapper;
@Override
@CheckUserHasPermission("message.delete")
@CheckUserAbleToUse
public BaseResponse messageDelete(Long mid, HttpServletRequest request) {
//获取消息数据
MessageDO messageDO = messageMapper.getMessageById(mid);
@ -55,55 +52,296 @@ public class MessageServiceImpl implements MessageService {
return ResultUtil.success();
}
@SuppressWarnings("checkstyle:Regexp")
@Override
@CheckUserAbleToUse
public BaseResponse messageGet(LocalDate begin, LocalDate end, Long page, Long pageSize, Long uid) {
//1.记录总数据数
Long count = messageMapper.count(uid);
//2.获取分页数据列表
public BaseResponse messageGet(LocalDateTime beginTime,
LocalDateTime endTime,
Integer page,
Integer pageSize,
Long uid) {
//默认获取时间为最近30天
if (begin == null) {
begin = LocalDate.now();
end = begin.minusDays(30);
if (beginTime == null) {
endTime = LocalDateTime.now();
beginTime = endTime.minusDays(30);
}
Long start = (page - 1) * pageSize;
List<MessageDO> empList = messageMapper.page(begin, end, uid, start, pageSize);
//3.封装PageBean对象
PageBeanDO<MessageDO> pageBean = new PageBeanDO<>(count, empList);
return ResultUtil.success(pageBean);
List<MessageDO> messageDOList = messageMapper.page(beginTime, endTime, uid);
//封装返回数据
List<MessageGetVO> messageGetVOList = new ArrayList<>();
for (MessageDO messageDO : messageDOList) {
MessageGetVO messageGetVO1 = new MessageGetVO();
messageGetVO1.setText(messageDO.getText());
messageGetVO1.setTitle(messageDO.getTitle());
messageGetVO1.setCreatedAt(messageDO.getCreatedAt());
if (messageDO.getSid() != null) {
messageGetVO1.setSenderName(userDAO.getUserById(messageDO.getSid()).getUsername());
}
messageGetVOList.add(messageGetVO1);
}
//分页返回
int start = (page - 1) * pageSize;
int end = start + pageSize;
List<MessageGetVO> pageData = messageGetVOList.subList(start,
Math.min(end, messageGetVOList.size()));
return ResultUtil.success(pageData);
}
/**
* 添加指派消息
*
* @param pId 项目id
* @param systemId 系统id
* @param moddleId 模块id
* @param uid 用户id
* @param request
*/
@Override
@CheckUserHasPermission("message.get")
public BaseResponse messageGetAll(
HttpServletRequest request,
LocalDate begin,
LocalDate end,
Long page,
Long pageSize,
Long loginId,
Long uid
) {
log.info("请求接口服务层");
//1.记录总数据数
Long count = messageMapper.count(uid);
//2.获取分页数据列表
//默认获取时间为最近30天
if (begin == null) {
begin = LocalDate.now();
end = begin.minusDays(30);
public void messageAdd(
Integer pId,
Integer systemId,
Integer moddleId,
Long uid,
HttpServletRequest request) {
// 拿到token获取发送人id
String token = request.getHeader("Authorization").replace("Bearer ", "");
Long sid = JwtUtil.getUserId(token);
// 获取发送人名字项目名子系统名子模块名
String senderName = userDAO.getUserById(sid).getUsername();
String projectName = projectMapper.tgetProjectById(pId).getName();
String systemName = projectMapper.getWorkById(systemId).getName();
// 添加消息
MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setSid(sid);
messageAddVO.setUid(uid);
messageAddVO.setTitle("指派消息");
if (moddleId == null) {
messageAddVO.setText(senderName + "指派了" + projectName + "项目的" + systemName + "子系统给您");
} else {
String moddleName = projectMapper.getWorkById(moddleId).getName();
messageAddVO.setText(senderName + "指派了" + projectName + "项目的" + systemName + "子系统的" + moddleName + "子模块给您");
}
Long start = (page - 1) * pageSize;
List<MessageDO> messageDOList = messageMapper.page(begin, end, uid, start, pageSize);
//3.封装PageBean对象
PageBeanDO<MessageDO> pageBean = new PageBeanDO<>(count, messageDOList);
return ResultUtil.success(pageBean);
messageAddVO.setType("跳转审批页");
messageMapper.messageAdd(messageAddVO);
}
/**
* 添加审批消息
*
* @param pId 项目id
* @param systemId 系统id
* @param moddleId 模块id
* @param uid 用户id
* @param isPass 是否通过 1:通过 0:未通过
* @param request
*/
@Override
public void messageAdd(
Integer pId,
Integer systemId,
Integer moddleId,
Long uid,
Long isPass,
HttpServletRequest request) {
// 获取发送人名字项目名子系统名子模块名
String projectName = projectMapper.tgetProjectById(pId).getName();
String systemName = projectMapper.getWorkById(systemId).getName();
// 添加消息
MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(uid);
messageAddVO.setTitle("审批消息");
String moddleName = projectMapper.getWorkById(moddleId).getName();
if (isPass == 1) {
messageAddVO.setText("您申请的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块负责人已通过");
} else {
messageAddVO.setText("您申请的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块负责人未通过");
}
messageAddVO.setType("消息详情");
messageMapper.messageAdd(messageAddVO);
}
/**
* 添加项目变动消息
* @param pId 项目id
* @param type 类型 1:上传文档 2:修改状态 3:修改负责人
* @param systemId 系统id
* @param request
*/
@Override
public void messageAdd(
Integer pId,
Integer type,
Integer systemId,
HttpServletRequest request) {
// 获取项目名,负责人名
String projectName = projectMapper.tgetProjectById(pId).getName();
String senderName = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)).getUsername();
String systemName = projectMapper.getWorkById(systemId).getName();
// 添加消息
// 1:上传文档 2:修改状态 3:修改负责人
List<Long> uidList = projectMapper.getMemberByProjectId(pId);
for (Long uid : uidList) {
MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(uid);
messageAddVO.setTitle("项目变动消息");
if (type == 3) {
messageAddVO.setText("项目负责人" + senderName + "调整了" + systemName + "子系统的负责人");
} else if (type == 2) {
messageAddVO.setText("项目负责人" + senderName + "修改了" + projectName + "项目的状态");
} else if (type == 1) {
messageAddVO.setText("项目负责人" + senderName + "上传了文档到" + projectName + "项目");
}
messageAddVO.setType("跳转项目页");
messageAddVO.setToId(pId);
messageMapper.messageAdd(messageAddVO);
}
}
/**
* 添加子系统变动消息
*
* @param pId 项目id
* @param systmeId 系统id
* @param moddleId 模块id
* @param type 类型 1:删除模块 2:修改简介 3:修改周期
* @param request
*/
@Override
public void messageAdd(
Integer pId,
Integer systmeId,
Integer moddleId,
Integer type,
HttpServletRequest request) {
// 获取项目名,负责人名
String projectName = projectMapper.tgetProjectById(pId).getName();
String senderName = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)).getUsername();
String systemName = projectMapper.getWorkById(systmeId).getName();
String moddleName = projectMapper.getWorkById(moddleId).getName();
// 添加消息
// 1:删除模块 2:修改简介 3:修改周期
if (type == 1) {
MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(projectMapper.getPid(moddleId));
messageAddVO.setTitle("子系统变动消息");
messageAddVO.setText("项目经理" + senderName + "删除了" + projectName + "项目的"
+ systemName + "系统的" + moddleName + "模块");
messageMapper.messageAdd(messageAddVO);
} else {
List<Long> uidList = projectMapper.getMemberBySystemId(systmeId);
for (Long uid : uidList) {
MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(uid);
messageAddVO.setTitle("子系统变动消息");
if (type == 2) {
messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的"
+ systemName + "系统的简介说明");
} else if (type == 3) {
messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的"
+ systemName + "系统的系统周期/工作量");
}
messageAddVO.setType("跳转系统页");
messageAddVO.setToId(systmeId);
messageMapper.messageAdd(messageAddVO);
}
}
}
/**
* 添加成员填写日报消息
*
* @param pId 项目id
* @param systemId 系统id
* @param moddleId 模块id
*/
@Override
public void messageAdd(
Integer pId,
Integer systemId,
Integer moddleId) {
// 获取项目名,系统名,模块名,负责人名
String projectName = projectMapper.tgetProjectById(pId).getName();
String systemName = projectMapper.getWorkById(systemId).getName();
String moddleName = projectMapper.getWorkById(moddleId).getName();
String principalName = userDAO.getUserById(projectMapper.getPid(moddleId)).getUsername();
// 添加消息
MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(projectMapper.getPid(systemId));
messageAddVO.setTitle("日报消息");
messageAddVO.setText(projectName + "项目的" + systemName + "系统的" + moddleName + "模块负责人" + principalName
+ "刚刚填写了日报");
messageAddVO.setType("跳转日报页");
messageMapper.messageAdd(messageAddVO);
}
/**
* 添加提醒消息
* 系统/模块到期提醒
*/
@Override
public void messageRemind() {
// 当前时间
LocalDateTime now = LocalDateTime.now();
// 三天后时间
LocalDateTime threeDaysLater = now.plusDays(3);
// 七天后时间
LocalDateTime sevenDaysLater = now.plusDays(7);
// 获取三天后到期的系统/模块
List<ProjectWorkDO> projectWorkDOList = projectMapper.getProjectWorkByTime(threeDaysLater);
// 获取七天后到期的系统/模块
List<ProjectWorkDO> projectWorkDOList1 = projectMapper.getProjectWorkByTime(sevenDaysLater);
if (!projectWorkDOList1.isEmpty()) {
for (ProjectWorkDO projectWorkDO : projectWorkDOList) {
// 添加消息
MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(projectWorkDO.getPrincipalId());
messageAddVO.setTitle("提醒消息");
// 0:系统 1:模块
String projectName = projectMapper
.tgetProjectById(projectWorkDO.getProjectId().intValue()).getName();
String systemName;
if (projectWorkDO.getType() == 1) {
systemName = projectMapper.getWorkById(projectWorkDO.getPid().intValue()).getName();
String moddleName = projectMapper.getWorkById(projectWorkDO.getId().intValue()).getName();
messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块"
+ "还有七天就要到期了,请及时处理");
messageAddVO.setType("跳转模块页");
} else {
systemName = projectMapper.getWorkById(projectWorkDO.getId().intValue()).getName();
messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统"
+ "还有七天就要到期了,请及时处理");
messageAddVO.setType("跳转系统页");
}
messageAddVO.setToId(projectWorkDO.getId().intValue());
messageMapper.messageAdd(messageAddVO);
}
}
if (!projectWorkDOList.isEmpty()) {
for (ProjectWorkDO projectWorkDO : projectWorkDOList) {
// 添加消息
MessageAddVO messageAddVO = new MessageAddVO();
messageAddVO.setUid(projectWorkDO.getPrincipalId());
messageAddVO.setTitle("提醒消息");
// 0:系统 1:模块
String projectName = projectMapper
.tgetProjectById(projectWorkDO.getProjectId().intValue()).getName();
String systemName;
if (projectWorkDO.getType() == 1) {
systemName = projectMapper.getWorkById(projectWorkDO.getPid().intValue()).getName();
String moddleName = projectMapper.getWorkById(projectWorkDO.getId().intValue()).getName();
messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块"
+ "还有三天就要到期了,请及时处理");
messageAddVO.setType("跳转模块页");
} else {
systemName = projectMapper.getWorkById(projectWorkDO.getId().intValue()).getName();
messageAddVO.setText("您负责的" + projectName + "项目的" + systemName + "系统"
+ "还有三天就要到期了,请及时处理");
messageAddVO.setType("跳转系统页");
}
messageAddVO.setToId(projectWorkDO.getId().intValue());
messageMapper.messageAdd(messageAddVO);
}
}
}
}

View File

@ -1,10 +1,9 @@
package com.jsl.oa.services.impl;
import com.jsl.oa.dao.ModuleDAO;
import com.jsl.oa.dao.ProjectDAO;
import com.jsl.oa.dao.RoleDAO;
import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.ModuleMapper;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.dodata.ProjectWorkDO;
import com.jsl.oa.model.vodata.ProjectWorkAndNameVO;
import com.jsl.oa.services.ModuleService;
@ -24,11 +23,10 @@ import java.util.List;
@Service
@RequiredArgsConstructor
public class ModuleServiceImpl implements ModuleService {
private final RoleMapper roleMapper;
private final ModuleDAO moduleDAO;
private final ProjectDAO projectDAO;
private final ModuleMapper moduleMapper;
private final UserDAO userDAO;
private final RoleDAO roleDAO;
@Override
public BaseResponse getByProjectId(Integer projectId, HttpServletRequest request) {
@ -83,9 +81,8 @@ public class ModuleServiceImpl implements ModuleService {
@Override
public BaseResponse deleteById(HttpServletRequest request, Long id) {
// 检测是否为管理员
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}

View File

@ -1,15 +1,13 @@
package com.jsl.oa.services.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jsl.oa.annotations.CheckUserHasPermission;
import com.jsl.oa.dao.ProjectDAO;
import com.jsl.oa.dao.RoleDAO;
import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.ProjectMapper;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.mapper.UserMapper;
import com.jsl.oa.model.dodata.ProjectCuttingDO;
import com.jsl.oa.model.dodata.ProjectDO;
import com.jsl.oa.model.dodata.UserDO;
import com.jsl.oa.model.dodata.info.ProjectShowDO;
@ -48,10 +46,10 @@ public class ProjectServiceImpl implements ProjectService {
private final UserMapper userMapper;
private final ProjectMapper projectMapper;
private final RoleMapper roleMapper;
private final ProjectDAO projectDAO;
private final UserDAO userDAO;
private final ObjectMapper objectMapper;
private final RoleDAO roleDAO;
@Override
public BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd) {
@ -88,17 +86,18 @@ public class ProjectServiceImpl implements ProjectService {
//是否是增加子系统
if (projectWorkVO.getType() == 0) {
//是否是老师
if (Processing.checkUserIsTeacher(request, roleMapper)) {
if (Processing.checkUserIsTeacher(request, roleDAO)) {
projectDAO.projectWorkAdd(projectWorkVO);
} else {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
}//增加子模块
else {
} else {
//是否是子系统的负责人
if (Objects.equals(userId, projectMapper.getPirIdbyWorkid(projectWorkVO.getPid()))) {
projectDAO.projectWorkAdd(projectWorkVO);
} else return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} else {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
}
return ResultUtil.success("添加成功");
@ -231,8 +230,8 @@ public class ProjectServiceImpl implements ProjectService {
//判断用户是否为老师 或者 项目负责人
if (!Processing.checkUserIsTeacher(request, roleMapper) ||
!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) {
if (!Processing.checkUserIsTeacher(request, roleDAO)
|| !projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
@ -246,30 +245,6 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
@CheckUserHasPermission("project.cutting.user.get")
public BaseResponse projectGetUserInCutting(Long uid) {
log.info("\t> 执行 Service 层 ProjectService.projectGetUserInCutting 方法");
if (userDAO.isExistUser(uid)) {
List<ProjectCuttingDO> projectCuttingDOList = projectDAO.projectGetUserInCutting(uid);
return ResultUtil.success(projectCuttingDOList);
} else {
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
}
}
@Override
@CheckUserHasPermission("project.cutting.user.add")
public BaseResponse projectAddUserForCutting(HttpServletRequest request, Long uid, Long pid) {
log.info("\t> 执行 Service 层 ProjectService.projectAddUserForCutting 方法");
if (userDAO.isExistUser(uid)) {
projectDAO.projectAddUserForCutting(uid, pid);
return ResultUtil.success();
} else {
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
}
}
@Override
public BaseResponse getHeader(Integer id) {
log.info("\t> 执行 Service 层 InfoService.getHeader 方法");
@ -361,7 +336,8 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
public BaseResponse get(Integer listAll, HttpServletRequest request, List<String> tags, List<Integer> isFinish, Integer page, Integer pageSize) {
public BaseResponse get(Integer listAll, HttpServletRequest request,
List<String> tags, List<Integer> isFinish, Integer page, Integer pageSize) {
log.info("\t> 执行 Service 层 ProjectService.get 方法");
//获取用户
@ -403,7 +379,7 @@ public class ProjectServiceImpl implements ProjectService {
//判断是否是老师(项目负责人)
if (listAll != null && Processing.checkUserIsTeacher(request, roleMapper)) {
if (listAll != null && Processing.checkUserIsTeacher(request, roleDAO)) {
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO : projectDOList) {
@ -437,7 +413,9 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
public BaseResponse workget(Integer listAll, HttpServletRequest request, List<String> tags, List<Integer> isFinish, Integer is, Integer page, Integer pageSize) {
public BaseResponse workget(Integer listAll, HttpServletRequest request,
List<String> tags, List<Integer> isFinish, Integer is,
Integer page, Integer pageSize) {
log.info("\t> 执行 Service 层 ProjectService.workget 方法");
//获取用户
@ -479,7 +457,7 @@ public class ProjectServiceImpl implements ProjectService {
//判断是否是老师(项目负责人)
if (listAll != null && Processing.checkUserIsTeacher(request, roleMapper)) {
if (listAll != null && Processing.checkUserIsTeacher(request, roleDAO)) {
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish, is);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO : projectDOList) {
@ -527,7 +505,7 @@ public class ProjectServiceImpl implements ProjectService {
log.info("\t> 执行 Service 层 ProjectService.projectDelete 方法");
//判断用户是否为老师 或者 项目负责人
if (!Processing.checkUserIsTeacher(request, roleMapper)) {
if (!Processing.checkUserIsTeacher(request, roleDAO)) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
@ -541,57 +519,4 @@ public class ProjectServiceImpl implements ProjectService {
}
return ResultUtil.success();
}
@Override
@CheckUserHasPermission("project.cutting.add")
public BaseResponse addProjectCutting(HttpServletRequest request, ProjectCuttingAddVO projectCuttingAddVO) {
log.info("\t> 执行 Service 层 ProjectService.projectCuttingAdd方法");
//赋值数据
ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO();
Processing.copyProperties(projectCuttingAddVO, projectCuttingDO);
//根据pid检测项目是否存在
if (!projectDAO.isExistProjectById(projectCuttingAddVO.getPid())) {
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
}
//向数据库添加数据
projectDAO.projectCuttingAdd(projectCuttingDO);
return ResultUtil.success();
}
@Override
@CheckUserHasPermission("project.cutting.edit")
public BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO) {
log.info("\t> 执行 Service 层 ProjectService.projectCuttingEdit方法");
//赋值数据
ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO();
Processing.copyProperties(projectCuttingEditVO, projectCuttingDO);
//根据id检测项目模块是否存在
if (!projectDAO.isExistProjectCutting(projectCuttingEditVO.getId())) {
return ResultUtil.error(ErrorCode.PROJECT_CUTTING_NOT_EXIST);
}
//向数据库添加数据
projectDAO.updateProjectCutting(projectCuttingDO);
return ResultUtil.success();
}
@Override
@CheckUserHasPermission("project.cutting.delete")
public BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid) {
log.info("\t> 执行 Service 层 ProjectService.projectToOtherUserForCutting方法");
//检测新旧用户是否存在
if (!userDAO.isExistUser(oldUid) || !userDAO.isExistUser(newUid)) {
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
}
//用户项目表是否含有对应记录
if (!projectDAO.isExistProjectUser(pid, oldUid)) {
return ResultUtil.error(ErrorCode.PROJECT_USER_NOT_EXIST);
}
//更新数据
if (!projectDAO.updateUserForProjectUserByPidAndUid(pid, oldUid, newUid)) {
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
}
return ResultUtil.success();
}
}

View File

@ -45,7 +45,7 @@ public class RoleServiceImpl implements RoleService {
@CheckUserHasPermission("role.add")
public BaseResponse roleAddUser(HttpServletRequest request, Long uid, Long rid) {
log.info("\t> 执行 Service 层 RoleService.addRoleUser 方法");
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
if (Processing.checkUserIsAdmin(request, roleDAO)) {
roleDAO.addRoleUser(uid, rid);
return ResultUtil.success();
} else {
@ -57,7 +57,7 @@ public class RoleServiceImpl implements RoleService {
public BaseResponse roleRemoveUser(HttpServletRequest request, Long uid) {
log.info("\t> 执行 Service 层 RoleService.delRoleUser 方法");
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
if (Processing.checkUserIsAdmin(request, roleDAO)) {
roleDAO.delRoleUser(uid);
return ResultUtil.success();
} else {
@ -77,7 +77,7 @@ public class RoleServiceImpl implements RoleService {
return ResultUtil.error(ErrorCode.USER_NOT_CHANGE_TO_THEMSELVES);
}
//检测用户权限是否为管理员
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
if (Processing.checkUserIsAdmin(request, roleDAO)) {
if (roleDAO.roleChangeUser(uid, rid)) {
return ResultUtil.success();
} else {
@ -92,7 +92,7 @@ public class RoleServiceImpl implements RoleService {
public BaseResponse roleGet(HttpServletRequest request, String id) {
log.info("\t> 执行 Service 层 RoleService.roleGet 方法");
// 检查用户权限
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 获取 Role 权限组
@ -119,7 +119,7 @@ public class RoleServiceImpl implements RoleService {
public BaseResponse roleEdit(HttpServletRequest request, RoleEditVO roleEditVO) {
log.info("\t> 执行 Service 层 RoleService.roleEdit 方法");
// 检查用户权限
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 获取 Role 相关信息
@ -143,7 +143,7 @@ public class RoleServiceImpl implements RoleService {
public BaseResponse roleDelete(HttpServletRequest request, Long id) {
log.info("\t> 执行 Service 层 RoleService.roleDelete 方法");
// 检查用户权限
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 获取 Role 相关信息
@ -165,7 +165,7 @@ public class RoleServiceImpl implements RoleService {
public BaseResponse addRole(HttpServletRequest request, RoleAddVo roleAddVO) throws ClassCopyException {
log.info("\t> 执行 Service 层 RoleService.addRole 方法");
// 检查用户权限
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 检查权限名称是否重复

View File

@ -51,7 +51,7 @@ public class UserServiceImpl implements UserService {
log.info("\t> 执行 Service 层 UserService.userDelete 方法");
//判断用户是否存在
if (userDAO.isExistUser(id)) {
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 用户是否已删除
@ -69,7 +69,7 @@ public class UserServiceImpl implements UserService {
@Override
public BaseResponse userLock(HttpServletRequest request, Long id, Long isLock) {
log.info("\t> 执行 Service 层 UserService.userLock 方法");
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
//判断用户是否存在
@ -159,7 +159,7 @@ public class UserServiceImpl implements UserService {
if (roleUserDO == null) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
RoleDO roleDO = roleDAO.roleMapper.getRoleByRoleName("admin");
RoleDO roleDO = roleDAO.getRoleByRoleName("admin");
if (!roleUserDO.getRid().equals(roleDO.getId())) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
@ -192,7 +192,7 @@ public class UserServiceImpl implements UserService {
public BaseResponse userAdd(UserAddVO userAddVo, HttpServletRequest request) {
log.info("\t> 执行 Service 层 UserService.userAdd 方法");
// 检测用户是否为管理员
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
//如果用户不重复添加用户
@ -230,7 +230,7 @@ public class UserServiceImpl implements UserService {
public BaseResponse userEdit(UserEditVO userEditVO, HttpServletRequest request) {
log.info("\t> 执行 Service 层 userEdit 方法");
// 检测用户是否为管理员
if (!Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
if (!Processing.checkUserIsAdmin(request, roleDAO)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
//根据id获取用户信息

View File

@ -0,0 +1,20 @@
package com.jsl.oa.services.timese;
import com.jsl.oa.services.MessageService;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component
public class MessageTimeTask {
@Resource
private MessageService messageService;
// 每天0点执行一次
@Scheduled(cron = "0 0 0 * * ?")
public void messageRemind() {
messageService.messageRemind();
}
}

View File

@ -34,7 +34,7 @@ public class JwtUtil {
* @return 返回生成的Token
*/
public static String generateToken(@NotNull Long userId) {
Key key = Keys.hmacShaKeyFor(SafeConstants.SECRET_KEY.getBytes());
Key key = Keys.hmacShaKeyFor(SafeConstants.getSecretKey().getBytes());
return Jwts.builder()
.setSubject(userId.toString())
.setExpiration(new java.util.Date(System.currentTimeMillis() + EXPIRATION_TIME))
@ -71,7 +71,7 @@ public class JwtUtil {
* @return 返回获取到的用户名
*/
public static Long getUserId(String token) {
Key key = Keys.hmacShaKeyFor(SafeConstants.SECRET_KEY.getBytes());
Key key = Keys.hmacShaKeyFor(SafeConstants.getSecretKey().getBytes());
Jws<Claims> claimsJws = Jwts.parserBuilder()
.setSigningKey(key)
.build()

View File

@ -7,7 +7,6 @@ import com.jsl.oa.dao.PermissionDAO;
import com.jsl.oa.dao.RoleDAO;
import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.exception.ClassCopyException;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.dodata.*;
import com.jsl.oa.model.vodata.PermissionContentVo;
import com.jsl.oa.model.vodata.ProjectSimpleVO;
@ -166,13 +165,12 @@ public class Processing {
* 该方法用于检查用户是否是管理员类型封装后字节返回结果
*
* @param request 请求
* @param roleMapper RoleMapper
* @return 如果为 true 是管理员false 不是管理员
*/
public static @NotNull Boolean checkUserIsAdmin(HttpServletRequest request, @NotNull RoleMapper roleMapper) {
RoleUserDO roleUserDO = roleMapper.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
public static @NotNull Boolean checkUserIsAdmin(HttpServletRequest request, @NotNull RoleDAO roleDAO) {
RoleUserDO roleUserDO = roleDAO.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
if (roleUserDO != null) {
RoleDO roleDO = roleMapper.getRoleByRoleName("admin");
RoleDO roleDO = roleDAO.getRoleByRoleName("admin");
return roleUserDO.getRid().equals(roleDO.getId());
} else {
return false;
@ -183,13 +181,12 @@ public class Processing {
* 检查用户是否是老师
*
* @param request 请求
* @param roleMapper RoleMapper
* @return 如果为 true 是老师false 不是老师
*/
public static @NotNull Boolean checkUserIsTeacher(HttpServletRequest request, @NotNull RoleMapper roleMapper) {
RoleUserDO roleUserDO = roleMapper.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
public static @NotNull Boolean checkUserIsTeacher(HttpServletRequest request, @NotNull RoleDAO roleDAO) {
RoleUserDO roleUserDO = roleDAO.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
if (roleUserDO != null) {
RoleDO roleDO = roleMapper.getRoleByRoleName("teacher");
RoleDO roleDO = roleDAO.getRoleByRoleName("teacher");
return roleUserDO.getRid().equals(roleDO.getId());
} else {
return false;
@ -211,11 +208,10 @@ public class Processing {
* @param <S> 源对象的类型
* @param source 从中复制属性的源对象
* @param target 属性将复制到的目标对象
* @return 复制属性后的目标对象
* @throws ClassCopyException 如果在复制过程中出现错误
*/
@Contract(pure = true)
public static <T, S> T copyProperties(@NotNull S source, @NotNull T target) throws ClassCopyException {
public static <T, S> void copyProperties(@NotNull S source, @NotNull T target) throws ClassCopyException {
Class<?> sourceClass = source.getClass();
Class<?> targetClass = target.getClass();
@ -254,26 +250,23 @@ public class Processing {
} catch (IllegalAccessException ignored) {
throw new ClassCopyException();
}
return null;
}
/**
* @Description: 将性别转为字符形式
* @Date: 2024/1/18
**/
* <h2>获取性别</h2>
* <hr/>
* 用于获取性别
*
* @param sex 性别ID
* @return 返回中文性别
*/
@Contract(pure = true)
public static @NotNull String getSex(short sex) {
if (sex == 0) {
return "保密";
switch (sex) {
case 1: return "";
case 2: return "";
default: return "保密";
}
if (sex == 1) {
return "";
}
if (sex == 2) {
return "";
}
return " ";
}
/**
@ -356,8 +349,12 @@ public class Processing {
return userDOS;
}
public static void projectTosimply(ProjectSimpleVO projectSimpleVO, ProjectDO projectDO, UserDAO userDAO, ObjectMapper objectMapper) {
public static void projectTosimply(
ProjectSimpleVO projectSimpleVO,
ProjectDO projectDO,
UserDAO userDAO,
ObjectMapper objectMapper
) {
projectSimpleVO.setId(projectDO.getId());
projectSimpleVO.setName(projectDO.getName());
projectSimpleVO.setTags(projectDO.getTags());

View File

@ -22,6 +22,7 @@ import java.util.concurrent.TimeUnit;
* @see com.jsl.oa.common.constant.BusinessConstants
* @see com.jsl.oa.config.redis.RedisOperating
* @author xiao_lfeng
* @param <R> 泛型
*/
@Slf4j
@Component
@ -59,4 +60,4 @@ public class RoleRedisUtil<R> extends RedisOperating<R> {
redisTemplate.expire(key, time, TimeUnit.MINUTES);
return true;
}
}
}