프로젝트 목록 리스트

This commit is contained in:
yoon 2025-02-17 10:32:53 +09:00
parent aeb96802f9
commit f33fd48eef
5 changed files with 310 additions and 51 deletions

View File

@ -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<List<MapDto>>
*
*/
@ParameterCheck
@GetMapping("/yearCategory")
public ApiResponse<List<MapDto>> getYearCategories() {
List<MapDto> yearCategory = commoncodservice.getYearCategories();
return ApiResponse.ok(yearCategory);
}
/**
* 프로젝트 목록 조회
*
* * @return ApiResponse<List<MapDto>>
*
*/
@ParameterCheck
@GetMapping("/select")
public ApiResponse<MapDto> selectProject() {
List<MapDto> projectList = netprojctService.selectProject();
MapDto outData = new MapDto();
outData.put("projectList", projectList);
return ApiResponse.ok(outData);
}
/**
* 프로젝트 등록
*
* @param map
* @return ApiResponse<Integer>
*/
@PostMapping("/insert")
public ApiResponse<Integer> insertProject(@ReqMap MapDto map) {
int project = netprojctService.insertProject(map);
return ApiResponse.ok(project);
}
/**
* 비밀번호 재설정
*
* @param map
* @return ApiResponse<Boolean>
*
*/
@PatchMapping("/updateYon")
public ApiResponse<Boolean> updateProjectMember(@ReqMap MapDto map) {
boolean isMember = netprojctService.updateProjectMember(map);
return ApiResponse.ok(isMember);
}
/**
* 프로젝트 멤버리스트 조회
*
* * @return ApiResponse<List<MapDto>>
*
*/
@ParameterCheck
@GetMapping("/members/{projctSeq}")
public ApiResponse<List<MapDto>> getProjectMembers(@PathVariable int projctSeq) {
return ApiResponse.ok(netprojctService.getProjectMembers(projctSeq));
}
}

View File

@ -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<List<MapDto>>
*
*/
@ParameterCheck
@GetMapping("/yearCategory")
public ApiResponse<List<MapDto>> getYearCategories() {
List<MapDto> yearCategory = commoncodservice.getYearCategories();
return ApiResponse.ok(yearCategory);
}
}

View File

@ -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<MapDto> selectProject();
int insertProject(MapDto map);
int insertProjectMember(Integer projctSeq);
int updateProjectMember(MapDto map);
List<MapDto> selectProjectMembers(int projctSeq);
}

View File

@ -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<MapDto> 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<MapDto> getProjectMembers(int projctSeq) {
return netprojctMapper.selectProjectMembers(projctSeq);
}
}

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="io.company.localhost.mapper.NetprojctMapper">
<!-- 프로젝트 목록 조회 -->
<select id="selectProject" parameterType="map" resultType="io.company.localhost.common.dto.MapDto">
SELECT *
FROM netprojct
ORDER BY PROJCTSEQ DESC
</select>
<!-- 프로젝트 등록 -->
<insert id="insertProject" useGeneratedKeys="true" keyProperty="PROJCTSEQ">
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>
<!-- 프로젝트 등록 후 모든 사용자 자동 참여 -->
<insert id="insertProjectMember">
INSERT INTO promember (PROJCTSEQ, MEMBERSEQ, PROJCTYON)
SELECT #{projctSeq}, MEMBERSEQ, '1' FROM netmember;
</insert>
<!-- 프로젝트 참여 미참여 -->
<update id="updateProjectMember">
UPDATE promember
SET PROJCTYON = #{projctYon}
WHERE PROJCTSEQ = #{projctSeq}
AND MEMBERSEQ = #{memberSeq}
</update>
<!-- 프로젝트 멤버 조회 -->
<select id="selectProjectMembers" resultType="io.company.localhost.common.dto.MapDto">
SELECT pm.PROJCTSEQ,
pm.MEMBERSEQ,
pm.PROJCTYON,
nm.MEMBERNAM,
nm.MEMBERPRF,
nm.MEMBERCOL as usercolor
FROM promember pm
JOIN netmember nm ON pm.MEMBERSEQ = nm.MEMBERSEQ
WHERE pm.PROJCTSEQ = #{projctSeq}
</select>
</mapper>