본문 바로가기

JAVA/학원 프로젝트

[JAVA/Spring] 국비 학원 최종프로젝트 #5 - 쇼핑몰 구현 - 회원관리 페이지 구현.

상품목록페이지와 마찬가지로, 회원도 불량회원과 일반회원을 구분짓기위해서 ajax를 사용한 체크박스로 페이지를 넘기도록 구현하였으며, 회원같은경우는 검색할때 개인정보 옵션값과 그에따른 회원등급, 성별에  따라 검색이 될수 있게끔 구현하였다.

 

Controller

@RequestMapping(value = "/admin_member_search.do", method = RequestMethod.POST)
	public String searchMember(@RequestParam Map<String,String> map, HttpServletRequest req) {
			
		map.put("searchString",map.get("searchString")+"%");
		
		if(map.get("gender").equals("all")){
			map.put("gender", "female");
			map.put("gender2", "male");
		}else {
			System.out.println("남자,여자선택시");
			map.put("gender2", map.get("gender"));
		}
		List<EzenatMemberDTO> list = adminMapper.searchList(map);
		req.setAttribute("listMember", list);
		return "admin/admin_member_list";
	}

jsp

<form name="f" action="admin_member_search.do" method="post"
					role="search" onsubmit="return check()">
					<input type="hidden" name="mode" value="${mode}">
					<td class="table-light">개인정보</td>
					<td colspan="3">
						<div class="d-flex align-items-center">
							<select id="dropdown-select" name="search" class="form-select" style ="width:40%;display:inline;"
								onchange="handleDropdownChange(this)">
								<option value="id">아이디</option>
								<option value="email">이메일</option>
								<option value="hp1" value2="hp2" value3= "hp3" >전화번호</option>
								<option value="nickname">닉네임</option>
								<option value="address">주소</option>
							</select> <input type="text" name="searchString" style="margin: 5 5px;">
						</div>
					</td>
			</tr>
			<tr>
				<td class="table-light">회원등급</td>
				<td>
					<ul>
						<select class="option-name" name="rating"
							style="margin-right: 5px">
							<option value="bronze">브론즈 회원</option>
							<option value="silver">실버 회원</option>
							<option value="gold">골드 회원</option>
						</select>
					</ul>
				</td>

	
			</tr>
			<tr>
				<td class="table-light">성별</td>
				<td>
					<div class="form-check form-check-inline">
						<input class="form-check-input" type="radio" name="gender"
							id="gender" value="all" checked> <label
							class="form-check-label" for="inlineRadio2">전 체</label>
					</div>		
					<div class="form-check form-check-inline">
						<input class="form-check-input" type="radio" name="gender"
							id="gender" value="male"> <label
							class="form-check-label" for="inlineRadio2">남</label>
					</div>
					<div class="form-check form-check-inline">
						<input class="form-check-input" type="radio" name="gender"
							id="gender" value="female"> <label
							class="form-check-label" for="inlineRadio2">여</label>
					</div>
					
					</td>
						<td>
						<button type="submit" class="btn btn-dark"
							style="border-radius: 1">검색</button>
						</form>
						</td>			
				</tr>

mapper.xml

	<select id="searchRatingList" parameterType ="Map" resultType="EzenatMemberDTO">
		select * from ezenat_member where member_rating = #{rating}
	
	</select>
	 
    <select id="searchList" parameterType = "Map" resultType ="EzenatMemberDTO">
		select * from ezenat_member 
		where member_rating =#{rating} 
		and ${search} like #{searchString} 
		and gender in (#{gender},#{gender2})
	</select>

service.java

public List<EzenatMemberDTO> searchId(String searchString){
		System.out.println("아이디 검색: " + searchString);
		return sqlSession.selectList("searchId", "%" + searchString + "%");
	 }
	 
	 public List<EzenatMemberDTO> searchEmail(String searchString){
		System.out.println("이메일 검색: " + searchString);
		return sqlSession.selectList("searchEmail", "%" + searchString + "%");
	 }
	 
	 public List<EzenatMemberDTO> searchHp(String searchString){
		System.out.println("전화번호 검색: " + searchString);
		return sqlSession.selectList("searchHp", "%" + searchString + "%");
	 }
	 
	 public List<EzenatMemberDTO> searchNickname(String searchString){
		System.out.println("닉네임 검색: " + searchString);
		return sqlSession.selectList("searchNickname", "%" + searchString + "%");
	 }
	 
	 public List<EzenatMemberDTO> searchAddress(String searchString){
		System.out.println("주소 검색: " + searchString);
		return sqlSession.selectList("searchAddress", "%" + searchString + "%");
	 }
     public List<EzenatMemberDTO> searchRatingList(Map<String, String> map) {

		return sqlSession.selectList("searchRatingList",map);
	}

	public List<EzenatMemberDTO> searchList(Map<String, String> map) {

		return sqlSession.selectList("searchList",map);
	}

	public int updateRating(Map<String,String> map) {
		
		return sqlSession.update("updateRating", map);
	}

예를 들어, 실버등급이며 성별은 남성인 사람만 검색을 하게된다면

 

위와같이 결과 값이 나오게되며, 현재 db에 성별이 여성인 회원이 없는상태에서 여성을 검색하게되면,

이와 같이 검색된 회원 내역이 없습니다 라는 문구가 나오게된다.

정상적으로 검색조건이 되는것을 확인 할 수 있다.