From 076fc3b7a927f68695879982bdbe81cf4a645239 Mon Sep 17 00:00:00 2001 From: "Yuan, Harry Hongbin" Date: Thu, 2 May 2024 22:21:44 +0200 Subject: [PATCH] check nickname when create or update (#243) --- .../officialsite/member/MemberController.java | 5 +++- .../officialsite/member/MemberRepository.java | 3 +++ .../dl/officialsite/member/MemberService.java | 23 +++++++++++++------ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/dl/officialsite/member/MemberController.java b/src/main/java/com/dl/officialsite/member/MemberController.java index 604a14df..edbdaafb 100644 --- a/src/main/java/com/dl/officialsite/member/MemberController.java +++ b/src/main/java/com/dl/officialsite/member/MemberController.java @@ -129,6 +129,8 @@ public Predicate toPredicate(Root root, CriteriaQuery criteriaQuery, @PostMapping("/create") public BaseResponse createMember(@Valid @RequestBody Member member, @RequestParam String address, HttpServletRequest request) { + this.memberService.nickNameExists(member.getNickName()); + member.setGithubId(HttpSessionUtils.getOAuthUserName(request.getSession(), OAuthSessionKey.GITHUB_USER_NAME)); member.setTweetId(HttpSessionUtils.getOAuthUserName(request.getSession(), OAuthSessionKey.TWITTER_USER_NAME)); member.setTweetScreenName(HttpSessionUtils.getOAuthUserName(request.getSession(), OAuthSessionKey.TWITTER_SCREEN_NAME)); @@ -142,9 +144,10 @@ public BaseResponse createMember(@Valid @RequestBody Member member, @RequestPara return BaseResponse.successWithData(_member); } - @PutMapping("/update") public BaseResponse updateMemberByAddress(@RequestParam String address, @RequestBody MemberVo member, HttpServletRequest request) { + this.memberService.nickNameExists(member.getNickName()); + Optional memberData = memberRepository.findByAddress(address); if (memberData.isPresent()) { diff --git a/src/main/java/com/dl/officialsite/member/MemberRepository.java b/src/main/java/com/dl/officialsite/member/MemberRepository.java index 1675ad8b..90c4398c 100644 --- a/src/main/java/com/dl/officialsite/member/MemberRepository.java +++ b/src/main/java/com/dl/officialsite/member/MemberRepository.java @@ -15,5 +15,8 @@ public interface MemberRepository extends JpaRepository, JpaSpecif @Query(value = "select * from member where address = :address", nativeQuery = true) Optional findByAddress(@Param("address") String address); + @Query(value = "select * from member where nick_name = :nickName", nativeQuery = true) + Optional findByNickName(@Param("nickName") String nickName); + List findByIdIn(List ids); } diff --git a/src/main/java/com/dl/officialsite/member/MemberService.java b/src/main/java/com/dl/officialsite/member/MemberService.java index 03b24704..9ab68cfe 100644 --- a/src/main/java/com/dl/officialsite/member/MemberService.java +++ b/src/main/java/com/dl/officialsite/member/MemberService.java @@ -1,7 +1,5 @@ package com.dl.officialsite.member; -import static com.dl.officialsite.common.enums.CodeEnums.INVALID_MEMBER; - import com.dl.officialsite.common.enums.CodeEnums; import com.dl.officialsite.common.exception.BizException; import com.dl.officialsite.common.utils.UserSecurityUtils; @@ -11,16 +9,20 @@ import com.dl.officialsite.team.TeamService; import com.dl.officialsite.team.teammember.TeamMember; import com.dl.officialsite.team.teammember.TeamMemberRepository; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import javax.transaction.Transactional; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.transaction.Transactional; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +import static com.dl.officialsite.common.enums.CodeEnums.INVALID_MEMBER; + @Service @Slf4j public class MemberService { @@ -110,4 +112,11 @@ public void freeze(String memberAddress) { member.setStatus(1); memberRepository.save(member); } + + + public void nickNameExists(String nickName){ + if(StringUtils.isNotBlank(nickName) && this.memberRepository.findByNickName(nickName).isPresent()){ + throw new RuntimeException("Nickname already exists, please change another one.") ; + } + } }