diff --git a/src/main/java/io/company/localhost/controller/api/ProjectController.java b/src/main/java/io/company/localhost/controller/api/ProjectController.java new file mode 100644 index 0000000..6faad73 --- /dev/null +++ b/src/main/java/io/company/localhost/controller/api/ProjectController.java @@ -0,0 +1,116 @@ +/************************************************************ + * + * @packageName : io.company.localhost.controller.api + * @fileName : ProjectListController.java + * @author : 박지윤 + * @date : 25.02.10 + * @description : 프로젝트 목록 + * + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- + * 25.02.10 박지윤 최초 생성 + * + *************************************************************/ + +package io.company.localhost.controller.api; + +import java.util.List; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import io.company.localhost.common.annotation.ParameterCheck; +import io.company.localhost.common.annotation.ReqMap; +import io.company.localhost.common.dto.ApiResponse; +import io.company.localhost.common.dto.MapDto; +import io.company.localhost.service.NetprojctService; +import io.company.localhost.service.commoncodService; +import io.company.localhost.utils.AuthUtil; +import io.company.localhost.vo.MemberVo; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@RestController +@RequestMapping("/api/project") +@RequiredArgsConstructor +@Slf4j +public class ProjectController { + + private final commoncodService commoncodservice; + private final NetprojctService netprojctService; + + /** + * 프로젝트 연도 조회 + * + * @return ApiResponse> + * + */ + @ParameterCheck + @GetMapping("/yearCategory") + public ApiResponse> getYearCategories() { + List yearCategory = commoncodservice.getYearCategories(); + return ApiResponse.ok(yearCategory); + } + + /** + * 프로젝트 목록 조회 + * + * * @return ApiResponse> + * + */ + @ParameterCheck + @GetMapping("/select") + public ApiResponse selectProject() { + List projectList = netprojctService.selectProject(); + + MapDto outData = new MapDto(); + outData.put("projectList", projectList); + + return ApiResponse.ok(outData); + } + + /** + * 프로젝트 등록 + * + * @param map + * @return ApiResponse + */ + @PostMapping("/insert") + public ApiResponse insertProject(@ReqMap MapDto map) { + int project = netprojctService.insertProject(map); + return ApiResponse.ok(project); + } + + /** + * 비밀번호 재설정 + * + * @param map + * @return ApiResponse + * + */ + @PatchMapping("/updateYon") + public ApiResponse updateProjectMember(@ReqMap MapDto map) { + boolean isMember = netprojctService.updateProjectMember(map); + return ApiResponse.ok(isMember); + } + + /** + * 프로젝트 멤버리스트 조회 + * + * * @return ApiResponse> + * + */ + @ParameterCheck + @GetMapping("/members/{projctSeq}") + public ApiResponse> getProjectMembers(@PathVariable int projctSeq) { + + return ApiResponse.ok(netprojctService.getProjectMembers(projctSeq)); + } +} diff --git a/src/main/java/io/company/localhost/controller/api/ProjectListController.java b/src/main/java/io/company/localhost/controller/api/ProjectListController.java deleted file mode 100644 index 191a65c..0000000 --- a/src/main/java/io/company/localhost/controller/api/ProjectListController.java +++ /dev/null @@ -1,51 +0,0 @@ -/************************************************************ - * - * @packageName : io.company.localhost.controller.api - * @fileName : ProjectListController.java - * @author : 박지윤 - * @date : 25.02.10 - * @description : 프로젝트 목록 - * - * =========================================================== - * DATE AUTHOR NOTE - * ----------------------------------------------------------- - * 25.02.10 박지윤 최초 생성 - * - *************************************************************/ - -package io.company.localhost.controller.api; - -import java.util.List; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import io.company.localhost.common.annotation.ParameterCheck; -import io.company.localhost.common.dto.ApiResponse; -import io.company.localhost.common.dto.MapDto; -import io.company.localhost.service.commoncodService; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; - -@RestController -@RequestMapping("/api/project") -@RequiredArgsConstructor -@Slf4j -public class ProjectListController { - - private final commoncodService commoncodservice; - - /** - * 프로젝트 년도 조회 - * - * @return ApiResponse> - * - */ - @ParameterCheck - @GetMapping("/yearCategory") - public ApiResponse> getYearCategories() { - List yearCategory = commoncodservice.getYearCategories(); - return ApiResponse.ok(yearCategory); - } -} diff --git a/src/main/java/io/company/localhost/mapper/NetprojctMapper.java b/src/main/java/io/company/localhost/mapper/NetprojctMapper.java new file mode 100644 index 0000000..b2d2a2b --- /dev/null +++ b/src/main/java/io/company/localhost/mapper/NetprojctMapper.java @@ -0,0 +1,35 @@ +/************************************************************ + * + * @packageName : io.company.localhost.mapper + * @fileName : NetprojctMapper.java + * @author : 박지윤 + * @date : 24.02.13 + * @description : + * + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- + * 24.02.13 박지윤 최초 생성 + * + *************************************************************/ +package io.company.localhost.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; + +import io.company.localhost.common.dto.MapDto; + +@Mapper +public interface NetprojctMapper { + + List selectProject(); + + int insertProject(MapDto map); + + int insertProjectMember(Integer projctSeq); + + int updateProjectMember(MapDto map); + + List selectProjectMembers(int projctSeq); +} diff --git a/src/main/java/io/company/localhost/service/NetprojctService.java b/src/main/java/io/company/localhost/service/NetprojctService.java new file mode 100644 index 0000000..de6246b --- /dev/null +++ b/src/main/java/io/company/localhost/service/NetprojctService.java @@ -0,0 +1,92 @@ +/************************************************************ + * + * @packageName : io.company.localhost.NetprojctService + * @fileName : NetprojctService.java + * @author : 박지윤 + * @date : 25.02.13 + * @description : + * + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- + * 25.02.13 박지윤 최초 생성 + * + *************************************************************/ +package io.company.localhost.service; + +import java.math.BigInteger; +import java.time.LocalDateTime; +import java.util.List; + +import org.springframework.stereotype.Service; + +import io.company.localhost.common.dto.MapDto; +import io.company.localhost.mapper.NetprojctMapper; +import io.company.localhost.mapper.commoncodMapper; +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +public class NetprojctService { + private final commoncodMapper commoncodMapper; + private final NetprojctMapper netprojctMapper; + + + /** + * 프로젝트 목록 조회 + * + * @param + * @return + */ + public List selectProject() { + return netprojctMapper.selectProject(); + } + + + /** + * 프로젝트 등록 + * + * @param map + * @return + */ + public int insertProject(MapDto map) { + map.put("projctCdt", LocalDateTime.now()); + int result = netprojctMapper.insertProject(map); + + String color = map.getString("projctCol"); + + MapDto colorMap = new MapDto(); + colorMap.put("color", color); + colorMap.put("type", "YNP"); + + commoncodMapper.updateColorYon(colorMap); + + Integer projctSeq = map.getInt("PROJCTSEQ"); + + netprojctMapper.insertProjectMember(projctSeq); + + return result; + } + + /** + * 프로젝트 참여, 미참여 member + * + * @param map + * @return + */ + public boolean updateProjectMember(MapDto map) { + return netprojctMapper.updateProjectMember(map) > 0; + } + + /** + * 프로젝트 멤버리스트 조회 + * + * @param + * @return + */ + public List getProjectMembers(int projctSeq) { + return netprojctMapper.selectProjectMembers(projctSeq); + } + + +} diff --git a/src/main/resources/mapper/netprojctMapper.xml b/src/main/resources/mapper/netprojctMapper.xml new file mode 100644 index 0000000..0584d0e --- /dev/null +++ b/src/main/resources/mapper/netprojctMapper.xml @@ -0,0 +1,67 @@ + + + + + + + + + + INSERT INTO netprojct ( + PROJCTNAM, + PROJCTCOL, + PROJCTSTR, + PROJCTEND, + PROJCTDES, + PROJCTARR, + PROJCTDTL, + PROJCTZIP, + PROJCTCDT, + PROJCTCMB + ) VALUES ( + #{projctNam}, + #{projctCol}, + #{projctStr}, + #{projctEnd}, + #{projctDes}, + #{projctAdd}, + #{projctDtl}, + #{projctZip}, + #{projctCdt}, + #{projctCmb} + ) + + + + + INSERT INTO promember (PROJCTSEQ, MEMBERSEQ, PROJCTYON) + SELECT #{projctSeq}, MEMBERSEQ, '1' FROM netmember; + + + + + UPDATE promember + SET PROJCTYON = #{projctYon} + WHERE PROJCTSEQ = #{projctSeq} + AND MEMBERSEQ = #{memberSeq} + + + + + + +