package net.okjsp.techqna.dao; import java.util.List; import net.okjsp.techqna.model.TechQna; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; /** * TechQna Dao * * @author yjc0703 * */ @Repository public interface TechQnaDao { /** * question total count * * @return question total count */ public Integer selectTechQnaTotalCount(@Param("boardId") int boardId, @Param("categoryId") int categoryId); /** * question total count(by tag) * * @return question total count */ public Integer selectTechQnaByTagTotalCount(@Param("boardId") int boardId, @Param("categoryId") int categoryId, @Param("tagName") String tagName); /** * Question List(메인 리스트에서는 Question만 보인다) * 조회조건 X * * @param sort 정렬기준 * @param offset 시작 offset * @param sizePerList 목록에 보여질 row count * @return TechQna 목록 */ public List<TechQna> selectTechQnaList(@Param("boardId") int boardId, @Param("categoryId") int categoryId, @Param("sort") String sort, @Param("offset") Integer offset, @Param("sizePerList") Integer sizePerList); /** * Question List(메인 리스트에서는 Question만 보인다) * 선택된 태그에 대한 목록만 조회 * * @param tagName 태그명 * @param sort 정렬기준 * @param offset 시작 offset * @param sizePerList 목록에 보여질 row count * @return TechQna 목록 */ public List<TechQna> selectTechQnaListByTag(@Param("boardId") int boardId, @Param("categoryId") int categoryId, @Param("tagName") String tagName, @Param("sort") String sort, @Param("offset") Integer offset, @Param("sizePerList") Integer sizePerList); /** * TechQna 상세보기 * 한개의 질문과 여러개의 답변이 리스트로 구성 * * @param writeNo 게시글번호(질문) * @return 리스트 */ public List<TechQna> selectTechQnaDetail(@Param("boardId") int boardId, @Param("categoryId") int categoryId, @Param("writeNo") Integer writeNo); /** * TechQna 단일 질문 * 질문 한개를 가져온다. * * @param writeNo 게시글번호(질문) * @return TechQna */ public TechQna selectOneTechQnaQuestion(@Param("boardId") int boardId, @Param("categoryId") int categoryId, @Param("writeNo") Integer writeNo); /** * TechQna 질문 * 여러개의 답변이 리스트로 구성 * * @param writeNo 게시글번호(질문) * @return 리스트 */ public List<TechQna> selectTechQnaAnswers(@Param("boardId") int boardId, @Param("categoryId") int categoryId, @Param("writeNo") Integer writeNo); /** * TechQna 질문 * 단일 답변 전달 * * @param writeNo 게시글번호(질문) * @return 리스트 */ public TechQna selectOneTechQnaAnswer(@Param("boardId") int boardId, @Param("categoryId") int categoryId, @Param("writeNo") Integer writeNo, @Param("parentId") Integer parentId); /** * TechQna 등록 * * @param techQna Tech Qna */ public void insert(TechQna techQna); /** * TechQna 수정 * * @param techQna Tech Qna */ public void update(TechQna techQna); /** * TechQna 조회수 증가 * * @param techQna Tech Qna */ public void incPostingHit(@Param("writeNo") Integer writeNo); }