diff --git a/src/main/java/com/backoffice/m/bf_daily_nutrition/M_Bf_daily_nutritionController.java b/src/main/java/com/backoffice/m/bf_daily_nutrition/M_Bf_daily_nutritionController.java index 9128db5..91e92a5 100644 --- a/src/main/java/com/backoffice/m/bf_daily_nutrition/M_Bf_daily_nutritionController.java +++ b/src/main/java/com/backoffice/m/bf_daily_nutrition/M_Bf_daily_nutritionController.java @@ -1,8 +1,16 @@ package com.backoffice.m.bf_daily_nutrition; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Random; import java.util.Map.Entry; import javax.servlet.http.HttpServletRequest; @@ -18,6 +26,8 @@ import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.backoffice.admin.code_group.code_item.A_Code_itemBO; @@ -30,6 +40,9 @@ import com.backoffice.m.bf_food.M_Bf_foodBO; import com.backoffice.m.bf_growth.M_Bf_growthBO; import com.backoffice.m.member_env.M_Member_envBO; import com.backoffice.m.util.M_Util; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; import com.renastudio.creative.web.util.AbstractControllerManager; import com.renastudio.creative.web.util.DataMap; import com.renastudio.creative.web.util.RenaStringUtil; @@ -37,6 +50,7 @@ import com.renastudio.creative.web.util.date.DateUtil; import com.renastudio.creative.web.util.file.FileAgent; import com.renastudio.creative.web.util.file.FileMeta; import com.renastudio.creative.web.util.model.PageItem; + /** * @author renamaestro @@ -613,14 +627,34 @@ public class M_Bf_daily_nutritionController extends AbstractControllerManager{ @RequestMapping(value="ajax_insert_self", method=RequestMethod.POST) @ResponseBody - public HashMap ajax_insert_self(@ModelAttribute("model") ModelMap model, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) { + public HashMap ajax_insert_self(@ModelAttribute("model") ModelMap model, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes, MultipartHttpServletRequest mRequest ) throws JsonParseException, JsonMappingException, IOException { HttpSession session = request.getSession(false); DataMap rm_mem = (DataMap) session.getAttribute(ConstantSystem.SESSION_RM_MEMBER); - DataMap paramMap = gmUtil.getDataMapFromRequest(request); + + MultipartFile file = mRequest.getFile("attachedImage"); + ObjectMapper mapper = new ObjectMapper(); + Map map = mapper.readValue(mRequest.getParameter("fileData"), Map.class); + paramMap.putAll(map); + + int[] arr_thumbnail_size = new int[]{300}; + boolean[] arr_thumbnail_watermark = new boolean[]{false}; + + HashMap mapFileMeta = fileAgent.uploadImage(paramMap,arr_thumbnail_size, arr_thumbnail_watermark, request, response, ConstantCode.DIR_WATERMARK_IMG, ConstantCode.DIR_WATERMARK_TXT); + if(mapFileMeta != null){ + for(Entry entry : mapFileMeta.entrySet()){ + String key = entry.getKey(); + FileMeta fileMeta = entry.getValue(); + if(fileMeta != null){ + paramMap.put("imgurl1", fileMeta.getMt_file_seq()); + } + } + } + + HashMap result = new HashMap(); result.put("RESULT", ConstantResultCode.RESULT_INIT); - + try { int dbc_no = (int)bf_daily_nutritionBO.insert_bf_self(paramMap); result.put("dbc_no", dbc_no); diff --git a/src/main/resources/sqlmap/m/bf_daily_nutrition/com.backoffice.m.bf_daily_nutrition.xml b/src/main/resources/sqlmap/m/bf_daily_nutrition/com.backoffice.m.bf_daily_nutrition.xml index cd2add0..1bc334d 100644 --- a/src/main/resources/sqlmap/m/bf_daily_nutrition/com.backoffice.m.bf_daily_nutrition.xml +++ b/src/main/resources/sqlmap/m/bf_daily_nutrition/com.backoffice.m.bf_daily_nutrition.xml @@ -1681,6 +1681,8 @@ ,bean ,none ,company + ,imgurl1 + ) VALUES ( NOW() ,#prd_nm# @@ -1720,6 +1722,7 @@ ,#bean# ,#none# ,#company# + ,#imgurl1# ) SELECT LAST_INSERT_ID() @@ -1733,8 +1736,11 @@ x.prd_nm , x.company , x.barcode , - x.imgurl1 + x.imgurl1 , + y.mt_file_local_url FROM tbl_db_sf_commerce x + LEFT JOIN tbl_mt_file Y + ON x.imgurl1 = y.mt_file_seq WHERE 1 = 1 AND prd_nm like N'%$prd_nm$%' diff --git a/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/include_ajax_data.ftl b/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/include_ajax_data.ftl index 5eafc7d..9e5c635 100644 --- a/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/include_ajax_data.ftl +++ b/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/include_ajax_data.ftl @@ -33,7 +33,7 @@ $(document).ready(function(){ }); function ajax_data(keyword){ - + debugger; if(keyword == ''){ Swal.fire({text: '검색어를 입력해주세요'}); }else{ @@ -71,7 +71,7 @@ function ajax_data(keyword){ var dn_no = result.list[i].dn_no; var prd_nm = result.list[i].prd_nm; var company = result.list[i].company; - var barcode = result.list[i].barcode; + var barcode = result.list[i].barcode; var imgurl1 = result.list[i].imgurl1; html +='
  • 섭취량 이미지' + prd_nm + '
  • '; } diff --git a/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/include_bf_nutrition.ftl b/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/include_bf_nutrition.ftl index 9f6e613..6901362 100644 --- a/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/include_bf_nutrition.ftl +++ b/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/include_bf_nutrition.ftl @@ -18,6 +18,15 @@

    --> +
    +
    +
    +

    +
    + +
    +
    +

    칼로리

    @@ -384,7 +393,7 @@ this.ajax_insert_self() }, ajax_insert_self: function(){ - var self = {} + var self = {} self.prd_nm = $('#menu_nm').val() self.company = $('#company').val() self.calorie = $('#calorie').val() @@ -443,11 +452,20 @@ self.none = "Y" } + debugger; + var formData = new FormData(); + // form Data 객체 생성 + formData.append("attachedImage",img.files[0]); + formData.append('fileData',JSON.stringify(self)); + $.ajax({ url:'${URL_ROOT}/m/bf_daily_nutrition/ajax_insert_self.do?1=1', + processData: false, // 데이터 객체를 문자열로 바꿀지에 대한 값이다. true면 일반문자... + contentType: false, // 해당 타입을 true로 하면 일반 text로 구분되어 진다. + data: formData, //위에서 선언한 fromdata type:'post', - data: self, - dataType:'json', + data: formData, + // dataType:'json', error:function(request,status,error){ Swal.fire({text:"등록되지 않았습니다"}) }, @@ -455,7 +473,6 @@ console.log(result) var RESULT = result.RESULT if(RESULT == 0){ //0:RESULT_SUCCESS - debugger; save_set('', result.dbc_no, $("#menu_nm").val(), 'sf') Swal.fire({text:"입력되었습니다"}); }else{ diff --git a/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/include_top.ftl b/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/include_top.ftl index 0d8a3cc..baa04df 100644 --- a/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/include_top.ftl +++ b/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/include_top.ftl @@ -5,7 +5,7 @@ .nutrition_camera { padding-top:35px; background: url(../img/main/main_cont_img_camera_bg01.png)no-repeat top center/18px auto; } .nutrition_camera .nutrition_camera_box { padding-bottom:40px; background: url(../img/main/main_cont_img_camera_bg03.png)no-repeat bottom center/18px auto; } .nutrition_camera input { display:none; } - .nutrition_camera .img_preview { position:relative; overflow:hidden; width:260px; height:250px; margin:0 auto; background:#fff; border:5px solid #fff; border-radius:20px; box-shadow: 0 0 6px rgba(0, 0, 0, 0.2); } + .nutrition_camera .img_preview { position:relative; overflow:hidden; width:150px; height:120px; margin:0 auto; background:#fff; border:5px solid #fff; border-radius:20px; box-shadow: 0 0 6px rgba(0, 0, 0, 0.2); } .nutrition_camera .img_preview label { display:block; width:100%; height:auto; } .nutrition_camera .img_preview img { position: absolute; width:100%; height:100%; top: 50%; left: 50%; transform: translate(-50%, -50%); } @@ -169,12 +169,8 @@ // Upload preview Function displayImage : function(file, classname) { if (typeof FileReader !== "undefined") { - // var container = document.getElementsByClassName(classname), - // img = document.createElement("img"), - // reader; $(this).siblings(classname).find('img').remove(); - var container = $(this).siblings(classname), img = document.createElement("img"), reader; diff --git a/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/view_bf_daily_nutrition_3.ftl b/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/view_bf_daily_nutrition_3.ftl index cd0ae98..c6cee11 100644 --- a/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/view_bf_daily_nutrition_3.ftl +++ b/src/main/webapp/WEB-INF/views/ftl/m/bf_daily_nutrition/view_bf_daily_nutrition_3.ftl @@ -193,7 +193,7 @@ - function list_more2(is_new) { + function list_more2(is_new) { if(is_new == 'Y'){ nowPage = 0; $('#ul_board2').empty(); @@ -243,8 +243,7 @@ var company = result.list[i].company; var barcode = result.list[i].barcode; var imgurl1 = result.list[i].imgurl1; - - html +='
  • ' + prd_nm + '
  • '; + html +='
  • 간식 이미지' + prd_nm + '
  • '; } var ul_board2 = $('#ul_board2');