ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 식단 관리 - 추천 식단
    크루메이트 코드 리뷰!! 2020. 9. 18. 03:22

    식단표 제목 클릭 이벤트

    function recommendDietInfo(e){
    	
    	var dietNo = $(e).find('input').val();
    	
    	$.ajax({
    		url : '${pageContext.request.contextPath}/user/diet/recommendDietInfo',
    		data : {
    			diet_no : dietNo 
    		},
    		success : function(result){
    			$(e).closest('div').next().find('div').empty();
    			var dietInfo ='<div class="callout-block callout-warning">';
    			dietInfo += '<div class="content ml-0">';
    			dietInfo += '<h4 class="callout-title"> 아침</h4>';
    
    			$.each(result.dietInfoList1, function(index, item){
    				dietInfo += '<p class="text-dark mt-3">'+item.menu_name+ ' ('+item.menu_kcal+'kcal)</p>';
    			})
    			dietInfo += '<br><h4 class="callout-title"> 점심</h4>';
    			$.each(result.dietInfoList2, function(index, item){
    				dietInfo += '<p class="text-dark mt-3">'+item.menu_name+ ' ('+item.menu_kcal+'kcal)</p>';
    			})
    			dietInfo += '<br><h4 class="callout-title"> 저녁</h4>';
    			$.each(result.dietInfoList3, function(index, item){
    				dietInfo += '<p class="text-dark mt-3">'+item.menu_name+' ('+ item.menu_kcal+'kcal)</p>';
    			})
    				
    			dietInfo += '</div>';
    			dietInfo += '<div class="flex_justify-end diet_date"><input style="flex-basis: 30px;" type="date" class="form-control"></div>';
    			dietInfo += '<div class="flex_justify-end"><button type="button" onclick="dietInsertToDietDay(this)">내 식단에 추가하기</button></div>'
    				
    			dietInfo += '</div>';
    		
    			$(e).closest('div').next().find('div').append(dietInfo);		
    		},
    		erorr: function(result){
    			alert('상세조회 실패')
    		}
    	})
    	
    }

     

     

    날짜 선택 후 추가하기 버튼 클릭 시 이벤트

    function dietInsertToDietDay(e){
    	var dietNo = $(e).parents('div.accordion-item').find('input').val();
    		
    	var dietDate = $(e).parent().prev().find('input').val();
    
    	$.ajax({
    		url : '${pageContext.request.contextPath}/user/diet/dietInsertToDietDay',
    		data : {
    			diet_no : dietNo,
    			diet_date : dietDate
    		},
    		success : function(result){
    			alert('추가 완료');
    		},
    		error : function(result){
    			alert('추가 실패')
    		}
    	})
    
    	
    }
    @RequestMapping("dietInsertToDietDay")
    	public ModelAndView dietInsertToDietDay(ModelAndView andView,
    											Map<String, String> params,
    											HttpServletRequest request,
    											HttpSession session,
    											@RequestParam(value="diet_no", required = false) String diet_no,
    											@RequestParam(value="diet_date", required = false) String diet_date) throws Exception{
    		session = request.getSession();
    		MemberVO memberInfo = (MemberVO) session.getAttribute("LOGIN_MEMBERINFO");
    		String mem_no = memberInfo.getMem_no();
    		
    		params.put("diet_no", diet_no);
    		params.put("mem_no", mem_no);
    		params.put("dd_date", diet_date);
    		
    		//diet테이블에서 diet_no에 해당하는 값 가져온다.
    		DietVO dietInfo = dietService.selectDietInfo(params);
    		
    		//diet_info 테이블에서 diet_no에 해당 하는 값 가져온다.
    		List<Diet_infoVO> dietInfoList = dietService.recommendDietInfo(params);
    		
    		
    		// diet_day 테이블에 넣을 값 세팅
    		Diet_dayVO dietDayInsert = new Diet_dayVO();
    		dietDayInsert.setDd_kcal(dietInfo.getDiet_kcal());
    		dietDayInsert.setDd_date(diet_date);
    		dietDayInsert.setMem_no(mem_no);
    		
    		// diet_day_info에넣을 값 세팅1
    		List<Diet_day_infoVO> dietDayInfoInsert = new ArrayList<Diet_day_infoVO>();
    		
    		
    		Diet_dayVO dietDayInfo = dietService.selectDietDay(params);
    		
    		if(dietDayInfo == null) {
    			// diet_day 테이블에 diet_date로 검색해서 값이 없으면 그냥 삽입
    			
    			dietService.insertDietDay(dietDayInsert);
    			
    			// 삽입한 dd_no로 diet_day_info 테이블에 삽입 
    			// diet_day_info에넣을 값 세팅2
    			for(Diet_infoVO dietinfor : dietInfoList) {
    				Diet_day_infoVO dietDayInfor = new Diet_day_infoVO();
    				dietDayInfor.setDd_info_division(dietinfor.getDiet_info_division());
    				dietDayInfor.setMenu_no(dietinfor.getMenu_no());
    				dietDayInfor.setDd_no(dietDayInsert.getDd_no());
    				dietDayInfoInsert.add(dietDayInfor);
    			}
    			
    			dietService.InsertDietDayInfoList(dietDayInfoInsert);
    			params.put("dd_no", dietDayInsert.getDd_no());
    			dietService.updateDietDayKcal(params);
    			
    			
    		}else {
    			// diet_day 테이블에 diet_date로 검색해서 값이 있으면 cascade로 삭제하고 삽입
    			
    			dietService.deleteDietDay(params);
    			
    			dietService.insertDietDay(dietDayInsert);
    			
    			for(Diet_infoVO dietinfor : dietInfoList) {
    				Diet_day_infoVO dietDayInfor = new Diet_day_infoVO();
    				dietDayInfor.setDd_info_division(dietinfor.getDiet_info_division());
    				dietDayInfor.setMenu_no(dietinfor.getMenu_no());
    				dietDayInfor.setDd_no(dietDayInsert.getDd_no());
    				dietDayInfoInsert.add(dietDayInfor);
    			}
    			dietService.InsertDietDayInfoList(dietDayInfoInsert);
    			
    			params.put("dd_no", dietDayInsert.getDd_no());
    			dietService.updateDietDayKcal(params);
    		}
    		andView.setViewName("jsonConvertView");
    		return andView;
    	}

     

    댓글

Designed by Tistory.