신상 표시 및 조회

기여·2024년 8월 25일
0

소소한 개발팁

목록 보기
89/103

본인의 신상에 대한 기준은 등록한지 7-14일 이내의 상품이다.
먼저 7일로 가정하자.

1, 표시
신상 여부 표시하는 isNew 필드를 Vo에 추가한다.
고정값이 아니기에 db에는 없어도 된다.

Vo

private Date pdate;
private boolean isNew; //등록일에 따라 신상 여부 표시용

//신상 여부 체크
	public void checkIfNew() {
        LocalDate today = LocalDate.now();
        LocalDate productDate = pdate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        this.isNew = ChronoUnit.DAYS.between(productDate, today) <= 7; //등록일 기준 첫 7일간 '신상' 표시
    }
	
	public boolean isNew() {
        return isNew;
    }

Front에는 아래 한 줄만 추가하면 끝~

<a th:if="${m.isNew}" th:text="'신상'" class="sinsang" ></a>

2, 조회
첫인상을 주는 index.html에도 top신상을 출력하고 싶었다.

Mapper

		//신상 top4
		@Select("SELECT product_code, pname, pdate, "
				+ "pimgStr, pprice, pdelifee, category "
				+ "FROM products "
				+ "WHERE DATEDIFF(CURDATE(), pdate) <= 7 "
				+ "ORDER BY pdate DESC "
				+ "LIMIT 4")
		List<PrdVo> topNewPrdList();

Ctrl

@GetMapping("/index")
	public String index(Model model) {
		System.out.println("templates index + top제품");
...	    
	    //신상 top4
	    List<PrdVo> newList = prdSvc.topNewPrdList();
	    model.addAttribute("newList", newList);	    
	    
		return "index";
	}

결과:

profile
기기 좋아하는 여자

0개의 댓글