项目分割模块添加接口

This commit is contained in:
xiangZr-hhh 2024-01-21 12:16:38 +08:00
parent bdf5e57c0a
commit 1435b01977
15 changed files with 141 additions and 34 deletions

View File

@ -1,6 +1,6 @@
package com.jsl.oa.controllers; package com.jsl.oa.controllers;
import com.jsl.oa.model.voData.PermissionEditVo; import com.jsl.oa.model.voData.PermissionEditVO;
import com.jsl.oa.services.PermissionService; import com.jsl.oa.services.PermissionService;
import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode; import com.jsl.oa.utils.ErrorCode;
@ -49,7 +49,7 @@ public class PermissionController {
@PutMapping("/permission/edit") @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"); log.info("请求接口[PUT]: /permission/edit");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {

View File

@ -1,5 +1,6 @@
package com.jsl.oa.controllers; package com.jsl.oa.controllers;
import com.jsl.oa.model.voData.ProjectCuttingAddVO;
import com.jsl.oa.model.voData.ProjectInfoVO; import com.jsl.oa.model.voData.ProjectInfoVO;
import com.jsl.oa.model.voData.business.info.ProjectShowVO; import com.jsl.oa.model.voData.business.info.ProjectShowVO;
import com.jsl.oa.services.ProjectService; import com.jsl.oa.services.ProjectService;
@ -25,6 +26,7 @@ public class ProjectController {
/** /**
* 项目展示获取 * 项目展示获取
*
* @param id * @param id
* @return * @return
*/ */
@ -36,6 +38,7 @@ public class ProjectController {
/** /**
* 全部项目的信息获取(打开项目页) * 全部项目的信息获取(打开项目页)
*
* @return * @return
*/ */
@GetMapping("/project/get") @GetMapping("/project/get")
@ -46,6 +49,7 @@ public class ProjectController {
/** /**
* 单个项目的详细 * 单个项目的详细
*
* @param name * @param name
* @return * @return
*/ */
@ -57,6 +61,7 @@ public class ProjectController {
/** /**
* 增加项目展示 * 增加项目展示
*
* @param projectShowVO * @param projectShowVO
* @param request * @param request
* @param bindingResult * @param bindingResult
@ -75,6 +80,7 @@ public class ProjectController {
/** /**
* 编辑展示的项目 * 编辑展示的项目
*
* @param projectShowVO * @param projectShowVO
* @param id * @param id
* @param request * @param request
@ -99,6 +105,7 @@ public class ProjectController {
/** /**
* 删除项目展示 * 删除项目展示
*
* @param id * @param id
* @param request * @param request
* @return * @return
@ -111,38 +118,41 @@ public class ProjectController {
/** /**
* 项目表进行项目增加 * 项目表进行项目增加
*
* @param projectAdd * @param projectAdd
* @param bindingResult * @param bindingResult
* @return * @return
*/ */
@PostMapping("/project/add") @PostMapping("/project/add")
public BaseResponse projectAdd(HttpServletRequest request,@RequestBody @Validated ProjectInfoVO projectAdd, @NotNull BindingResult bindingResult) { public BaseResponse projectAdd(HttpServletRequest request, @RequestBody @Validated ProjectInfoVO projectAdd, @NotNull BindingResult bindingResult) {
log.info("请求接口[POST]: /project/add"); log.info("请求接口[POST]: /project/add");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
} }
return projectService.projectAdd(request,projectAdd); return projectService.projectAdd(request, projectAdd);
} }
/** /**
* 项目表进行项目的修改 * 项目表进行项目的修改
*
* @param projectEdit * @param projectEdit
* @param bindingResult * @param bindingResult
* @return * @return
*/ */
@PutMapping("/project/edit") @PutMapping("/project/edit")
public BaseResponse projectEdit(HttpServletRequest request,@RequestBody @Validated ProjectInfoVO projectEdit, @NotNull BindingResult bindingResult) { public BaseResponse projectEdit(HttpServletRequest request, @RequestBody @Validated ProjectInfoVO projectEdit, @NotNull BindingResult bindingResult) {
log.info("请求接口[PUT]: /project/edit"); log.info("请求接口[PUT]: /project/edit");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
} }
return projectService.projectEdit(request,projectEdit); return projectService.projectEdit(request, projectEdit);
} }
/** /**
* 用户获取所分到的项目模块 * 用户获取所分到的项目模块
*
* @param uid * @param uid
* @return * @return
*/ */
@ -158,33 +168,53 @@ public class ProjectController {
/** /**
* 给某用户分配项目模块 * 给某用户分配项目模块
*
* @param uid * @param uid
* @param pid * @param pid
* @return * @return
*/ */
@PostMapping("/project/cut/user/add") @PostMapping("/project/cut/user/add")
public BaseResponse projectAddUserForCutting(HttpServletRequest request,@RequestParam Long uid, @RequestParam Long pid) { 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) { if (uid == null || pid == null) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR); return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
} }
return projectService.projectAddUserForCutting(request,uid, pid); return projectService.projectAddUserForCutting(request, uid, pid);
} }
/** /**
* 删除某项目记录 * 删除某项目记录
*
* @param id * @param id
* @return * @return
*/ */
@DeleteMapping("/project/delete") @DeleteMapping("/project/delete")
public BaseResponse projectDelete(HttpServletRequest request,@RequestParam Long id){ public BaseResponse projectDelete(HttpServletRequest request, @RequestParam Long id) {
log.info("请求接口[Delete]: /project/delete"); log.info("请求接口[Delete]: /project/delete");
if(id == null){ if (id == null) {
return ResultUtil.error(ErrorCode.PARAMETER_ERROR); return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
} }
return projectService.projectDelete(request,id); return projectService.projectDelete(request, id);
} }
/**
* @Description: 添加项目模块
* @Date: 2024/1/21
* @Param request
* @Param projectCuttingAddVO
* @Param bindingResult
**/
@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.projectCuttingAdd(request, projectCuttingAddVO);
}
} }

