SPRING/chapter04_MVC
BoardServiceImpl.java
GAWON
2023. 7. 18. 09:24
package org.joonzis.service;
import java.util.List;
import org.joonzis.domain.BoardAttachVO;
import org.joonzis.domain.BoardVO;
import org.joonzis.domain.Criteria;
import org.joonzis.mapper.BoardAttachMapper;
import org.joonzis.mapper.BoardMapper;
import org.joonzis.mapper.ReplyMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import lombok.extern.log4j.Log4j;
@Log4j
@Service
public class BoardServiceImpl implements BoardService{
@Autowired
private BoardMapper mapper;
@Autowired
private BoardAttachMapper attachMapper;
@Autowired
private ReplyMapper replyMapper;
@Override
public List<BoardVO> getList(Criteria cri) {
log.info("getList...");
return mapper.getListWithPaging(cri);
}
@Transactional
@Override
//게시글의 글, 파일 첨부 삽입(insert)
public void register(BoardVO vo) {
log.info("register..." + vo);
mapper.insert(vo);//BoardVO
//BoardVO = bno, writer, content, ...
long bno = mapper.getMaxBno();
// List가 null일때 그리고 List가 0보다 클때 안에 있는 for문을 탄다(bno값에 insert한것)
if(vo.getAttachList() != null && vo.getAttachList().size() > 0) {
for(BoardAttachVO avo : vo.getAttachList()) {
avo.setBno(bno);
attachMapper.insert(avo);//BoardAttachVO
//BoardAttachVO = uuid, uploadPath, fileName, fileType, bno
}
}
}
@Override
public BoardVO get(long bno) {
log.info("get..." + bno);
return mapper.read(bno);
}
@Override
public boolean remove(long bno) {
log.info("romeve..." + bno);
attachMapper.deleteAll(bno);
replyMapper.deleteAll(bno);
return mapper.delete(bno)==1; // 1행이 삭제되었을 때
}
@Transactional
@Override
public boolean modify(BoardVO vo) {
log.info("modify..." + vo);
attachMapper.deleteAll(vo.getBno());
log.error("vo리스트"+vo.getAttachList());
boolean modifyResult = mapper.update(vo)==1; // 1행이 수정되었을 때
if (modifyResult && vo.getAttachList() != null && vo.getAttachList().size() >0) {
vo.getAttachList().forEach(attach -> {
attach.setBno(vo.getBno());
attachMapper.insert(attach);
});
}
return modifyResult;
}
@Override
public int getTotal() {
log.info("getTotal..." );
return mapper.getTotalCount();
}
@Override
public List<BoardAttachVO> getAttachList(long bno) {
log.info("getAttachList...." + bno);
return attachMapper.findByBno(bno);
}
}