Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

WON.dev

BoardServiceImpl.java 본문

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);
	}
  
   
   
}

'SPRING > chapter04_MVC' 카테고리의 다른 글

ReplyServiceImpl.java  (0) 2023.07.18
ReplyService.java  (0) 2023.07.18
BoardService.java  (0) 2023.07.18
CustomUser.java  (0) 2023.07.18
CustomUserDetailService.java  (0) 2023.07.18