package nlib.cmm.web; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.core.Authentication; import org.springframework.security.web.savedrequest.HttpSessionRequestCache; import org.springframework.security.web.savedrequest.RequestCache; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import nlib.cmm.NlibCommonController; import nlib.cmm.service.NlibProperty; import nlib.cmm.service.NotificationService; import nlib.col.service.CartService; import nlib.user.service.NlibLoginVO; import nlib.util.StringUtil; /** *
* @Class Name : MainController.java * * @Description : 메인화면에 표시할 정보를 처리하는 Controller 클래스 * * * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021) * ** * @ ------------ -------- --------------------------- * @ 수정일 수정자 수정내용 * @ ------------ -------- --------------------------- * @ 2021. 6. 22. KNKIM 최초 생성 * * * @author 이씨플라자 * DIGITALSHIP KNKIM * @since 2021. 6. 22. * @version 1.0 * */ @Controller public class MainController extends NlibCommonController { private static final Logger log = LoggerFactory.getLogger(MainController.class); @Resource(name="notificationService") private NotificationService notificationService; @Resource(name = "cartService") private CartService cartService; @RequestMapping( {"/index.do"} ) public String setContent( HttpServletRequest req, HttpServletResponse res, Authentication authentication, ModelMap model) throws Exception { // 캐쉬된 Reqeust 히스토리 삭제 RequestCache cache = new HttpSessionRequestCache(); cache.removeRequest(req, res); log.debug((authentication == null ? "손님 메인 접속" : authentication.getName() + " 메인 접속")); return "nlib/cmm/home"; } @RequestMapping( {"/cmm/headerSubPart.do"} ) public String headerSub( HttpServletRequest request, HttpServletResponse response, Authentication authentication, ModelMap model) throws Exception { // 캐쉬된 Reqeust 히스토리 삭제 RequestCache cache = new HttpSessionRequestCache(); cache.removeRequest(request, response); log.debug((authentication == null ? "손님 메인 접속" : authentication.getName() + " 메인 접속")); String mbInfoId = getMbInfoId(request); // 카트 건수 확인 // 카트 목록 가져오기 int cartCnt = 0; if(StringUtil.isEmpty(mbInfoId)) { // 카트 건수 cartCnt = cartService.countCartItemsFromCookie(request, response, "1"); cartCnt += cartService.countCartItemsFromCookie(request, response, "2"); } else { cartCnt = cartService.countCartItems(mbInfoId, "0"); } // 알림 확인 int unreadNotiCnt = 0; if(StringUtil.isNotEmpty(mbInfoId)) { unreadNotiCnt = notificationService.countUnreadNotification(mbInfoId); } if(!isAlerted(request)) { setAlerted(request, true); } model.addAttribute("cartCnt", cartCnt); model.addAttribute("unreadNotiCnt", unreadNotiCnt); return "nlib/cmm/headerSubPart"; } }