diff --git a/src/main/java/io/company/localhost/controller/api/ProjectController.java b/src/main/java/io/company/localhost/controller/api/ProjectController.java index f1094ad..229da38 100644 --- a/src/main/java/io/company/localhost/controller/api/ProjectController.java +++ b/src/main/java/io/company/localhost/controller/api/ProjectController.java @@ -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 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> selectProjectMembers(@PathVariable int projctSeq) { - return ApiResponse.ok(netprojctService.getProjectMembers(projctSeq)); + return ApiResponse.ok(promemberService.selectProjectMembers(projctSeq)); } /** diff --git a/src/main/java/io/company/localhost/controller/api/worddictController.java b/src/main/java/io/company/localhost/controller/api/worddictController.java index 3748e29..4e72679 100644 --- a/src/main/java/io/company/localhost/controller/api/worddictController.java +++ b/src/main/java/io/company/localhost/controller/api/worddictController.java @@ -89,7 +89,7 @@ public class worddictController { } /** * 용어 등록 - 카테고리 등록 - * @param WRDDICCAT 카테고리 코드값 ,WRDDICTTL 용어,WRDDICCON 내용 ,WRDDICRIK 링크 ,CMNCODNAM 추가 등록 카테고리 이름 + * @param WRDDICCAT 카테고리 코드값 ,WRDDICTTL 용어,WRDDICCON 내용 ,WRDDICRIK 링크 ,CMNCODNAM 추가 등록 카테고리 이름 * @return */ @Member diff --git a/src/main/java/io/company/localhost/controller/common/UserController.java b/src/main/java/io/company/localhost/controller/common/UserController.java index 4a53dc2..3d772d4 100644 --- a/src/main/java/io/company/localhost/controller/common/UserController.java +++ b/src/main/java/io/company/localhost/controller/common/UserController.java @@ -128,6 +128,19 @@ public class UserController { boolean isDuplicate = netmemberservice.selectCheckId(memberIds); return ApiResponse.ok(!isDuplicate); } + + /** + * 전화번호 중복 체크 + * + * @param memberTel + * @return ApiResponse + * + */ + @GetMapping("/checkPhone") + public ApiResponse selectCheckPhone(@RequestParam String memberTel) { + boolean isDuplicate = netmemberservice.selectCheckPhone(memberTel); + return ApiResponse.ok(!isDuplicate); + } /** * 로그인 여부 체크 diff --git a/src/main/java/io/company/localhost/mapper/NetmemberMapper.java b/src/main/java/io/company/localhost/mapper/NetmemberMapper.java index 4f764b3..c7726da 100644 --- a/src/main/java/io/company/localhost/mapper/NetmemberMapper.java +++ b/src/main/java/io/company/localhost/mapper/NetmemberMapper.java @@ -32,6 +32,8 @@ public interface NetmemberMapper { int selectCheckId(String memberIds); + int selectCheckPhone(String memberTel); + int selectPwReset(MapDto map); String selectPassword(String id); @@ -39,4 +41,5 @@ public interface NetmemberMapper { int updatePassword(MapDto map); List getallUserList(); + } diff --git a/src/main/java/io/company/localhost/mapper/NetprojctMapper.java b/src/main/java/io/company/localhost/mapper/NetprojctMapper.java index 78d34b5..0ae863b 100644 --- a/src/main/java/io/company/localhost/mapper/NetprojctMapper.java +++ b/src/main/java/io/company/localhost/mapper/NetprojctMapper.java @@ -29,11 +29,5 @@ public interface NetprojctMapper { int updateProject(MapDto map); - int insertProjectMember(Integer projctSeq); - - int updateProjectMember(MapDto map); - - List selectProjectMembers(int projctSeq); - List selectProjectLog(int projctSeq); } diff --git a/src/main/java/io/company/localhost/mapper/PromemberMapper.java b/src/main/java/io/company/localhost/mapper/PromemberMapper.java new file mode 100644 index 0000000..ae6bbb1 --- /dev/null +++ b/src/main/java/io/company/localhost/mapper/PromemberMapper.java @@ -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 selectProjectMembers(int projctSeq); + +} diff --git a/src/main/java/io/company/localhost/service/NetmemberService.java b/src/main/java/io/company/localhost/service/NetmemberService.java index 350bd92..9e6d44c 100644 --- a/src/main/java/io/company/localhost/service/NetmemberService.java +++ b/src/main/java/io/company/localhost/service/NetmemberService.java @@ -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; } @@ -85,6 +91,16 @@ public class NetmemberService { public boolean selectCheckId(String memberIds) { return memberMapper.selectCheckId(memberIds) > 0; } + + /** + * 전화번호 중복 체크 + * + * @param memberTel + * @return + */ + public boolean selectCheckPhone(String memberTel) { + return memberMapper.selectCheckPhone(memberTel) > 0; + } /** * 사원 목록 전체 조회 diff --git a/src/main/java/io/company/localhost/service/NetprojctService.java b/src/main/java/io/company/localhost/service/NetprojctService.java index 72d01f5..0614f11 100644 --- a/src/main/java/io/company/localhost/service/NetprojctService.java +++ b/src/main/java/io/company/localhost/service/NetprojctService.java @@ -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 getProjectMembers(int projctSeq) { - return netprojctMapper.selectProjectMembers(projctSeq); - } - + /** * 프로젝트 log 조회 * diff --git a/src/main/java/io/company/localhost/service/ProMemberService.java b/src/main/java/io/company/localhost/service/ProMemberService.java new file mode 100644 index 0000000..cde686b --- /dev/null +++ b/src/main/java/io/company/localhost/service/ProMemberService.java @@ -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 selectProjectMembers(int projctSeq) { + return promemberMapper.selectProjectMembers(projctSeq); + } + + + +} diff --git a/src/main/java/io/company/localhost/service/localbordService.java b/src/main/java/io/company/localhost/service/localbordService.java index 98b00c8..8e0b1a4 100644 --- a/src/main/java/io/company/localhost/service/localbordService.java +++ b/src/main/java/io/company/localhost/service/localbordService.java @@ -6,6 +6,7 @@ import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; import java.util.UUID; +import io.company.localhost.utils.BlobUtil; import org.springframework.stereotype.Service; @@ -196,24 +197,6 @@ public class localbordService { return boardMapper.selectCountCommentReactions(boardId); } - private String procBlobToString(Object blob) { - try { - if (blob instanceof String) { - return (String) blob; // 이미 문자열이면 그대로 반환 - } else if (blob instanceof java.sql.Blob) { - java.sql.Blob sqlBlob = (java.sql.Blob) blob; - long blobLength = sqlBlob.length(); - byte[] blobBytes = sqlBlob.getBytes(1, (int) blobLength); - return new String(blobBytes, StandardCharsets.UTF_8); // SQL BLOB → 바이트 배열 → 문자열 변환 - } else { - throw new UnsupportedOperationException("Unsupported blob type: " + blob.getClass()); // 지원되지 않는 타입이면 예외 발생 - } - } catch (Exception e) { - throw new RuntimeException("Failed to convert Blob to String: " + e.getMessage(), e); // 변환 실패 시 예외 처리 - } - } - - private String procFirstImageUrl(String jsonContent) { try { // JSON 유효성 검사 @@ -292,7 +275,7 @@ public class localbordService { // Blob 데이터를 문자열로 변환 Object content = boardDetail.get("content"); if (content != null) { - String contentString = procBlobToString(content); // Blob을 문자열로 변환 + String contentString = BlobUtil.procBlobToString(content); // Blob을 문자열로 변환 boardDetail.put("content", contentString); // JSON 변환 가능 } } @@ -309,7 +292,7 @@ public class localbordService { post.put("dislikeCount", reactions.getOrDefault("dislikeCount", 0)); Object content = post.get("content"); - String contentString = procBlobToString(content); + String contentString = BlobUtil.procBlobToString(content); post.put("content", contentString); String firstImageUrl = procFirstImageUrl(contentString); diff --git a/src/main/java/io/company/localhost/service/worddictyService.java b/src/main/java/io/company/localhost/service/worddictyService.java index fddf11e..b794b46 100644 --- a/src/main/java/io/company/localhost/service/worddictyService.java +++ b/src/main/java/io/company/localhost/service/worddictyService.java @@ -23,6 +23,7 @@ import org.springframework.stereotype.Service; import io.company.localhost.common.dto.MapDto; import io.company.localhost.mapper.commoncodMapper; import io.company.localhost.mapper.worddictyMapper; +import io.company.localhost.utils.BlobUtil; import lombok.RequiredArgsConstructor; @Service @@ -32,9 +33,14 @@ public class worddictyService { private final worddictyMapper worddictymapper; private final commoncodMapper commoncodmapper; - public List getWordList(MapDto map) { List wordList = worddictymapper.getWordList(map); + for (MapDto word : wordList) { + Object content = word.get("WRDDICCON"); + // BlobUtil.procBlobToString으로 content 변환 + String contentString = BlobUtil.procBlobToString(content); + word.put("WRDDICCON", contentString); + } List processedList = new ArrayList<>(); // 데이터 가공 @@ -60,7 +66,6 @@ public class worddictyService { } return processedList; } - public Long insertWord(MapDto map) { if (map.containsKey("CMNCODNAM") && map.get("CMNCODNAM") != null) { @@ -68,28 +73,16 @@ public class worddictyService { } return worddictymapper.insertWord(map); } - public Long updateWord(MapDto map) { return worddictymapper.updateWord(map); } - public MapDto getWordDetail(MapDto map) { return worddictymapper.getWordDetail(map); } - public int getTotal(MapDto map) { return worddictymapper.getTotal(map); } - - public Long updateword(MapDto map) { return worddictymapper.updateword(map); } - - - - - - - } diff --git a/src/main/java/io/company/localhost/utils/BlobUtil.java b/src/main/java/io/company/localhost/utils/BlobUtil.java new file mode 100644 index 0000000..4fea605 --- /dev/null +++ b/src/main/java/io/company/localhost/utils/BlobUtil.java @@ -0,0 +1,42 @@ +/************************************************************ + * + * @packageName : io.company.localhost.utils + * @fileName : BlobUtil.java + * @author : 서지희 + * @date : 25.02.25 + * @description : + * + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- + * 25.02.25 서지희 최초 생성 + * + *************************************************************/ +package io.company.localhost.utils; + +import java.nio.charset.StandardCharsets; +import java.sql.Blob; + +public class BlobUtil { + + private BlobUtil() { + // 객체 생성 방지 (유틸리티 클래스는 인스턴스를 만들 필요가 없음) + } + + public static String procBlobToString(Object blob) { + try { + if (blob instanceof String) { + return (String) blob; // 이미 문자열이면 그대로 반환 + } else if (blob instanceof Blob) { + Blob sqlBlob = (Blob) blob; + long blobLength = sqlBlob.length(); + byte[] blobBytes = sqlBlob.getBytes(1, (int) blobLength); + return new String(blobBytes, StandardCharsets.UTF_8); // SQL BLOB → 바이트 배열 → 문자열 변환 + } else { + throw new UnsupportedOperationException("Unsupported blob type: " + blob.getClass()); // 지원되지 않는 타입이면 예외 발생 + } + } catch (Exception e) { + throw new RuntimeException("Failed to convert Blob to String: " + e.getMessage(), e); // 변환 실패 시 예외 처리 + } + } +} diff --git a/src/main/resources/mapper/netmemberMapper.xml b/src/main/resources/mapper/NetmemberMapper.xml similarity index 94% rename from src/main/resources/mapper/netmemberMapper.xml rename to src/main/resources/mapper/NetmemberMapper.xml index 9dff499..7307fcf 100644 --- a/src/main/resources/mapper/netmemberMapper.xml +++ b/src/main/resources/mapper/NetmemberMapper.xml @@ -88,12 +88,19 @@ ) - + + + + - 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 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} + + +