추천이유식, 추천식재료 ajax call 구현

dev_bert
jonghwan76 3 years ago
parent 06b974efac
commit 0b230d267f

@ -6,7 +6,8 @@ import com.renastudio.creative.web.util.DataMap;
public interface A_Bf_recommendBO {
public abstract DataMap select_baby_info(DataMap paramMap) throws Exception;
public abstract DataMap select_baby_smc(DataMap paramMap) throws Exception;
public abstract List<DataMap> select_baby_list(DataMap paramMap) throws Exception;
public abstract int select_baby_list_count(DataMap paramMap) throws Exception;

@ -26,7 +26,20 @@ public class A_Bf_recommendBOImpl extends AbstractBOManager implements A_Bf_rec
return dm;
}
public DataMap select_baby_smc(DataMap paramMap) throws Exception {
DataMap dm = null;
try {
generalDAO.setNamespace(SQLMAP_NAMESPACE);
dm = generalDAO.select_item_to_datamap("select_baby_smc", paramMap);
} catch (SQLException e) {
throw e;
}
return dm;
}
public List<DataMap> select_baby_list(DataMap paramMap) throws Exception{
List<DataMap> lm = null;

@ -731,7 +731,7 @@ public class M_Bf_foodController extends AbstractControllerManager{
DataMap info = recommendBO.select_baby_info(paramMap);
DataMap.putToModel(model, "info", info);
// 영양기록
// 영양기록 - 모유,홈메이드이유식,시판이유식,간식,분유
List<DataMap> lm = scoreBO.select_daily_list(paramMap);
// DataMap.putToModel(model, "lm", lm);
// 영양소 총합
@ -787,7 +787,87 @@ public class M_Bf_foodController extends AbstractControllerManager{
return redirect_url;
}
/**
* Ajax Call () > > - snut97
*/
@RequestMapping(value="list_bf_homemade_recommend_ajax", method=RequestMethod.GET)
@ResponseBody
public DataMap list_bf_homemade_recommend_ajax(HttpServletRequest request) {
DataMap result = new DataMap();
result.put("RESULT", "200");
DataMap paramMap = gmUtil.getDataMapFromRequest(request);
try{
// 아이 SMC정보 조회
DataMap smcInfo = recommendBO.select_baby_smc(paramMap);
//세션에 선택된 아이정보가 있을 경우
if(smcInfo == null) {
result.put("RESULT", "Not found child");
return result;
} else {
paramMap.put("smc_no", smcInfo.get("smc_no"));
}
// 아이 정보
DataMap info = recommendBO.select_baby_info(paramMap);
// 금일 기록별 영양기록 - 모유,홈메이드이유식,시판이유식,간식,분유
List<DataMap> lm = scoreBO.select_daily_list(paramMap);
// 금일 영양소 총합
DataMap tot = scoreBO.select_day_total(paramMap);
// 산술값 순위화
DataMap rank = new DataMap();
// 권장량대비섭취량
DataMap intake = new DataMap();
// 홈메이드,시판 이유식 추천시 필요한 dm
DataMap recommend = new DataMap();
// 금일 섭취 기록 없음
if(lm.isEmpty()) {
NutrientScoreCalculation nut = new NutrientScoreCalculation(info);
recommend.put("for_m", nut.getBabyFoodStage());
rank.putAll(nut.NutrientSortingForNoRecord());
if(nut.getLabel() != -1) rank.put("record", "N");
} else { //섭취기록 있을 경우
NutrientScoreCalculation nut = new NutrientScoreCalculation(tot);
recommend.put("for_m", nut.getBabyFoodStage());
intake = nut.getIntakeComparedToTheRecommendedAmount();
rank.mergeDataMap(nut.NutrientSortingForRecord(intake));
FoodScoreCalculation food = new FoodScoreCalculation(tot);
rank.mergeDataMap(food.Foodsort(food.getScore()));
if(nut.getLabel() != -1) rank.put("record", "Y");
}
//추천 식재료 검색 - 랭크값(영양소별 수치값)에 따라. 금일 섭취기록 없을 경우 추천식재료 영양소 총합이 100이상, 금일 섭취기록 있을 경우 추천식재료 영양소 총합 40이상 상위 3가지 검색
List<DataMap> ingre = recommendBO.select_ingre_recommend_list(rank);
List<String> ingre_name = new ArrayList<String>();
for(DataMap dm:ingre) {
String name = dm.getString("name_real");
ingre_name.add(name);
}
recommend.put("name_real", ingre_name);
//추천 식재료에 따른 홈메이드 이유식 검색
List<DataMap> home = recommendBO.select_home_recommend_list(recommend);
result.put("home", home); //추천 홈메이드 이유식
result.put("ingre", ingre); //추천 식재료
} catch(Exception ex1){
result.put("RESULT", "500");
}
return result;
}
@RequestMapping(value="list_bf_ingredient")
public String list_bf_ingredient(@ModelAttribute("model") ModelMap model, HttpServletRequest request, HttpServletResponse response
, RedirectAttributes ra) {

@ -119,4 +119,14 @@
LIMIT 3
</select>
<select id="select_baby_smc" resultClass="dataMap" parameterClass="dataMap">
SELECT
c.smc_no
FROM tbl_member_confirm a
INNER JOIN tbl_bf_family_match b on a.member_id = b.member_id
INNER JOIN tbl_bf_family_baby c on b.smc_no = c.smc_no
WHERE
a.phone_num = #phone_num#
and c.name = #name#
</select>
</sqlMap>

@ -37,4 +37,7 @@
# 클라우드 디비정보(로컬 개발용)
mysql_url=jdbc:log4jdbc:mysql://115.85.181.214:3306/babyfeed
mysql_username=root
mysql_password=123qwe!@#
mysql_password=123qwe!@#
# 추천이유식, 추천식재료 ajax 연동 API
http://dev.bf.co.kr:8080/bf/m/bf_food/list_bf_homemade_recommend_ajax?phone_num=01080335621&name=김규민
Loading…
Cancel
Save