File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
2022-11-06
File name
Commit message
Commit date
File name
Commit message
Commit date
2022-11-06
2022-11-06
2022-11-06
2022-11-06
2022-11-06
2022-11-06
2022-11-06
package common.vo;
import common.util.AuthUtil;
import common.util.StringUtil;
import java.util.ArrayList;
import java.util.List;
/**
* @author 최정우
* @since 2021.12.06
*
* 공통 검색 VO 입니다.(상속받으세요)
*/
public class Search extends User {
public Search () {
if (AuthUtil.getLoginUser() != null) {
User loginUser = AuthUtil.getLoginUser();
super.setUserId(loginUser.getUserId());
super.setLoginId(loginUser.getLoginId());
super.setName(loginUser.getName());
super.setEmail(loginUser.getEmail());
super.setGender(loginUser.getGender());
super.setBirthDate(loginUser.getBirthDate());
super.setMobile(loginUser.getMobile());
super.setAddress(loginUser.getAddress());
super.setDetailAddress(loginUser.getDetailAddress());
super.setRegistrationDatetime(loginUser.getRegistrationDatetime());
super.setWithdrawDatetime(loginUser.getWithdrawDatetime());
super.setIsWithdraw(loginUser.getIsWithdraw());
super.setLoginFailedCount(loginUser.getLoginFailedCount());
super.setIsAccountLock(loginUser.getIsAccountLock());
super.setUserAuthotities(loginUser.getUserAuthotities());
}
}
/**
* 검색 목록's
*/
private List<SearchCondition> searchConditionList = new ArrayList<SearchCondition>();
/**
* 정렬 순서's
*/
private List<SearchOrder> searchOrderList = new ArrayList<SearchOrder>();
/**
* 현재 페이지
*/
private int currentPage = 1;
/**
* 한 페이지당 조회될 데이터 수
*/
private int perPage = 10;
/**
* 총 개시물 수
*/
private int totalRows = 0;
/**
* 페이징 시작할 row 넘버
*/
private int startRowNumber = 0;
/**
* 페이징 사용 유무
*/
private boolean isUsePaging = true;
public List<SearchCondition> getSearchConditionList() {
return searchConditionList;
}
public void setSearchConditionList(List<SearchCondition> searchConditionList) {
this.searchConditionList = searchConditionList;
}
public List<SearchOrder> getSearchOrderList() {
return searchOrderList;
}
public void setSearchOrderList(List<SearchOrder> searchOrderList) {
this.searchOrderList = searchOrderList;
}
public int getCurrentPage() {
return this.currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPerPage() {
return perPage;
}
public void setPerPage(int perPage) {
this.perPage = perPage;
}
public int getTotalRows() {
return totalRows;
}
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}
public int getStartRowNumber() {
return (currentPage - 1) * perPage;
}
public void setStartRowNumber(int startRowNumber) {
this.startRowNumber = startRowNumber;
}
public boolean getIsUsePaging() {
return isUsePaging;
}
public void setIsUsePaging(boolean isUsePaging) {
this.isUsePaging = isUsePaging;
}
/**
* 검색 목록에 데이터 추가하기
*
* @param column : 검색 컬럼명
* @param value : 검색어
*/
public void addSearchCondition (String column, String value) throws Exception {
if (StringUtil.isEmpty(column) == false) {
SearchCondition searchCondition = new SearchCondition();
searchCondition.setColumn(column);
searchCondition.setValue(value);
searchConditionList.add(searchCondition);
} else {
throw new Exception("addSearchCondition 메서드 에러 : 검색 조건의 컬럼명 값이 'null' 또는 '공백'입니다.");
}
}
/**
* 검색 목록에 데이터 추가하기
*
* @param operator : 현재 검색 조건 연산자 (AND, OR)
* @param column : 검색 컬럼명
* @param comparisonType : 검색어 비교 연산자 타입 ('=', 'like', 'is <not> null')
* @param value : 검색어
*/
public void addSearchCondition (String operator, String column, String comparisonType, String value) throws Exception {
if (StringUtil.isEmpty(column) == false) {
SearchCondition searchCondition = new SearchCondition();
searchCondition.setOperator(operator);
searchCondition.setColumn(column);
searchCondition.setComparisonType(comparisonType);
searchCondition.setValue(value);
searchConditionList.add(searchCondition);
} else {
throw new Exception("addSearchCondition 메서드 에러 : 검색 조건의 컬럼명 값이 'null' 또는 '공백'입니다.");
}
}
/**
* 검색 목록에 데이터 set (같은 컬럼명이 존재 할 시 -> value 대체 / 없을 시 -> 검색 목록에 추가)
*
* @param column : 검색 컬럼명
*/
public void setSearchCondition (String column, String value) throws Exception {
boolean isFind = false;
for (int i = 0; i < searchConditionList.size(); i++) {
if (searchConditionList.get(i).getColumn().equals(column) == true) {
searchConditionList.get(i).setColumn(column);
searchConditionList.get(i).setValue(value);
isFind = true;
break;
}
}
if (isFind == false) {
addSearchCondition(column, value);
}
}
/**
* 검색 목록에 데이터 set (같은 컬럼명이 존재 할 시 -> value 대체 / 없을 시 -> 검색 목록에 추가)
*
* @param column : 검색 컬럼명
*/
public void setSearchCondition (String operator, String column, String comparisonType, String value) throws Exception {
boolean isFind = false;
for (int i = 0; i < searchConditionList.size(); i++) {
if (searchConditionList.get(i).getColumn().equals(column) == true) {
searchConditionList.get(i).setOperator(operator);
searchConditionList.get(i).setColumn(column);
searchConditionList.get(i).setComparisonType(comparisonType);
searchConditionList.get(i).setValue(value);
isFind = true;
break;
}
}
if (isFind == false) {
addSearchCondition(operator, column, comparisonType, value);
}
}
/**
* 검색 목록에 데이터 삭제하기
*
* @param column : 검색 컬럼명
*/
public void removeSearchCondition (String column) throws Exception {
for (int i = 0; i < searchConditionList.size(); i++) {
if (searchConditionList.get(i).getColumn().equals(column) == true) {
searchConditionList.remove(i);
break;
}
}
}
/**
* 검색 정렬 목록에 데이터 추가하기
*
* @param column : 검색 컬럼명
*/
public void addSearchOrder (String column) throws Exception {
if (StringUtil.isEmpty(column) == false) {
SearchOrder searchOrder = new SearchOrder();
searchOrder.setColumn(column);
searchOrderList.add(searchOrder);
} else {
throw new Exception("addSearchOrder 메서드 에러 : 정렬 조건의 컬럼명 값이 'null' 또는 '공백'입니다.");
}
}
/**
* 검색 목록에 데이터 추가하기
*
* @param column : 검색 컬럼명
* @param orderType : 정렬 타입('ASC', 'DESC')
*/
public void addSearchOrder (String column, String orderType) throws Exception {
if (StringUtil.isEmpty(column) == false) {
SearchOrder searchOrder = new SearchOrder();
searchOrder.setColumn(column);
searchOrder.setOrderType(orderType);
searchOrderList.add(searchOrder);
} else {
throw new Exception("addSearchOrder 메서드 에러 : 정렬 조건의 컬럼명 값이 'null' 또는 '공백'입니다.");
}
}
/**
* 검색 목록에 데이터 set (같은 컬럼명이 존재 할 시 -> value 대체 / 없을 시 -> 검색 목록에 추가)
*
* @param column : 검색 컬럼명
*/
public void setSearchOrder (String column) throws Exception {
boolean isFind = false;
for (int i = 0; i < searchOrderList.size(); i++) {
if (searchOrderList.get(i).getColumn().equals(column) == true) {
searchOrderList.get(i).setColumn(column);
isFind = true;
break;
}
}
if (isFind == false) {
addSearchOrder(column);
}
}
/**
* 검색 목록에 데이터 set (같은 컬럼명이 존재 할 시 -> value 대체 / 없을 시 -> 검색 목록에 추가)
*
* @param column : 검색 컬럼명
*/
public void setSearchOrder (String column, String orderType) throws Exception {
boolean isFind = false;
for (int i = 0; i < searchOrderList.size(); i++) {
if (searchOrderList.get(i).getColumn().equals(column) == true) {
searchOrderList.get(i).setColumn(column);
searchOrderList.get(i).setOrderType(orderType);
isFind = true;
break;
}
}
if (isFind == false) {
addSearchOrder(column, orderType);
}
}
/**
* 검색 목록에 데이터 삭제하기
*
* @param column : 검색 컬럼명
*/
public void removeSearchOrder (String column) throws Exception {
for (int i = 0; i < searchOrderList.size(); i++) {
if (searchOrderList.get(i).getColumn().equals(column) == true) {
searchOrderList.remove(i);
break;
}
}
}
}