View File

@ -1,6 +1,6 @@
package com.jsl.oa.controllers; package com.jsl.oa.controllers;
import com.jsl.oa.model.voData.UserAddVo; import com.jsl.oa.model.voData.UserAddVO;
import com.jsl.oa.model.voData.UserAllCurrentVO; import com.jsl.oa.model.voData.UserAllCurrentVO;
import com.jsl.oa.model.voData.UserEditProfileVO; import com.jsl.oa.model.voData.UserEditProfileVO;
import com.jsl.oa.model.voData.UserEditVO; import com.jsl.oa.model.voData.UserEditVO;
@ -154,7 +154,7 @@ public class UserController {
* @Param bindingResult: * @Param bindingResult:
**/ **/
@PostMapping("/user/add") @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"); log.info("请求接口[POST]: /user/add");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {

View File

@ -5,6 +5,7 @@ import com.jsl.oa.mapper.ProjectMapper;
import com.jsl.oa.model.doData.ProjectCuttingDO; import com.jsl.oa.model.doData.ProjectCuttingDO;
import com.jsl.oa.model.doData.ProjectDO; import com.jsl.oa.model.doData.ProjectDO;
import com.jsl.oa.model.doData.info.ProjectShowDO; import com.jsl.oa.model.doData.info.ProjectShowDO;
import com.jsl.oa.model.voData.ProjectCuttingAddVO;
import com.jsl.oa.model.voData.ProjectInfoVO; import com.jsl.oa.model.voData.ProjectInfoVO;
import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode; import com.jsl.oa.utils.ErrorCode;
@ -109,6 +110,19 @@ public class ProjectDAO {
} }
public boolean projectDelete(Long id){ public boolean projectDelete(Long id){
log.info("\t> 执行 DAO 层 ProjectDAO.projectDelete 方法");
return projectMapper.deleteProject(id); return projectMapper.deleteProject(id);
} }
public void projectCuttingAdd(ProjectCuttingDO projectCuttingDO){
log.info("\t> 执行 DAO 层 ProjectDAO.projectCuttingAdd 方法");
projectMapper.projectCuttingAdd(projectCuttingDO);
}
public boolean isExistProjectById(Long id){
log.info("\t> 执行 DAO 层 ProjectDAO.isExistProjectById 方法");
if(projectMapper.getProjectById(id) == null){
return false;
}else {return true;}
}
} }

View File

@ -47,4 +47,8 @@ public interface ProjectMapper {
@Delete("DELETE FROM organize_oa.oa_project where id=#{id}") @Delete("DELETE FROM organize_oa.oa_project where id=#{id}")
boolean deleteProject(Long id); boolean deleteProject(Long id);
@Insert("INSERT INTO organize_oa.oa_project_cutting (pid, name, tag, real_time) " +
"VALUES (#{pid}, #{name}, #{tag}, #{realTime})")
void projectCuttingAdd(ProjectCuttingDO projectCuttingDO);
} }

View File

