Compare commits

...

2 Commits

Author SHA1 Message Date
fe4dfb77e6
patch: 符合开发规约
Some checks failed
代码检查 / 代码检查 (pull_request) Failing after 54s
代码检查 / 代码检查 (push) Failing after 1m11s
2024-04-10 01:22:55 +08:00
06bb45ba5d
patch: 符合开发规约 2024-04-10 01:22:31 +08:00
13 changed files with 638 additions and 336 deletions

View File

@ -1,63 +1,208 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<!-- 设置换行符 -->
<property name="lineSeparator" value="lf"/>
<!-- 检查文件头部 -->
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>
<!-- 检查文件的末尾是否有换行符 -->
<!-- 检查文件是否以一个空行结束 -->
<module name="NewlineAtEndOfFile"/>
<!-- 检查缩进是否使用空格而不是 Tab -->
<module name="Checker">
<property name="fileExtensions" value="java"/>
<module name="Indentation">
<property name="basicOffset" value="4"/>
<property name="braceAdjustment" value="0"/>
<property name="caseIndent" value="4"/>
<property name="throwsIndent" value="4"/>
<property name="lineWrappingIndentation" value="4"/>
</module>
<!-- 文件长度不超过1500行 -->
<module name="FileLength">
<property name="max" value="1500"/>
</module>
<!-- 检查代码中的注释 -->
<module name="Checker">
<property name="fileExtensions" value="java"/>
<!-- 每个java文件一个语法树 -->
<module name="TreeWalker">
<module name="JavadocMethod"/>
<module name="JavadocVariable"/>
<module name="JavadocStyle"/>
<!-- import检查-->
<!-- 避免使用* -->
<module name="AvoidStarImport">
<property name="excludes" value="java.io,java.net,java.lang.Math"/>
<!-- 实例import java.util.*;.-->
<property name="allowClassImports" value="false"/>
<!-- 实例 import static org.junit.Assert.*;-->
<property name="allowStaticMemberImports" value="true"/>
</module>
<!-- 检查是否从非法的包中导入了类 -->
<module name="IllegalImport"/>
<!-- 检查是否导入了多余的包 -->
<module name="RedundantImport"/>
<!-- 没用的import检查比如1.没有被用到2.重复的3.import java.lang的4.import 与该类在同一个package的 -->
<module name="UnusedImports" />
<!-- 注释检查 -->
<!-- 检查方法和构造函数的javadoc -->
<module name="JavadocType">
<property name="allowUnknownTags" value="true"/>
<message key="javadoc.missing" value="类注释缺少Javadoc注释。"/>
</module>
<module name="JavadocMethod">
<property name="tokens" value="METHOD_DEF" />
<!--允许get set 方法没有注释-->
<property name="allowMissingPropertyJavadoc" value="true"/>
<message key="javadoc.missing" value="方法注释缺少Javadoc注释。"/>
</module>
<!-- 检查空白行 -->
<module name="Checker">
<property name="fileExtensions" value="java"/>
<module name="TreeWalker">
<module name="EmptyLineSeparator">
<property name="tokens" value="CLASS_DEF,INTERFACE_DEF,ENUM_DEF,METHOD_DEF,CTOR_DEF"/>
</module>
<!-- 命名检查 -->
<!-- 局部的final变量包括catch中的参数的检查 -->
<module name="LocalFinalVariableName" />
<!-- 局部的非final型的变量包括catch中的参数的检查 -->
<module name="LocalVariableName" />
<!-- 包名的检查(只允许小写字母),默认^[a-z]+(\.[a-zA-Z_][a-zA-Z_0-9_]*)*$ -->
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$" />
<message key="name.invalidPattern" value="包名 ''{0}'' 要符合 ''{1}''格式."/>
</module>
<!-- 仅仅是static型的变量不包括static final型的检查 -->
<module name="StaticVariableName" />
<!-- Class或Interface名检查默认^[A-Z][a-zA-Z0-9]*$-->
<module name="TypeName">
<property name="severity" value="warning"/>
<message key="name.invalidPattern" value="名称 ''{0}'' 要符合 ''{1}''格式."/>
</module>
<!-- 非static型变量的检查 -->
<module name="MemberName" />
<!-- 方法名的检查 -->
<module name="MethodName" />
<!-- 方法的参数名 -->
<module name="ParameterName " />
<!-- 常量名的检查(只允许大写),默认^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$ -->
<module name="ConstantName" />
<!-- 检查行长度 -->
<module name="Checker">
<property name="fileExtensions" value="java"/>
<module name="TreeWalker">
<!-- 定义检查 -->
<!-- 检查数组类型定义的样式 -->
<module name="ArrayTypeStyle"/>
<!-- 检查long型定义是否有大写的“L” -->
<module name="UpperEll"/>
<!-- 长度检查 -->
<!-- 每行不超过120个字符 -->
<module name="LineLength">
<property name="max" value="120"/>
<property name="ignorePattern" value="^import .*"/>
<property name="max" value="120" />
</module>
<!-- 方法不超过50行 -->
<module name="MethodLength">
<property name="tokens" value="METHOD_DEF" />
<property name="max" value="50" />
</module>
<!-- 方法的参数个数不超过5个。 并且不对构造方法进行检查-->
<module name="ParameterNumber">
<property name="max" value="5" />
<property name="ignoreOverriddenMethods" value="true"/>
<property name="tokens" value="METHOD_DEF" />
</module>
<!-- 其他规则可以根据需要添加 -->
<!-- 空格检查-->
<!-- 方法名后跟左圆括号"(" -->
<module name="MethodParamPad" />
<!-- 在类型转换时,不允许左圆括号右边有空格,也不允许与右圆括号左边有空格 -->
<module name="TypecastParenPad" />
<!-- 检查在某个特定关键字之后应保留空格 -->
<module name="NoWhitespaceAfter"/>
<!-- 检查在某个特定关键字之前应保留空格 -->
<module name="NoWhitespaceBefore"/>
<!-- 操作符换行策略检查 -->
<module name="OperatorWrap"/>
<!-- 圆括号空白 -->
<module name="ParenPad"/>
<!-- 检查分隔符是否在空白之后 -->
<module name="WhitespaceAfter"/>
<!-- 检查分隔符周围是否有空白 -->
<module name="WhitespaceAround"/>
<!-- 修饰符检查 -->
<!-- 检查修饰符的顺序是否遵照java语言规范默认public、protected、private、abstract、static、final、transient、volatile、synchronized、native、strictfp -->
<module name="ModifierOrder"/>
<!-- 检查接口和annotation中是否有多余修饰符如接口方法不必使用public -->
<module name="RedundantModifier"/>
<!-- 代码块检查 -->
<!-- 检查是否有嵌套代码块 -->
<module name="AvoidNestedBlocks"/>
<!-- 检查是否有空代码块 -->
<module name="EmptyBlock"/>
<!-- 检查左大括号位置 -->
<module name="LeftCurly"/>
<!-- 检查代码块是否缺失{} -->
<module name="NeedBraces"/>
<!-- 检查右大括号位置 -->
<module name="RightCurly"/>
<!-- 代码检查 -->
<!-- 检查空的代码段 -->
<module name="EmptyStatement"/>
<!-- 检查在重写了equals方法后是否重写了hashCode方法 -->
<module name="EqualsHashCode"/>
<!-- 检查局部变量或参数是否隐藏了类中的变量 -->
<module name="HiddenField">
<property name="tokens" value="VARIABLE_DEF"/>
</module>
<!-- 检查是否使用工厂方法实例化 -->
<module name="IllegalInstantiation"/>
<!-- 检查子表达式中是否有赋值操作 -->
<module name="InnerAssignment"/>
<!-- 检查是否有"魔术"数字 -->
<module name="MagicNumber">
<property name="ignoreNumbers" value="0, 1"/>
<property name="ignoreAnnotation" value="true"/>
</module>
<!-- 检查switch语句是否有default -->
<module name="MissingSwitchDefault"/>
<!-- 检查是否有过度复杂的布尔表达式 -->
<module name="SimplifyBooleanExpression"/>
<!-- 检查是否有过于复杂的布尔返回代码段 -->
<module name="SimplifyBooleanReturn"/>
<!-- 类设计检查 -->
<!-- 检查类是否为扩展设计l -->
<!-- 检查只有private构造函数的类是否声明为final -->
<module name="FinalClass"/>
<!-- 检查工具类是否有putblic的构造器 -->
<module name="HideUtilityClassConstructor"/>
<!-- 检查接口是否仅定义类型 -->
<module name="InterfaceIsType"/>
<!-- 检查类成员的可见度 检查类成员的可见性。只有static final 成员是public的
除非在本检查的protectedAllowed和packagedAllowed属性中进行了设置-->
<module name="VisibilityModifier">
<property name="packageAllowed" value="true"/>
<property name="protectedAllowed" value="true"/>
</module>
<!-- 语法 -->
<!-- String的比较不能用!= 和 == -->
<module name="StringLiteralEquality"/>
<!-- 限制for循环最多嵌套2层 -->
<module name="NestedForDepth">
<property name="max" value="2"/>
</module>
<!-- if最多嵌套3层 -->
<module name="NestedIfDepth">
<property name="max" value="3"/>
</module>
<!-- 检查未被注释的main方法,排除以Appllication结尾命名的类 -->
<module name="UncommentedMain">
<property name="excludedClasses" value=".*Application$"/>
</module>
<!-- 禁止使用System.out.println -->
<module name="Regexp">
<property name="format" value="System\.out\.println"/>
<property name="illegalPattern" value="true"/>
</module>
<!-- return个数 3个-->
<module name="ReturnCount">
<property name="max" value="3"/>
</module>
<!--try catch 异常处理数量 3-->
<module name="NestedTryDepth ">
<property name="max" value="3"/>
</module>
<!-- clone方法必须调用了super.clone() -->
<module name="SuperClone" />
<!-- finalize 必须调用了super.finalize() -->
<module name="SuperFinalize" />
</module>
</module>

