diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index ee41730..b9e37bb 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -1,9 +1,55 @@ package com.jsl.oa.controllers; +import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.services.ProjectService; +import com.jsl.oa.utils.BaseResponse; +import com.jsl.oa.utils.ErrorCode; +import com.jsl.oa.utils.Processing; +import com.jsl.oa.utils.ResultUtil; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.validation.BindingResult; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; @RestController @RequiredArgsConstructor public class ProjectController { + + private final ProjectService projectService; + + @PostMapping("/project/add") + public BaseResponse projectAdd(@RequestBody @Validated ProjectInfoVO projectAdd, BindingResult bindingResult){ + // 判断是否有参数错误 + if (bindingResult.hasErrors()) { + return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); + } + return projectService.projectAdd(projectAdd); + } + + @PutMapping("/project/edit") + public BaseResponse projectEdit(@RequestBody @Validated ProjectInfoVO projectEdit, BindingResult bindingResult){ + // 判断是否有参数错误 + if (bindingResult.hasErrors()) { + return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); + } + return projectService.projectEdit(projectEdit); + } + + @GetMapping("/project/cut/user") + public BaseResponse projectGetUserInCutting(@RequestParam Long uid){ + // 判断是否有参数错误 + if (uid == null) { + return ResultUtil.error(ErrorCode.PARAMETER_ERROR); + } + return projectService.projectGetUserInCutting(uid); + } + + @PostMapping("/project/cut/user/add") + public BaseResponse projectAddUserForCutting(@RequestParam Long uid,@RequestParam Long pid){ + // 判断是否有参数错误 + if (uid == null || pid == null) { + return ResultUtil.error(ErrorCode.PARAMETER_ERROR); + } + return projectService.projectAddUserForCutting(uid,pid); + } } diff --git a/src/main/java/com/jsl/oa/controllers/UserController.java b/src/main/java/com/jsl/oa/controllers/UserController.java index 2644e2f..e51ebab 100644 --- a/src/main/java/com/jsl/oa/controllers/UserController.java +++ b/src/main/java/com/jsl/oa/controllers/UserController.java @@ -18,32 +18,30 @@ public class UserController { /** * 用户账号删除 - * @param userDeleteVO - * @param bindingResult + * @param id * @return */ @PutMapping("/user/delete") - public BaseResponse userDelete(@RequestBody @Validated UserDeleteVO userDeleteVO, BindingResult bindingResult){ + public BaseResponse userDelete(@RequestParam Long id){ // 判断是否有参数错误 - if (bindingResult.hasErrors()) { - return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); + if (id == null) { + return ResultUtil.error(ErrorCode.PARAMETER_ERROR); } - return userService.userDelete(userDeleteVO); + else return userService.userDelete(id); } /** * 用户账号锁定 - * @param userLockVO - * @param bindingResult + * @param id * @return */ @PutMapping("/user/lock") - public BaseResponse userLock(@RequestBody @Validated UserLockVO userLockVO, BindingResult bindingResult){ + public BaseResponse userLock(@RequestParam Long id){ // 判断是否有参数错误 - if (bindingResult.hasErrors()) { - return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); + if (id == null) { + return ResultUtil.error(ErrorCode.PARAMETER_ERROR); } - return userService.userLock(userLockVO); + return userService.userLock(id); } /** diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java new file mode 100644 index 0000000..41fafb8 --- /dev/null +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -0,0 +1,38 @@ +package com.jsl.oa.dao; + +import com.jsl.oa.mapper.ProjectMapper; +import com.jsl.oa.model.doData.ProjectCuttingDO; +import com.jsl.oa.model.voData.ProjectInfoVO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +@RequiredArgsConstructor +public class ProjectDAO { + + private final ProjectMapper projectMapper; + public void projectAdd(ProjectInfoVO projectAdd) { + projectMapper.projectAdd(projectAdd); + + } + + public void projectEdit(ProjectInfoVO projectEdit) { + projectMapper.projectEdit(projectEdit); + } + + public boolean isExistProject(Long id) { + if(projectMapper.getProjectById(id)==null) { + return false; + }else return true; + } + + public List projectGetUserInCutting(Long uid) { + return projectMapper.projectGetUserInCutting(uid); + } + + public void projectAddUserForCutting(Long uid, Long pid) { + projectMapper.projectAddUserInCutting(uid,pid); + } +} diff --git a/src/main/java/com/jsl/oa/dao/UserDAO.java b/src/main/java/com/jsl/oa/dao/UserDAO.java index e2a509c..88f30f1 100755 --- a/src/main/java/com/jsl/oa/dao/UserDAO.java +++ b/src/main/java/com/jsl/oa/dao/UserDAO.java @@ -2,9 +2,7 @@ package com.jsl.oa.dao; import com.jsl.oa.mapper.UserMapper; import com.jsl.oa.model.doData.UserDO; -import com.jsl.oa.model.voData.UserDeleteVO; import com.jsl.oa.model.voData.UserEditProfileVO; -import com.jsl.oa.model.voData.UserLockVO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; @@ -46,18 +44,18 @@ public class UserDAO { } /** * 用户账号删除 - * @param userDeleteVO + * @param id */ - public void userDelete(UserDeleteVO userDeleteVO) { - userMapper.userDelete(userDeleteVO); + public void userDelete(Long id) { + userMapper.userDelete(id); } /** * 用户账号锁定 - * @param userLockVO + * @param id */ - public void userLock(UserLockVO userLockVO) { - userMapper.userLock(userLockVO); + public void userLock(Long id) { + userMapper.userLock(id); } public void userEditProfile(UserEditProfileVO userEditProfileVO) { diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java new file mode 100644 index 0000000..3958b54 --- /dev/null +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -0,0 +1,32 @@ +package com.jsl.oa.mapper; + +import com.jsl.oa.model.doData.ProjectCuttingDO; +import com.jsl.oa.model.doData.ProjectDO; +import com.jsl.oa.model.voData.ProjectInfoVO; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface ProjectMapper { + + @Insert("insert into organize_oa.oa_project " + + "(name, description, introduction, core_code, git,type, reward) " + + "value (#{name},#{description},#{introduction},#{coreCode},#{git},#{type},#{reward})") + void projectAdd(ProjectInfoVO projectAdd); + + + void projectEdit(ProjectInfoVO projectEdit); + + @Select("select * from organize_oa.oa_project where id=#{id}") + ProjectDO getProjectById(Long id); + + @Select("select * from organize_oa.oa_project_cutting where id in" + + "(select pid from organize_oa.oa_project_user where uid=#{uid})") + List projectGetUserInCutting(Long uid); + + @Insert("insert into organize_oa.oa_project_user(uid, pid)value (#{uid},#{pid})") + void projectAddUserInCutting(Long uid, Long pid); +} diff --git a/src/main/java/com/jsl/oa/mapper/UserMapper.java b/src/main/java/com/jsl/oa/mapper/UserMapper.java index 2be5c6f..813cfa4 100755 --- a/src/main/java/com/jsl/oa/mapper/UserMapper.java +++ b/src/main/java/com/jsl/oa/mapper/UserMapper.java @@ -1,10 +1,7 @@ package com.jsl.oa.mapper; import com.jsl.oa.model.doData.UserDO; -import com.jsl.oa.model.voData.UserDeleteVO; import com.jsl.oa.model.voData.UserEditProfileVO; -import com.jsl.oa.model.voData.UserLockVO; -import com.jsl.oa.model.voData.UserLoginVO; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; @@ -25,10 +22,10 @@ public interface UserMapper { boolean insertUser(UserDO userDO); @Update("UPDATE organize_oa.oa_user SET enabled = 0 ,updated_at = CURRENT_TIMESTAMP WHERE id = #{id} ") - void userDelete(UserDeleteVO userDeleteVO); + void userDelete(Long id); @Update("UPDATE organize_oa.oa_user SET account_no_locked = 1 ,updated_at = CURRENT_TIMESTAMP WHERE id = #{id} ") - void userLock(UserLockVO userLockVO); + void userLock(Long id); @Select("SELECT * FROM organize_oa.oa_user WHERE id = #{id}") UserDO getUserById(Long id); diff --git a/src/main/java/com/jsl/oa/model/doData/ProjectDO.java b/src/main/java/com/jsl/oa/model/doData/ProjectDO.java index 050898c..f9d383e 100755 --- a/src/main/java/com/jsl/oa/model/doData/ProjectDO.java +++ b/src/main/java/com/jsl/oa/model/doData/ProjectDO.java @@ -21,7 +21,7 @@ public class ProjectDO { private String name; private String description; private String introduction; - private Boolean codeOpen; + private Short codeOpen; private String coreCode; private String git; private Short difficultyLevel; diff --git a/src/main/java/com/jsl/oa/model/voData/ProjectInfoVO.java b/src/main/java/com/jsl/oa/model/voData/ProjectInfoVO.java new file mode 100644 index 0000000..15e26fb --- /dev/null +++ b/src/main/java/com/jsl/oa/model/voData/ProjectInfoVO.java @@ -0,0 +1,42 @@ +package com.jsl.oa.model.voData; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Data +public class ProjectInfoVO { + @NotNull(message = "id不能为空") + private Long id; + + @NotBlank(message = "项目名不为空") + private String name; + + @NotBlank(message = "简介不能为空") + private String description; + + @NotBlank(message = "描述不能为空") + private String introduction; + + //@NotNull(message = "填写是否开放") + private Short codeOpen; + + private String coreCode; + + private String git; + + //@NotNull(message = "难度等级不能为空") + private Short difficultyLevel; + + @NotNull(message = "项目类型不能为空") + private Integer type; + + private Long reward; + + //@NotNull(message = "项目状态不能为空") + private Short status; +} diff --git a/src/main/java/com/jsl/oa/model/voData/UserDeleteVO.java b/src/main/java/com/jsl/oa/model/voData/UserDeleteVO.java deleted file mode 100755 index 06bb186..0000000 --- a/src/main/java/com/jsl/oa/model/voData/UserDeleteVO.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.jsl.oa.model.voData; - - -import lombok.Getter; - -import javax.validation.constraints.NotNull; - -@Getter -public class UserDeleteVO { - @NotNull(message = "id不能为空") - private Long id; -} diff --git a/src/main/java/com/jsl/oa/model/voData/UserLockVO.java b/src/main/java/com/jsl/oa/model/voData/UserLockVO.java deleted file mode 100755 index f3cd79a..0000000 --- a/src/main/java/com/jsl/oa/model/voData/UserLockVO.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.jsl.oa.model.voData; - -import lombok.Getter; - -import javax.validation.constraints.NotNull; - -@Getter -public class UserLockVO { - @NotNull(message = "id不能为空") - private Long id; - -} diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java new file mode 100644 index 0000000..138f3f5 --- /dev/null +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -0,0 +1,14 @@ +package com.jsl.oa.services; + +import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.utils.BaseResponse; + +public interface ProjectService { + BaseResponse projectAdd(ProjectInfoVO projectAdd); + + BaseResponse projectEdit(ProjectInfoVO projectEdit); + + BaseResponse projectGetUserInCutting(Long uid); + + BaseResponse projectAddUserForCutting(Long uid, Long pid); +} diff --git a/src/main/java/com/jsl/oa/services/UserService.java b/src/main/java/com/jsl/oa/services/UserService.java index 8e072e1..c2fdb4b 100755 --- a/src/main/java/com/jsl/oa/services/UserService.java +++ b/src/main/java/com/jsl/oa/services/UserService.java @@ -1,9 +1,7 @@ package com.jsl.oa.services; import com.jsl.oa.model.doData.UserDO; -import com.jsl.oa.model.voData.UserDeleteVO; import com.jsl.oa.model.voData.UserEditProfileVO; -import com.jsl.oa.model.voData.UserLockVO; import com.jsl.oa.utils.BaseResponse; /** @@ -29,17 +27,17 @@ public interface UserService { /** * 用户账号删除 - * @param userDeleteVO + * @param id * @return */ - BaseResponse userDelete(UserDeleteVO userDeleteVO); + BaseResponse userDelete(Long id); /** * 用户账号锁定 - * @param userLockVO + * @param id * @return */ - BaseResponse userLock(UserLockVO userLockVO); + BaseResponse userLock(Long id); BaseResponse userEditProfile(UserEditProfileVO userEditProfileVO); } diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..cfeb6b6 --- /dev/null +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -0,0 +1,57 @@ +package com.jsl.oa.services.impl; + +import com.jsl.oa.dao.ProjectDAO; +import com.jsl.oa.dao.UserDAO; +import com.jsl.oa.model.doData.ProjectCuttingDO; +import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.services.ProjectService; +import com.jsl.oa.services.UserService; +import com.jsl.oa.utils.BaseResponse; +import com.jsl.oa.utils.ErrorCode; +import com.jsl.oa.utils.ResultUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class ProjectServiceImpl implements ProjectService { + + private final ProjectDAO projectDAO; + private final UserDAO userDAO; + + @Override + public BaseResponse projectAdd(ProjectInfoVO projectAdd) { + + projectDAO.projectAdd(projectAdd); + return ResultUtil.success("添加成功"); + } + + @Override + public BaseResponse projectEdit(ProjectInfoVO projectEdit) { + //判断项目是否存在 + if(projectDAO.isExistProject(projectEdit.getId())) { + projectDAO.projectEdit(projectEdit); + return ResultUtil.success("修改成功"); + }else return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); + } + + @Override + public BaseResponse projectGetUserInCutting(Long uid) { + if(userDAO.isExistUser(uid)) { + List projectCuttingDOList =projectDAO.projectGetUserInCutting(uid); + return ResultUtil.success(projectCuttingDOList); + } + else return ResultUtil.error(ErrorCode.USER_NOT_EXIST); + } + + @Override + public BaseResponse projectAddUserForCutting(Long uid, Long pid) { + if(userDAO.isExistUser(uid)){ + projectDAO.projectAddUserForCutting(uid,pid); + return ResultUtil.success(); + } + return null; + } +} diff --git a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java index e8dbaa2..b3fa34b 100755 --- a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java @@ -2,20 +2,15 @@ package com.jsl.oa.services.impl; import com.jsl.oa.dao.UserDAO; import com.jsl.oa.model.doData.UserDO; -import com.jsl.oa.model.voData.UserDeleteVO; import com.jsl.oa.model.voData.UserEditProfileVO; -import com.jsl.oa.model.voData.UserLockVO; import com.jsl.oa.services.UserService; import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.ErrorCode; import com.jsl.oa.utils.ResultUtil; import lombok.RequiredArgsConstructor; -import org.jetbrains.annotations.NotNull; import org.mindrot.jbcrypt.BCrypt; import org.springframework.stereotype.Service; -import java.sql.Timestamp; - @Service @RequiredArgsConstructor public class UserServiceImpl implements UserService { @@ -28,25 +23,25 @@ public class UserServiceImpl implements UserService { } @Override - public BaseResponse userDelete(UserDeleteVO userDeleteVO) { + public BaseResponse userDelete(Long id) { //判断用户是否存在 - if(userDAO.isExistUser(userDeleteVO.getId())) { - userDAO.userDelete(userDeleteVO); + if(userDAO.isExistUser(id)){ + userDAO.userDelete(id); return ResultUtil.success("删除成功"); }else return ResultUtil.error(ErrorCode.USER_NOT_EXIST); } @Override - public BaseResponse userLock(@NotNull UserLockVO userLockVO) { + public BaseResponse userLock(Long id) { //判断用户是否存在 - if(userDAO.isExistUser(userLockVO.getId())) { - userDAO.userLock(userLockVO); + if(userDAO.isExistUser(id)) { + userDAO.userLock(id); return ResultUtil.success("锁定成功"); }else return ResultUtil.error(ErrorCode.USER_NOT_EXIST); } @Override - public BaseResponse userEditProfile(@NotNull UserEditProfileVO userEditProfileVO) { + public BaseResponse userEditProfile(UserEditProfileVO userEditProfileVO) { if(userDAO.isExistUser(userEditProfileVO.getId())) { if(userEditProfileVO.getPassword()!=null) { userEditProfileVO.setPassword(BCrypt.hashpw(userEditProfileVO.getPassword(), BCrypt.gensalt())); diff --git a/src/main/java/com/jsl/oa/utils/ErrorCode.java b/src/main/java/com/jsl/oa/utils/ErrorCode.java index eeea469..2760047 100755 --- a/src/main/java/com/jsl/oa/utils/ErrorCode.java +++ b/src/main/java/com/jsl/oa/utils/ErrorCode.java @@ -16,7 +16,8 @@ public enum ErrorCode { EMAIL_LOGIN_NOT_SUPPORT("EmailLoginNotSupport", 40300, "请使用邮箱登陆"), DATABASE_INSERT_ERROR("DatabaseInsertError", 50010, "数据库插入错误"), DATABASE_UPDATE_ERROR("DatabaseUpdateError", 50011, "数据库更新错误"), - DATABASE_DELETE_ERROR("DatabaseDeleteError", 50012, "数据库删除错误"); + DATABASE_DELETE_ERROR("DatabaseDeleteError", 50012, "数据库删除错误"), + PROJECT_NOT_EXIST("ProjectNotExist", 40016, "项目不存在"); private final String output; private final Integer code; diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml new file mode 100644 index 0000000..9aa3d90 --- /dev/null +++ b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml @@ -0,0 +1,44 @@ + + + + + + update organize_oa.oa_project + + + name = #{name}, + + + description = #{description}, + + + introduction = #{introduction}, + + + code_open = #{codeOpen}, + + + core_code = #{coreCode}, + + + git = #{git}, + + + difficulty_level = #{difficultyLevel}, + + + type = #{type}, + + + reward = #{reward}, + + + status = #{status}, + + + where id = #{id} + + + \ No newline at end of file