代码补丁
Some checks failed
JslOrganizeInternalOAPip/pipeline/pr-master Build started...
JslOrganizeInternalOAPip/pipeline/head There was a failure building this commit
JslDeveloper/JSL_OrganizeInternalOA/pipeline/head There was a failure building this commit

This commit is contained in:
筱锋xiao_lfeng 2024-01-25 22:26:46 +08:00
parent beb44faf39
commit 6d136f8423
Signed by: XiaoLFeng
GPG Key ID: F693AA12AABBFA87
8 changed files with 112 additions and 85 deletions

View File

@ -3,29 +3,29 @@
# https://www.jetbrains.com/help/qodana/qodana-yaml.html #
#-------------------------------------------------------------------------------#
version: "1.0"
#Specify inspection profile for code analysis
profile:
name: qodana.starter
#Enable inspections
#include:
# - name: <SomeEnabledInspectionId>
#Disable inspections
#exclude:
# - name: <SomeDisabledInspectionId>
# paths:
# - <path/where/not/run/inspection>
projectJDK: 17 #(Applied in CI/CD pipeline)
#Execute shell command before Qodana execution (Applied in CI/CD pipeline)
#bootstrap: sh ./prepare-qodana.sh
#Install IDE plugins before Qodana execution (Applied in CI/CD pipeline)
#plugins:
# - id: <plugin.id> #(plugin id can be found at https://plugins.jetbrains.com)
#Specify Qodana linter for analysis (Applied in CI/CD pipeline)
linter: jetbrains/qodana-jvm:latest
include:
- name: ClassLoaderInstantiation
- name: NonThreadSafeLazyInitialization
- name: DoubleBraceInitialization
- name: JavaLangImport
- name: UNUSED_IMPORT
- name: SamePackageImport

View File