@ -3,10 +3,9 @@ package com.jsl.oa.model.voData;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.sql.Timestamp;
@Data @Data
public class PermissionEditVo { public class PermissionEditVO {
@NotNull @NotNull
private Long id; private Long id;

View File

@ -0,0 +1,23 @@
package com.jsl.oa.model.voData;
import lombok.Data;
import lombok.Value;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.sql.Timestamp;
@Data
public class ProjectCuttingAddVO {
@NotNull(message = "父id不能为空")
private Long pid;
@NotBlank(message = "模块名称不为空")
private String name;
private String tag;
private Integer realTime;
}

View File

@ -1,14 +1,13 @@
package com.jsl.oa.model.voData; package com.jsl.oa.model.voData;
import lombok.Data;
import lombok.Getter; import lombok.Getter;
import javax.validation.constraints.*; import javax.validation.constraints.*;
@Getter @Getter
public class UserAddVo { public class UserAddVO {
@NotBlank(message = "用户名不能为空") @NotBlank(message = "用户名不能为空")
@Pattern(regexp = "^[0-9A-Za-z_]{3,40}$", message = "用户名只能为字母、数字或下划线") @Pattern(regexp = "^[0-9A-Za-z_]{3,40}$", message = "用户名只能为字母、数字或下划线")

View File

@ -1,6 +1,6 @@
package com.jsl.oa.services; package com.jsl.oa.services;
import com.jsl.oa.model.voData.PermissionEditVo; import com.jsl.oa.model.voData.PermissionEditVO;
import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.BaseResponse;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -13,7 +13,7 @@ public interface PermissionService {
BaseResponse permissionGet(HttpServletRequest request); BaseResponse permissionGet(HttpServletRequest request);
BaseResponse permissionEdit(PermissionEditVo permissionEditVo, HttpServletRequest request); BaseResponse permissionEdit(PermissionEditVO permissionEditVo, HttpServletRequest request);
BaseResponse permissionDelete(HttpServletRequest request, Long pid); BaseResponse permissionDelete(HttpServletRequest request, Long pid);
} }

View File

@ -1,6 +1,7 @@
package com.jsl.oa.services; package com.jsl.oa.services;
import com.jsl.oa.model.doData.info.ProjectShowDO; import com.jsl.oa.model.doData.info.ProjectShowDO;
import com.jsl.oa.model.voData.ProjectCuttingAddVO;
import com.jsl.oa.model.voData.ProjectInfoVO; import com.jsl.oa.model.voData.ProjectInfoVO;
import com.jsl.oa.model.voData.business.info.ProjectShowVO; import com.jsl.oa.model.voData.business.info.ProjectShowVO;
import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.BaseResponse;
@ -29,4 +30,6 @@ public interface ProjectService {
BaseResponse getByName(String name); BaseResponse getByName(String name);
BaseResponse projectDelete(HttpServletRequest request,Long id); BaseResponse projectDelete(HttpServletRequest request,Long id);
BaseResponse projectCuttingAdd(HttpServletRequest request, ProjectCuttingAddVO projectCuttingAddVO);
} }

View File

@ -1,7 +1,7 @@
package com.jsl.oa.services; package com.jsl.oa.services;
import com.jsl.oa.model.doData.UserDO; import com.jsl.oa.model.doData.UserDO;
import com.jsl.oa.model.voData.UserAddVo; import com.jsl.oa.model.voData.UserAddVO;
import com.jsl.oa.model.voData.UserAllCurrentVO; import com.jsl.oa.model.voData.UserAllCurrentVO;
import com.jsl.oa.model.voData.UserEditProfileVO; import com.jsl.oa.model.voData.UserEditProfileVO;
import com.jsl.oa.model.voData.UserEditVO; import com.jsl.oa.model.voData.UserEditVO;
@ -84,7 +84,7 @@ public interface UserService {
BaseResponse userCurrent(HttpServletRequest request, String id, String username, String email, String phone); BaseResponse userCurrent(HttpServletRequest request, String id, String username, String email, String phone);
BaseResponse userAdd(UserAddVo userAddVo, HttpServletRequest request); BaseResponse userAdd(UserAddVO userAddVo, HttpServletRequest request);
BaseResponse userEdit(UserEditVO userEditVo, HttpServletRequest request); BaseResponse userEdit(UserEditVO userEditVo, HttpServletRequest request);

View File

@ -5,7 +5,7 @@ import com.jsl.oa.mapper.PermissionMapper;
import com.jsl.oa.mapper.RoleMapper; import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.doData.PermissionDO; import com.jsl.oa.model.doData.PermissionDO;
import com.jsl.oa.model.voData.PermissionContentVo; import com.jsl.oa.model.voData.PermissionContentVo;
import com.jsl.oa.model.voData.PermissionEditVo; import com.jsl.oa.model.voData.PermissionEditVO;
import com.jsl.oa.services.PermissionService; import com.jsl.oa.services.PermissionService;
import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode; import com.jsl.oa.utils.ErrorCode;
@ -64,7 +64,7 @@ public class PermissionServiceImpl implements PermissionService {
} }
@Override @Override
public BaseResponse permissionEdit(PermissionEditVo permissionEditVo, HttpServletRequest request) { public BaseResponse permissionEdit(PermissionEditVO permissionEditVo, HttpServletRequest request) {
log.info("\t> 执行 Service 层 PermissionService.permissionEdit 方法"); log.info("\t> 执行 Service 层 PermissionService.permissionEdit 方法");
//检验用户权限是否为管理员 //检验用户权限是否为管理员
if(!Processing.checkUserIsAdmin(request,roleMapper)){ if(!Processing.checkUserIsAdmin(request,roleMapper)){

View File

@ -7,6 +7,7 @@ import com.jsl.oa.model.doData.ProjectCuttingDO;
import com.jsl.oa.model.doData.ProjectDO; import com.jsl.oa.model.doData.ProjectDO;
import com.jsl.oa.model.doData.UserDO; import com.jsl.oa.model.doData.UserDO;
import com.jsl.oa.model.doData.info.ProjectShowDO; import com.jsl.oa.model.doData.info.ProjectShowDO;
import com.jsl.oa.model.voData.ProjectCuttingAddVO;
import com.jsl.oa.model.voData.ProjectInfoVO; import com.jsl.oa.model.voData.ProjectInfoVO;
import com.jsl.oa.model.voData.business.info.ProjectShowVO; import com.jsl.oa.model.voData.business.info.ProjectShowVO;
import com.jsl.oa.services.ProjectService; import com.jsl.oa.services.ProjectService;
@ -31,7 +32,6 @@ public class ProjectServiceImpl implements ProjectService {
private final ProjectDAO projectDAO; private final ProjectDAO projectDAO;
private final UserDAO userDAO; private final UserDAO userDAO;
private final RoleMapper roleMapper; private final RoleMapper roleMapper;
@Override @Override
@ -195,6 +195,7 @@ public class ProjectServiceImpl implements ProjectService {
@Override @Override
public BaseResponse projectDelete(HttpServletRequest request,Long id) { public BaseResponse projectDelete(HttpServletRequest request,Long id) {
log.info("\t> 执行 Service 层 ProjectService.projectDelete 方法");
if(Processing.checkUserIsAdmin(request,roleMapper)) { if(Processing.checkUserIsAdmin(request,roleMapper)) {
if (!projectDAO.projectDelete(id)) { if (!projectDAO.projectDelete(id)) {
return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR); return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR);
@ -202,5 +203,22 @@ public class ProjectServiceImpl implements ProjectService {
}else return ResultUtil.error(ErrorCode.NOT_ADMIN); }else return ResultUtil.error(ErrorCode.NOT_ADMIN);
} }
@Override
public BaseResponse projectCuttingAdd(HttpServletRequest request, ProjectCuttingAddVO projectCuttingAddVO) {
log.info("\t> 执行 Service 层 ProjectService.projectCuttingAdd方法");
if(Processing.checkUserIsAdmin(request,roleMapper)) {
//赋值数据
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();
}else return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
} }

View File

@ -160,7 +160,7 @@ public class UserServiceImpl implements UserService {
@Override @Override
public BaseResponse userAdd(UserAddVo userAddVo, HttpServletRequest request) { public BaseResponse userAdd(UserAddVO userAddVo, HttpServletRequest request) {
log.info("\t> 执行 Service 层 UserService.userAdd 方法"); log.info("\t> 执行 Service 层 UserService.userAdd 方法");
// 检测用户是否为管理员 // 检测用户是否为管理员
if (!Processing.checkUserIsAdmin(request, roleMapper)) { if (!Processing.checkUserIsAdmin(request, roleMapper)) {

View File

@ -1,18 +1,35 @@
server:
port: 8080
spring: spring:
datasource: datasource:
url: jdbc:mysql://localhost:3306 url: jdbc:mysql://localhost:3306?organize_oa
username: root username: root
password: 123456 password: Zrx@20041009
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
redis: redis:
database: 0 database: 0
host: 192.168.80.129 host: localhost
port: 6379 port: 6379
password: 123456 password: Zrx@20041009
profiles: mail:
active: dev default-encoding: UTF-8
host: smtp.qiye.aliyun.com
username: wxxydeveloper@x-lf.cn
password: 114477225588Zcw
properties:
form: wxxydeveloper@x-lf.cn
mail:
smtp:
auth: true
starttls:
enable: true
ssl:
enable: true
mybatis: mybatis:
configuration: configuration:
map-underscore-to-camel-case: true map-underscore-to-camel-case: true
#logging:
# level:
# root: TRACE
# sun.rmi: OFF
# org.apache.tomcat: WARN
server:
port: 8155