View File

@ -24,6 +24,7 @@ import java.util.regex.Pattern;
* <hr/>
* 用户认证控制器包含用户注册用户登录用户登出接口
*
* @author 筱锋xiao_lfeng|176yunxuan
* @version v1.1.0
* @see AuthService
* @see UserRegisterVO
@ -33,7 +34,6 @@ import java.util.regex.Pattern;
* @see Processing
* @see ResultUtil
* @since v1.0.0
* @author 筱锋xiao_lfeng|176yunxuan
*/
@Slf4j
@RestController
@ -106,6 +106,17 @@ public class AuthController {
}
}
/**
* <h1>通过电子邮件和验证码处理用户登录</h1>
* <hr/>
* 此方法首先验证电子邮件格式并检查提供的验证码是否为有效整数
* 如果验证通过它尝试使用提供的电子邮件和验证码登录用户
*
* @param email 用户尝试登录的电子邮件地址
* @param code 发送到用户电子邮件的验证码用于身份验证
* @return {@link BaseResponse} 包含登录尝试的结果这可以是带有登录详细信息的成功消息
* 或者指示出了什么问题例如参数无效验证码错误的错误消息
*/
@GetMapping("/auth/login/email")
public BaseResponse authLoginByEmail(@RequestParam String email, @RequestParam String code) {
log.info("请求接口[GET]: /auth/login/email");
@ -140,6 +151,17 @@ public class AuthController {
return authService.authLogout(request);
}
/**
* <h2>修改密码</h2>
* <hr/>
* 修改密码
*
* @param userChangePasswordVO 用户修改密码信息
* @param request HTTP请求
* @param bindingResult 参数校验结果
* @return {@link BaseResponse}
* @since v1.1.0
*/
@PutMapping("/auth/password")
public BaseResponse authChangePassword(@RequestBody @Validated UserChangePasswordVO userChangePasswordVO, HttpServletRequest request, @NotNull BindingResult bindingResult) {
log.info("请求接口[PUT]: /auth/password");
@ -150,6 +172,11 @@ public class AuthController {
return authService.authChangePassword(request, userChangePasswordVO);
}
/**
* <h2>忘记密码</h2>
* <hr/>
* 忘记密码
*/
@PutMapping("auth/password/forget")
public BaseResponse authForgetPassword(@RequestBody @Validated UserForgetPasswordVO userForgetPasswordVO, @NotNull BindingResult bindingResult) {
log.info("请求接口[PUT]: /auth/password/forget");

View File

@ -8,15 +8,30 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author xiaofeng
* CustomController类实现ErrorController接口处理错误和未授权请求
*
* @author xiao_lfeng
* @since v1.0.0-SNAPSHOT
* @version 1.0.0-SNAPSHOT
*/
@RestController
public class CustomController implements ErrorController {
/**
* 处理错误请求返回一个包含错误信息的ResponseEntity
*
* @return 一个包含错误信息的ResponseEntity
*/
@RequestMapping("/error")
public ResponseEntity<BaseResponse> handleError() {
return ResultUtil.error("PageNotFound", 404, "请求资源不存在");
}
/**
* 处理未授权请求返回一个包含错误信息的ResponseEntity
*
* @return 一个包含错误信息的ResponseEntity
*/
@RequestMapping("/unauthorized")
public ResponseEntity<BaseResponse> handleUnauthorized() {
return ResultUtil.error("Unauthorized", 401, "未授权");

View File

@ -9,15 +9,30 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
/**
* @author xiaofeng
* IndexController类提供了JSL-OA系统的主入口处理根路径"/"的GET请求
*
* @author xiao_lfeng
* @version v1.0.0-SNAPSHOT
* @since v1.0.0-SNAPSHOT
*/
@Slf4j
@RestController
public class IndexController {
/**
* 使用@Value注解Spring会自动注入Maven构建时间
*/
@Value("${maven.timestamp}")
private String timestamp;
/**
* 处理根路径"/"的GET请求返回一个包含欢迎信息和服务器状态的成功响应
* 在处理请求时会记录一个info级别的日志信息
*
* @return 一个包含欢迎信息和服务器状态的成功响应
*/
@RequestMapping("/")
public BaseResponse index() {
log.info("请求接口[GET]: /");
@ -25,6 +40,4 @@ public class IndexController {
newMap.put("timestamp", "构建时间:" + timestamp);
return ResultUtil.success("欢迎使用JSL-OA系统服务器处于正常状态", newMap);
}
}

View File

@ -20,7 +20,7 @@ import javax.servlet.http.HttpServletRequest;
* <hr/>
* 信息控制器包含信息获取接口
*
* @author 筱锋xiao_lfeng
* @author xiao_lfeng
* @version v1.1.0
* @since v1.1.0
*/
@ -28,14 +28,31 @@ import javax.servlet.http.HttpServletRequest;
@RestController
@RequiredArgsConstructor
public class InfoController {
private final InfoService infoService;
/**
* 信息服务
*/
private final InfoService infoService;
/**
* 获取头部图片信息
*
* @param id 图片id
* @return 图片信息
*/
@GetMapping("/info/header-image/get")
public BaseResponse infoGetHeaderImage(@RequestParam(required = false) Integer id) {
log.info("请求接口[GET]: /info/header-image/get");
return infoService.getHeaderImage(id);
}
/**
* 编辑头部图片信息
*
* @param carouselVO 图片信息
* @param request 请求对象
* @param bindingResult 数据校验结果
* @return 编辑结果
*/
@PutMapping("/info/header-image/edit")
public BaseResponse infoEditHeaderImage(@RequestBody @Validated CarouselVO carouselVO, HttpServletRequest request, @NotNull BindingResult bindingResult) {
log.info("请求接口[PUT]: /info/header-image/edit");
@ -51,12 +68,27 @@ public class InfoController {
return infoService.editHeaderImage(request, carouselVO);
}
/**
* 删除头部图片信息
*
* @param id 图片id
* @param request 请求对象
* @return 删除结果
*/
@DeleteMapping("/info/header-image/del")
public BaseResponse infoDelHeaderImage(@RequestParam Integer id, HttpServletRequest request) {
log.info("请求接口[DELETE]: /info/header-image/del");
return infoService.delHeaderImage(request, id);
}
/**
* 添加头部图片信息
*
* @param carouselVO 图片信息
* @param request 请求对象
* @param bindingResult 数据校验结果
* @return 添加结果
*/
@PostMapping("/info/header-image/add")
public BaseResponse infoAddHeaderImage(@RequestBody @Validated CarouselVO carouselVO, HttpServletRequest request, @NotNull BindingResult bindingResult) {
log.info("请求接口[POST]: /info/header-image/add");
@ -68,12 +100,27 @@ public class InfoController {
return infoService.addHeaderImage(request, carouselVO);
}
/**
* 编辑头部图片设置
*
* @param showType 是否显示
* @param request 请求对象
* @return 编辑结果
*/
@PutMapping("/info/header-image/edit-setting")
public BaseResponse infoEditSettingHeaderImage(@RequestParam Boolean showType, HttpServletRequest request) {
log.info("请求接口[PUT]: /info/header-image/edit-setting");
return infoService.editSettingHeaderImage(request, showType);
}
/**
* 获取头部用户信息
*
* @param order 排序方式
* @param orderBy 排序字段
* @param request 请求对象
* @return 用户信息
*/
@GetMapping("info/header-user/get")
public BaseResponse infoGetHeaderUser(@RequestParam String order,@RequestParam String orderBy,HttpServletRequest request){
log.info("请求接口[GET]: /info/header-user/get");

View File

@ -21,7 +21,7 @@ import java.time.LocalDate;
* <hr/>
* 消息控制器包含信息获取接口
*
* @author 张睿相
* @author xiangZr-hhh
* @version v1.1.0
* @since v1.1.0
*/
@ -32,6 +32,13 @@ public class MessageController {
private final MessageService messageService;
/**
* 删除消息
*
* @param id 消息id
* @param request 请求对象
* @return 删除结果
*/
@DeleteMapping("/message/delete")
public BaseResponse messageDelete(@RequestParam Long id, HttpServletRequest request) {
if (id == null) {
@ -39,6 +46,16 @@ public class MessageController {
} else return messageService.messageDelete(id, request);
}
/**
* 获取消息列表
*
* @param page 页码
* @param pageSize 每页条数
* @param request 请求对象
* @param begin 开始日期
* @param end 结束日期
* @return 消息列表
*/
@GetMapping("/message/get")
public BaseResponse messageGet(@RequestParam(defaultValue = "1") Long page,
@RequestParam(defaultValue = "10") Long pageSize,
@ -53,6 +70,17 @@ public class MessageController {
} else 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,
@ -62,12 +90,11 @@ public class MessageController {
@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) {
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);
} else return messageService.messageGetAll(request, begin, end, page, pageSize, loginId, uid);
}
}

View File

@ -1,53 +0,0 @@
package com.jsl.oa.controllers;
import com.jsl.oa.services.ModuleService;
import com.jsl.oa.utils.BaseResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@Slf4j
@RestController
@RequiredArgsConstructor
public class ModuleContorller {
private final ModuleService moduleService;
/**
* 获取子系统
* @param projectId
* @param request
* @return
*/
@GetMapping("/module/get")
public BaseResponse moudleGetByProjectId(@RequestParam Integer projectId, HttpServletRequest request){
log.info("ProjectIdcontroller");
return moduleService.getByProjectId(projectId,request);
}
/**
* 获取子模块
* @param sysId
* @param request
* @return
*/
@GetMapping("/module/get/min")
public BaseResponse moudleGetBySysId(@RequestParam Integer sysId, HttpServletRequest request){
log.info("SysIdcontorller");
return moduleService.getBySysId(sysId,request);
}
@DeleteMapping("/module/delete/{id}")
public BaseResponse moudleDeleteById( @PathVariable("id") Long id, HttpServletRequest request){
log.info("请求接口[DELETE]: /module/delete/{id}");
return moduleService.deleteById(request,id);
}
}

View File

@ -0,0 +1,68 @@
package com.jsl.oa.controllers;
import com.jsl.oa.services.ModuleService;
import com.jsl.oa.utils.BaseResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
* <h1>模块控制器</h1>
* <hr/>
* 模块控制器包含模块获取接口
*
* @since v1.1.0
* @version v1.1.0
* @author xiangZr-hhh | xiao_lfeng | 176yunxuan
*/
@Slf4j
@RestController
@RequiredArgsConstructor
public class ModuleController {
private final ModuleService moduleService;
/**
* 获取子系统
*
* @param projectId 项目ID
* @param request 请求对象
* @return 子系统列表
*/
@GetMapping("/module/get")
public BaseResponse moduleGetByProjectId(@RequestParam Integer projectId, HttpServletRequest request) {
log.info("[Controller] 执行 moduleGetByProjectId 接口");
return moduleService.getByProjectId(projectId, request);
}
/**
* 获取子模块
*
* @param sysId 系统ID
* @param request 请求对象
* @return 子模块列表
*/
@GetMapping("/module/get/min")
public BaseResponse moduleGetBySysId(@RequestParam Integer sysId, HttpServletRequest request) {
log.info("[Controller] 执行 moduleGetBySysId 接口");
return moduleService.getBySysId(sysId, request);
}
/**
* 删除模块
*
* @param id 模块ID
* @param request 请求对象
* @return 删除结果
*/
@DeleteMapping("/module/delete/{id}")
public BaseResponse moduleDeleteById(@PathVariable("id") Long id, HttpServletRequest request) {
log.info("[Controller] 执行 moduleDeleteById 接口");
return moduleService.deleteById(request, id);
}
}

View File

@ -20,13 +20,13 @@ import javax.servlet.http.HttpServletRequest;
/**
* <h1>新闻控制器</h1>
* <hr/>
* 角色控制器包含角色获取接口
* 新闻控制器包含新闻添加接口
*
* @version v1.1.0
* @see NewsService
* @since v1.1.0
* @author xiangZr-hhh | xiao_lfeng | 176yunxuan
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@ -34,6 +34,18 @@ public class NewsController {
private final NewsService newsService;
/**
* <h2>新闻添加接口</h2>
* <hr/>
* 新闻添加接口接收新闻添加VO对象并调用NewsService的newsAdd方法进行新闻添加操作
*
* @param newsAddVO 新闻添加VO对象包含新闻信息
* @param bindingResult 数据校验结果用于检查请求参数是否有错误
* @param request 请求对象包含请求信息
* @return BaseResponse 返回结果包含操作结果和错误信息
* @see NewsService#newsAdd(NewsAddVO, HttpServletRequest)
* @since v1.1.0
*/
@PostMapping("/news/add")
public BaseResponse newsAdd(@RequestBody @Validated NewsAddVO newsAddVO, BindingResult bindingResult, HttpServletRequest request) {
log.info("请求接口[POST]: /news/add");
@ -41,13 +53,8 @@ public class NewsController {
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return newsService.newsAdd(newsAddVO, request);
}
}

View File

@ -14,58 +14,104 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
* 权限控制器类处理权限相关的API请求
* 它使用 {@link PermissionService} 来执行权限相关的操作
*
* @author xiao_lfeng | xiangZr-hhh | 176yunxuan
*/
@Slf4j
@RestController
@RequiredArgsConstructor
public class PermissionController {
/**
* 权限服务实例用于执行权限相关的操作
*/
private final PermissionService permissionService;
/**
* 添加新的权限
*
* @param request HTTP请求对象
* @param rid 角色ID
* @param pid 权限ID
* @return {@link BaseResponse} 对象包含操作结果
*/
@PostMapping("/permission/add")
public BaseResponse permissionAdd(HttpServletRequest request, @RequestParam Long rid,@RequestParam Long pid) {
public BaseResponse permissionAdd(HttpServletRequest request, @RequestParam Long rid, @RequestParam Long pid) {
log.info("请求接口[POST]: /permission/add");
// 判断是否有参数错误
if (rid == null || pid == null) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
} else {
return permissionService.permissionAdd(request,rid,pid);
return permissionService.permissionAdd(request, rid, pid);
}
}
/**
* 获取当前用户的权限信息
*
* @param request HTTP请求对象
* @param uid 用户ID
* @return {@link BaseResponse} 对象包含操作结果
*/
@GetMapping("/permission/current")
public BaseResponse permissionUser(HttpServletRequest request, @RequestParam Long uid) {
log.info("请求接口[GET]: /permission/current");
// 判断是否有参数错误
if (uid == null ) {
if (uid == null) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
} else {
return permissionService.permissionUser(request,uid);
return permissionService.permissionUser(request, uid);
}
}
/**
* 获取所有权限信息
*
* @param request HTTP请求对象
* @return {@link BaseResponse} 对象包含操作结果
*/
@GetMapping("/permission/get")
public BaseResponse permissionGet(HttpServletRequest request){
public BaseResponse permissionGet(HttpServletRequest request) {
log.info("请求接口[GET]: /permission/get");
return permissionService.permissionGet(request);
}
/**
* 编辑权限信息
*
* @param permissionEditVo {@link PermissionEditVO} 对象包含更新后的权限信息
* @param bindingResult Binding结果对象包含任何验证错误
* @param request HTTP请求对象
* @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()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return permissionService.permissionEdit(permissionEditVo,request);
return permissionService.permissionEdit(permissionEditVo, request);
}
/**
* 删除权限
*
* @param pid 权限ID
* @param request HTTP请求对象
* @return {@link BaseResponse} 对象包含操作结果
*/
@DeleteMapping("/permission/delete")
public BaseResponse permissionDelete(@RequestParam Long pid,HttpServletRequest request){
public BaseResponse permissionDelete(@RequestParam Long pid, HttpServletRequest request) {
log.info("请求接口[Delete]: /permission/delete");
// 判断是否有参数错误
if (pid == null) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
} else return permissionService.permissionDelete(request,pid);
} else {
return permissionService.permissionDelete(request, pid);
}
}
}

View File

@ -1,6 +1,9 @@
package com.jsl.oa.controllers;
import com.jsl.oa.model.voData.*;
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.ProjectWorkVO;
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
import com.jsl.oa.services.ProjectService;
import com.jsl.oa.utils.BaseResponse;
@ -17,101 +20,109 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* 项目控制器
*
* @author xiao_lfeng | xiangZr-hhh | 176yunxuan
* @version 1.1.0
* @since 1.1.0
*/
@Slf4j
@RestController
@RequiredArgsConstructor
public class ProjectController {
/**
* 项目服务
*/
private final ProjectService projectService;
/**
* 项目展示获取
* 项目轮播图
*
* @param id
* @return
* @param id 获取项目 id
* @return {@link BaseResponse}
*/
@GetMapping("/project/header/get")
public BaseResponse projectGetHeader(@RequestParam(required = false) Integer id) {
public BaseResponse projectGetHeader(@RequestParam(required = false) final Integer id) {
log.info("请求接口[GET]: /project/header/get");
return projectService.getHeader(id);
}
/**
*
* @param id
* @return
* @param id 获取项目 id
* @return {@link BaseResponse}
*/
@GetMapping("/project/get/id")
public BaseResponse projectGetById(@RequestParam Integer id){
public BaseResponse projectGetById(@RequestParam Integer id) {
return projectService.getById(id);
}
/**
*
* @param id
* @return
* @param id 获取项目 id
* @return {@link BaseResponse}
*/
@GetMapping("/project/getwork/id")
public BaseResponse projectWorkGetById(@RequestParam Integer id){
public BaseResponse projectWorkGetById(@RequestParam Integer id) {
return projectService.getWorkById(id);
}
/**
* 游客获取项目
*
* @return
* @return {@link BaseResponse}
*/
@GetMapping("/project/get/custom")
public BaseResponse projectGetCustom(@RequestParam(required = false) Integer id,
@RequestParam(required = false) List<String> tags,
@RequestParam(required = false) List<Integer> isFinish,
@RequestParam(required = false,defaultValue = "1") Integer page,
@RequestParam(required = false,defaultValue = "10") Integer pageSize) {
@RequestParam(required = false, defaultValue = "1") Integer page,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
log.info("请求接口[GET]: /project/all/get");
return projectService.tget(id, tags, isFinish,page,pageSize);
return projectService.tget(id, tags, isFinish, page, pageSize);
}
/**
* 我负责的界面的获取项目
*
* @return
* @return {@link BaseResponse}
*/
@GetMapping("/project/get")
public BaseResponse projectGet(@RequestParam(required = false) Integer listAll,
@RequestParam(required = false) List<String> tags,
@RequestParam(required = false) List<Integer> isFinish,
@RequestParam(required = false,defaultValue = "1") Integer page,
@RequestParam(required = false,defaultValue = "10") Integer pageSize,
@RequestParam(required = false, defaultValue = "1") Integer page,
@RequestParam(required = false, defaultValue = "10") Integer pageSize,
HttpServletRequest request) {
log.info("请求接口[GET]: /project/get");
return projectService.get(listAll, request, tags, isFinish,page,pageSize);
return projectService.get(listAll, request, tags, isFinish, page, pageSize);
}
/**
* 我管理的查询
*
* @return
* @return {@link BaseResponse}
*/
@GetMapping("/project/work/get")
public BaseResponse projectWorkGet(@RequestParam(required = false) Integer listAll,
@RequestParam(required = false) List<String> tags,
@RequestParam(required = false) List<Integer> isFinish,
@RequestParam(required = false) Integer is,
@RequestParam(required = false,defaultValue = "1") Integer page,
@RequestParam(required = false,defaultValue = "10") Integer pageSize,
@RequestParam(required = false, defaultValue = "1") Integer page,
@RequestParam(required = false, defaultValue = "10") Integer pageSize,
HttpServletRequest request) {
log.info("请求接口[GET]: /project/work/get");
return projectService.workget(listAll, request, tags, isFinish, is,page,pageSize);
return projectService.workget(listAll, request, tags, isFinish, is, page, pageSize);
}
/**
* 单个项目的详细
* 项目轮播图
*
* @param name
* @return
* @param name 获取项目名称
* @return {@link BaseResponse}
*/
@GetMapping("/project/header")
public BaseResponse projectGetByName(@RequestParam String name) {
@ -123,17 +134,16 @@ public class ProjectController {
* 增加项目展示
* 项目轮播图
*
* @param projectShowVO
* @param request
* @param bindingResult
* @return
* @param projectShowVO 项目展示信息
* @param request 请求
* @param bindingResult 参数校验
* @return {@link BaseResponse}
*/
@PostMapping("/project/header/add")
public BaseResponse projectAddHeader(@RequestBody @Validated ProjectShowVO projectShowVO, HttpServletRequest request, @NotNull BindingResult bindingResult) {
log.info("请求接口[POST]: /project/header/add");
// 参数校验
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
log.warn("参数校验失败: {}", Processing.getValidatedErrorList(bindingResult));
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return projectService.addHeader(request, projectShowVO);
@ -143,109 +153,54 @@ public class ProjectController {
* 编辑展示的项目
* 项目轮播图
*
* @param projectShowVO
* @param id
* @param request
* @param bindingResult
* @return
* @param projectId 项目 id
* @param request 请求
* @param projectEdit 项目信息
* @param bindingResult 参数校验
* @return {@link BaseResponse}
*/
@PutMapping("/project/header/edit")
public BaseResponse projectEditHeader(@RequestBody @Validated ProjectShowVO projectShowVO, @RequestParam Integer id, HttpServletRequest request, @NotNull BindingResult bindingResult) {
log.info("请求接口[PUT]: /project/header/edit");
// 参数校验
@PutMapping("/project/header/edit/{projectId}")
public BaseResponse projectEditById(@RequestParam Long projectId, HttpServletRequest request, @RequestBody @Validated ProjectEditVO projectEdit, @NotNull BindingResult bindingResult) {
log.info("请求接口[PUT]: /project/header/edit/{projectId}");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
log.warn("参数校验失败: {}", Processing.getValidatedErrorList(bindingResult));
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
}
if (id == null) {
log.warn("参数校验失败: {}", "id不能为空");
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, "id不能为空");
}
return projectService.editHeader(request, projectShowVO, id);
}
/**
* 删除项目展示
* 项目轮播图
*
* @param id
* @param request
* @return
*/
@DeleteMapping("/project/header/del")
public BaseResponse projectDelHeader(@RequestParam Integer id, HttpServletRequest request) {
log.info("请求接口[Delete]: /project/header/del");
return projectService.delHeader(id, request);
}
/**
* 项目表进行项目增加
*
* @return
*/
@PostMapping("/project/add")
public BaseResponse projectAdd(HttpServletRequest request, @RequestBody @Validated ProjectInfoVO projectAdd, @NotNull BindingResult bindingResult) {
log.info("请求接口[POST]: /project/add");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return projectService.projectAdd(request, projectAdd);
}
/**
* @Description: 项目的修改
* @Date: 2024/3/10
* @Param request:
* @Param projectEdit:
* @Param bindingResult:
* @Param projectId:
**/
@PutMapping("/project/edit/{projectId}")
public BaseResponse projectEditById(HttpServletRequest request, @RequestBody @Validated ProjectEditVO projectEdit,
@NotNull BindingResult bindingResult, @PathVariable("projectId") Long projectId) {
log.info("请求接口[PUT]: /project/edit/{projectId}");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return projectService.projectEdit(request, projectEdit, projectId);
}
/**
* 子系统子模块的增加
*
* @param request
* @param bindingResult
* @return
* @param request 请求
* @param bindingResult 参数校验
* @return {@link BaseResponse}
*/
@PostMapping("/project/work/add")
public BaseResponse projectWorkAdd(HttpServletRequest request, @RequestBody @Validated ProjectWorkVO projectWorkVO, @NotNull BindingResult bindingResult) {
log.info("请求接口[POST]: /project/work/add");
// 判断是否有参数错误
if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
}
return projectService.projecWorktAdd(request, projectWorkVO);
}
/**
* 获取负责人id
* @return
*
* @return {@link BaseResponse}
*/
@GetMapping("/project/pri")
public BaseResponse projectPrincipalGet(){
public BaseResponse projectPrincipalGet() {
return projectService.projectPrincipalGet();
}
/**
* 用户获取所分到的项目模块
*
* @param uid
* @return
* @param uid 用户 id
* @return {@link BaseResponse}
*/
@GetMapping("/project/cut/user")
public BaseResponse projectGetUserInCutting(@RequestParam Long uid) {
@ -260,13 +215,13 @@ public class ProjectController {
/**
* 给某用户分配项目模块
*
* @param uid
* @param pid
* @return
* @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");
log.info("请求接口[Post]: /project/cut/user/add");
// 判断是否有参数错误
if (uid == null || pid == null) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
@ -277,8 +232,8 @@ public class ProjectController {
/**
* 删除某项目记录
*
* @param id
* @return
* @param id 用户 id
* @return {@link BaseResponse}
*/
@DeleteMapping("/project/delete")
public BaseResponse projectDelete(HttpServletRequest request, @RequestParam List<Long> id) {
@ -290,12 +245,13 @@ public class ProjectController {
}
/**
* @Description: 添加项目模块
* @Date: 2024/1/21
* @Param request
* @Param projectCuttingAddVO
* @Param bindingResult
**/
* 项目轮播图
*
* @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");

View File

@ -7,7 +7,10 @@ import com.jsl.oa.model.doData.ProjectWorkDO;
import com.jsl.oa.model.voData.ProjectInfoVO;
import com.jsl.oa.model.voData.ProjectWorkSimpleVO;
import com.jsl.oa.model.voData.ProjectWorkVO;
import org.apache.ibatis.annotations.*;
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.util.List;
@ -55,9 +58,9 @@ public interface ProjectMapper {
//"like concat('%',#{tags},'%')")
//@Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false and principal_id=#{userId}")
List<ProjectDO>getByIsfinish(Long userId,List<Integer> isFinish);
List<ProjectDO> getByIsfinish(Long userId, List<Integer> isFinish);
List<ProjectDO>getByTags(Long userId,List<String> tags,List<Integer> isFinish);
List<ProjectDO> getByTags(Long userId, List<String> tags, List<Integer> isFinish);
@Select("select * from organize_oa.oa_project where is_delete=false and status=1 and principal_id=#{userId}")
List<ProjectDO> get(Long userId);
@ -93,7 +96,7 @@ public interface ProjectMapper {
//@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);
List<ProjectDO> workgetByTags(Long userId, List<String> tags, Integer is, List<Integer> isFinish);
//@Select("select * from organize_oa.oa_project where id in(select project_id from " +
//"organize_oa.oa_project_work where is_delete=false and status =1 and principal_id=#{userId} and type=0)")
@ -107,12 +110,12 @@ public interface ProjectMapper {
List<ProjectDO> tgetByIsfinish(List<Integer> isFinish);
List<ProjectDO> tgetBytags(List<String> tags,List<Integer> isFinish);
List<ProjectDO> tgetBytags(List<String> tags, List<Integer> isFinish);
@Select("select * from organize_oa.oa_project_work where id=#{id}")
ProjectWorkSimpleVO getWorkById(Integer id);
@Select("select principal_id from organize_oa.oa_project_work where id=#{pid}")
@Select("select principal_id from organize_oa.oa_project_work where id=#{pid}")
Long getPirIdbyWorkid(Long pid);
@Select("select principal_id from organize_oa.oa_project_work where id=#{id}")

View File

@ -56,20 +56,21 @@ public class ProjectServiceImpl implements ProjectService {
@Override
public BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd) {
log.info("\t> 执行 Service 层 ProjectService.projectAdd 方法");
if(projectAdd.getDescription().isEmpty()){
if (projectAdd.getDescription().isEmpty()) {
projectAdd.setDescription("{}");
}else {
projectAdd.setDescription("{\"description\":\" "+ projectAdd.getDescription() + "\"}");
} else {
projectAdd.setDescription("{\"description\":\" " + projectAdd.getDescription() + "\"}");
}
String tags = projectAdd.getTags();
String[] split = tags.split(",");
String open = "{\"tags\":[\"";
String close = "]}";
String tag = "";
for (String tag1:split){
tag += tag1 + "\",\"";
}if (!tag.isEmpty()) {
tag = tag.substring(0, tag.length() - 2);
StringBuilder tag = new StringBuilder();
for (String tag1 : split) {
tag.append(tag1).append("\",\"");
}
if (tag.length() > 0) {
tag = new StringBuilder(tag.substring(0, tag.length() - 2));
}
projectAdd.setTags(open + tag + close);
projectAdd.setFile("{\"URI\":\"" + projectAdd.getFile() + "\"}");
@ -85,84 +86,84 @@ public class ProjectServiceImpl implements ProjectService {
//获取用户id
Long userId = Processing.getAuthHeaderToUserId(request);
//是否是增加子系统
if(projectWorkVO.getType() == 0 ){
if (projectWorkVO.getType() == 0) {
//是否是老师
if (Processing.checkUserIsTeacher(request, roleMapper)){
if (Processing.checkUserIsTeacher(request, roleMapper)) {
projectDAO.projectWorkAdd(projectWorkVO);
}else {
} else {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
}//增加子模块
else {
//是否是子系统的负责人
if(Objects.equals(userId, projectMapper.getPirIdbyWorkid(projectWorkVO.getPid()))){
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("添加成功");
}
@Override
public BaseResponse tget(Integer id, List<String> tags, List<Integer> isFinish,Integer page,Integer pageSize){
public BaseResponse tget(Integer id, List<String> tags, List<Integer> isFinish, Integer page, Integer pageSize) {
log.info("\t> 执行 Service 层 ProjectService.tget 方法");
//根据id查询
if (id != null){
if (id != null) {
ProjectDO projectDO = projectMapper.tgetProjectById(id);
ProjectSimpleVO projectSimpleVO = new ProjectSimpleVO();
Processing.projectTosimply(projectSimpleVO,projectDO,userDAO,objectMapper);
Processing.projectTosimply(projectSimpleVO, projectDO, userDAO, objectMapper);
return ResultUtil.success(projectSimpleVO);
}
//根据标签查询
if (tags != null && !tags.isEmpty()) {
List<ProjectDO> projectDOList = projectDAO.tget(id,isFinish,tags);
List<ProjectDO> projectDOList = projectDAO.tget(id, isFinish, tags);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO:projectDOList){
for (ProjectDO projectDO : projectDOList) {
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
Processing.projectTosimply(projectSimpleVO1,projectDO,userDAO,objectMapper);
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
projectSimpleVOList.add(projectSimpleVO1);
}
//分页返回
int start = (page-1) * pageSize;
int start = (page - 1) * pageSize;
int end = start + pageSize;
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
Math.min(end,projectSimpleVOList.size()));
Math.min(end, projectSimpleVOList.size()));
return ResultUtil.success(pageData);
}
//根据状态查询
if (isFinish != null && !isFinish.isEmpty()) {
List<ProjectDO> projectDOList = projectDAO.tget(id,isFinish,tags);
List<ProjectDO> projectDOList = projectDAO.tget(id, isFinish, tags);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO:projectDOList){
for (ProjectDO projectDO : projectDOList) {
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
Processing.projectTosimply(projectSimpleVO1,projectDO,userDAO,objectMapper);
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
projectSimpleVOList.add(projectSimpleVO1);
}
//分页返回
int start = (page-1) * pageSize;
int start = (page - 1) * pageSize;
int end = start + pageSize;
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
Math.min(end,projectSimpleVOList.size()));
Math.min(end, projectSimpleVOList.size()));
return ResultUtil.success(pageData);
}
List<ProjectDO> projectDOList = projectDAO.tget(id,isFinish,tags);
List<ProjectDO> projectDOList = projectDAO.tget(id, isFinish, tags);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO:projectDOList){
for (ProjectDO projectDO : projectDOList) {
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
Processing.projectTosimply(projectSimpleVO1,projectDO,userDAO,objectMapper);
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
projectSimpleVOList.add(projectSimpleVO1);
}
//分页返回
int start = (page-1) * pageSize;
int start = (page - 1) * pageSize;
int end = start + pageSize;
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
Math.min(end,projectSimpleVOList.size()));
Math.min(end, projectSimpleVOList.size()));
return ResultUtil.success(pageData);
}
@ -171,13 +172,13 @@ public class ProjectServiceImpl implements ProjectService {
// 判断项目是否存在
if(!projectDAO.isExistProjectById(projectId)){
if (!projectDAO.isExistProjectById(projectId)) {
return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST);
}
ProjectDO projectDO = projectDAO.getProjectById(projectId);
if(projectDO.getFile() == null || projectDO.getFile().equals("{}")){
if (projectDO.getFile() == null || projectDO.getFile().equals("{}")) {
return ResultUtil.success(null);
}
@ -203,14 +204,14 @@ public class ProjectServiceImpl implements ProjectService {
projectWorkSimpleVO.setPrincipalUser(userDAO.getUserById(projectMapper.getPid(id)).getUsername());
// 解析JSON字符串
JsonNode rootNode = null;
JsonNode rootNode;
try {
rootNode = objectMapper.readTree(projectWorkSimpleVO.getDescription());
// 访问特定的key
JsonNode targetNode = rootNode.get("description");
if(targetNode != null && !rootNode.isNull()){
if (targetNode != null && !rootNode.isNull()) {
projectWorkSimpleVO.setDescription(targetNode.asText());
}else{
} else {
projectWorkSimpleVO.setDescription("null");
}
} catch (JsonProcessingException ignored) {
@ -370,16 +371,16 @@ public class ProjectServiceImpl implements ProjectService {
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO:projectDOList){
for (ProjectDO projectDO : projectDOList) {
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
Processing.projectTosimply(projectSimpleVO1,projectDO,userDAO,objectMapper);
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
projectSimpleVOList.add(projectSimpleVO1);
}
//分页返回
int start = (page-1) * pageSize;
int start = (page - 1) * pageSize;
int end = start + pageSize;
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
Math.min(end,projectSimpleVOList.size()));
Math.min(end, projectSimpleVOList.size()));
return ResultUtil.success(pageData);
}
@ -387,16 +388,16 @@ public class ProjectServiceImpl implements ProjectService {
if (isFinish != null && !isFinish.isEmpty()) {
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO:projectDOList){
for (ProjectDO projectDO : projectDOList) {
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
Processing.projectTosimply(projectSimpleVO1,projectDO,userDAO,objectMapper);
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
projectSimpleVOList.add(projectSimpleVO1);
}
//分页返回
int start = (page-1) * pageSize;
int start = (page - 1) * pageSize;
int end = start + pageSize;
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
Math.min(end,projectSimpleVOList.size()));
Math.min(end, projectSimpleVOList.size()));
return ResultUtil.success(pageData);
}
@ -405,31 +406,31 @@ public class ProjectServiceImpl implements ProjectService {
if (listAll != null && Processing.checkUserIsTeacher(request, roleMapper)) {
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO:projectDOList){
for (ProjectDO projectDO : projectDOList) {
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
Processing.projectTosimply(projectSimpleVO1,projectDO,userDAO,objectMapper);
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
projectSimpleVOList.add(projectSimpleVO1);
}
//分页返回
int start = (page-1) * pageSize;
int start = (page - 1) * pageSize;
int end = start + pageSize;
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
Math.min(end,projectSimpleVOList.size()));
Math.min(end, projectSimpleVOList.size()));
return ResultUtil.success(pageData);
} else {
listAll = 0;
List<ProjectDO> projectDOList = projectDAO.get(userId, listAll, tags, isFinish);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO:projectDOList){
for (ProjectDO projectDO : projectDOList) {
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
Processing.projectTosimply(projectSimpleVO1,projectDO,userDAO,objectMapper);
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
projectSimpleVOList.add(projectSimpleVO1);
}
//分页返回
int start = (page-1) * pageSize;
int start = (page - 1) * pageSize;
int end = start + pageSize;
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
Math.min(end,projectSimpleVOList.size()));
Math.min(end, projectSimpleVOList.size()));
return ResultUtil.success(pageData);
}
@ -444,68 +445,68 @@ public class ProjectServiceImpl implements ProjectService {
//根据标签查询
if (tags != null && !tags.isEmpty()) {
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish,is);
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish, is);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO:projectDOList){
for (ProjectDO projectDO : projectDOList) {
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
Processing.projectTosimply(projectSimpleVO1,projectDO,userDAO,objectMapper);
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
projectSimpleVOList.add(projectSimpleVO1);
}
//分页返回
int start = (page-1) * pageSize;
int start = (page - 1) * pageSize;
int end = start + pageSize;
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
Math.min(end,projectSimpleVOList.size()));
Math.min(end, projectSimpleVOList.size()));
return ResultUtil.success(pageData);
}
//根据状态查询
if (isFinish != null && !isFinish.isEmpty()) {
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish,is);
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish, is);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO:projectDOList){
for (ProjectDO projectDO : projectDOList) {
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
Processing.projectTosimply(projectSimpleVO1,projectDO,userDAO,objectMapper);
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
projectSimpleVOList.add(projectSimpleVO1);
}
//分页返回
int start = (page-1) * pageSize;
int start = (page - 1) * pageSize;
int end = start + pageSize;
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
Math.min(end,projectSimpleVOList.size()));
Math.min(end, projectSimpleVOList.size()));
return ResultUtil.success(pageData);
}
//判断是否是老师(项目负责人)
if (listAll != null && Processing.checkUserIsTeacher(request, roleMapper)) {
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish,is);
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish, is);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO:projectDOList){
for (ProjectDO projectDO : projectDOList) {
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
Processing.projectTosimply(projectSimpleVO1,projectDO,userDAO,objectMapper);
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
projectSimpleVOList.add(projectSimpleVO1);
}
//分页返回
int start = (page-1) * pageSize;
int start = (page - 1) * pageSize;
int end = start + pageSize;
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
Math.min(end,projectSimpleVOList.size()));
Math.min(end, projectSimpleVOList.size()));
return ResultUtil.success(pageData);
} else {
listAll = 0;
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish,is);
List<ProjectDO> projectDOList = projectDAO.workget(userId, listAll, tags, isFinish, is);
List<ProjectSimpleVO> projectSimpleVOList = new ArrayList<>();
for (ProjectDO projectDO:projectDOList){
for (ProjectDO projectDO : projectDOList) {
ProjectSimpleVO projectSimpleVO1 = new ProjectSimpleVO();
Processing.projectTosimply(projectSimpleVO1,projectDO,userDAO,objectMapper);
Processing.projectTosimply(projectSimpleVO1, projectDO, userDAO, objectMapper);
projectSimpleVOList.add(projectSimpleVO1);
}
//分页返回
int start = (page-1) * pageSize;
int start = (page - 1) * pageSize;
int end = start + pageSize;
List<ProjectSimpleVO> pageData = projectSimpleVOList.subList(start,
Math.min(end,projectSimpleVOList.size()));
Math.min(end, projectSimpleVOList.size()));
return ResultUtil.success(pageData);
}
}
@ -526,19 +527,19 @@ public class ProjectServiceImpl implements ProjectService {
log.info("\t> 执行 Service 层 ProjectService.projectDelete 方法");
//判断用户是否为老师 或者 项目负责人
if (!Processing.checkUserIsTeacher(request, roleMapper)){
if (!Processing.checkUserIsTeacher(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
for(Long id1:id){
if(!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), id1)) {
for (Long id1 : id) {
if (!projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), id1)) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION);
}
if (!projectDAO.projectDelete(id1)) {
return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR);
}
} return ResultUtil.success();
}
return ResultUtil.success();
}
@Override