@ -18,9 +18,8 @@ public interface MailService {
* @param sendTo 收件人
* @param subject 主题
* @param text 内容
* @return 是否发送成功
*/
boolean sendMail(String sendTo, String subject, String text);
void sendMail(String sendTo, String subject, String text);
/**
* <h2>发送邮件通用模板</h2>
@ -29,9 +28,8 @@ public interface MailService {
*
* @param sendTo 收件人
* @param model 模板
* @return 是否发送成功
*/
boolean sendMail(String sendTo, String model);
void sendMail(String sendTo, String model);
/**
* <h2>邮件登陆模块</h2>

View File

@ -15,6 +15,7 @@ import com.jsl.oa.utils.Processing;
import com.jsl.oa.utils.ResultUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
@ -41,12 +42,8 @@ public class InfoServiceImpl implements InfoService {
@Override
@CheckUserHasPermission("info.image.add")
public BaseResponse addHeaderImage(HttpServletRequest request, CarouselVO carouselVO) {
public BaseResponse addHeaderImage(HttpServletRequest request, @NotNull CarouselVO carouselVO) {
log.info("\t> 执行 Service 层 InfoService.addHeaderImage 方法");
// 用户权限校验
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
UserDO userDO = userDAO.getUserById(userId);
@ -71,12 +68,9 @@ public class InfoServiceImpl implements InfoService {
}
@Override
@CheckUserHasPermission("info.image.edit")
public BaseResponse editHeaderImage(HttpServletRequest request, CarouselVO carouselVO, Integer id) {
log.info("\t> 执行 Service 层 InfoService.editHeaderImage 方法");
// 用户权限校验
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
UserDO userDO = userDAO.getUserById(userId);
@ -119,6 +113,7 @@ public class InfoServiceImpl implements InfoService {
}
@Override
@CheckUserHasPermission("info.image.del")
public BaseResponse delHeaderImage(HttpServletRequest request, Integer id) {
log.info("\t> 执行 Service 层 InfoService.delHeaderImage 方法");
// 用户权限校验
@ -141,6 +136,7 @@ public class InfoServiceImpl implements InfoService {
}
@Override
@CheckUserHasPermission("info.image.setting.edit")
public BaseResponse editSettingHeaderImage(HttpServletRequest request, Boolean showType) {
log.info("\t> 执行 Service 层 InfoService.editSettingHeaderImage 方法");
// 用户权限校验

View File

@ -1,5 +1,6 @@
package com.jsl.oa.services.impl;
import com.jsl.oa.annotations.CheckUserAbleToUse;
import com.jsl.oa.services.MailService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -37,7 +38,9 @@ public class MailServiceImpl implements MailService {
private String from;
@Override
public boolean sendMail(String sendTo, String subject, String text) {
@Async
@CheckUserAbleToUse
public void sendMail(String sendTo, String subject, String text) {
log.info("\t> 执行 Service 层 MailService.sendMail 方法");
//发送多媒体邮件
try {
@ -51,23 +54,23 @@ public class MailServiceImpl implements MailService {
javaMailSender.send(message);
log.info("\t> 发送邮件 {} 标题 {} 成功", sendTo, subject);
return true;
} catch (MessagingException e) {
//TODO: 10001-发送邮件失败处理
log.error("\t> 邮件发送失败", e);
return false;
}
}
@Override
public boolean sendMail(String sendTo, String model) {
@Async
@CheckUserAbleToUse
public void sendMail(String sendTo, String model) {
log.info("\t> 执行 Service 层 MailService.sendMail 方法");
return false;
}
@Override
@Async
@CheckUserAbleToUse
public void sendMailAboutUserLogin(String email, Integer code) {
log.info("\t> 执行 Service 层 MailService.sendMailAboutUserLogin 方法");
// 发送邮件带HTML模块部分

View File

@ -1,12 +1,17 @@
package com.jsl.oa.services.impl;
import com.jsl.oa.annotations.CheckUserAbleToUse;
import com.jsl.oa.annotations.CheckUserHasPermission;
import com.jsl.oa.mapper.MessageMapper;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.doData.MessageDO;
import com.jsl.oa.model.doData.PageBeanDO;
import com.jsl.oa.services.MessageService;
import com.jsl.oa.utils.*;
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 lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -16,6 +21,15 @@ import java.time.LocalDate;
import java.util.List;
/**
* <h1>消息服务层实现类</h1>
* <hr/>
* 用于消息服务层的实现类
*
* @author xiao_lfeng | xiangZr-hhh | 176yunxuan
* @version v1.1.0
* @since v1.1.0
*/
@Slf4j
@Service
@RequiredArgsConstructor
@ -25,6 +39,7 @@ public class MessageServiceImpl implements MessageService {
private final RoleMapper roleMapper;
@Override
@CheckUserHasPermission("message.delete")
public BaseResponse messageDelete(Long mid, HttpServletRequest request) {
//获取消息数据
MessageDO messageDO = messageMapper.getMessageById(mid);
@ -41,6 +56,7 @@ public class MessageServiceImpl implements MessageService {
}
@Override
@CheckUserAbleToUse
public BaseResponse messageGet(LocalDate begin, LocalDate end, Long page, Long pageSize, Long uid) {
//1.记录总数据数
Long count = messageMapper.count(uid);
@ -60,27 +76,24 @@ public class MessageServiceImpl implements MessageService {
}
@Override
@CheckUserHasPermission("message.get")
public BaseResponse messageGetAll(HttpServletRequest request, LocalDate begin, LocalDate end, Long page, Long pageSize, Long loginId, Long uid) {
log.info("请求接口服务层");
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
} else {
//1.记录总数据数
Long count = messageMapper.count(uid);
//1.记录总数据数
Long count = messageMapper.count(uid);
//2.获取分页数据列表
//默认获取时间为最近30天
if (begin == null) {
begin = LocalDate.now();
end = begin.minusDays(30);
}
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);
//2.获取分页数据列表
//默认获取时间为最近30天
if (begin == null) {
begin = LocalDate.now();
end = begin.minusDays(30);
}
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);
}

View File

@ -1,6 +1,7 @@
package com.jsl.oa.services.impl;
import com.jsl.oa.annotations.CheckUserHasPermission;
import com.jsl.oa.dao.NewsDAO;
import com.jsl.oa.model.doData.NewsDO;
import com.jsl.oa.model.voData.NewsAddVO;
@ -11,10 +12,21 @@ import com.jsl.oa.utils.Processing;
import com.jsl.oa.utils.ResultUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
/**
* <h1>新闻服务层实现类</h1>
* <hr/>
* 用于新闻服务层的实现类
*
* @since v1.1.0
* @version v1.1.0
* @see com.jsl.oa.services.NewsService
* @author xiao_lfeng | xiangZr-hhh | 176yunxuan
*/
@Slf4j
@Service
@RequiredArgsConstructor
@ -23,16 +35,17 @@ public class NewsServiceImpl implements NewsService {
private final NewsDAO newsDAO;
@Override
public BaseResponse newsAdd(NewsAddVO newsAddVO, HttpServletRequest request) {
@CheckUserHasPermission("news.add")
public BaseResponse newsAdd(NewsAddVO newsAddVO, @NotNull HttpServletRequest request) {
log.info("\t> 执行 Service 层 NewsService.newsAdd 方法");
// 拷贝新闻数据到实体类
// 拷贝新闻数据到实体类
NewsDO newsDO = new NewsDO();
Processing.copyProperties(newsAddVO,newsDO);
// 获取现在的用户id
Processing.copyProperties(newsAddVO, newsDO);
// 获取现在的用户id
String token = request.getHeader("Authorization").replace("Bearer ", "");
Long uid = JwtUtil.getUserId(token);
// 添加新闻数据
newsDAO.addNews(newsDO,uid);
// 添加新闻数据
newsDAO.addNews(newsDO, uid);
return ResultUtil.success();
}

View File

@ -1,11 +1,10 @@
package com.jsl.oa.services.impl;
import com.jsl.oa.annotations.CheckUserHasPermission;
import com.jsl.oa.dao.ProjectDAO;
import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.RoleMapper;
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.UserDO;
import com.jsl.oa.model.doData.info.ProjectShowDO;
import com.jsl.oa.model.voData.ProjectCuttingAddVO;
@ -27,6 +26,16 @@ import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
/**
* <h1>项目服务层实现类</h1>
* <hr/>
* 用于项目服务层的实现类
*
* @since v1.1.0
* @version v1.1.0
* @see com.jsl.oa.services.ProjectService
* @author xiao_lfeng | 176yunxuan | xiangZr-hhh
*/
@Slf4j
@Service
@RequiredArgsConstructor
@ -34,31 +43,31 @@ public class ProjectServiceImpl implements ProjectService {
private final ProjectDAO projectDAO;
private final UserDAO userDAO;
private final RoleMapper roleMapper;
@Override
@CheckUserHasPermission("project.add")
public BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd) {
log.info("\t> 执行 Service 层 ProjectService.projectAdd 方法");
if (Processing.checkUserIsAdmin(request, roleMapper)) {
projectDAO.projectAdd(projectAdd);
return ResultUtil.success("添加成功");
} else return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
@Override
@CheckUserHasPermission("project.edit")
public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectInfoVO projectEdit) {
log.info("\t> 执行 Service 层 ProjectService.projectEdit 方法");
if (Processing.checkUserIsAdmin(request, roleMapper)) {
//判断项目是否存在
if (projectDAO.isExistProject(projectEdit.getId())) {
projectDAO.projectEdit(projectEdit);
return ResultUtil.success("修改成功");
} else return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
} else return ResultUtil.error(ErrorCode.NOT_ADMIN);
} else {
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
}
}
@Override
@CheckUserHasPermission("project.cutting.user.get")
public BaseResponse projectGetUserInCutting(Long uid) {
log.info("\t> 执行 Service 层 ProjectService.projectGetUserInCutting 方法");
if (userDAO.isExistUser(uid)) {
@ -70,14 +79,15 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
@CheckUserHasPermission("project.cutting.user.add")
public BaseResponse projectAddUserForCutting(HttpServletRequest request, Long uid, Long pid) {
log.info("\t> 执行 Service 层 ProjectService.projectAddUserForCutting 方法");
if (Processing.checkUserIsAdmin(request, roleMapper)) {
if (userDAO.isExistUser(uid)) {
projectDAO.projectAddUserForCutting(uid, pid);
return ResultUtil.success();
} else return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
} else return ResultUtil.error(ErrorCode.NOT_ADMIN);
} else {
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
}
}
@Override
@ -96,27 +106,24 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
@CheckUserHasPermission("info.project.add")
public BaseResponse addHeader(HttpServletRequest request, ProjectShowVO projectShowVO) {
log.info("\t> 执行 Service 层 InfoService.addHeader 方法");
// 用户权限校验
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
UserDO userDO = userDAO.getUserById(userId);
// 获取展示信息
ProjectShowDO projectShowDO = projectDAO.getHeader();
// 添加展示
ProjectShowDO.DataDO project_show = new ProjectShowDO.DataDO();
project_show.setDisplayOrder(projectShowVO.getDisplayOrder())
ProjectShowDO.DataDO projectShow = new ProjectShowDO.DataDO();
projectShow.setDisplayOrder(projectShowVO.getDisplayOrder())
.setName(projectShowVO.getName())
.setType(projectShowVO.getType())
.setStatus(projectShowVO.getStatus())
.setIsActive(projectShowVO.getIsActive())
.setAuthor(userDO.getUsername())
.setCreatedAt(new Timestamp(System.currentTimeMillis()).toString());
projectShowDO.getData().add(project_show);
projectShowDO.getData().add(projectShow);
// 保存展示
if (projectDAO.setProjectShow(projectShowDO)) {
return ResultUtil.success();
@ -126,12 +133,9 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
@CheckUserHasPermission("info.project.del")
public BaseResponse delHeader(Integer id, HttpServletRequest request) {
log.info("\t> 执行 Service 层 InfoService.delHeader 方法");
// 用户权限校验
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 获取展示信息
ProjectShowDO projectShowDO = projectDAO.getHeader();
// 删除指定展示id
@ -148,12 +152,9 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
@CheckUserHasPermission("info.project.edit")
public BaseResponse editHeader(HttpServletRequest request, ProjectShowVO projectShowVO, Integer id) {
log.info("\t> 执行 Service 层 InfoService.editHeader 方法");
// 用户权限校验
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 获取用户
Long userId = Processing.getAuthHeaderToUserId(request);
UserDO userDO = userDAO.getUserById(userId);
@ -191,23 +192,26 @@ public class ProjectServiceImpl implements ProjectService {
log.info("\t> 执行 Service 层 ProjectService.getByName 方法");
if (projectDAO.getByName(name) == null) {
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
} else return ResultUtil.success(projectDAO.getByName(name));
} else {
return ResultUtil.success(projectDAO.getByName(name));
}
}
@Override
@CheckUserHasPermission("project.delete")
public BaseResponse projectDelete(HttpServletRequest request, Long id) {
log.info("\t> 执行 Service 层 ProjectService.projectDelete 方法");
if (Processing.checkUserIsAdmin(request, roleMapper)) {
if (!projectDAO.projectDelete(id)) {
return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR);
} else return ResultUtil.success();
} else return ResultUtil.error(ErrorCode.NOT_ADMIN);
} else {
return ResultUtil.success();
}
}
@Override
@CheckUserHasPermission("project.cutting.add")
public BaseResponse addProjectCutting(HttpServletRequest request, ProjectCuttingAddVO projectCuttingAddVO) {
log.info("\t> 执行 Service 层 ProjectService.projectCuttingAdd方法");
if (Processing.checkUserIsAdmin(request, roleMapper)) {
//赋值数据
ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO();
Processing.copyProperties(projectCuttingAddVO, projectCuttingDO);
@ -218,13 +222,12 @@ public class ProjectServiceImpl implements ProjectService {
//向数据库添加数据
projectDAO.projectCuttingAdd(projectCuttingDO);
return ResultUtil.success();
} else return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
@Override
@CheckUserHasPermission("project.cutting.edit")
public BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO) {
log.info("\t> 执行 Service 层 ProjectService.projectCuttingEdit方法");
if (Processing.checkUserIsAdmin(request, roleMapper)) {
//赋值数据
ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO();
Processing.copyProperties(projectCuttingEditVO, projectCuttingDO);
@ -235,13 +238,12 @@ public class ProjectServiceImpl implements ProjectService {
//向数据库添加数据
projectDAO.updateProjectCutting(projectCuttingDO);
return ResultUtil.success();
} else return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
@Override
@CheckUserHasPermission("project.cutting.delete")
public BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid) {
log.info("\t> 执行 Service 层 ProjectService.projectToOtherUserForCutting方法");
if (Processing.checkUserIsAdmin(request, roleMapper)) {
//检测新旧用户是否存在
if (!userDAO.isExistUser(oldUid) || !userDAO.isExistUser(newUid)) {
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
@ -255,7 +257,6 @@ public class ProjectServiceImpl implements ProjectService {
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
}
return ResultUtil.success();
} else return ResultUtil.error(ErrorCode.NOT_ADMIN);
}

View File

@ -1,5 +1,6 @@
package com.jsl.oa.services.impl;
import com.jsl.oa.annotations.CheckUserHasPermission;
import com.jsl.oa.dao.RoleDAO;
import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.exception.ClassCopyException;
@ -40,6 +41,7 @@ public class RoleServiceImpl implements RoleService {
private final UserDAO userDAO;
@Override
@CheckUserHasPermission("role.add")
public BaseResponse roleAddUser(HttpServletRequest request, Long uid, Long rid) {
log.info("\t> 执行 Service 层 RoleService.addRoleUser 方法");
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {
@ -51,6 +53,7 @@ public class RoleServiceImpl implements RoleService {
}
@Override
public BaseResponse roleRemoveUser(HttpServletRequest request, Long uid) {
log.info("\t> 执行 Service 层 RoleService.delRoleUser 方法");
if (Processing.checkUserIsAdmin(request, roleDAO.roleMapper)) {