전후사진 디자인 수정 및 기능 정상화

This commit is contained in:
2026-02-20 16:46:20 +09:00
parent d56e346409
commit 415392d64b
11 changed files with 1617 additions and 1271 deletions

View File

@@ -40,7 +40,8 @@ public class WebPhotoDietController extends ManagerDraftAction {
* @return * @return
*/ */
@RequestMapping(value = "/webphotodiet/selectListWebPhotoDietIntro.do") @RequestMapping(value = "/webphotodiet/selectListWebPhotoDietIntro.do")
public String selectListWebPhotoDietIntro(HttpSession session, HttpServletRequest request, HttpServletResponse response, Model model) { public String selectListWebPhotoDietIntro(HttpSession session, HttpServletRequest request,
HttpServletResponse response, Model model) {
log.debug("WebPhotoDietController selectListWebPhotoDietIntro START"); log.debug("WebPhotoDietController selectListWebPhotoDietIntro START");
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request); HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
@@ -49,8 +50,7 @@ public class WebPhotoDietController extends ManagerDraftAction {
try { try {
if (!webCheckLogin(session)) { if (!webCheckLogin(session)) {
return "/web/login/logout"; return "/web/login/logout";
} } else {
else {
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
map = webPhotoDietService.selectListWebPhotoDietIntro(paramMap); map = webPhotoDietService.selectListWebPhotoDietIntro(paramMap);
@@ -60,8 +60,7 @@ public class WebPhotoDietController extends ManagerDraftAction {
model.addAttribute("deleteUseYn", map.get("deleteUseYn")); model.addAttribute("deleteUseYn", map.get("deleteUseYn"));
model.addAttribute("downloadUseYn", map.get("downloadUseYn")); model.addAttribute("downloadUseYn", map.get("downloadUseYn"));
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return "/web/login/logout"; return "/web/login/logout";
} }
@@ -77,7 +76,8 @@ public class WebPhotoDietController extends ManagerDraftAction {
* @return * @return
*/ */
@RequestMapping(value = "/webphotodiet/selectListWebPhotoDiet.do") @RequestMapping(value = "/webphotodiet/selectListWebPhotoDiet.do")
public ModelAndView selectListWebPhotoDiet(HttpSession session, HttpServletRequest request, HttpServletResponse response) { public ModelAndView selectListWebPhotoDiet(HttpSession session, HttpServletRequest request,
HttpServletResponse response) {
log.debug("WebPhotoDietController selectListWebPhotoDiet START"); log.debug("WebPhotoDietController selectListWebPhotoDiet START");
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request); HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
@@ -86,21 +86,17 @@ public class WebPhotoDietController extends ManagerDraftAction {
try { try {
if (!webCheckLogin(session)) { if (!webCheckLogin(session)) {
return null; return null;
} } else {
else{
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
map = webPhotoDietService.selectListWebPhotoDiet(paramMap); map = webPhotoDietService.selectListWebPhotoDiet(paramMap);
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return null; return null;
} } finally {
finally {
if (Constants.OK == map.get("msgCode")) { if (Constants.OK == map.get("msgCode")) {
} } else {
else{
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("success", false); map.put("success", false);
if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
@@ -120,7 +116,8 @@ public class WebPhotoDietController extends ManagerDraftAction {
* @return * @return
*/ */
@RequestMapping(value = "/webphotodiet/selectWebPhotoDiet.do") @RequestMapping(value = "/webphotodiet/selectWebPhotoDiet.do")
public ModelAndView selectWebPhotoDiet(HttpSession session,HttpServletRequest request, HttpServletResponse response) { public ModelAndView selectWebPhotoDiet(HttpSession session, HttpServletRequest request,
HttpServletResponse response) {
log.debug("WebPhotoDietController selectWebPhotoDiet START"); log.debug("WebPhotoDietController selectWebPhotoDiet START");
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request); HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
@@ -129,21 +126,17 @@ public class WebPhotoDietController extends ManagerDraftAction {
try { try {
if (!webCheckLogin(session)) { if (!webCheckLogin(session)) {
return null; return null;
} } else {
else{
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
map = webPhotoDietService.selectWebPhotoDiet(paramMap); map = webPhotoDietService.selectWebPhotoDiet(paramMap);
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return null; return null;
} } finally {
finally {
if (Constants.OK == map.get("msgCode")) { if (Constants.OK == map.get("msgCode")) {
} } else {
else{
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("success", false); map.put("success", false);
if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
@@ -155,6 +148,44 @@ public class WebPhotoDietController extends ManagerDraftAction {
return HttpUtil.makeHashToJsonModelAndView(map); return HttpUtil.makeHashToJsonModelAndView(map);
} }
/**
* 카테고리 목록 조회
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/webphotodiet/getCategoryList.do")
public ModelAndView getCategoryList(HttpSession session, HttpServletRequest request,
HttpServletResponse response) {
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
HashMap<String, Object> map = new HashMap<String, Object>();
try {
if (!webCheckLogin(session)) {
return null;
} else {
map = webPhotoDietService.getCategoryList(paramMap);
}
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (Constants.OK == map.get("msgCode")) {
} else {
map.put("msgCode", Constants.FAIL);
map.put("success", false);
if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
map.put("msgDesc", "정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다.");
}
}
}
log.debug("WebPhotoDietController getCategoryList END");
return HttpUtil.makeHashToJsonModelAndView(map);
}
/** /**
* 홈페이지 전후사진(다이어트) 상세 이미지 파일 저장 * 홈페이지 전후사진(다이어트) 상세 이미지 파일 저장
* *
@@ -163,7 +194,8 @@ public class WebPhotoDietController extends ManagerDraftAction {
* @return * @return
*/ */
@RequestMapping(value = "/webphotodiet/uploadFile.do") @RequestMapping(value = "/webphotodiet/uploadFile.do")
public ModelAndView uploadFile(HttpSession session,HttpServletRequest request, HttpServletResponse response,@RequestParam(value = "file", required = false) MultipartFile file) { public ModelAndView uploadFile(HttpSession session, HttpServletRequest request, HttpServletResponse response,
@RequestParam(value = "file", required = false) MultipartFile file) {
log.debug("WebPhotoDietController uploadFile START"); log.debug("WebPhotoDietController uploadFile START");
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request); HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
@@ -174,23 +206,19 @@ public class WebPhotoDietController extends ManagerDraftAction {
try { try {
if (!webCheckLogin(session)) { if (!webCheckLogin(session)) {
return null; return null;
} } else {
else{
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId")));
paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId")));
map = webPhotoDietService.uploadFile(paramMap, file); map = webPhotoDietService.uploadFile(paramMap, file);
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
errorMsg.append(e); errorMsg.append(e);
} } finally {
finally {
if (Constants.OK == map.get("msgCode")) { if (Constants.OK == map.get("msgCode")) {
} } else {
else{
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("success", false); map.put("success", false);
if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
@@ -210,18 +238,17 @@ public class WebPhotoDietController extends ManagerDraftAction {
insertMap.put("requestValue", String.valueOf(paramMap)); insertMap.put("requestValue", String.valueOf(paramMap));
insertMap.put("responseValue", String.valueOf(map)); insertMap.put("responseValue", String.valueOf(map));
insertMap.put("tId", map.get("tId")); insertMap.put("tId", map.get("tId"));
if((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) || String.valueOf(errorMsg).length() == 0){ if ((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null)
|| String.valueOf(errorMsg).length() == 0) {
insertMap.put("resultCode", "SUCCESS"); insertMap.put("resultCode", "SUCCESS");
} } else {
else{
insertMap.put("resultCode", "ERROR"); insertMap.put("resultCode", "ERROR");
} }
insertMap.put("resultMsg", String.valueOf(errorMsg)); insertMap.put("resultMsg", String.valueOf(errorMsg));
insertMap.put("muMemberId", paramMap.get("loginMemberId")); insertMap.put("muMemberId", paramMap.get("loginMemberId"));
webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap); webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap);
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -237,7 +264,8 @@ public class WebPhotoDietController extends ManagerDraftAction {
* @return * @return
*/ */
@RequestMapping(value = "/webphotodiet/insertWebPhotoDietIntro.do") @RequestMapping(value = "/webphotodiet/insertWebPhotoDietIntro.do")
public String insertWebPhotoDietIntro(HttpSession session, HttpServletRequest request, HttpServletResponse response, Model model) { public String insertWebPhotoDietIntro(HttpSession session, HttpServletRequest request, HttpServletResponse response,
Model model) {
log.debug("WebPhotoDietController insertWebPhotoDietIntro START"); log.debug("WebPhotoDietController insertWebPhotoDietIntro START");
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request); HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
@@ -246,8 +274,7 @@ public class WebPhotoDietController extends ManagerDraftAction {
try { try {
if (!webCheckLogin(session)) { if (!webCheckLogin(session)) {
return "/web/login/logout"; return "/web/login/logout";
} } else {
else {
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
map = webPhotoDietService.insertWebPhotoDietIntro(paramMap); map = webPhotoDietService.insertWebPhotoDietIntro(paramMap);
@@ -258,8 +285,7 @@ public class WebPhotoDietController extends ManagerDraftAction {
model.addAttribute("downloadUseYn", map.get("downloadUseYn")); model.addAttribute("downloadUseYn", map.get("downloadUseYn"));
model.addAttribute("categorylist", map.get("categorylist")); model.addAttribute("categorylist", map.get("categorylist"));
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return "/web/login/logout"; return "/web/login/logout";
} }
@@ -275,7 +301,8 @@ public class WebPhotoDietController extends ManagerDraftAction {
* @return * @return
*/ */
@RequestMapping(value = "/webphotodiet/insertWebPhotoDiet.do") @RequestMapping(value = "/webphotodiet/insertWebPhotoDiet.do")
public ModelAndView insertWebPhotoDiet(HttpSession session, HttpServletRequest request, HttpServletResponse response, public ModelAndView insertWebPhotoDiet(HttpSession session, HttpServletRequest request,
HttpServletResponse response,
@RequestParam(value = "beforeFile", required = false) MultipartFile beforeFile, @RequestParam(value = "beforeFile", required = false) MultipartFile beforeFile,
@RequestParam(value = "afterFile", required = false) MultipartFile afterFile) { @RequestParam(value = "afterFile", required = false) MultipartFile afterFile) {
log.debug("WebPhotoDietController insertWebPhotoDiet START"); log.debug("WebPhotoDietController insertWebPhotoDiet START");
@@ -288,8 +315,7 @@ public class WebPhotoDietController extends ManagerDraftAction {
try { try {
if (!webCheckLogin(session)) { if (!webCheckLogin(session)) {
return null; return null;
} } else {
else{
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId")));
paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId")));
@@ -298,16 +324,13 @@ public class WebPhotoDietController extends ManagerDraftAction {
files.add(afterFile); files.add(afterFile);
map = ((WebPhotoDietService) webPhotoDietService).insertWebPhotoDiet(paramMap, files); map = ((WebPhotoDietService) webPhotoDietService).insertWebPhotoDiet(paramMap, files);
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
errorMsg.append(e); errorMsg.append(e);
} } finally {
finally {
if (Constants.OK == map.get("msgCode")) { if (Constants.OK == map.get("msgCode")) {
} } else {
else{
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("success", false); map.put("success", false);
if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
@@ -327,18 +350,17 @@ public class WebPhotoDietController extends ManagerDraftAction {
insertMap.put("requestValue", String.valueOf(paramMap)); insertMap.put("requestValue", String.valueOf(paramMap));
insertMap.put("responseValue", String.valueOf(map)); insertMap.put("responseValue", String.valueOf(map));
insertMap.put("tId", map.get("tId")); insertMap.put("tId", map.get("tId"));
if((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) || String.valueOf(errorMsg).length() == 0){ if ((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null)
|| String.valueOf(errorMsg).length() == 0) {
insertMap.put("resultCode", "SUCCESS"); insertMap.put("resultCode", "SUCCESS");
} } else {
else{
insertMap.put("resultCode", "ERROR"); insertMap.put("resultCode", "ERROR");
} }
insertMap.put("resultMsg", String.valueOf(errorMsg)); insertMap.put("resultMsg", String.valueOf(errorMsg));
insertMap.put("muMemberId", paramMap.get("loginMemberId")); insertMap.put("muMemberId", paramMap.get("loginMemberId"));
webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap); webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap);
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -354,7 +376,8 @@ public class WebPhotoDietController extends ManagerDraftAction {
* @return * @return
*/ */
@RequestMapping(value = "/webphotodiet/updateWebPhotoDietIntro.do") @RequestMapping(value = "/webphotodiet/updateWebPhotoDietIntro.do")
public String updateWebPhotoDietIntro(HttpSession session, HttpServletRequest request, HttpServletResponse response, Model model) { public String updateWebPhotoDietIntro(HttpSession session, HttpServletRequest request, HttpServletResponse response,
Model model) {
log.debug("WebPhotoDietController updateWebPhotoDietIntro START"); log.debug("WebPhotoDietController updateWebPhotoDietIntro START");
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request); HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
@@ -363,8 +386,7 @@ public class WebPhotoDietController extends ManagerDraftAction {
try { try {
if (!webCheckLogin(session)) { if (!webCheckLogin(session)) {
return "/web/login/logout"; return "/web/login/logout";
} } else {
else {
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
map = webPhotoDietService.updateWebPhotoDietIntro(paramMap); map = webPhotoDietService.updateWebPhotoDietIntro(paramMap);
@@ -375,8 +397,7 @@ public class WebPhotoDietController extends ManagerDraftAction {
model.addAttribute("downloadUseYn", map.get("downloadUseYn")); model.addAttribute("downloadUseYn", map.get("downloadUseYn"));
model.addAttribute("categorylist", map.get("categorylist")); model.addAttribute("categorylist", map.get("categorylist"));
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return "/web/login/logout"; return "/web/login/logout";
} }
@@ -392,7 +413,8 @@ public class WebPhotoDietController extends ManagerDraftAction {
* @return * @return
*/ */
@RequestMapping(value = "/webphotodiet/updateWebPhotoDiet.do") @RequestMapping(value = "/webphotodiet/updateWebPhotoDiet.do")
public ModelAndView updateWebPhotoDiet(HttpSession session, HttpServletRequest request, HttpServletResponse response, public ModelAndView updateWebPhotoDiet(HttpSession session, HttpServletRequest request,
HttpServletResponse response,
@RequestParam(value = "beforeFile", required = false) MultipartFile beforeFile, @RequestParam(value = "beforeFile", required = false) MultipartFile beforeFile,
@RequestParam(value = "afterFile", required = false) MultipartFile afterFile) { @RequestParam(value = "afterFile", required = false) MultipartFile afterFile) {
log.debug("WebPhotoDietController updateWebPhotoDiet START"); log.debug("WebPhotoDietController updateWebPhotoDiet START");
@@ -405,8 +427,7 @@ public class WebPhotoDietController extends ManagerDraftAction {
try { try {
if (!webCheckLogin(session)) { if (!webCheckLogin(session)) {
return null; return null;
} } else {
else{
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId")));
paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId")));
@@ -415,16 +436,13 @@ public class WebPhotoDietController extends ManagerDraftAction {
files.add(afterFile); files.add(afterFile);
map = webPhotoDietService.updateWebPhotoDiet(paramMap, files); map = webPhotoDietService.updateWebPhotoDiet(paramMap, files);
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
errorMsg.append(e); errorMsg.append(e);
} } finally {
finally {
if (Constants.OK == map.get("msgCode")) { if (Constants.OK == map.get("msgCode")) {
} } else {
else{
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("success", false); map.put("success", false);
if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
@@ -444,18 +462,17 @@ public class WebPhotoDietController extends ManagerDraftAction {
insertMap.put("requestValue", String.valueOf(paramMap)); insertMap.put("requestValue", String.valueOf(paramMap));
insertMap.put("responseValue", String.valueOf(map)); insertMap.put("responseValue", String.valueOf(map));
insertMap.put("tId", map.get("tId")); insertMap.put("tId", map.get("tId"));
if((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) || String.valueOf(errorMsg).length() == 0){ if ((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null)
|| String.valueOf(errorMsg).length() == 0) {
insertMap.put("resultCode", "SUCCESS"); insertMap.put("resultCode", "SUCCESS");
} } else {
else{
insertMap.put("resultCode", "ERROR"); insertMap.put("resultCode", "ERROR");
} }
insertMap.put("resultMsg", String.valueOf(errorMsg)); insertMap.put("resultMsg", String.valueOf(errorMsg));
insertMap.put("muMemberId", paramMap.get("loginMemberId")); insertMap.put("muMemberId", paramMap.get("loginMemberId"));
webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap); webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap);
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -463,7 +480,6 @@ public class WebPhotoDietController extends ManagerDraftAction {
return HttpUtil.makeHashToJsonModelAndView(map); return HttpUtil.makeHashToJsonModelAndView(map);
} }
/** /**
* 홈페이지 전후사진(다이어트) 정보 삭제 * 홈페이지 전후사진(다이어트) 정보 삭제
* *
@@ -472,7 +488,8 @@ public class WebPhotoDietController extends ManagerDraftAction {
* @return * @return
*/ */
@RequestMapping(value = "/webphotodiet/deleteWebPhotoDiet.do") @RequestMapping(value = "/webphotodiet/deleteWebPhotoDiet.do")
public ModelAndView deleteWebPhotoDiet(HttpSession session,HttpServletRequest request, HttpServletResponse response) { public ModelAndView deleteWebPhotoDiet(HttpSession session, HttpServletRequest request,
HttpServletResponse response) {
log.debug("WebPhotoDietController deleteWebPhotoDiet START"); log.debug("WebPhotoDietController deleteWebPhotoDiet START");
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request); HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
@@ -483,23 +500,19 @@ public class WebPhotoDietController extends ManagerDraftAction {
try { try {
if (!webCheckLogin(session)) { if (!webCheckLogin(session)) {
return null; return null;
} } else {
else{
paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId")));
paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId")));
paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId")));
map = webPhotoDietService.deleteWebPhotoDiet(paramMap); map = webPhotoDietService.deleteWebPhotoDiet(paramMap);
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
errorMsg.append(e); errorMsg.append(e);
} } finally {
finally {
if (Constants.OK == map.get("msgCode")) { if (Constants.OK == map.get("msgCode")) {
} } else {
else{
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("success", false); map.put("success", false);
if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
@@ -519,18 +532,17 @@ public class WebPhotoDietController extends ManagerDraftAction {
insertMap.put("requestValue", String.valueOf(paramMap)); insertMap.put("requestValue", String.valueOf(paramMap));
insertMap.put("responseValue", String.valueOf(map)); insertMap.put("responseValue", String.valueOf(map));
insertMap.put("tId", map.get("tId")); insertMap.put("tId", map.get("tId"));
if((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) || String.valueOf(errorMsg).length() == 0){ if ((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null)
|| String.valueOf(errorMsg).length() == 0) {
insertMap.put("resultCode", "SUCCESS"); insertMap.put("resultCode", "SUCCESS");
} } else {
else{
insertMap.put("resultCode", "ERROR"); insertMap.put("resultCode", "ERROR");
} }
insertMap.put("resultMsg", String.valueOf(errorMsg)); insertMap.put("resultMsg", String.valueOf(errorMsg));
insertMap.put("muMemberId", paramMap.get("loginMemberId")); insertMap.put("muMemberId", paramMap.get("loginMemberId"));
webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap); webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap);
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }

View File

@@ -7,12 +7,24 @@ import java.util.List;
public interface WebPhotoDietService { public interface WebPhotoDietService {
public HashMap<String, Object> selectListWebPhotoDietIntro(HashMap<String, Object> paramMap) throws Exception; public HashMap<String, Object> selectListWebPhotoDietIntro(HashMap<String, Object> paramMap) throws Exception;
public HashMap<String, Object> selectListWebPhotoDiet(HashMap<String, Object> paramMap) throws Exception; public HashMap<String, Object> selectListWebPhotoDiet(HashMap<String, Object> paramMap) throws Exception;
public HashMap<String, Object> selectWebPhotoDiet(HashMap<String, Object> paramMap) throws Exception; public HashMap<String, Object> selectWebPhotoDiet(HashMap<String, Object> paramMap) throws Exception;
public HashMap<String, Object> uploadFile(HashMap<String, Object> paramMap, MultipartFile file) throws Exception; public HashMap<String, Object> uploadFile(HashMap<String, Object> paramMap, MultipartFile file) throws Exception;
public HashMap<String, Object> insertWebPhotoDietIntro(HashMap<String, Object> paramMap) throws Exception; public HashMap<String, Object> insertWebPhotoDietIntro(HashMap<String, Object> paramMap) throws Exception;
public HashMap<String, Object> insertWebPhotoDiet(HashMap<String, Object> paramMap, List<MultipartFile> file) throws Exception;
public HashMap<String, Object> insertWebPhotoDiet(HashMap<String, Object> paramMap, List<MultipartFile> file)
throws Exception;
public HashMap<String, Object> updateWebPhotoDietIntro(HashMap<String, Object> paramMap) throws Exception; public HashMap<String, Object> updateWebPhotoDietIntro(HashMap<String, Object> paramMap) throws Exception;
public HashMap<String, Object> updateWebPhotoDiet(HashMap<String, Object> paramMap, List<MultipartFile> file) throws Exception;
public HashMap<String, Object> updateWebPhotoDiet(HashMap<String, Object> paramMap, List<MultipartFile> file)
throws Exception;
public HashMap<String, Object> deleteWebPhotoDiet(HashMap<String, Object> paramMap) throws Exception; public HashMap<String, Object> deleteWebPhotoDiet(HashMap<String, Object> paramMap) throws Exception;
public HashMap<String, Object> getCategoryList(HashMap<String, Object> paramMap) throws Exception;
} }

View File

@@ -75,8 +75,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
if (1 == userListMapSize) { if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -88,7 +87,8 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>(); HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>();
authCheckParamMap.put("menuClass", paramMap.get("menuClass")); authCheckParamMap.put("menuClass", paramMap.get("menuClass"));
authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId"));
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO
.selectAuthMenuRelation(authCheckParamMap);
int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); int authMenuRelationlistMapSize = authMenuRelationlistMap.size();
if (1 == authMenuRelationlistMapSize) { if (1 == authMenuRelationlistMapSize) {
@@ -100,14 +100,12 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
map.put("updateUseYn", authMenuRelationlistMap.get(0).get("updateUseYn")); map.put("updateUseYn", authMenuRelationlistMap.get(0).get("updateUseYn"));
map.put("deleteUseYn", authMenuRelationlistMap.get(0).get("deleteUseYn")); map.put("deleteUseYn", authMenuRelationlistMap.get(0).get("deleteUseYn"));
map.put("downloadUseYn", authMenuRelationlistMap.get(0).get("downloadUseYn")); map.put("downloadUseYn", authMenuRelationlistMap.get(0).get("downloadUseYn"));
} } else {
else {
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "권한 정보가 없습니다."); map.put("msgDesc", "권한 정보가 없습니다.");
} }
} }
} } catch (Exception e) {
catch(Exception e){
e.printStackTrace(); e.printStackTrace();
throw e; throw e;
} }
@@ -157,8 +155,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
if (1 == userListMapSize) { if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -170,20 +167,19 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>(); HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>();
authCheckParamMap.put("menuClass", paramMap.get("menuClass")); authCheckParamMap.put("menuClass", paramMap.get("menuClass"));
authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId"));
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO
.selectAuthMenuRelation(authCheckParamMap);
if (1 == authMenuRelationlistMap.size()) { if (1 == authMenuRelationlistMap.size()) {
if (("Y").equals(authMenuRelationlistMap.get(0).get("selectUseYn"))) { if (("Y").equals(authMenuRelationlistMap.get(0).get("selectUseYn"))) {
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "조회 권한 정보가 없습니다."); map.put("msgDesc", "조회 권한 정보가 없습니다.");
} }
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "권한 정보가 없습니다."); map.put("msgDesc", "권한 정보가 없습니다.");
@@ -194,23 +190,21 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
// 정렬 // 정렬
if (null == paramMap.get("webPhotoDietDir") || ("").equals(paramMap.get("webPhotoDietDir"))) { if (null == paramMap.get("webPhotoDietDir") || ("").equals(paramMap.get("webPhotoDietDir"))) {
} } else {
else{
String dir = String.valueOf(paramMap.get("webPhotoDietDir")); String dir = String.valueOf(paramMap.get("webPhotoDietDir"));
if (("A").equals(dir)) { if (("A").equals(dir)) {
paramMap.put("webPhotoDietDir", "DESC"); paramMap.put("webPhotoDietDir", "DESC");
} } else if (("B").equals(dir)) {
else if(("B").equals(dir)){
paramMap.put("webPhotoDietDir", "ASC"); paramMap.put("webPhotoDietDir", "ASC");
} } else {
else {
paramMap.put("webPhotoDietDir", "DESC"); paramMap.put("webPhotoDietDir", "DESC");
} }
} }
paramMap.put("useYn", "Y"); paramMap.put("useYn", "Y");
List<Map<String, Object>> totalCountListMap = webPhotoDietSqlMapDAO.selectTotalWebPhotoDietCount(paramMap); List<Map<String, Object>> totalCountListMap = webPhotoDietSqlMapDAO
.selectTotalWebPhotoDietCount(paramMap);
int totalCount = Integer.parseInt(String.valueOf(totalCountListMap.get(0).get("totalCount"))); int totalCount = Integer.parseInt(String.valueOf(totalCountListMap.get(0).get("totalCount")));
if (0 < totalCount) { if (0 < totalCount) {
@@ -223,8 +217,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
map.put("totalCount", totalCount); map.put("totalCount", totalCount);
map.put("rows", listMap); map.put("rows", listMap);
} }
} } catch (Exception e) {
catch(Exception e){
e.printStackTrace(); e.printStackTrace();
throw e; throw e;
} }
@@ -271,8 +264,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
if (1 == userListMapSize) { if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -284,20 +276,19 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>(); HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>();
authCheckParamMap.put("menuClass", paramMap.get("menuClass")); authCheckParamMap.put("menuClass", paramMap.get("menuClass"));
authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId"));
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO
.selectAuthMenuRelation(authCheckParamMap);
if (1 == authMenuRelationlistMap.size()) { if (1 == authMenuRelationlistMap.size()) {
if (("Y").equals(authMenuRelationlistMap.get(0).get("selectUseYn"))) { if (("Y").equals(authMenuRelationlistMap.get(0).get("selectUseYn"))) {
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "조회 권한 정보가 없습니다."); map.put("msgDesc", "조회 권한 정보가 없습니다.");
} }
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "권한 정보가 없습니다."); map.put("msgDesc", "권한 정보가 없습니다.");
@@ -311,8 +302,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
map.put("success", "true"); map.put("success", "true");
map.put("rows", listMap); map.put("rows", listMap);
} }
} } catch (Exception e) {
catch(Exception e){
e.printStackTrace(); e.printStackTrace();
throw e; throw e;
} }
@@ -361,8 +351,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
if (1 == userListMapSize) { if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -374,21 +363,20 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>(); HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>();
authCheckParamMap.put("menuClass", paramMap.get("menuClass")); authCheckParamMap.put("menuClass", paramMap.get("menuClass"));
authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId"));
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO
.selectAuthMenuRelation(authCheckParamMap);
int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); int authMenuRelationlistMapSize = authMenuRelationlistMap.size();
if (1 == authMenuRelationlistMapSize) { if (1 == authMenuRelationlistMapSize) {
if (("Y").equals(authMenuRelationlistMap.get(0).get("insertUseYn"))) { if (("Y").equals(authMenuRelationlistMap.get(0).get("insertUseYn"))) {
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "등록 권한 정보가 없습니다."); map.put("msgDesc", "등록 권한 정보가 없습니다.");
} }
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "권한 정보가 없습니다."); map.put("msgDesc", "권한 정보가 없습니다.");
@@ -419,8 +407,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
map.put("msgCode", Constants.OK); map.put("msgCode", Constants.OK);
map.put("msgDesc", "등록되었습니다."); map.put("msgDesc", "등록되었습니다.");
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw e; throw e;
} }
@@ -466,8 +453,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
if (1 == userListMapSize) { if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -479,7 +465,8 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>(); HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>();
authCheckParamMap.put("menuClass", paramMap.get("menuClass")); authCheckParamMap.put("menuClass", paramMap.get("menuClass"));
authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId"));
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO
.selectAuthMenuRelation(authCheckParamMap);
int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); int authMenuRelationlistMapSize = authMenuRelationlistMap.size();
if (1 == authMenuRelationlistMapSize) { if (1 == authMenuRelationlistMapSize) {
@@ -491,16 +478,15 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
map.put("updateUseYn", authMenuRelationlistMap.get(0).get("updateUseYn")); map.put("updateUseYn", authMenuRelationlistMap.get(0).get("updateUseYn"));
map.put("deleteUseYn", authMenuRelationlistMap.get(0).get("deleteUseYn")); map.put("deleteUseYn", authMenuRelationlistMap.get(0).get("deleteUseYn"));
map.put("downloadUseYn", authMenuRelationlistMap.get(0).get("downloadUseYn")); map.put("downloadUseYn", authMenuRelationlistMap.get(0).get("downloadUseYn"));
} } else {
else {
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "권한 정보가 없습니다."); map.put("msgDesc", "권한 정보가 없습니다.");
} }
} }
paramMap.put("categoryDivCd", "05");
List<Map<String, Object>> listMap = webPhotoDietSqlMapDAO.selectListPhotoCategory(paramMap); List<Map<String, Object>> listMap = webPhotoDietSqlMapDAO.selectListPhotoCategory(paramMap);
map.put("categorylist", listMap); map.put("categorylist", listMap);
} } catch (Exception e) {
catch(Exception e){
e.printStackTrace(); e.printStackTrace();
throw e; throw e;
} }
@@ -551,7 +537,8 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
map.put("msgDesc", "전후사진(다이어트) 상세 정보가 없습니다."); map.put("msgDesc", "전후사진(다이어트) 상세 정보가 없습니다.");
} }
if(files == null || files.size() < 2 || files.get(0) == null || files.get(1) == null || files.get(0).isEmpty() || files.get(1).isEmpty()){ if (files == null || files.size() < 2 || files.get(0) == null || files.get(1) == null
|| files.get(0).isEmpty() || files.get(1).isEmpty()) {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "Before/After 이미지 정보가 없습니다."); map.put("msgDesc", "Before/After 이미지 정보가 없습니다.");
@@ -564,8 +551,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
if (1 == userListMapSize) { if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -577,39 +563,42 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>(); HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>();
authCheckParamMap.put("menuClass", paramMap.get("menuClass")); authCheckParamMap.put("menuClass", paramMap.get("menuClass"));
authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId"));
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO
.selectAuthMenuRelation(authCheckParamMap);
int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); int authMenuRelationlistMapSize = authMenuRelationlistMap.size();
if (1 == authMenuRelationlistMapSize) { if (1 == authMenuRelationlistMapSize) {
if (("Y").equals(authMenuRelationlistMap.get(0).get("insertUseYn"))) { if (("Y").equals(authMenuRelationlistMap.get(0).get("insertUseYn"))) {
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "등록 권한 정보가 없습니다."); map.put("msgDesc", "등록 권한 정보가 없습니다.");
} }
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "권한 정보가 없습니다."); map.put("msgDesc", "권한 정보가 없습니다.");
} }
} }
if(true == check){ if (true == check && files != null && files.size() >= 2) {
// Before/After 파일 업로드 // Before/After 파일 업로드
MultipartFile beforeFile = files.get(0); MultipartFile beforeFile = files.get(0);
MultipartFile afterFile = files.get(1); MultipartFile afterFile = files.get(1);
HashMap<String, Object> beforeFileMap = fileService.uploadFile(new HashMap<String, Object>() {{ HashMap<String, Object> beforeFileMap = fileService.uploadFile(new HashMap<String, Object>() {
{
put("type", "WE"); put("type", "WE");
put("fileType", "P"); put("fileType", "P");
put("fileName", beforeFile.getOriginalFilename()); put("fileName", beforeFile.getOriginalFilename());
}}, beforeFile); }
HashMap<String, Object> afterFileMap = fileService.uploadFile(new HashMap<String, Object>() {{ }, beforeFile);
HashMap<String, Object> afterFileMap = fileService.uploadFile(new HashMap<String, Object>() {
{
put("type", "WE"); put("type", "WE");
put("fileType", "P"); put("fileType", "P");
put("fileName", afterFile.getOriginalFilename()); put("fileName", afterFile.getOriginalFilename());
}}, afterFile); }
}, afterFile);
paramMap.put("beforeFilePath", beforeFileMap.get("filePath")); paramMap.put("beforeFilePath", beforeFileMap.get("filePath"));
paramMap.put("beforeFileName", beforeFileMap.get("fileName")); paramMap.put("beforeFileName", beforeFileMap.get("fileName"));
paramMap.put("beforeOriginalFileName", beforeFile.getOriginalFilename()); paramMap.put("beforeOriginalFileName", beforeFile.getOriginalFilename());
@@ -639,8 +628,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
map.put("msgCode", Constants.OK); map.put("msgCode", Constants.OK);
map.put("msgDesc", "등록되었습니다."); map.put("msgDesc", "등록되었습니다.");
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw e; throw e;
} }
@@ -686,8 +674,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
if (1 == userListMapSize) { if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -699,7 +686,8 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>(); HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>();
authCheckParamMap.put("menuClass", paramMap.get("menuClass")); authCheckParamMap.put("menuClass", paramMap.get("menuClass"));
authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId"));
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO
.selectAuthMenuRelation(authCheckParamMap);
int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); int authMenuRelationlistMapSize = authMenuRelationlistMap.size();
if (1 == authMenuRelationlistMapSize) { if (1 == authMenuRelationlistMapSize) {
@@ -711,16 +699,15 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
map.put("updateUseYn", authMenuRelationlistMap.get(0).get("updateUseYn")); map.put("updateUseYn", authMenuRelationlistMap.get(0).get("updateUseYn"));
map.put("deleteUseYn", authMenuRelationlistMap.get(0).get("deleteUseYn")); map.put("deleteUseYn", authMenuRelationlistMap.get(0).get("deleteUseYn"));
map.put("downloadUseYn", authMenuRelationlistMap.get(0).get("downloadUseYn")); map.put("downloadUseYn", authMenuRelationlistMap.get(0).get("downloadUseYn"));
} } else {
else {
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "권한 정보가 없습니다."); map.put("msgDesc", "권한 정보가 없습니다.");
} }
} }
paramMap.put("categoryDivCd", "05");
List<Map<String, Object>> listMap = webPhotoDietSqlMapDAO.selectListPhotoCategory(paramMap); List<Map<String, Object>> listMap = webPhotoDietSqlMapDAO.selectListPhotoCategory(paramMap);
map.put("categorylist", listMap); map.put("categorylist", listMap);
} } catch (Exception e) {
catch(Exception e){
e.printStackTrace(); e.printStackTrace();
throw e; throw e;
} }
@@ -782,8 +769,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
if (1 == userListMapSize) { if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -795,20 +781,19 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>(); HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>();
authCheckParamMap.put("menuClass", paramMap.get("menuClass")); authCheckParamMap.put("menuClass", paramMap.get("menuClass"));
authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId"));
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO
.selectAuthMenuRelation(authCheckParamMap);
int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); int authMenuRelationlistMapSize = authMenuRelationlistMap.size();
if (1 == authMenuRelationlistMapSize) { if (1 == authMenuRelationlistMapSize) {
if (("Y").equals(authMenuRelationlistMap.get(0).get("updateUseYn"))) { if (("Y").equals(authMenuRelationlistMap.get(0).get("updateUseYn"))) {
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "수정 권한 정보가 없습니다."); map.put("msgDesc", "수정 권한 정보가 없습니다.");
} }
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "권한 정보가 없습니다."); map.put("msgDesc", "권한 정보가 없습니다.");
@@ -821,11 +806,13 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
MultipartFile afterFile = files != null && files.size() > 1 ? files.get(1) : null; MultipartFile afterFile = files != null && files.size() > 1 ? files.get(1) : null;
if (beforeFile != null && !beforeFile.isEmpty()) { if (beforeFile != null && !beforeFile.isEmpty()) {
HashMap<String, Object> beforeFileMap = fileService.uploadFile(new HashMap<String, Object>() {{ HashMap<String, Object> beforeFileMap = fileService.uploadFile(new HashMap<String, Object>() {
{
put("type", "WE"); put("type", "WE");
put("fileType", "P"); put("fileType", "P");
put("fileName", beforeFile.getOriginalFilename()); put("fileName", beforeFile.getOriginalFilename());
}}, beforeFile); }
}, beforeFile);
paramMap.put("beforeFilePath", beforeFileMap.get("filePath")); paramMap.put("beforeFilePath", beforeFileMap.get("filePath"));
paramMap.put("beforeFileName", beforeFileMap.get("fileName")); paramMap.put("beforeFileName", beforeFileMap.get("fileName"));
paramMap.put("beforeOriginalFileName", beforeFile.getOriginalFilename()); paramMap.put("beforeOriginalFileName", beforeFile.getOriginalFilename());
@@ -834,11 +821,13 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
paramMap.put("beforeId", paramMap.get("beforeId")); paramMap.put("beforeId", paramMap.get("beforeId"));
} }
if (afterFile != null && !afterFile.isEmpty()) { if (afterFile != null && !afterFile.isEmpty()) {
HashMap<String, Object> afterFileMap = fileService.uploadFile(new HashMap<String, Object>() {{ HashMap<String, Object> afterFileMap = fileService.uploadFile(new HashMap<String, Object>() {
{
put("type", "WE"); put("type", "WE");
put("fileType", "P"); put("fileType", "P");
put("fileName", afterFile.getOriginalFilename()); put("fileName", afterFile.getOriginalFilename());
}}, afterFile); }
}, afterFile);
paramMap.put("afterFilePath", afterFileMap.get("filePath")); paramMap.put("afterFilePath", afterFileMap.get("filePath"));
paramMap.put("afterFileName", afterFileMap.get("fileName")); paramMap.put("afterFileName", afterFileMap.get("fileName"));
paramMap.put("afterOriginalFileName", afterFile.getOriginalFilename()); paramMap.put("afterOriginalFileName", afterFile.getOriginalFilename());
@@ -849,7 +838,9 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
paramMap.put("title", title); paramMap.put("title", title);
paramMap.put("content", content); paramMap.put("content", content);
} }
if(true == check){ if (true == check)
{
paramMap.put("muWebPhotoDietId", muWebPhotoDietId); paramMap.put("muWebPhotoDietId", muWebPhotoDietId);
paramMap.put("muMemberId", paramMap.get("loginMemberId")); paramMap.put("muMemberId", paramMap.get("loginMemberId"));
webPhotoDietSqlMapDAO.updateWebPhotoDiet(paramMap); webPhotoDietSqlMapDAO.updateWebPhotoDiet(paramMap);
@@ -857,8 +848,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
map.put("msgCode", Constants.OK); map.put("msgCode", Constants.OK);
map.put("msgDesc", "수정되었습니다."); map.put("msgDesc", "수정되었습니다.");
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw e; throw e;
} }
@@ -904,8 +894,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
if (1 == userListMapSize) { if (1 == userListMapSize) {
paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId"));
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); map.put("msgDesc", "사용자 정보가 올바르지 않습니다.");
@@ -917,21 +906,20 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>(); HashMap<String, Object> authCheckParamMap = new HashMap<String, Object>();
authCheckParamMap.put("menuClass", paramMap.get("menuClass")); authCheckParamMap.put("menuClass", paramMap.get("menuClass"));
authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId"));
List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); List<Map<String, Object>> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO
.selectAuthMenuRelation(authCheckParamMap);
int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); int authMenuRelationlistMapSize = authMenuRelationlistMap.size();
if (1 == authMenuRelationlistMapSize) { if (1 == authMenuRelationlistMapSize) {
if (("Y").equals(authMenuRelationlistMap.get(0).get("deleteUseYn"))) { if (("Y").equals(authMenuRelationlistMap.get(0).get("deleteUseYn"))) {
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "삭제 권한 정보가 없습니다."); map.put("msgDesc", "삭제 권한 정보가 없습니다.");
} }
} } else {
else {
check = false; check = false;
map.put("msgCode", Constants.FAIL); map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "권한 정보가 없습니다."); map.put("msgDesc", "권한 정보가 없습니다.");
@@ -961,8 +949,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
map.put("msgCode", Constants.OK); map.put("msgCode", Constants.OK);
map.put("msgDesc", "삭제 되었습니다."); map.put("msgDesc", "삭제 되었습니다.");
} }
} } catch (Exception e) {
catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw e; throw e;
} }
@@ -970,4 +957,32 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService {
log.debug("WebPhotoDietServiceImpl deleteWebPhotoDiet END"); log.debug("WebPhotoDietServiceImpl deleteWebPhotoDiet END");
return map; return map;
} }
/**
* 카테고리 목록 조회
*
* @param paramMap
* @return
* @throws Exception
*/
@Override
public HashMap<String, Object> getCategoryList(HashMap<String, Object> paramMap) throws Exception {
log.debug("WebPhotoDietServiceImpl getCategoryList START");
HashMap<String, Object> map = new HashMap<String, Object>();
try {
List<Map<String, Object>> listMap = webPhotoDietSqlMapDAO.selectListPhotoCategory(paramMap);
map.put("msgCode", Constants.OK);
map.put("success", "true");
map.put("rows", listMap);
} catch (Exception e) {
e.printStackTrace();
map.put("msgCode", Constants.FAIL);
map.put("msgDesc", "카테고리 목록 조회 중 오류가 발생하였습니다.");
}
log.debug("WebPhotoDietServiceImpl getCategoryList END");
return map;
}
} }

View File

@@ -245,7 +245,7 @@
,HC.CATEGORY_NM AS "categoryNm" ,HC.CATEGORY_NM AS "categoryNm"
FROM HP_CATEGORY AS HC FROM HP_CATEGORY AS HC
WHERE HC.USE_YN = 'Y' WHERE HC.USE_YN = 'Y'
AND HC.CATEGORY_DIV_CD = '05' AND HC.CATEGORY_DIV_CD = #{categoryDivCd}
ORDER BY HC.CATEGORY_NO ASC ORDER BY HC.CATEGORY_NO ASC
</select> </select>
</mapper> </mapper>

View File

@@ -1,107 +1,584 @@
.project_wrap {width:100%; min-width:1080px; margin:0 auto;} .project_wrap {
width: 100%;
min-width: 1080px;
margin: 0 auto;
}
/*오른쪽영역*/ /*오른쪽영역*/
.project_wrap .content_section {margin-top:50px; width:100%; min-width:1080px; display:table;} .project_wrap .content_section {
.project_wrap .content_section .hospital_wrap {width: calc(100% - 72px); min-width:calc(1080px - 72px); height:calc(100vh - 50px); float:left; position:relative;} margin-top: 50px;
width: 100%;
min-width: 1080px;
display: table;
}
.project_wrap .content_section .hospital_wrap {
width: calc(100% - 72px);
min-width: calc(1080px - 72px);
height: calc(100vh - 50px);
float: left;
position: relative;
}
/* 왼쪽_메뉴 영역 */ /* 왼쪽_메뉴 영역 */
.project_wrap .content_section .hospital_wrap .left_box {position:absolute; width:240px; height:calc(100vh - 50px); overflow:auto; padding:10px 20px;} .project_wrap .content_section .hospital_wrap .left_box {
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list {width:100%;} position: absolute;
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list .title_menu {width:100%; height:auto; margin:20px 0 10px 0; padding:0; font-size:14px; font-weight:700;} width: 240px;
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list .title_menu.first {margin-top:0;} height: calc(100vh - 50px);
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list a {width:100%; height:100%; display:block; margin-bottom:8px; padding:8px; font-size:14px; text-align:left; border-radius:5px;} overflow: auto;
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list a.on {background:#3985EA; border:none;} padding: 10px 20px;
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li {width:100%; height:36px; margin-bottom:8px;} }
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li a.on {color:#fff;}
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list {
width: 100%;
}
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list .title_menu {
width: 100%;
height: auto;
margin: 20px 0 10px 0;
padding: 0;
font-size: 14px;
font-weight: 700;
}
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list .title_menu.first {
margin-top: 0;
}
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list a {
width: 100%;
height: 100%;
display: block;
margin-bottom: 8px;
padding: 8px;
font-size: 14px;
text-align: left;
border-radius: 5px;
}
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list a.on {
background: #3985EA;
border: none;
}
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li {
width: 100%;
height: 36px;
margin-bottom: 8px;
}
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li a.on {
color: #fff;
}
/* 센터쪽 */ /* 센터쪽 */
.project_wrap .content_section .hospital_wrap .center_box {width:calc(100% - 240px); height:calc(100vh - 50px); position:absolute; left:240px; padding:10px 10px 10px 0;} .project_wrap .content_section .hospital_wrap .center_box {
.project_wrap .content_section .hospital_wrap .center_box .page_title {min-width:90px; padding-left:10px; font-size:18px; font-weight:700; line-height:50px; float:left;} width: calc(100% - 240px);
.project_wrap .content_section .hospital_wrap .center_box .filter_box {display:table; width:100%; padding:20px 0;} height: calc(100vh - 50px);
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box {width:140px; height:36px; margin-left:10px; border:1px solid #E9ECF0; border-radius:5px; background:url(/image/web/select_arrow.svg) no-repeat 95% 55%/20px auto #fff;} position: absolute;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box.first { width:100px; margin-left:0; float:left; } left: 240px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .slash {width:6px; font-size:14px; font-weight:400; color:#000; line-height:36px; margin:0 12px; display:block; float:left;} padding: 10px 10px 10px 0;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list_box { margin-left:10px; } }
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box.active {z-index:10;}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .label {width:100%; height:100%; padding:0 10px; outline:none; font-size:14px; font-weight:400; text-align:left; color: #494E53; cursor:pointer; background:none;} .project_wrap .content_section .hospital_wrap .center_box .page_title {
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list {min-width:100%; border-radius:5px; transition:.4s ease-in; border:Solid 1px #E9ECF0; padding:10px; } min-width: 90px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list .option_list_item {width:100%; line-height:30px; transition:.1s; position:relative; display:table; font-size:14px; color:#494E53;} padding-left: 10px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list .option_list_item label {width:100%; line-height:30px; margin-bottom:0px; clear:both; font-weight:400;} font-size: 18px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box {border-radius:8px; float:left; position:relative;} font-weight: 700;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box {position:relative; width:140px; height:36px; float:left; margin-left:10px;} line-height: 50px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box.last {margin-left:0;} float: left;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box img {position:absolute; top:50%; transform:translateY(-50%); left:10px; z-index:1; width:22px;} }
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box .date_picker {line-height:34px; display:block; margin-right:20px; width:100%; font-size:14px; padding:0 12px; padding-left:40px; outline:none; border:1px solid #E9ECF0; border-radius:5px;}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box input[type="date"]::-webkit-calendar-picker-indicator {display:none;} .project_wrap .content_section .hospital_wrap .center_box .filter_box {
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box .date_picker {-webkit-appearance:none; -moz-appearance:none; appearance:none; position:absolute; cursor:pointer;} display: table;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .slash {color:#000; font-size:14px; font-weight:400; line-height:36px; margin:0 5px; width:6px; display:block; float:left;} width: 100%;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list {float:left; position:relative; margin-left:10px;} padding: 20px 0;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box {width:150px; float:left; height:36px; position:relative;} }
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box img {position:absolute; top:50%; transform:translateY(-50%); left:5px; z-index:1;}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box input {width:100%; height:36px; border:1px solid #E9ECF0; border-radius:5px; background:none; position:absolute; left:0; padding:0 10px 0 30px; font-size:14px; background:#fff;} .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box {
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box input::placeholder {color:#B5BDC4;} width: 140px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box .search_list {position:absolute; top:40px; left:0; width:150px; background:#fff; color:#fff; border-radius:5px; transition:.4s ease-in; z-index:1; border:solid 1px #E9ECF0; display:none; margin:0; padding:10px;} height: 36px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_btn {background:#3985EA; border-radius:5px; color:#fff; margin-left:5px;} margin-left: 10px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box {float:right;} border: 1px solid #E9ECF0;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .treatmentdiet_btn {background:#3985EA; color:#fff; border-radius:5px; float:left;} border-radius: 5px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .treatmentdiet_btn img {position:relative; top:-2px; width:20px; margin-right:5px;} background: url(/image/web/select_arrow.svg) no-repeat 95% 55%/20px auto #fff;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .delete_btn {background:#FF2222; color:#fff; border-radius:5px; margin-left:10px;} }
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .delete_btn img {position:relative; top:-2px; width:20px; margin-right:5px;}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box.first {
width: 100px;
margin-left: 0;
float: left;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .slash {
width: 6px;
font-size: 14px;
font-weight: 400;
color: #000;
line-height: 36px;
margin: 0 12px;
display: block;
float: left;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list_box {
margin-left: 10px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box.active {
z-index: 10;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .label {
width: 100%;
height: 100%;
padding: 0 10px;
outline: none;
font-size: 14px;
font-weight: 400;
text-align: left;
color: #494E53;
cursor: pointer;
background: none;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list {
min-width: 100%;
border-radius: 5px;
transition: .4s ease-in;
border: Solid 1px #E9ECF0;
padding: 10px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list .option_list_item {
width: 100%;
line-height: 30px;
transition: .1s;
position: relative;
display: table;
font-size: 14px;
color: #494E53;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list .option_list_item label {
width: 100%;
line-height: 30px;
margin-bottom: 0px;
clear: both;
font-weight: 400;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box {
border-radius: 8px;
float: left;
position: relative;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box {
position: relative;
width: 140px;
height: 36px;
float: left;
margin-left: 10px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box.last {
margin-left: 0;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box img {
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 10px;
z-index: 1;
width: 22px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box .date_picker {
line-height: 34px;
display: block;
margin-right: 20px;
width: 100%;
font-size: 14px;
padding: 0 12px;
padding-left: 40px;
outline: none;
border: 1px solid #E9ECF0;
border-radius: 5px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box input[type="date"]::-webkit-calendar-picker-indicator {
display: none;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box .date_picker {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
position: absolute;
cursor: pointer;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .slash {
color: #000;
font-size: 14px;
font-weight: 400;
line-height: 36px;
margin: 0 5px;
width: 6px;
display: block;
float: left;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list {
float: left;
position: relative;
margin-left: 10px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box {
width: 150px;
float: left;
height: 36px;
position: relative;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box img {
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 5px;
z-index: 1;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box input {
width: 100%;
height: 36px;
border: 1px solid #E9ECF0;
border-radius: 5px;
background: none;
position: absolute;
left: 0;
padding: 0 10px 0 30px;
font-size: 14px;
background: #fff;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box input::placeholder {
color: #B5BDC4;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box .search_list {
position: absolute;
top: 40px;
left: 0;
width: 150px;
background: #fff;
color: #fff;
border-radius: 5px;
transition: .4s ease-in;
z-index: 1;
border: solid 1px #E9ECF0;
display: none;
margin: 0;
padding: 10px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_btn {
background: #3985EA;
border-radius: 5px;
color: #fff;
margin-left: 5px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box {
float: right;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .treatmentdiet_btn {
background: #3985EA;
color: #fff;
border-radius: 5px;
float: left;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .treatmentdiet_btn img {
position: relative;
top: -2px;
width: 20px;
margin-right: 5px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .delete_btn {
background: #FF2222;
color: #fff;
border-radius: 5px;
margin-left: 10px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .delete_btn img {
position: relative;
top: -2px;
width: 20px;
margin-right: 5px;
}
/* table_box */ /* table_box */
.project_wrap .content_section .hospital_wrap .center_box .table_box {width:100%; height:calc(100% - 180px); overflow:auto; background:#fff; border:solid 1px #E9ECF0; border-radius:5px;} .project_wrap .content_section .hospital_wrap .center_box .table_box {
width: 100%;
height: calc(100% - 180px);
overflow: auto;
background: #fff;
border: solid 1px #E9ECF0;
border-radius: 5px;
}
/* 페이지게이션 */ /* 페이지게이션 */
.project_wrap .content_section .hospital_wrap .center_box .page_box {position:absolute; bottom:20px; width:100%; height:24px;} .project_wrap .content_section .hospital_wrap .center_box .page_box {
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation {height:24px;} position: absolute;
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination {margin:0 auto; display:table;} bottom: 20px;
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li {display:inline-block; padding:0} width: 100%;
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a, .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a {position:relative; width:24px; height:24px; background:none;} height: 24px;
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a:hover, .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a:hover {background:none;} }
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a img {position:absolute; top:50%; left:50%; transform:translate3d(-50%, -50%, 0); width:10px;}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a img {position:absolute; top:50%; left:50%; transform:translate3d(-50%, -50%, 0) rotate(180deg); width:10px;} .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation {
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li a {width:24px; height:24px; padding:0; border:none; text-align:center; line-height:22px; font-size:14px; font-weight:500; background:#FFF; font-size:14px;} height: 24px;
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li a:hover, .project_wrap .content_section .hospital_wrap .center_box .right_note .page_box .navigation .pagination li a:focus {background:#3985EA; color:#fff; font-weight:700;} }
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li.active a {background:#3985EA; color:#fff;}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination {
margin: 0 auto;
display: table;
}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li {
display: inline-block;
padding: 0
}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a,
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a {
position: relative;
width: 24px;
height: 24px;
background: none;
}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a:hover,
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a:hover {
background: none;
}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a img {
position: absolute;
top: 50%;
left: 50%;
transform: translate3d(-50%, -50%, 0);
width: 10px;
}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a img {
position: absolute;
top: 50%;
left: 50%;
transform: translate3d(-50%, -50%, 0) rotate(180deg);
width: 10px;
}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li a {
width: 24px;
height: 24px;
padding: 0;
border: none;
text-align: center;
line-height: 22px;
font-size: 14px;
font-weight: 500;
background: #FFF;
font-size: 14px;
}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li a:hover,
.project_wrap .content_section .hospital_wrap .center_box .right_note .page_box .navigation .pagination li a:focus {
background: #3985EA;
color: #fff;
font-weight: 700;
}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li.active a {
background: #3985EA;
color: #fff;
}
/* Style for select boxes in the search area */
.search_box select {
width: 100%;
height: 36px;
padding: 0 10px;
border: 1px solid #E9ECF0;
border-radius: 5px;
background: #fff url('/image/web/select_arrow.svg') no-repeat right 10px center;
background-size: 12px;
/* Adjust as needed */
appearance: none;
font-size: 14px;
color: #333;
transition: border-color 0.2s;
}
.search_box select:focus,
.search_box select:hover {
border-color: #3985EA;
outline: none;
}
/*반응형 View*/ /*반응형 View*/
@media only screen and (max-width:1500px) { @media only screen and (max-width:1500px) {
.project_wrap .content_section .hospital_wrap .left_box { width:160px; padding:10px 15px; } .project_wrap .content_section .hospital_wrap .left_box {
.project_wrap .content_section .hospital_wrap .center_box { width:calc(100% - 160px); left:160px; } width: 160px;
padding: 10px 15px;
}
.project_wrap .content_section .hospital_wrap .center_box {
width: calc(100% - 160px);
left: 160px;
}
} }
@media only screen and (max-width:1280px) { @media only screen and (max-width:1280px) {
.project_wrap .content_section .hospital_wrap { width:calc(100% - 60px); } .project_wrap .content_section .hospital_wrap {
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list .title_menu { font-size:12px; } width: calc(100% - 60px);
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li { height:32px; margin-bottom:5px; } }
.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li a { font-size:12px; }
.project_wrap .content_section .hospital_wrap .center_box .page_title { min-width:80px; height:40px; font-size:16px; line-height:40px; } .project_wrap .content_section .hospital_wrap .left_box .sub_menu_list .title_menu {
.project_wrap .content_section .hospital_wrap .center_box .total { font-size:12px; line-height:40px; } font-size: 12px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box { padding:15px 0; } }
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box { width:120px; height:32px; background-size:18px; }
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .label { padding:0 10px; font-size:12px; } .project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li {
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list .option_list_item { font-size:12px; } height: 32px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box { width:120px; height:32px; } margin-bottom: 5px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box img { width:20px; } }
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box .date_picker { height:32px; padding-left:35px; font-size:12px; line-height:32px; }
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .slash { line-height:32px; } .project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li a {
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box { width:120px; height:32px; } font-size: 12px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box img { width:22px; } }
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box input { height:32px; padding-left:35px; font-size:12px; }
.project_wrap .content_section .hospital_wrap .center_box .filter_box .right_btn_box .download_btn { margin-left:5px; padding-left:10px; } .project_wrap .content_section .hospital_wrap .center_box .page_title {
.project_wrap .content_section .hospital_wrap .center_box .filter_box .right_btn_box .download_btn p { display:none; } min-width: 80px;
.project_wrap .content_section .hospital_wrap .center_box .filter_box .right_btn_box .download_btn img { width:12px; margin-top:-3px; position:static; transform:none; } height: 40px;
.project_wrap .content_section .hospital_wrap .center_box .page_box { height:23px; } font-size: 16px;
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation { height:23px; } line-height: 40px;
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li a { width:23px; height:23px; font-size:12px; } }
.project_wrap .content_section .hospital_wrap .center_box .total {
font-size: 12px;
line-height: 40px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box {
padding: 15px 0;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box {
width: 120px;
height: 32px;
background-size: 18px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .label {
padding: 0 10px;
font-size: 12px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list .option_list_item {
font-size: 12px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box {
width: 120px;
height: 32px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box img {
width: 20px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box .date_picker {
height: 32px;
padding-left: 35px;
font-size: 12px;
line-height: 32px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .slash {
line-height: 32px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box {
width: 120px;
height: 32px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box img {
width: 22px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box input {
height: 32px;
padding-left: 35px;
font-size: 12px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .right_btn_box .download_btn {
margin-left: 5px;
padding-left: 10px;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .right_btn_box .download_btn p {
display: none;
}
.project_wrap .content_section .hospital_wrap .center_box .filter_box .right_btn_box .download_btn img {
width: 12px;
margin-top: -3px;
position: static;
transform: none;
}
.project_wrap .content_section .hospital_wrap .center_box .page_box {
height: 23px;
}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation {
height: 23px;
}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li a {
width: 23px;
height: 23px;
font-size: 12px;
}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a, .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a,
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a { width:23px; height:23px; } .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a {
width: 23px;
height: 23px;
}
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a img, .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a img,
.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a img { width:9px; } .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a img {
.project_wrap .content_section .hospital_wrap .center_box .table_box { height:calc(100% - 155px); } width: 9px;
}
.project_wrap .content_section .hospital_wrap .center_box .table_box {
height: calc(100% - 155px);
}
} }
@media only screen and (max-width:1080px) { @media only screen and (max-width:1080px) {
.project_wrap .content_section .hospital_wrap { width:calc(100% - 50px); } .project_wrap .content_section .hospital_wrap {
width: calc(100% - 50px);
}
} }

View File

@@ -82,72 +82,7 @@ function fn_insertWebPhoto(){
}); });
} }
/****************************************************************************
* html 에디터 이미지 업로드시
****************************************************************************/
function uploadSummernoteImageFileNoticeInsert(files, editor){
Object.values(files).forEach(file => {
let formData = new FormData();
formData.append('menuClass', menuClass);
formData.append('file', file);
$.ajax({
url: encodeURI('/webphotodiet/uploadFile.do'),
data: formData,
dataType: "json",
processData: false,
contentType: false,
type: 'POST',
async: true,
success: function (data) {
if ('0' == data.msgCode) {
$(editor).summernote('insertImage', data.rows.filePath, function ($image) {
});
}
},
error: function (xhr, status, error) {
modalEvent.danger('오류', '이미지 업로드 중 오류가 발생했습니다.');
},
beforeSend: function () {
// 로딩열기
$(".loading-image-layer").show();
},
complete: function () {
// 로딩닫기
$(".loading-image-layer").hide();
}
});
})
}
/****************************************************************************
* 배너 이미지 미리보기
****************************************************************************/
function fn_filePreview(){
const file = $("#file")[0].files[0];
if(file){
$('.img_box').html('');
const reader = new FileReader();
reader.onload = function (e) {
// 이미지 요소를 생성하고 미리보기 추가
const img = document.createElement('img');
img.src = e.target.result;
img.style.width = '600px'; // 원하는 크기로 조정
img.style.height = '350px';
$('.img_box').append(img);
};
// 파일을 읽기 시작
reader.readAsDataURL(file);
}
}
/****************************************************************************
* 배너 이미지 삭제
****************************************************************************/
function fn_removePreview(){
$("#file").val('');
$('.img_box').html('');
}
/**************************************************************************** /****************************************************************************
@@ -163,8 +98,10 @@ function fn_beforeFilePreview(){
// 이미지 요소를 생성하고 미리보기 추가 // 이미지 요소를 생성하고 미리보기 추가
const img = document.createElement('img'); const img = document.createElement('img');
img.src = e.target.result; img.src = e.target.result;
img.style.width = '600px'; // 원하는 크기로 조정 img.style.width = '100%';
img.style.height = '350px'; img.style.height = '100%';
img.style.objectFit = 'cover';
img.style.display = 'block';
$('#before_img_box').append(img); $('#before_img_box').append(img);
}; };
@@ -192,8 +129,10 @@ function fn_afterFilePreview(){
// 이미지 요소를 생성하고 미리보기 추가 // 이미지 요소를 생성하고 미리보기 추가
const img = document.createElement('img'); const img = document.createElement('img');
img.src = e.target.result; img.src = e.target.result;
img.style.width = '600px'; // 원하는 크기로 조정 img.style.width = '100%';
img.style.height = '350px'; img.style.height = '100%';
img.style.objectFit = 'cover';
img.style.display = 'block';
$('#after_img_box').append(img); $('#after_img_box').append(img);
}; };
@@ -228,15 +167,6 @@ function fn_selectListWebPhotoDietIntro(){
function fn_pageInit() { function fn_pageInit() {
// 날짜 datepicker // 날짜 datepicker
fn_searchDatePicker("#eventStartDate", "#eventEndDate"); fn_searchDatePicker("#eventStartDate", "#eventEndDate");
$('#summernote').summernote({
height: 540,
callbacks: { //여기 부분이 이미지를 첨부하는 부분
onImageUpload : function(files) {
uploadSummernoteImageFileNoticeInsert(files, this);
}
},
});
} }
/**************************************************************************** /****************************************************************************
@@ -251,12 +181,6 @@ function fn_pagePhoto(){
$('.btnSave').on("click", function () { $('.btnSave').on("click", function () {
fn_insertWebPhoto(); fn_insertWebPhoto();
}); });
$('#delete_btn').on("click", function(){
fn_removePreview();
});
$('#file').on('change', function(e) {
fn_filePreview();
})
$('#before_delete_btn').on("click", function () { $('#before_delete_btn').on("click", function () {
fn_removeBeforePreview(); fn_removeBeforePreview();
}); });
@@ -292,10 +216,10 @@ function listOpen(){
}, reqParam); }, reqParam);
} }
function fn_removeRow() { function fn_removeRow() {
 $('input:checkbox[name="photo"]').each(function() {      $('input:checkbox[name="photo"]').each(function () {
if (this.checked) {//checked 처리된 항목의 값            if (this.checked) {//checked 처리된 항목의 값           
$(this).parent().remove();    $(this).parent().remove();
}  }
}); });
} }

View File

@@ -8,187 +8,6 @@ let webPhotoDietAgGridData = [];
let webPhotoDietSelectId = ""; let webPhotoDietSelectId = "";
let webPhotoDietSelectCategoryNo = ""; let webPhotoDietSelectCategoryNo = "";
/****************************************************************************
* 검색 날짜 설정
//(A:오늘, B:3일, C:7일, D:최근30일, E:최근90일, F:이번달, G:올해, H:지난주, I:지난달)
****************************************************************************/
function fn_webPhotoDietSetDate(param){
if("A"==param){
// 오늘
let toDate = new Date();
let year = toDate.getFullYear();
let month = toDate.getMonth() + 1;
let day = toDate.getDate();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
webPhotoDietSearchStartDate = year+'-'+month+'-'+day;
webPhotoDietSearchEndDate = year+'-'+month+'-'+day;
}
else if("B"==param){
// 3일
// 검색 종료일자
let toDate = new Date();
let year = toDate.getFullYear();
let month = toDate.getMonth() + 1;
let day = toDate.getDate();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
webPhotoDietSearchEndDate = year+'-'+month+'-'+day;
// 검색 시작일자
toDate.setDate(toDate.getDate() - 3);
year = toDate.getFullYear();
month = toDate.getMonth() + 1;
day = toDate.getDate();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
webPhotoDietSearchStartDate = year+'-'+month+'-'+day;
}
else if("C"==param){
// 이번주
// 검색 종료일자
let toDate = new Date();
let year = toDate.getFullYear();
let month = toDate.getMonth() + 1;
let day = toDate.getDate();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
webPhotoDietSearchEndDate = year+'-'+month+'-'+day;
// 검색 시작일자
toDate.setDate(toDate.getDate() - 7);
year = toDate.getFullYear();
month = toDate.getMonth() + 1;
day = toDate.getDate();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
webPhotoDietSearchStartDate = year+'-'+month+'-'+day;
}
else if("D"==param){
// 최근30일
let toDate = new Date();
let year = toDate.getFullYear();
let month = toDate.getMonth() + 1;
let day = toDate.getDate();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
//최근30일
toDate.setDate(toDate.getDate() - 30);
startYear = toDate.getFullYear();
startMonth = toDate.getMonth() + 1;
startDay = toDate.getDate();
if(startMonth < 10) startMonth = "0" + startMonth;
if(startDay < 10) startDay = "0" + startDay;
webPhotoDietSearchStartDate = startYear+'-'+startMonth+'-'+startDay;
webPhotoDietSearchEndDate = year+'-'+month+'-'+day;
}
else if("E"==param){
// 최근90일
// 검색 종료일자
let toDate = new Date();
let year = toDate.getFullYear();
let month = toDate.getMonth() + 1;
let day = toDate.getDate();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
webPhotoDietSearchEndDate = year+'-'+month+'-'+day;
// 검색 시작일자
toDate.setDate(toDate.getDate() - 90);
year = toDate.getFullYear();
month = toDate.getMonth() + 1;
day = toDate.getDate();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
webPhotoDietSearchStartDate = year+'-'+month+'-'+day;
}
else if("F"==param){
//F:이번달
// 검색 종료일자
let toDate = new Date();
let year = toDate.getFullYear();
let month = toDate.getMonth() + 1;
let day = toDate.getDate();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
webPhotoDietSearchEndDate = year+'-'+month+'-'+day;
// 검색 시작일자
webPhotoDietSearchStartDate = year+'-'+month+'-01';
}
else if("G"==param){
// G:올해
// 검색 종료일자
let toDate = new Date();
let year = toDate.getFullYear();
let month = toDate.getMonth() + 1;
let day = toDate.getDate();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
webPhotoDietSearchEndDate = year+'-'+month+'-'+day;
// 검색 시작일자
webPhotoDietSearchStartDate = year+'-01-01';
}
else if("H"==param){
// H:지난주, I:지난달
// 검색 종료일자
let toDate = new Date();
let year = toDate.getFullYear();
let month = toDate.getMonth() + 1;
let day = toDate.getDate();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
webPhotoDietSearchEndDate = year+'-'+month+'-'+day;
// 검색 시작일자
webPhotoDietSearchStartDate = year+'-01-01';
}
else if("I"==param){
// I:지난달
// 검색 종료일자
let toDate = new Date();
let year = toDate.getFullYear();
let month = toDate.getMonth() + 1;
let day = toDate.getDate();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
webPhotoDietSearchEndDate = year+'-'+month+'-'+day;
// 검색 시작일자
webPhotoDietSearchStartDate = year+'-01-01';
}
$("#webPhotoDietSearchStartDate").val(webPhotoDietSearchStartDate).trigger("change");
$("#webPhotoDietSearchEndDate").val(webPhotoDietSearchEndDate).trigger("change");
}
/**************************************************************************** /****************************************************************************
@@ -281,7 +100,7 @@ function fn_webPhotoDietSearch(param){
webPhotoDietSearchKeywordParam0 = $("#webPhotoDietSearchKeyword0").val(); webPhotoDietSearchKeywordParam0 = $("#webPhotoDietSearchKeyword0").val();
webPhotoDietSearchKeywordParam1 = $("#webPhotoDietSearchKeyword1").val(); webPhotoDietSearchKeywordParam1 = $("#webPhotoDietSearchKeyword1").val();
webPhotoDietSearchKeywordParam2 = $("#webPhotoDietSearchKeyword2").val(); webPhotoDietSearchKeywordParam2 = ""; // 작성자 검색 제거
webPhotoDietSearchKeywordParam3 = $("#webPhotoDietSearchKeywordParam3").val(); webPhotoDietSearchKeywordParam3 = $("#webPhotoDietSearchKeywordParam3").val();
webPhotoDietSearchDateType = $("#webPhotoDietSearchDateType").val(); webPhotoDietSearchDateType = $("#webPhotoDietSearchDateType").val();
@@ -296,9 +115,6 @@ function fn_webPhotoDietSearch(param){
* 초기화하기 * 초기화하기
****************************************************************************/ ****************************************************************************/
function fn_webPhotoDietReset() { function fn_webPhotoDietReset() {
fn_webPhotoDietSetDate('D');
$("#webPhotoDietSearchDateType option:eq(0)").prop("selected", true);
$("#webPhotoDietSearchKeyword0").val(""); $("#webPhotoDietSearchKeyword0").val("");
$("#webPhotoDietSearchKeyword1").val(""); $("#webPhotoDietSearchKeyword1").val("");
$("#webPhotoDietSearchKeyword2").val(""); $("#webPhotoDietSearchKeyword2").val("");
@@ -420,42 +236,33 @@ function fn_alignPhotoDiet(param, param2){
if ("A" == param) { if ("A" == param) {
align = "오늘"; align = "오늘";
fn_webPhotoDietSetDate('A');
} }
else if ("B" == param) { else if ("B" == param) {
align = "최근30일"; align = "최근30일";
fn_webPhotoDietSetDate('D');
} }
else if ("C" == param) { else if ("C" == param) {
align = "최근90일"; align = "최근90일";
fn_webPhotoDietSetDate('E');
} }
else if ("D" == param) { else if ("D" == param) {
align = "이번주"; align = "이번주";
fn_webPhotoDietSetDate('C');
} }
else if ("E" == param) { else if ("E" == param) {
align = "이번달"; align = "이번달";
fn_webPhotoDietSetDate('F');
} }
else if ("F" == param) { else if ("F" == param) {
align = "올해"; align = "올해";
fn_webPhotoDietSetDate('G');
} }
else if ("G" == param) { else if ("G" == param) {
align = "지난주"; align = "지난주";
fn_webPhotoDietSetDate('H');
} }
else if ("H" == param) { else if ("H" == param) {
align = "지난달"; align = "지난달";
fn_webPhotoDietSetDate('I');
} }
else { else {
align = ""; align = "";
@@ -602,12 +409,14 @@ new agGrid.Grid(webPhotoDietGridDiv, webPhotoDietGridOptions);
* 페이지 init * 페이지 init
****************************************************************************/ ****************************************************************************/
function fn_pageInit() { function fn_pageInit() {
// 카테고리 목록 동적 로드
fn_loadCategoryList();
// 날짜 datepicker // 날짜 datepicker
fn_searchDatePicker("#divWebPhotoDietSearchStartDate", "#divWebPhotoDietSearchEndDate"); fn_searchDatePicker("#divWebPhotoDietSearchStartDate", "#divWebPhotoDietSearchEndDate");
if (!webPhotoDietSearchStartDate && !webPhotoDietSearchEndDate) { if (!webPhotoDietSearchStartDate && !webPhotoDietSearchEndDate) {
// 검색 오늘날짜 셋팅 // 검색 오늘날짜 셋팅
fn_webPhotoDietSetDate('D');
} else { } else {
$("#webPhotoDietSearchStartDate").val(webPhotoDietSearchStartDate).trigger("change"); $("#webPhotoDietSearchStartDate").val(webPhotoDietSearchStartDate).trigger("change");
$("#webPhotoDietSearchEndDate").val(webPhotoDietSearchEndDate).trigger("change"); $("#webPhotoDietSearchEndDate").val(webPhotoDietSearchEndDate).trigger("change");
@@ -622,24 +431,49 @@ function fn_pageInit(){
fn_webPhotoDietSearch("A"); fn_webPhotoDietSearch("A");
} }
/****************************************************************************
* 카테고리 목록 동적 로드
****************************************************************************/
function fn_loadCategoryList() {
let formData = new FormData();
formData.append("categoryDivCd", categoryDivCd);
$.ajax({
url: encodeURI('/webphotodiet/getCategoryList.do'),
data: formData,
dataType: "json",
processData: false,
contentType: false,
type: 'POST',
async: false,
success: function (data) {
if ('0' == data.msgCode) {
let optionList = $("#categoryOptionList");
let rows = data.rows;
for (let i = 0; i < rows.length; i++) {
let li = $('<li class="option_list_item" id="li_' + rows[i].categoryNo + '">' + rows[i].categoryNm + '</li>');
optionList.append(li);
}
}
},
error: function (xhr, status, error) {
console.error("카테고리 목록 조회 오류", error);
}
});
}
/**************************************************************************** /****************************************************************************
* 페이지 photodiet * 페이지 photodiet
****************************************************************************/ ****************************************************************************/
function fn_pagePhotoDiet() { function fn_pagePhotoDiet() {
// 검색 input // 검색 input
$(document).on('keypress', '#webPhotoDietSearchKeyword0', function(e) { $(document).on('keypress', '#webPhotoDietSearchKeyword1', function (e) {
fn_webPhotoDietEnter(e); fn_webPhotoDietEnter(e);
}); });
// 검색 input // 검색 input
$(document).on('keypress', '#webPhotoDietSearchKeyword1', function(e) { $(document).on('keypress', '#webPhotoDietSearchKeyword3', function (e) {
fn_webPhotoDietEnter(e);
});
// 검색 input
$(document).on('keypress', '#webPhotoDietSearchKeyword2', function(e) {
fn_webPhotoDietEnter(e);
});
// 검색 input
$(document).on('keypress', '#webPhotoDietSearchKeyword3', function(e) {
fn_webPhotoDietEnter(e); fn_webPhotoDietEnter(e);
}); });
@@ -658,17 +492,14 @@ function fn_pagePhotoDiet(){
fn_deleteWebPhotoDiet(); fn_deleteWebPhotoDiet();
}); });
// 기간 선택 콤보 전후 사진(다이어트) // 카테고리 선택 콤보
const target = $("#webPhotoDietSearchDateType").siblings("ul.select_option_list"); $(document).on("click", "#categoryOptionList .option_list_item", function () {
target.find("li.option_list_item").click(function () {
let selectIdArr = $(this).prop("id").split('_'); let selectIdArr = $(this).prop("id").split('_');
let selectId = selectIdArr[1]; let selectId = selectIdArr[1];
let selectName = $(this).text(); let selectName = $(this).text();
$(this).parent().siblings("button").text(selectName); $(this).parent().siblings("button").text(selectName);
$(this).parent().siblings("input").val(selectId); $("#webPhotoDietSearchKeyword0").val(selectName === "전체" ? "" : selectName);
fn_alignPhotoDiet(selectId);
}); });
} }

View File

@@ -1,6 +1,3 @@
// Before/After 이미지 파일 변경 상태
let isBeforeFileModified = false;
let isAfterFileModified = false;
/**************************************************************************** /****************************************************************************
* 전후사진 상세 조회 * 전후사진 상세 조회
@@ -33,10 +30,10 @@ function fn_selectWebPhotoDiet(){
$("#hashtag").val(photoData.hashtag); $("#hashtag").val(photoData.hashtag);
// Before/After 이미지 미리보기 // Before/After 이미지 미리보기
if (photoData.beforefile) { if (photoData.beforefile) {
$('#before_img_box').html('<img src="'+CDN_URL+photoData.beforefile+'" style="width:600px;height:350px;">'); $('#before_img_box').html('<img src="' + CDN_URL + photoData.beforefile + '" style="width: 100%; height: 100%; object-fit: cover; display: block;">');
} }
if (photoData.afterfile) { if (photoData.afterfile) {
$('#after_img_box').html('<img src="'+CDN_URL+photoData.afterfile+'" style="width:600px;height:350px;">'); $('#after_img_box').html('<img src="' + CDN_URL + photoData.afterfile + '" style="width: 100%; height: 100%; object-fit: cover; display: block;">');
} }
} else { } else {
modalEvent.warning("수정", "조회된 전후사진 데이터가 없습니다."); modalEvent.warning("수정", "조회된 전후사진 데이터가 없습니다.");
@@ -140,8 +137,10 @@ function fn_beforeFilePreview(){
reader.onload = function (e) { reader.onload = function (e) {
const img = document.createElement('img'); const img = document.createElement('img');
img.src = e.target.result; img.src = e.target.result;
img.style.width = '600px'; img.style.width = '100%';
img.style.height = '350px'; img.style.height = '100%';
img.style.objectFit = 'cover';
img.style.display = 'block';
$('#before_img_box').append(img); $('#before_img_box').append(img);
}; };
reader.readAsDataURL(file); reader.readAsDataURL(file);
@@ -159,8 +158,10 @@ function fn_afterFilePreview(){
reader.onload = function (e) { reader.onload = function (e) {
const img = document.createElement('img'); const img = document.createElement('img');
img.src = e.target.result; img.src = e.target.result;
img.style.width = '600px'; img.style.width = '100%';
img.style.height = '350px'; img.style.height = '100%';
img.style.objectFit = 'cover';
img.style.display = 'block';
$('#after_img_box').append(img); $('#after_img_box').append(img);
}; };
reader.readAsDataURL(file); reader.readAsDataURL(file);

View File

@@ -1,90 +1,126 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{/web/layout/homeLayout}">
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{/web/layout/homeLayout}">
<th:block layout:fragment="layout_css"> <th:block layout:fragment="layout_css">
<link href="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.css" rel="stylesheet"> <link rel="stylesheet" href="/css/web/ContentsBbsUpd.css">
<link rel="stylesheet" href="/css/web/webPhotoDietInsert.css">
<link rel="stylesheet" href="/css/web/grid.css?v1.1"> <link rel="stylesheet" href="/css/web/grid.css?v1.1">
</th:block> </th:block>
<th:block layout:fragment="layout_top_script"> <th:block layout:fragment="layout_top_script">
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
<script> <script>
let menuClass = "[[${param.menuClass}]]" == "" ? "" : "[[${param.menuClass}]]"; let menuClass = "[[${param.menuClass}]]" == "" ? "" : "[[${param.menuClass}]]";
let selectUseYn = "[[${selectUseYn}]]" == "" ? "N" : "[[${selectUseYn}]]"; let selectUseYn = "[[${selectUseYn}]]" == "" ? "N" : "[[${selectUseYn}]]";
let insertUseYn = "[[${insertUseYn}]]" == "" ? "N" : "[[${insertUseYn}]]"; let insertUseYn = "[[${insertUseYn}]]" == "" ? "N" : "[[${insertUseYn}]]";
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
</script> </script>
</th:block> </th:block>
<th:block layout:fragment="layout_content"> <th:block layout:fragment="layout_content">
<!-- 센터쪽 -->
<div class="center_box"> <div class="center_box">
<p class="page_title">전후 사진(다이어트)</p> <p class="page_title">전후 사진(다이어트)</p>
<!-- 테이블 -->
<div class="content_box"> <div class="content_box">
<div class="content clear"> <div class="update-container">
<div class="wp60"> <!-- Left Panel: Form Data -->
<div class="top"> <div class="left-panel">
<label>Before 사진 첨부파일</label> <!-- Row 1: Category & Title -->
<label for="before_file" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label> <div class="form-grid-row">
</div> <div class="form-group" style="flex: 0 0 150px;">
<div class="btm"> <label>카테고리</label>
<div class="img_box" id="before_img_box"><!-- Before img 미리보기 --></div>
<input type="file" id="before_file" accept="image/jpeg, image/jpg, image/png" style="display: none;" multiple>
<button id="before_delete_btn">삭제</button>
</div>
<div class="top">
<label>After 사진 첨부파일</label>
<label for="after_file" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label>
</div>
<div class="btm">
<div class="img_box" id="after_img_box"><!-- After img 미리보기 --></div>
<input type="file" id="after_file" accept="image/jpeg, image/jpg, image/png" style="display: none;" multiple>
<button id="after_delete_btn">삭제</button>
</div>
</div>
<div class="wp40">
<div class="consultation-info">
<p id="main_category">
카테고리
</p>
<select th:name="categorylist"> <select th:name="categorylist">
<option value="">선택하세요</option> <option value="">선택하세요</option>
<option th:each="category : ${categorylist}" th:value="${category.categoryNo}" th:text="${category.categoryNm}"></option> <option th:each="category : ${categorylist}" th:value="${category.categoryNo}"
th:text="${category.categoryNm}"></option>
</select> </select>
<p id="main_title"> </div>
제목 <div class="form-group">
</p> <label>제목</label>
<input type="text" id="title" placeholder="제목을 입력해주세요." /> <input type="text" id="title" placeholder="제목을 입력해주세요." />
<p id="main_content"> </div>
내용 </div>
</p>
<textarea id="content" placeholder="내용을 입력해주세요."></textarea> <!-- Row 2: Content (Summernote usually takes full width, so we wrap it here) -->
<p id="main_hashtag"> <div class="form-grid-row" style="display:block;">
해쉬태그 <div class="form-group" style="width: 100%;">
</p> <label style="display:block; margin-bottom:5px;">내용</label>
<input type="text" id="content" placeholder="내용을 입력해주세요." />
</div>
</div>
<!-- Row 3: Hashtag -->
<div class="form-grid-row">
<div class="form-group">
<label>해쉬태그</label>
<input type="text" id="hashtag" placeholder="해쉬태그를 입력해주세요." /> <input type="text" id="hashtag" placeholder="해쉬태그를 입력해주세요." />
</div> </div>
</div> </div>
<div class="button_box" style="display: flex; gap: 16px; justify-content: center; margin-top: 32px;">
<button class="cancel_btn btnCancle">취소</button> <div class="panel-section action-buttons" style="display: flex; gap: 10px; margin-top: 20px;">
<button class="registration_btn btnSave">등록</button> <button class="registration_btn btnSave"
style="width: 80px; height: 36px; border-radius: 4px; display: inline-block;">등록</button>
<button class="cancel_btn btnCancle"
style="width: 80px; height: 36px; border-radius: 4px; display: inline-block; margin-left: 10px;">취소</button>
</div>
</div>
<!-- Right Panel: Images -->
<div class="right-panel" style="display: flex; flex-direction: column;">
<div style="display: flex; gap: 20px;">
<!-- Before Image Section -->
<div class="panel-section">
<div class="top-label">
<span>Before 사진 첨부파일</span>
<div>
<label for="before_file" class="file_btn" style="cursor: pointer;"><img
src="/image/web/add.svg" alt="파일찾기"></label>
<button id="before_delete_btn"
style="border:none; background:none; cursor:pointer; margin-left:5px; font-size:12px; color:#999;">삭제</button>
</div>
</div>
<div class="img-preview-wrapper img_box" id="before_img_box"
style="width: 360px; height: 360px; padding: 0; margin: 0; display: flex; align-items: center; justify-content: center; overflow: hidden;">
<!-- Before img 미리보기 -->
</div>
<input type="file" id="before_file" accept="image/jpeg, image/jpg, image/png"
style="display: none;" multiple>
</div>
<!-- After Image Section -->
<div class="panel-section">
<div class="top-label">
<span>After 사진 첨부파일</span>
<div>
<label for="after_file" class="file_btn" style="cursor: pointer;"><img
src="/image/web/add.svg" alt="파일찾기"></label>
<button id="after_delete_btn"
style="border:none; background:none; cursor:pointer; margin-left:5px; font-size:12px; color:#999;">삭제</button>
</div>
</div>
<div class="img-preview-wrapper img_box" id="after_img_box"
style="width: 360px; height: 360px; padding: 0; margin: 0; display: flex; align-items: center; justify-content: center; overflow: hidden;">
<!-- After img 미리보기 -->
</div>
<input type="file" id="after_file" accept="image/jpeg, image/jpg, image/png"
style="display: none;" multiple>
</div>
</div>
<!-- Guide Section -->
<div class="photo_guide"
style="padding: 15px; margin-top: 20px; background: #f8f9fa; border-radius: 5px; font-size: 13px; color: #555; clear: both;">
<p style="font-weight: bold; margin-bottom: 8px;">※ 사진 첨부 가이드</p>
<ul style="list-style: disc; padding-left: 18px; line-height: 1.6;">
<li>권장 사이즈는 <strong>650 x 650 px</strong> (또는 1:1 비율) 입니다.</li>
<li>상단의 [+] 버튼을 눌러 사진을 첨부해 주세요. 이미지는 영역에 맞춰 빈틈없이 자동으로 예쁘게 채워집니다.</li>
</ul>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<form id="excelForm" method="POST" target="_blank"></form>
</th:block> </th:block>
<th:block layout:fragment="layout_popup"> <th:block layout:fragment="layout_popup">
</th:block> </th:block>
<th:block layout:fragment="layout_script"> <th:block layout:fragment="layout_script">
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
<script src="/js/web/webphotodiet/webPhotoDietInsert.js"></script> <script src="/js/web/webphotodiet/webPhotoDietInsert.js"></script>
<script src="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.js"></script>
</th:block> </th:block>
</html> </html>

View File

@@ -1,8 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{/web/layout/homeLayout}">
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{/web/layout/homeLayout}">
<th:block layout:fragment="layout_css"> <th:block layout:fragment="layout_css">
<link rel="stylesheet" href="/css/web/webPhotoDietSelectList.css"> <link rel="stylesheet" href="/css/web/webPhotoDietSelectList.css">
<link rel="stylesheet" href="/css/web/grid.css?v1.1"> <link rel="stylesheet" href="/css/web/grid.css?v1.1">
@@ -11,6 +9,7 @@
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script> <script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
<script> <script>
let menuClass = "[[${param.menuClass}]]" == "" ? "" : "[[${param.menuClass}]]"; let menuClass = "[[${param.menuClass}]]" == "" ? "" : "[[${param.menuClass}]]";
let categoryDivCd = "05";
let selectUseYn = "[[${selectUseYn}]]" == "" ? "N" : "[[${selectUseYn}]]"; let selectUseYn = "[[${selectUseYn}]]" == "" ? "N" : "[[${selectUseYn}]]";
let insertUseYn = "[[${insertUseYn}]]" == "" ? "N" : "[[${insertUseYn}]]"; let insertUseYn = "[[${insertUseYn}]]" == "" ? "N" : "[[${insertUseYn}]]";
@@ -21,17 +20,17 @@
/* 검색 관련 변수 */ /* 검색 관련 변수 */
let webPhotoDietSearchKeywordParam0 = "[[${param.webPhotoDietSearchKeywordParam0}]]"; let webPhotoDietSearchKeywordParam0 = "[[${param.webPhotoDietSearchKeywordParam0}]]";
let webPhotoDietSearchKeywordParam1 = "[[${param.webPhotoDietSearchKeywordParam1}]]"; let webPhotoDietSearchKeywordParam1 = "[[${param.webPhotoDietSearchKeywordParam1}]]";
let webPhotoDietSearchKeywordParam2 = "[[${param.webPhotoDietSearchKeywordParam2}]]"; let webPhotoDietSearchKeywordParam2 = "";
let webPhotoDietSearchKeywordParam3 = "[[${param.webPhotoDietSearchKeywordParam3}]]"; let webPhotoDietSearchKeywordParam3 = "";
let webPhotoDietSearchDateType = "";
let webPhotoDietSearchStartDate = "";
let webPhotoDietSearchEndDate = "";
let webPhotoDietSort = "[[${param.webPhotoDietSort}]]"; let webPhotoDietSort = "[[${param.webPhotoDietSort}]]";
let webPhotoDietDir = "[[${param.webPhotoDietDir}]]"; let webPhotoDietDir = "[[${param.webPhotoDietDir}]]";
let webPhotoDietStart = "[[${param.webPhotoDietStart}]]" == "" ? 0 : "[[${param.webPhotoDietStart}]]"; let webPhotoDietStart = "[[${param.webPhotoDietStart}]]" == "" ? 0 : "[[${param.webPhotoDietStart}]]";
let webPhotoDietLimit = "[[${param.webPhotoDietLimit}]]" == "" ? 500 : "[[${param.webPhotoDietLimit}]]"; let webPhotoDietLimit = "[[${param.webPhotoDietLimit}]]" == "" ? 500 : "[[${param.webPhotoDietLimit}]]";
let webPhotoDietSearchStartDate = "[[${param.webPhotoDietSearchStartDate}]]";
let webPhotoDietSearchEndDate = "[[${param.webPhotoDietSearchEndDate}]]";
let webPhotoDietSearchDateType = "[[${param.webPhotoDietSearchDateType}]]"==""?"A":"[[${param.webPhotoDietSearchDateType}]]";
</script> </script>
</th:block> </th:block>
<th:block layout:fragment="layout_content"> <th:block layout:fragment="layout_content">
@@ -42,27 +41,26 @@
<div class="filter_box"> <div class="filter_box">
<div class="form_box"> <div class="form_box">
<!-- 이름input --> <!-- 카테고리 셀렉트박스 -->
<div class="search_list"> <div class="select_box first dropdown">
<div class="search_box"> <button class="label" type="button" data-toggle="dropdown" aria-haspopup="true"
<img src="/image/web/search_G.svg" alt="search"/> aria-expanded="false">카테고리</button>
<input type="text" id="webPhotoDietSearchKeyword0" required placeholder="카테고리"> <input type="hidden" id="webPhotoDietSearchKeyword0">
<ul class="select_option_list dropdown-menu" id="categoryOptionList">
<div class="search_list"></div><!-- 검색내역 나오는곳 --> <li class="option_list_item" id="li_">전체</li>
</ul>
</div> </div>
<!-- 제목 검색 input -->
<div class="search_list">
<div class="search_box"> <div class="search_box">
<img src="/image/web/search_G.svg" alt="search" /> <img src="/image/web/search_G.svg" alt="search" />
<input type="text" id="webPhotoDietSearchKeyword1" required placeholder="제목"> <input type="text" id="webPhotoDietSearchKeyword1" required placeholder="제목">
<div class="search_list"></div><!-- 검색내역 나오는곳 --> <div class="search_list"></div><!-- 검색내역 나오는곳 -->
</div> </div>
<div class="search_box"> <button id="btnSearchWebPhotoDiet" class="search_btn" data-toggle="modal"
<img src="/image/web/search_G.svg" alt="search"/> data-target=".work_closed_modal" style="transition: all 0.2s ease-in-out 0s;">조회</button>
<input type="text" id="webPhotoDietSearchKeyword2" required placeholder="작성자">
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
</div>
<button id="btnSearchWebPhotoDiet" class="search_btn" data-toggle="modal" data-target=".work_closed_modal" style="transition: all 0.2s ease-in-out 0s;">조회</button>
</div> </div>
<div class="right_btn_box"> <div class="right_btn_box">
@@ -93,4 +91,5 @@
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script> <script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
<script src="/js/web/webphotodiet/webPhotoDietSelectList.js"></script> <script src="/js/web/webphotodiet/webPhotoDietSelectList.js"></script>
</th:block> </th:block>
</html> </html>

View File

@@ -1,23 +1,16 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{/web/layout/homeLayout}">
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{/web/layout/homeLayout}">
<th:block layout:fragment="layout_css"> <th:block layout:fragment="layout_css">
<link href="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.css" rel="stylesheet"> <link rel="stylesheet" href="/css/web/ContentsBbsUpd.css">
<link rel="stylesheet" href="/css/web/webPhotoDietInsert.css">
<link rel="stylesheet" href="/css/web/grid.css?v1.1"> <link rel="stylesheet" href="/css/web/grid.css?v1.1">
</th:block> </th:block>
<th:block layout:fragment="layout_top_script"> <th:block layout:fragment="layout_top_script">
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
<script> <script>
let menuClass = "[[${param.menuClass}]]" == "" ? "" : "[[${param.menuClass}]]"; let menuClass = "[[${param.menuClass}]]" == "" ? "" : "[[${param.menuClass}]]";
let selectUseYn = "[[${selectUseYn}]]" == "" ? "N" : "[[${selectUseYn}]]"; let selectUseYn = "[[${selectUseYn}]]" == "" ? "N" : "[[${selectUseYn}]]";
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
let updateUseYn = "[[${updateUseYn}]]" == "" ? "N" : "[[${updateUseYn}]]"; let updateUseYn = "[[${updateUseYn}]]" == "" ? "N" : "[[${updateUseYn}]]";
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
let muWebPhotoDietId = "[[${param.muWebPhotoDietId }]]"; let muWebPhotoDietId = "[[${param.muWebPhotoDietId }]]";
let categorylist = "[[${param.categorylist}]]"; let categorylist = "[[${param.categorylist}]]";
@@ -34,65 +27,111 @@
<!-- 테이블 --> <!-- 테이블 -->
<div class="content_box"> <div class="content_box">
<div class="content clear"> <div class="update-container">
<div class="wp60"> <!-- Left Panel: Data Forms -->
<div class="top"> <div class="left-panel">
<label>Before 사진 첨부파일</label> <!-- Row 1: Category & Title -->
<label for="before_file" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label> <div class="form-grid-row">
</div> <div class="form-group" style="flex: 0 0 150px;">
<div class="btm"> <label>카테고리</label>
<div class="img_box" id="before_img_box"><!-- Before img 미리보기 --></div>
<input type="file" id="before_file" accept="image/jpeg, image/jpg, image/png" style="display: none;" multiple>
<button id="before_delete_btn">삭제</button>
</div>
<div class="top">
<label>After 사진 첨부파일</label>
<label for="after_file" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label>
</div>
<div class="btm">
<div class="img_box" id="after_img_box"><!-- After img 미리보기 --></div>
<input type="file" id="after_file" accept="image/jpeg, image/jpg, image/png" style="display: none;" multiple>
<button id="after_delete_btn">삭제</button>
</div>
</div>
<div class="wp40">
<div class="consultation-info">
<p id="main_category">
카테고리
</p>
<select th:name="categorylist"> <select th:name="categorylist">
<option value="">선택하세요</option> <option value="">선택하세요</option>
<option th:each="category : ${categorylist}" th:value="${category.categoryNo}" th:text="${category.categoryNm}" ></option> <option th:each="category : ${categorylist}" th:value="${category.categoryNo}"
th:text="${category.categoryNm}"></option>
</select> </select>
<p id="main_title"> </div>
제목 <div class="form-group">
</p> <label>제목</label>
<input type="text" id="title" placeholder="제목을 입력해주세요." /> <input type="text" id="title" placeholder="제목을 입력해주세요." />
<p id="main_content"> </div>
내용 </div>
</p>
<textarea id="content" placeholder="내용을 입력해주세요."></textarea> <!-- Row 2: Content (Summernote usually takes full width, so we wrap it here) -->
<p id="main_hashtag"> <div class="form-grid-row" style="display:block;">
해쉬태그 <div class="form-group" style="width: 100%;">
</p> <label style="display:block; margin-bottom:5px;">내용</label>
<input type="text" id="content" placeholder="내용을 입력해주세요." />
</div>
</div>
<!-- Row 3: Hashtag -->
<div class="form-grid-row">
<div class="form-group">
<label>해쉬태그</label>
<input type="text" id="hashtag" placeholder="해쉬태그를 입력해주세요." /> <input type="text" id="hashtag" placeholder="해쉬태그를 입력해주세요." />
</div> </div>
</div> </div>
<!-- Bottom Buttons -->
<div class="bottom-actions">
<button class="registration_btn btnSave"
style="width: 80px; height: 36px; border-radius: 4px; background: #3985EA; color: white; display: inline-block;">수정</button>
<button class="cancel_btn btnCancle"
style="width: 80px; height: 36px; border-radius: 4px; display: inline-block; margin-left: 10px;">취소</button>
</div> </div>
<div class="button_box"> </div>
<button class="cancel_btn btnCancle">취소</button>
<button class="registration_btn btnSave">수정</button> <!-- Right Panel: Images -->
<div class="right-panel" style="display: flex; flex-direction: column;">
<div style="display: flex; gap: 20px;">
<!-- Before Image Section -->
<div class="panel-section">
<div class="top-label">
<span>Before 사진 첨부파일</span>
<div>
<label for="before_file" class="file_btn" style="cursor: pointer;"><img
src="/image/web/add.svg" alt="파일찾기"></label>
<button id="before_delete_btn"
style="border:none; background:none; cursor:pointer; margin-left:5px; font-size:12px; color:#999;">삭제</button>
</div>
</div>
<div class="img-preview-wrapper img_box" id="before_img_box"
style="width: 360px; height: 360px; padding: 0; margin: 0; display: flex; align-items: center; justify-content: center; overflow: hidden;">
<!-- Before img 미리보기 -->
</div>
<input type="file" id="before_file" accept="image/jpeg, image/jpg, image/png"
style="display: none;" multiple>
</div>
<!-- After Image Section -->
<div class="panel-section">
<div class="top-label">
<span>After 사진 첨부파일</span>
<div>
<label for="after_file" class="file_btn" style="cursor: pointer;"><img
src="/image/web/add.svg" alt="파일찾기"></label>
<button id="after_delete_btn"
style="border:none; background:none; cursor:pointer; margin-left:5px; font-size:12px; color:#999;">삭제</button>
</div>
</div>
<div class="img-preview-wrapper img_box" id="after_img_box"
style="width: 360px; height: 360px; padding: 0; margin: 0; display: flex; align-items: center; justify-content: center; overflow: hidden;">
<!-- After img 미리보기 -->
</div>
<input type="file" id="after_file" accept="image/jpeg, image/jpg, image/png"
style="display: none;" multiple>
</div>
</div>
<!-- Guide Section (moved outside right-panel to prevent breaking flex wrap) -->
<div class="photo_guide"
style="padding: 15px; margin-top: 20px; background: #f8f9fa; border-radius: 5px; font-size: 13px; color: #555; clear: both;">
<p style="font-weight: bold; margin-bottom: 8px;">※ 사진 첨부 가이드</p>
<ul style="list-style: disc; padding-left: 18px; line-height: 1.6;">
<li>권장 사이즈는 <strong>650 x 650 px</strong> (또는 1:1 비율) 입니다.</li>
<li>상단의 [+] 버튼을 눌러 사진을 첨부해 주세요. 이미지는 영역에 맞춰 빈틈없이 자동으로 예쁘게 채워집니다.</li>
</ul>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
<form id="excelForm" method="POST" target="_blank"></form>
</th:block> </th:block>
<th:block layout:fragment="layout_popup"> <th:block layout:fragment="layout_popup">
</th:block> </th:block>
<th:block layout:fragment="layout_script"> <th:block layout:fragment="layout_script">
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
<script src="/js/web/webphotodiet/webPhotoDietUpdate.js"></script> <script src="/js/web/webphotodiet/webPhotoDietUpdate.js"></script>
<script src="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.js"></script>
</th:block> </th:block>
</html> </html>