모유 / 젖병 분리 처리

dev_bert
kyebyungha 3 years ago
parent 988e1d7bcf
commit 134a2eac1c

@ -1293,7 +1293,7 @@ public class M_Bf_foodController extends AbstractControllerManager{
DataMap.putToModel(model, "rm_child", rm_child);
// 2. 측정 기록 LIST
paramMap.put("table","tbl_bf_breast_feed");
paramMap.put("table","tbl_bf_milk_feed");
int rowMax = bf_foodBO.select_db_lac_milk_list_count(paramMap);
initPage(paramMap, ROW_COUNT, PAGE_COUNT, rowMax); // check page count
@ -1314,6 +1314,59 @@ public class M_Bf_foodController extends AbstractControllerManager{
return redirect_url;
}
/**
* -
* @param model
* @param request
* @param response
* @param redirectAttributes
* @return
*/
@RequestMapping(value="list_bf_breast_milk")
public String list_bf_breast_milk(@ModelAttribute("model") ModelMap model, HttpServletRequest request,
HttpServletResponse response , RedirectAttributes ra ) {
HttpSession session = request.getSession(false);
DataMap paramMap = gmUtil.getDataMapFromRequest(request);
String redirect_url = "m/bf_food/list_bf_breast_milk";
try {
boolean is_login = gmUtil.setSessionForMobileMember(request, paramMap);
if(is_login == false) {
ra.addFlashAttribute("call_native_login", "Y");
redirect_url = "redirect:/m/login/view_login.do";
}else{
// 아이
DataMap rm_child = init_child(model, request, paramMap);
rm_child = bf_family_babyBO.select_bf_family_baby(paramMap);
int m = DateUtil.getDistanceByTwoMonth(RenaStringUtil.getData(rm_child, "birthday"), DateUtil.getDateString(DateUtil.F_YYYYMMDDDash), DateUtil.F_YYYYMMDDDash);
rm_child.put("age_y", (m / 12));
rm_child.put("age_m", (m % 12));
rm_child.put("m", m);
DataMap.putToModel(model, "rm_child", rm_child);
// 2. 측정 기록 LIST
paramMap.put("table","tbl_bf_breast_feed");
int rowMax = bf_foodBO.select_db_lac_milk_list_count(paramMap);
initPage(paramMap, ROW_COUNT, PAGE_COUNT, rowMax); // check page count
List<DataMap> lm_lac_milk = bf_foodBO.select_db_lac_milk_list(paramMap);
DataMap.putToModel(model, "lm_lac_milk", lm_lac_milk);
paramMap.put("memo_fg_cd", "1");
List<DataMap> lm_memo = bf_foodBO.select_memo_list(paramMap);
DataMap.putToModel(model, "lm_memo", lm_memo);
gmUtil.redirectParam(model, paramMap);
}
}catch(Exception ex1){ redirect_url = gmUtil.redirectError(true, ex1, request, paramMap, ra, ""); ex1.printStackTrace();}
gmUtil.redirectParam(model, paramMap);
return redirect_url;
}
/**
* / - snut97
* @param model
@ -1356,6 +1409,60 @@ public class M_Bf_foodController extends AbstractControllerManager{
return result;
}
/**
* -
* @param model
* @param request
* @param response
* @param redirectAttributes
* @return
*/
@RequestMapping(value="list_bf_snak")
public String list_bf_snak(@ModelAttribute("model") ModelMap model, HttpServletRequest request,
HttpServletResponse response , RedirectAttributes ra ) {
HttpSession session = request.getSession(false);
DataMap paramMap = gmUtil.getDataMapFromRequest(request);
String redirect_url = "m/bf_food/list_bf_snak";
try {
boolean is_login = gmUtil.setSessionForMobileMember(request, paramMap);
if(is_login == false) {
ra.addFlashAttribute("call_native_login", "Y");
redirect_url = "redirect:/m/login/view_login.do";
}else{
// 아이
DataMap rm_child = init_child(model, request, paramMap);
rm_child = bf_family_babyBO.select_bf_family_baby(paramMap);
int m = DateUtil.getDistanceByTwoMonth(RenaStringUtil.getData(rm_child, "birthday"), DateUtil.getDateString(DateUtil.F_YYYYMMDDDash), DateUtil.F_YYYYMMDDDash);
rm_child.put("age_y", (m / 12));
rm_child.put("age_m", (m % 12));
rm_child.put("m", m);
DataMap.putToModel(model, "rm_child", rm_child);
// 2. 측정 기록 LIST
paramMap.put("table","tbl_bf_snak_feed");
int rowMax = bf_foodBO.select_db_lac_milk_list_count(paramMap);
initPage(paramMap, ROW_COUNT, PAGE_COUNT, rowMax); // check page count
List<DataMap> lm_lac_milk = bf_foodBO.select_db_lac_milk_list(paramMap);
DataMap.putToModel(model, "lm_lac_milk", lm_lac_milk);
paramMap.put("memo_fg_cd", "1");
List<DataMap> lm_memo = bf_foodBO.select_memo_list(paramMap);
DataMap.putToModel(model, "lm_memo", lm_memo);
gmUtil.redirectParam(model, paramMap);
}
}catch(Exception ex1){ redirect_url = gmUtil.redirectError(true, ex1, request, paramMap, ra, ""); ex1.printStackTrace();}
gmUtil.redirectParam(model, paramMap);
return redirect_url;
}
@RequestMapping(value="ajax_delete_lac_milk", method=RequestMethod.POST)
@ResponseBody
public HashMap<String, Object> ajax_delete_lac_milk(@ModelAttribute("model") ModelMap model, HttpServletRequest request, HttpServletResponse response
@ -1460,60 +1567,6 @@ public class M_Bf_foodController extends AbstractControllerManager{
return result;
}
/**
* -
* @param model
* @param request
* @param response
* @param redirectAttributes
* @return
*/
@RequestMapping(value="list_bf_snak")
public String list_bf_snak(@ModelAttribute("model") ModelMap model, HttpServletRequest request,
HttpServletResponse response , RedirectAttributes ra ) {
HttpSession session = request.getSession(false);
DataMap paramMap = gmUtil.getDataMapFromRequest(request);
String redirect_url = "m/bf_food/list_bf_snak";
try {
boolean is_login = gmUtil.setSessionForMobileMember(request, paramMap);
if(is_login == false) {
ra.addFlashAttribute("call_native_login", "Y");
redirect_url = "redirect:/m/login/view_login.do";
}else{
// 아이
DataMap rm_child = init_child(model, request, paramMap);
rm_child = bf_family_babyBO.select_bf_family_baby(paramMap);
int m = DateUtil.getDistanceByTwoMonth(RenaStringUtil.getData(rm_child, "birthday"), DateUtil.getDateString(DateUtil.F_YYYYMMDDDash), DateUtil.F_YYYYMMDDDash);
rm_child.put("age_y", (m / 12));
rm_child.put("age_m", (m % 12));
rm_child.put("m", m);
DataMap.putToModel(model, "rm_child", rm_child);
// 2. 측정 기록 LIST
paramMap.put("table","tbl_bf_snak_feed");
int rowMax = bf_foodBO.select_db_lac_milk_list_count(paramMap);
initPage(paramMap, ROW_COUNT, PAGE_COUNT, rowMax); // check page count
List<DataMap> lm_lac_milk = bf_foodBO.select_db_lac_milk_list(paramMap);
DataMap.putToModel(model, "lm_lac_milk", lm_lac_milk);
paramMap.put("memo_fg_cd", "1");
List<DataMap> lm_memo = bf_foodBO.select_memo_list(paramMap);
DataMap.putToModel(model, "lm_memo", lm_memo);
gmUtil.redirectParam(model, paramMap);
}
}catch(Exception ex1){ redirect_url = gmUtil.redirectError(true, ex1, request, paramMap, ra, ""); ex1.printStackTrace();}
gmUtil.redirectParam(model, paramMap);
return redirect_url;
}
@RequestMapping(value="view_bf_home_input")
public String view_bf_home_input(@ModelAttribute("model") ModelMap model, HttpServletRequest request, HttpServletResponse response

@ -55,10 +55,15 @@
</a>
</p>
<p>
<a href="list_bf_milk.do?return_url=index">
<a href="list_bf_breast_milk.do?return_url=index">
<span>모유</span>
</a>
</p>
<p>
<a href="list_bf_milk.do?return_url=index">
<span>젖병</span>
</a>
</p>
<p>
<a href="list_bf_snak.do?return_url=index">
<span>간식</span>

@ -0,0 +1,396 @@
<#include "/m/include/index_top.ftl">
<link rel="stylesheet" href="${URL_STATIC_ROOT}/m/css/anypicker-all.css">
<!-- 달력 datepicker -->
<script type="text/javascript" src="${URL_STATIC_ROOT}/m/js/anypicker.min.js"></script>
<link rel="stylesheet" href="${URL_STATIC_ROOT}/m/css/datepicker.css" type="text/css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.8.18/jquery-ui.min.js"></script>
<script src="http://code.jquery.com/jquery-1.7.js" type="text/javascript"></script>
<script type="text/javascript" src="/bf/m/js/jquery.bpopup.min.js"></script>
<style type="text/css">
.Pstyle {
opacity: 0;
display: none;
position: relative;
width: 600px;
border: 5px solid #fff;
padding: 20px;
background-color: #fff;
}
.b-close {
position: absolute;
right: 5px;
top: 5px;
padding: 5px;
display: inline-block;
cursor: pointer;
}
</style>
<#assign thumb_path = (model['rm_child']['append_300_img_file'])!>
<#if thumb_path?has_content>
<#assign thumb_path="/file/get_img.do?mt_file_seq="+thumb_path >
<#if thumb_path?index_of("http") != 0><#assign thumb_path = URL_ROOT + thumb_path></#if>
<#else>
<#if (model['rm_child']['gender'])! == 'F'>
<#assign thumb_path = '/bf/m/img/child/child_pic_04.png' >
<#else>
<#assign thumb_path = '/bf/m/img/child/child_pic_03.png' >
</#if>
</#if>
<script>
function CMD_MEASUREMENT_HEIGHT(smc_no) {
var cmd = 'CMD_MEASUREMENT_HEIGHT';
var args = {
smc_no: smc_no,
};
try{
window.interface.executeInterface(function(r){console.log('sussess:', r);}, function(r){console.log('fail:', r);}, cmd, args);
}catch(e){
alert(e);
}
}
</script>
<body><!--grey_bg / blue_w_bg /blue_g_bg-->
<div class="wrap">
<header class="header_wrapper">
<a href="javascript:back.return_url()" class="side_Lbtn hidden pre_btn">이전으로</a>
<h1 class="header_title">${model['rm_child']['name']} 모유 </h1>
<div class="side_Rbtn">
<a href="#" class="growth_cal">
<input type="text" id="date">
</a>
</div>
</header>
<main class="m_child_direct_input" id="top_move">
<div class="profile_wrap">
<input type="hidden" id="smc_no" class="required" name="smc_no" value="${model['smc_no']}" data-tit="아이 코드"/>
<form class="profile_header" id="frmLacMilk" method="POST">
<div class="p_header_pic">
<div class="pic hidden" style="background: url(${thumb_path})">프로필 사진</div>
<div class="child_tit">
<div class="name"><a href="javascript:CMD_MEASUREMENT_HEIGHT('${model['rm_child']['smc_no']}');">${model['rm_child']['name']}</a></div>
<div class="age">${model['rm_child']['age_y']!}세 ${model['rm_child']['age_m']!}개월</div>
</div>
</div>
<div class="profile_list">
<h2 class="p_title">정보입력</h2>
<div class="p_list_item p_border_box">
<label for="input_date" class="p_label">수유일자</label>
<div class="p_input_box">
<input type="text" id="input_date" name="input_date" class="required" placeholder="수유일자 입력" data-tit="수유일자" readonly>
</div>
</div>
<div class="p_list_item p_border_box">
<label for="child_height" class="p_label">위치 선택</label>
<div class="p_select_box">
<select id="dm_fg_cd" name="dm_fg_cd" value="${model['dm_fg_cd']!}" class="form-control m-r-3" >
<option value="1">좌측</option>
<option value="2">우측</option>
</select>
</div>
</div>
<div class="p_list_item p_border_box">
<label for="child_height" class="p_label">섭취시간</label>
<div class="p_input_box">
<input type="number" id="dm_minute" name="dm_minute" value="${model['dm_minute']!}" class="required" placeholder="섭취시간(분)" data-tit="섭취시간(분)" step="1">
<span class="unit">분</span>
</div>
</div>
<div class="p_list_item p_border_box">
<label for="child_height" class="p_label">섭취시간</label>
<div class="p_input_box">
<input type="number" id="dm_second" name="dm_second" value="${model['dm_second']!}" class="required" placeholder="섭취시간(초)" data-tit="섭취시간(초)" step="1">
<span class="unit">초</span>
</div>
</div>
<div class="p_list_item p_border_box">
<label for="child_height" class="p_label">수유량</label>
<div class="p_input_box">
<input type="number" id="dm_lac" name="dm_lac" value="${model['dm_lac']!}" class="required" placeholder="수유량" data-tit="수유량" step="1">
<span class="unit">ml</span>
</div>
</div>
<div class="p_list_item p_border_box">
<label for="child_height" class="p_label">메모</label>
<div class="p_input_box">
<input type="text" id="memo" name="memo" value="${model['memo']!}" class="required" placeholder="메모" data-tit="메모" step="1">
</div>
<input type="button" value="자주사용하는 메모" onclick="javascript:frmLacMilk.go_popup()">
<input type="button" value="메모 등록" onclick="javascript:frmLacMilk.go_memo()">
</div>
<button type="submit" id="" name="" class="btns">저장</button>
</div>
<p class="p_info">
<span class="blue_tit">※ 입력하신 내용을 저장하시면 아래 목록에 추가됩니다.</span>
<span class="blue_tit">※ 동일한 날짜에 여러번 측정 혹은 입력하였을 시, 해당 날짜의 마지막 측정기록만 저장됩니다.</span>
</p>
</form>
<#if (model['lm_lac_milk'])??>
<div class="direct_input_wrap">
<h2 class="title"><span class="blue_tit">모유 섭취</span> 리스트</h2>
<div class="result_list_box">
<#list model['lm_lac_milk'] as item>
<div class="r_list_item">
<div>
<div class="result_num_box">
<div class="height_result result_num">[${item['dm_fg_nm']}] ${item['dm_minute']?string('0')}<span class="unit">분</span> / ${item['dm_second']?string('0')}<span class="unit">초</span>
${item['dm_lac']?string('0')}<span class="unit">ml</span>
</div>
</div>
<div class="date">
<span><span class="hidden icon">입력일 아이콘</span>입력일</span>${item['reg_dt']?string('yyyy. MM. dd')}
</div>
</div>
<button type="button" id="" name="" class="hidden del_btn" onclick="javascript:frmLacMilk.ajax_delete_lac_milk(${item['dm_no']})" >삭제</button>
</div>
</#list>
</div>
<#--페이지네이션-->
<ul class="pagination">
<@b.Paging url="${URL_PATH}/list_bf_milk.do"
pageCount="${model['page']['pageCount']?c}"
rowCount="${model['page']['rowCount']?c}"
rowMax="${model['page']['rowMax']?c}"
nowPage="${model['page']['nowPage']?c}"
params="smc_no=${model['smc_no']}&is_search=${model['is_search']!}&search_col=${model['search_col']!}&search_text=${model['search_text']!}&search_col_dt=${model['search_col_dt']!}&search_s_dt=${model['search_s_dt']!}&search_e_dt=${model['search_e_dt']!}&return_url=${model['return_url']!}&"
class_page_active=" active"
is_prev_first="N"
is_next_end="N"
/>
</ul>
</div>
</#if>
</div>
</main>
</div>
<div id="favorPopup" class="Pstyle">
<span class="b-close">X</span>
<div class="content">
<div class="nutrition_kinds_basic">
<div class="nutrition_kinds_search">
<#if (model['lm_memo'])??>
<ul id="ul_memo" class="nutrition_commercial_list">
<#list model['lm_memo'] as item>
<li><a href ="#" onclick="javascript:frmLacMilk.appendMemo('${item['memo']}')"> ${item['memo']}</a></li>
</#list>
</ul>
</#if>
</div>
</div>
</div>
</div>
<div id="memoPopup" class="Pstyle">
<span class="b-close">X</span>
<div class="content">
<div class="nutrition_kinds_basic">
<div class="nutrition_kinds_search">
자주쓰는 표현을 등록 해보세요.<br />
최대 50자까지 쓸 수 있습니다.<br />
자주쓰는 표현은 설정에서 수정 및 삭제가 가능합니다.
</div>
<div class="nutrition_kinds_search">
<input type="text" id="memoInput" name="memoInput" class="required" style="width:100%" placeholder="메모" data-tit="메모" step="1">
</div>
<div class="nutrition_kinds_search">
<button type="button" id="" name="" class="" onclick="javascript:$('#memoPopup').bPopup().close();" >취소</button>
<button type="button" id="" name="" class="" onclick="javascript:frmLacMilk.ajax_insert_db_memo();" >확인</button>
</div>
</div>
</div>
</div>
<!-- 하단 네비 iyu_nav -->
<#include "/m/include/index_bottom_menu.ftl">
<!-- //iyu_nav -->
<script type="text/javascript">
var frmLacMilk = {
init: function(){
SNUtil.initInputAction()
$('#frmLacMilk').on('submit',function(e){
if (!SNValidator.validateWithAlert('#frmLacMilk')) {
e.preventDefault()
return;
}
/*
if($('#child_height').val() >= 210 || $('#child_height').val() < 30){
Swal.fire({
text: '신장범위(30~210cm)를 초과했습니다'
}).then((result)=>{ $('#child_height').focus() })
e.preventDefault()
return;
}
if($('#child_weight').val() >= 100 || $('#child_weight').val() < 1){
Swal.fire({
text: '체중범위(1~100Kg)를 초과했습니다'
}).then((result)=>{ $('#child_weight').focus() })
e.preventDefault()
return;
}
*/
this.ajax_insert_lac_milk();
e.preventDefault()
return;
}.bind(this))
},
ajax_insert_lac_milk: function(){
var data = {}
data.smc_no = $('#smc_no').val();
data.base_dt = moment( $('#input_date').val(),'YYYY. MM. DD' ).format('YYYYMMDD');
data.dm_fg_cd = $('#dm_fg_cd').val();
data.dm_minute = $('#dm_minute').val();
data.dm_second = $('#dm_second').val();
data.dm_minute = $('#dm_minute').val();
data.dm_lac = $('#dm_lac').val();
data.memo = $('#memo').val();
data.table = "tbl_bf_breast_feed";
$.ajax({
url:'${URL_ROOT}/m/bf_food/ajax_insert_lac_milk.do?1=1',
type:'post',
data: data,
dataType:'json',
error:function(request,status,error){
Swal.fire({text:"등록되지 않았습니다"})
},
success:function(result){
console.log(result)
var RESULT = result.RESULT
if(RESULT == 0){ //0:RESULT_SUCCESS
Swal.fire({text:"입력되었습니다"}).then((result) => { location.replace('./list_bf_milk.do?smc_no=${(model["smc_no"])!}') })
}else{
Swal.fire({text:"등록되지 않았습니다"})
}
},
})
},
ajax_delete_lac_milk: function(dm_no){
if(!dm_no){return}
var data = {}
data.dm_no = dm_no;
data.table = "tbl_bf_breast_feed";
Swal.fire({
text: "기록을 삭제하시겠습니까?",
showCancelButton: true,
confirmButtonText: '네',
cancelButtonText: '취소'
}).then((result) => {
if(result.value){
$.ajax({
url:'${URL_ROOT}/m/bf_food/ajax_delete_lac_milk.do?1=1',
type:'post',
data: data,
dataType:'json',
error:function(request,status,error){
Swal.fire({text:"삭제되지 않았습니다"})
},
success:function(result){
console.log(result)
var RESULT = result.RESULT
if(RESULT == 0){ //0:RESULT_SUCCESS
location.replace('./list_bf_milk.do?smc_no=${(model["smc_no"])!}')
}else{
Swal.fire({text:"삭제되지 않았습니다"})
}
},
})
}
})
},
ajax_insert_db_memo: function(){
var data = {}
data.base_dt = moment( $('#input_date').val(),'YYYY. MM. DD' ).format('YYYYMMDD')
data.memo = $('#memoInput').val()
$.ajax({
url:'${URL_ROOT}/m/bf_food/ajax_insert_db_memo.do?1=1',
type:'post',
data: data,
dataType:'json',
error:function(request,status,error){
Swal.fire({text:"등록되지 않았습니다"})
},
success:function(result){
console.log(result)
var RESULT = result.RESULT
if(RESULT == 0){ //0:RESULT_SUCCESS
Swal.fire({text:"입력되었습니다"}).then((result) => { location.replace('./list_bf_milk.do?smc_no=${(model["smc_no"])!}') })
}else{
Swal.fire({text:"등록되지 않았습니다"})
}
},
});
$('#memoPopup').bPopup().close();
},
go_popup: function() {
$('#favorPopup').bPopup();
},
go_memo: function() {
$('#memoPopup').bPopup();
},
appendMemo: function(memo) {
var v_memo = ($('#memo').val() == '' ? memo : $('#memo').val() +", " + memo) ;
$('#memo').val(v_memo);
$('#favorPopup').bPopup().close();
}
}
$(function(){
frmLacMilk.init();
var today = moment().format('YYYY.MM.DD');
$("#input_date").val(today)
var input_date = SNUtil.makeAnyPicker('input_date', $("#input_date").val(), -80, '.');
})
</script>
<script type="text/javascript">
// 달력 datepicker
jQuery("#date").datepicker({
showMonthAfterYear: true,
yearSuffix: '년',
showOn: "button",
buttonImage: "${URL_STATIC_ROOT}/m/img/growth/growth_cal_ico.png",
buttonImageOnly: true,
dateFormat: 'yy-mm-dd',
nextText: '다음 달',
prevText: '이전 달',
monthNames: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
monthNamesShort: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
dayNamesMin: ['일', '월', '화', '수', '목', '금', '토'],
dayNamesShort: ['일', '월', '화', '수', '목', '금', '토']
});
</script>
<#include "/m/bf_growth_body/include_return_url.ftl">
</body>
<#include "/m/include/index_bottom.ftl">

@ -60,7 +60,7 @@
<div class="wrap">
<header class="header_wrapper">
<a href="javascript:back.return_url()" class="side_Lbtn hidden pre_btn">이전으로</a>
<h1 class="header_title">${model['rm_child']['name']} 모유 </h1>
<h1 class="header_title">${model['rm_child']['name']} 젖병 </h1>
<div class="side_Rbtn">
<a href="#" class="growth_cal">
<input type="text" id="date">
@ -266,7 +266,7 @@
data.dm_minute = $('#dm_minute').val();
data.dm_lac = $('#dm_lac').val();
data.memo = $('#memo').val();
data.table = "tbl_bf_snak_feed";
data.table = "tbl_bf_milk_feed";
$.ajax({
url:'${URL_ROOT}/m/bf_food/ajax_insert_lac_milk.do?1=1',
type:'post',
@ -292,7 +292,7 @@
var data = {}
data.dm_no = dm_no;
data.table = "tbl_bf_snak_feed";
data.table = "tbl_bf_milk_feed";
Swal.fire({
text: "기록을 삭제하시겠습니까?",
@ -389,7 +389,7 @@
dayNamesShort: ['일', '월', '화', '수', '목', '금', '토']
});
</script>
-->
<#include "/m/bf_growth_body/include_return_url.ftl">
</body>

@ -392,7 +392,7 @@
dayNamesShort: ['일', '월', '화', '수', '목', '금', '토']
});
</script>
-->
<#include "/m/bf_growth_body/include_return_url.ftl">
</body>

@ -1,20 +1,20 @@
<nav class="iyu_nav">
<ul>
<!--
<li class="nav_list01">
<a href="${URL_ROOT}/m/bf_food/index.do?return_url=index">
<div class="icon">영양</div>
<div class="tit">영양</div>
</a>
</li>
-->
<!--
<li class="nav_list02">
<a href="javascript:fncGoRecommend()">
<div class="icon">이유식</div>
<div class="tit">이유식</div>
</a>
</li>
-->
<li class="nav_list02">
<a href="${URL_ROOT}/m/bf_growth/index.do?return_url=index">
<div class="icon">분석(성장기록)</div>

Loading…
Cancel
Save