전화번호 중복체크, 회원가입 시 프로젝트 멤버 테이블에 자동 insert (미참여 형태로)

This commit is contained in:
yoon 2025-02-24 12:01:50 +09:00
parent 7e8090dead
commit 2f83264ce0
9 changed files with 143 additions and 60 deletions

View File

@ -31,6 +31,7 @@ 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.ProMemberService;
import io.company.localhost.service.commoncodService;
import io.company.localhost.utils.AuthUtil;
import io.company.localhost.vo.MemberVo;
@ -45,6 +46,7 @@ public class ProjectController {
private final commoncodService commoncodservice;
private final NetprojctService netprojctService;
private final ProMemberService promemberService;
/**
* 프로젝트 연도 조회
@ -64,7 +66,7 @@ public class ProjectController {
*
* @param projectName 프로젝트 이름
* @param participantSeq 참여자 번호
* @param address 주소 정보 (주소, 상세주소, 우편번호
* @param address 주소 정보 (주소, 상세주소, 우편번호)
* @return
*
*/
@ -114,7 +116,7 @@ public class ProjectController {
*/
@PatchMapping("/updateYon")
public ApiResponse<Boolean> updateProjectMember(@ReqMap MapDto map) {
boolean isMember = netprojctService.updateProjectMember(map);
boolean isMember = promemberService.updateProjectMember(map);
return ApiResponse.ok(isMember);
}
@ -128,7 +130,7 @@ public class ProjectController {
@GetMapping("/members/{projctSeq}")
public ApiResponse<List<MapDto>> selectProjectMembers(@PathVariable int projctSeq) {
return ApiResponse.ok(netprojctService.getProjectMembers(projctSeq));
return ApiResponse.ok(promemberService.selectProjectMembers(projctSeq));
}
/**

View File

@ -29,11 +29,5 @@ public interface NetprojctMapper {
int updateProject(MapDto map);
int insertProjectMember(Integer projctSeq);
int updateProjectMember(MapDto map);
List<MapDto> selectProjectMembers(int projctSeq);
List<MapDto> selectProjectLog(int projctSeq);
}

View File

@ -0,0 +1,34 @@
/************************************************************
*
* @packageName : io.company.localhost.mapper
* @fileName : PromemberMapper.java
* @author : 박지윤
* @date : 24.02.20
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.02.20 박지윤 최초 생성
*
*************************************************************/
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 PromemberMapper {
int insertProjectMember(Integer projctSeq);
int insertNewMemberToProjects(Integer memberSeq);
int updateProjectMember(MapDto map);
List<MapDto> selectProjectMembers(int projctSeq);
}

View File

@ -23,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
import io.company.localhost.common.dto.MapDto;
import io.company.localhost.mapper.NetmemberMapper;
import io.company.localhost.mapper.PromemberMapper;
import io.company.localhost.mapper.commoncodMapper;
import lombok.RequiredArgsConstructor;
@ -31,6 +32,7 @@ import lombok.RequiredArgsConstructor;
public class NetmemberService {
private final NetmemberMapper memberMapper;
private final commoncodMapper commoncodMapper;
private final PromemberMapper promemberMapper;
private final DelegatingPasswordEncoder passwordEncoder;
private final FileService fileService;
@ -62,7 +64,7 @@ public class NetmemberService {
// 회원 정보 저장
int result = memberMapper.insertMember(map);
// 선택한 색상 코드 사용 처리
String color = map.getString("memberCol");
@ -72,6 +74,10 @@ public class NetmemberService {
colorMap.put("type", "YON");
commoncodMapper.updateColorYon(colorMap);
// 모든 프로젝트에 새로운 멤버 추가
Integer newMemberSeq = map.getInt("MEMBERSEQ");
promemberMapper.insertNewMemberToProjects(newMemberSeq);
return result;
}

View File

@ -22,6 +22,7 @@ import org.springframework.stereotype.Service;
import io.company.localhost.common.dto.MapDto;
import io.company.localhost.mapper.NetprojctMapper;
import io.company.localhost.mapper.PromemberMapper;
import io.company.localhost.mapper.commoncodMapper;
import lombok.RequiredArgsConstructor;
@ -30,6 +31,7 @@ import lombok.RequiredArgsConstructor;
public class NetprojctService {
private final commoncodMapper commoncodMapper;
private final NetprojctMapper netprojctMapper;
private final PromemberMapper promemberMapper;
/**
@ -63,7 +65,7 @@ public class NetprojctService {
Integer projctSeq = map.getInt("PROJCTSEQ");
netprojctMapper.insertProjectMember(projctSeq);
promemberMapper.insertProjectMember(projctSeq);
return result;
}
@ -101,26 +103,7 @@ public class NetprojctService {
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);
}
/**
* 프로젝트 log 조회
*

View File

@ -0,0 +1,53 @@
/************************************************************
*
* @packageName : io.company.localhost.PromemberService
* @fileName : PromemberService.java
* @author : 박지윤
* @date : 25.02.20
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 25.02.20 박지윤 최초 생성
*
*************************************************************/
package io.company.localhost.service;
import java.util.List;
import org.springframework.stereotype.Service;
import io.company.localhost.common.dto.MapDto;
import io.company.localhost.mapper.PromemberMapper;
import lombok.RequiredArgsConstructor;
@Service
@RequiredArgsConstructor
public class ProMemberService {
private final PromemberMapper promemberMapper;
/**
* 프로젝트 참여, 미참여 member
*
* @param map
* @return
*/
public boolean updateProjectMember(MapDto map) {
return promemberMapper.updateProjectMember(map) > 0;
}
/**
* 프로젝트 멤버리스트 조회
*
* @param
* @return
*/
public List<MapDto> selectProjectMembers(int projctSeq) {
return promemberMapper.selectProjectMembers(projctSeq);
}
}

View File

@ -77,35 +77,7 @@
PROJCTUMB = #{projctUmb}
WHERE PROJCTSEQ = #{projctSeq}
</update>
<!-- 프로젝트 등록 후 모든 사용자 자동 참여 -->
<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>
<!-- 프로젝트 로그 조회 -->
<select id="selectProjectLog" parameterType="int" resultType="map">
SELECT

View File

@ -0,0 +1,39 @@
<?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.PromemberMapper">
<!-- 프로젝트 등록 후 모든 사용자 자동 참여 -->
<insert id="insertProjectMember">
INSERT INTO promember (PROJCTSEQ, MEMBERSEQ, PROJCTYON)
SELECT #{projctSeq}, MEMBERSEQ, '1' FROM netmember;
</insert>
<!-- 새로 가입한 회원 모든 프로젝트 멤버에 미참여 상태로 추가 -->
<insert id="insertNewMemberToProjects">
INSERT INTO promember (PROJCTSEQ, MEMBERSEQ, PROJCTYON)
SELECT PROJCTSEQ, #{memberSeq}, '0' FROM netprojct;
</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>