diff --git a/src/main/java/itn/let/fax/user/web/FaxRestController.java b/src/main/java/itn/let/fax/user/web/FaxRestController.java index dc22c307..16dfbb94 100644 --- a/src/main/java/itn/let/fax/user/web/FaxRestController.java +++ b/src/main/java/itn/let/fax/user/web/FaxRestController.java @@ -198,7 +198,7 @@ public class FaxRestController { } - + } diff --git a/src/main/java/itn/let/mjo/test/service/TestVO.java b/src/main/java/itn/let/mjo/test/service/TestVO.java new file mode 100644 index 00000000..5bfdb92d --- /dev/null +++ b/src/main/java/itn/let/mjo/test/service/TestVO.java @@ -0,0 +1,18 @@ +package itn.let.mjo.test.service; + +public class TestVO { + + private String fileNm; + + public String getFileNm() { + return fileNm; + } + + public void setFileNm(String fileNm) { + this.fileNm = fileNm; + } + + + + +} diff --git a/src/main/java/itn/let/mjo/test/web/TestController.java b/src/main/java/itn/let/mjo/test/web/TestController.java index 245302a2..a17472d4 100644 --- a/src/main/java/itn/let/mjo/test/web/TestController.java +++ b/src/main/java/itn/let/mjo/test/web/TestController.java @@ -1,7 +1,16 @@ package itn.let.mjo.test.web; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.math.RoundingMode; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.ArrayList; @@ -13,25 +22,42 @@ import java.util.List; import java.util.Map; import javax.annotation.Resource; +import javax.imageio.ImageIO; +import javax.mail.internet.ContentDisposition; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.apache.commons.lang.StringUtils; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.rendering.ImageType; +import org.apache.pdfbox.rendering.PDFRenderer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.SystemEnvironmentPropertySource; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.core.io.FileSystemResource; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.client.RestTemplate; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.support.RedirectAttributes; +import org.springframework.web.util.UriUtils; import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; @@ -83,6 +109,7 @@ import itn.let.utl.user.service.CheckFileUtil; import itn.let.utl.user.service.CheckLoginUtil; import itn.let.utl.user.service.CheckNoServiceCommon; + @Controller public class TestController { @@ -1909,6 +1936,8 @@ public class TestController { //일괄변환에 의한 단문, 장문 별개로 전송을 했기 때문에 각각 전송 결과 건수를 합쳐준 후 결과를 modelAndView로 리턴해준다. String returnMessage = ""; String returnStatus = ""; + String msgGroupIdListComma = ""; + String msgTypeListComma = ""; //그림 결과 내용 if(!returnImgMap.isEmpty()) { @@ -1925,6 +1954,7 @@ public class TestController { returnMessage = returnImgMap.get("message"); returnStatus = returnImgMap.get("result"); + msgGroupIdListComma = returnImgMap.get("msgGroupId"); }else { returnMessage = returnImgMap.get("message"); @@ -1955,6 +1985,12 @@ public class TestController { returnMessage = returnLongMap.get("message"); returnStatus = returnLongMap.get("result"); + msgGroupIdListComma = StringUtils.isNotEmpty(msgGroupIdListComma) + ? msgGroupIdListComma+","+returnLongMap.get("msgGroupId") + : returnLongMap.get("msgGroupId"); + msgTypeListComma = StringUtils.isNotEmpty(msgTypeListComma) + ? msgTypeListComma+","+"6" + : "6"; }else { returnMessage = returnLongMap.get("message"); @@ -1985,6 +2021,12 @@ public class TestController { returnMessage = returnShortMap.get("message"); returnStatus = returnShortMap.get("result"); + msgGroupIdListComma = StringUtils.isNotEmpty(msgGroupIdListComma) + ? msgGroupIdListComma+","+returnShortMap.get("msgGroupId") + : returnShortMap.get("msgGroupId"); + msgTypeListComma = StringUtils.isNotEmpty(msgTypeListComma) + ? msgTypeListComma+","+"4" + : "4"; }else { returnMessage = returnShortMap.get("message"); @@ -2000,8 +2042,8 @@ public class TestController { } - modelAndView.addObject("msgType", mjonMsgVO.getMsgType()); - modelAndView.addObject("msgGroupId", mjonMsgVO.getMsgGroupId()); + modelAndView.addObject("msgType", msgTypeListComma); + modelAndView.addObject("msgGroupId", msgGroupIdListComma); modelAndView.addObject("message", returnMessage); modelAndView.addObject("result", returnStatus); modelAndView.addObject("resultSts", resultSts); @@ -2545,7 +2587,7 @@ public class TestController { } System.out.println("========================================================================="); - System.out.println("+++++++++++++++++++++++++++++++++++++++++++ resultSts ::: " + resultSts); + System.out.println(" 25xx +++++++++++++++++++++++++++++++++++++++++++ resultSts ::: " + resultSts); System.out.println("========================================================================="); try { @@ -2645,6 +2687,8 @@ public class TestController { returnMap.put("message", "문자 전송이 완료되었습니다."); returnMap.put("result", "success"); + returnMap.put("msgGroupId", mjonMsgVO.getMsgGroupId()); + returnMap.put("resultSts", Integer.toString(resultSts)); returnMap.put("resultSts", Integer.toString(resultSts)); returnMap.put("resultBlockSts", Integer.toString(resultBlockSts)); return returnMap; @@ -3038,9 +3082,198 @@ public class TestController { + + @RequestMapping(value= {"/web/user/login/fileTest.do"}) + public void downloadAndSaveFile() throws Exception { + + String downloadUrl = "http://192.168.0.11:5000/converHWPtoPDF"; + String filePath = "D:\\Development\\test_dev"; + String fileNm = "저작권분쟁조정규칙(20220516)"; +// String fileNm = "testFileName(20220516)"; + String fileExt = ".pdf"; + String cnvtfileExt = ".jpg"; + + + + byte[] fileData = fileSendAnddownloadFile(downloadUrl, filePath + File.separator + fileNm + ".hwp"); +// byte[] fileData = downloadFile(downloadUrl, fileNm); + this.saveFile(fileData, filePath, fileNm+fileExt); + this.pdfToJpg(filePath, fileNm, fileExt, cnvtfileExt); + } + + /** + * @methodName : fileSendAnddownloadFile + * @author : 이호영 + * @date : 2023.08.04 + * @description : 파일을 보내서 PFD로 변환한 파일을 받는다 + * @param downloadUrl + * @param filePathNm + * @return + * @throws IOException + */ + public byte[] fileSendAnddownloadFile(String downloadUrl, String filePathNm) throws IOException { + RestTemplate restTemplate = new RestTemplate(); + + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.MULTIPART_FORM_DATA); + + // Create a ByteArrayResource to wrap the file content without relying on the file system + FileSystemResource fileResource = new FileSystemResource(filePathNm); + + // To ensure correct encoding for non-ASCII characters + String encodedFilename = UriUtils.encode(fileResource.getFilename(), "UTF-8"); + + // Create a new HttpEntity for file and use encoded filename + MultiValueMap body = new LinkedMultiValueMap<>(); + body.add("file", new ByteArrayResource(Files.readAllBytes(fileResource.getFile().toPath())) { + @Override + public String getFilename() { + return encodedFilename; + } + }); + + + + HttpEntity> entity = new HttpEntity<>(body, headers); + + ResponseEntity responseEntity = restTemplate.exchange(downloadUrl, HttpMethod.POST, entity, byte[].class); + + if (responseEntity.getStatusCodeValue() == 200) { + return responseEntity.getBody(); + } else { + throw new RuntimeException("Failed to download file from " + downloadUrl); + } + } + + /** + * @methodName : downloadFile + * @author : 이호영 + * @date : 2023.08.04 + * @description : 서버에 파일을 요청해서 받는 형식 + * @param downloadUrl + * @param fileNm + * @return + public byte[] downloadFile(String downloadUrl, String fileNm) { + RestTemplate restTemplate = new RestTemplate(); + + + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.MULTIPART_FORM_DATA); + + MultiValueMap body = new LinkedMultiValueMap<>(); + body.add("fileNm", fileNm); + HttpEntity> entity = new HttpEntity<>(body, headers); + + + ResponseEntity responseEntity = restTemplate.exchange(downloadUrl, HttpMethod.POST, entity, byte[].class); + +// System.out.println("responseEntity :: "+ responseEntity); + if (responseEntity.getStatusCodeValue() == 200) { + return responseEntity.getBody(); + } else { + throw new RuntimeException("Failed to download file from " + downloadUrl); + } + } + */ + /** + * @methodName : saveFile + * @author : 이호영 + * @date : 2023.08.04 + * @description : 파일 저장 + * @param fileData + * @param filePath + * @param fileNm + */ + public void saveFile(byte[] fileData, String filePath, String fileNm) { + Path path = Paths.get(filePath, fileNm); + + try { + Files.write(path, fileData); + } catch (IOException e) { + throw new RuntimeException("Failed to save file to " + filePath, e); + } + } + /** + * @methodName : pdfToJpg + * @author : 이호영 + * @date : 2023.08.04 + * @description : 저장한 파일을 불러와서 파일명의 폴더를 생성하여 jpg로 저장 + * @param filePath + * @param fileNm + * @param oriFileExt + * @param cnvtfileExt + * @throws Exception + */ + public void pdfToJpg(String filePath, String fileNm, String oriFileExt, String cnvtfileExt) throws Exception { + + File file = new File(filePath + File.separator + fileNm + oriFileExt); + PDDocument document = PDDocument.load(file); + try { + + int pageCount = document.getNumberOfPages(); + PDFRenderer pdfRenderer = new PDFRenderer(document); + + System.out.println("pageCount : "+ pageCount); + + String saveFilePath = this.filePathChk(filePath + File.separator +fileNm); + + if(StringUtils.isNotEmpty(saveFilePath)) + { + + for (int i = 0; i < pageCount; i++) { + + BufferedImage imageObj = pdfRenderer.renderImageWithDPI(i, 100, ImageType.RGB); + File outputfile = new File(saveFilePath + File.separator + fileNm + i + cnvtfileExt); + ImageIO.write(imageObj, "jpg", outputfile); + } + } + + + } catch (Exception e) { + e.printStackTrace(); + // TODO: handle exception + }finally { + if (document != null) { + document.close(); + } + } + + } + + /** + * @methodName : filePathChk + * @author : 이호영 + * @date : 2023.08.04 + * @description : jpg 파일 저장할 디렉토리 생성 + * @param filePath + * @return + */ + private String filePathChk(String filePath) { + // TODO Auto-generated method stub + String directoryPath = filePath; + + Path path = Paths.get(directoryPath); + + if (!Files.exists(path)) { + try { + + Files.createDirectories(path); + System.out.println("Directory created"); + return directoryPath; + } catch (IOException e) { + throw new RuntimeException("Failed to create directory!", e); + } + } else { + System.out.println("Directory already exists"); + } + + return null; + + } + } diff --git a/src/main/java/itn/let/sym/grd/service/MberGrdService.java b/src/main/java/itn/let/sym/grd/service/MberGrdService.java index e2ec9adc..61134219 100644 --- a/src/main/java/itn/let/sym/grd/service/MberGrdService.java +++ b/src/main/java/itn/let/sym/grd/service/MberGrdService.java @@ -34,6 +34,9 @@ public interface MberGrdService { // 회원 등급제 대상여부 정보(사용자화면용) public MberGrdVO selectMberGrdInfo(String mberId) throws Exception; + // 회원 등급 예외 정보 + public MberGrdVO selectMberEtcInfo(String mberId) throws Exception; + // 회원별 등급 누적결제액 상세 public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception; diff --git a/src/main/java/itn/let/sym/grd/service/MberGrdVO.java b/src/main/java/itn/let/sym/grd/service/MberGrdVO.java index afb0d9fe..85f70561 100644 --- a/src/main/java/itn/let/sym/grd/service/MberGrdVO.java +++ b/src/main/java/itn/let/sym/grd/service/MberGrdVO.java @@ -48,6 +48,9 @@ public class MberGrdVO extends UserDefaultVO { private String grdPeriod; // 회원등급제 누적결제 계산기간 private String tempYn; private String moid; // 결제번호 + private String isSalePrice; // 협의회원 + private String blineCode; // B선회원 + private String spamYn; // 스팸회원 // 검색필터 private String searchGrdStatus; @@ -287,5 +290,23 @@ public class MberGrdVO extends UserDefaultVO { } public void setSearchGrdStatus(String searchGrdStatus) { this.searchGrdStatus = searchGrdStatus; + } + public String getIsSalePrice() { + return isSalePrice; + } + public void setIsSalePrice(String isSalePrice) { + this.isSalePrice = isSalePrice; + } + public String getBlineCode() { + return blineCode; + } + public void setBlineCode(String blineCode) { + this.blineCode = blineCode; + } + public String getSpamYn() { + return spamYn; + } + public void setSpamYn(String spamYn) { + this.spamYn = spamYn; } } diff --git a/src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java b/src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java index 92b435d6..97b7644f 100644 --- a/src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java +++ b/src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java @@ -53,6 +53,11 @@ public class MberGrdDAO extends EgovAbstractDAO { return (MberGrdVO) select("mberGrdDAO.selectMberGrdInfo", mberId); } + // 회원 등급 예외 정보 + public MberGrdVO selectMberEtcInfo(String mberId) throws Exception{ + return (MberGrdVO) select("mberGrdDAO.selectMberEtcInfo", mberId); + } + // 회원별 등급 누적결제액 상세 public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception{ return (MberGrdVO) select("mberGrdDAO.selectMberGrdAmtDetail", mberGrdVO); diff --git a/src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java b/src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java index 4fb60b84..b0886a26 100644 --- a/src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java +++ b/src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java @@ -130,6 +130,15 @@ public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberG return mberGrdDAO.selectMberGrdInfo(mberId); } + // 회원 등급 예외 정보 + @Override + public MberGrdVO selectMberEtcInfo(String mberId) throws Exception { + // 공백제거 + mberId = mberId.trim(); + + return mberGrdDAO.selectMberEtcInfo(mberId); + } + // 회원별 등급 누적결제액 상세 @Override public MberGrdVO selectMberGrdAmtDetail(MberGrdVO mberGrdVO) throws Exception { diff --git a/src/main/java/itn/let/sym/grd/web/MberGrdController.java b/src/main/java/itn/let/sym/grd/web/MberGrdController.java index 1860a1f6..db65176b 100644 --- a/src/main/java/itn/let/sym/grd/web/MberGrdController.java +++ b/src/main/java/itn/let/sym/grd/web/MberGrdController.java @@ -43,7 +43,7 @@ public class MberGrdController { HttpServletRequest request, ModelMap model) throws Exception{ - LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); mberGrdVO.setMberId(userId); @@ -78,7 +78,7 @@ public class MberGrdController { return "/web/grd/MberGrdHistListAjax"; } - // 등급제 시행 ON/OFF 체크 + // 등급제 시행 ON/OFF 체크(로그인 상태에서만 조회) @RequestMapping(value = "/web/grd/mberSettDetailAjax.do") public ModelAndView mberSettingDetailAjax( @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { @@ -90,11 +90,67 @@ public class MberGrdController { String msg = ""; try{ - MberGrdVO mberGrdVO1 = new MberGrdVO(); - mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); - if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) { - isSuccess = true; - } + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + if (null != loginVO) { + MberGrdVO mberGrdVO1 = new MberGrdVO(); + mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); + if (mberGrdVO1.getGrdNoti().equals("Y")) { + isSuccess = true; + } + } + } + catch(Exception e) { + msg = e.getMessage(); + } + + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("msg", msg); + + return modelAndView; + } + + // 등급제 시행 ON/OFF 체크(비로그인 상태에서 조회) + @RequestMapping(value = "/web/grd/mberSettDetailByNotLoginAjax.do") + public ModelAndView mberSettDetailByNotLoginAjax( + @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + boolean isSuccess = false; + String msg = ""; + MberGrdVO rtnMberGrdVO = new MberGrdVO(); + + try{ + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + if (null != loginVO) { + mberGrdVO.setMberId(userId); + + // Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우) + MberGrdVO mberGrdVO1 = new MberGrdVO(); + mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); + if (mberGrdVO1.getGrdNoti().equals("Y")) { + // Step 2. 회원별 이벤트 진행여부 + int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId()); + if (mberEventPrgCnt == 0) { + rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId()); + if (null != rtnMberGrdVO) { + isSuccess = true; + } + else { + msg = "종료"; + } + } + } + } + else { + MberGrdVO mberGrdVO1 = new MberGrdVO(); + mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); + if (mberGrdVO1.getGrdNoti().equals("Y")) { + isSuccess = true; + } + } } catch(Exception e) { msg = e.getMessage(); @@ -115,7 +171,7 @@ public class MberGrdController { modelAndView.setViewName("jsonView"); // 로그인VO에서 사용자 정보 가져오기 - LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); @@ -127,17 +183,22 @@ public class MberGrdController { if (StringUtils.isNotEmpty(userId)) { mberGrdVO.setMberId(userId); - // 회원별 이벤트 진행여부 - int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId()); - if (mberEventPrgCnt == 0) { - rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId()); - if (null != rtnMberGrdVO) { - isSuccess = true; - } - else { - msg = "종료"; - } - } + // Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우) + MberGrdVO mberGrdVO1 = new MberGrdVO(); + mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); + if (mberGrdVO1.getGrdNoti().equals("Y")) { + // Step 2. 회원별 이벤트 진행여부 + int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId()); + if (mberEventPrgCnt == 0) { + rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId()); + if (null != rtnMberGrdVO) { + isSuccess = true; + } + else { + msg = "종료"; + } + } + } } } catch(Exception e) { diff --git a/src/main/java/itn/let/sym/grd/web/MberGrdMngController.java b/src/main/java/itn/let/sym/grd/web/MberGrdMngController.java index 99664375..74474edb 100644 --- a/src/main/java/itn/let/sym/grd/web/MberGrdMngController.java +++ b/src/main/java/itn/let/sym/grd/web/MberGrdMngController.java @@ -4,6 +4,7 @@ import java.util.List; import javax.annotation.Resource; +import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ModelAttribute; @@ -182,7 +183,7 @@ public class MberGrdMngController { // Step 1. 등급제 시행 ON 일경우 MberGrdVO mberGrdVO1 = new MberGrdVO(); mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); - if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) { + if (mberGrdVO1.getGrdNoti().equals("Y")) { mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); // 회원별 등급 초기화 @@ -312,7 +313,7 @@ public class MberGrdMngController { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); - boolean isSuccess = true; + boolean isSuccess = false; String msg = ""; MberGrdVO rtnMberGrdVO = new MberGrdVO(); @@ -320,20 +321,28 @@ public class MberGrdMngController { LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); String frstRegisterId = loginVO == null ? "" : loginVO.getId(); mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID - + try{ - rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId()); - if (null != rtnMberGrdVO) { - // 등급제 적용 - - } - else { - isSuccess = false; - msg = "종료"; - } + if (StringUtils.isNotEmpty(mberGrdVO.getMberId())) { + // Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우) + MberGrdVO mberGrdVO1 = new MberGrdVO(); + mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); + if (mberGrdVO1.getGrdNoti().equals("Y")) { + // Step 2. 회원별 이벤트 진행여부 + int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId()); + if (mberEventPrgCnt == 0) { + rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId()); + if (null != rtnMberGrdVO) { + isSuccess = true; + } + else { + msg = "종료"; + } + } + } + } } catch(Exception e) { - isSuccess = false; msg = e.getMessage(); } @@ -344,6 +353,56 @@ public class MberGrdMngController { return modelAndView; } + // 회원 등급 예외 정보 + @RequestMapping(value = "/sym/grd/mberGrdEtcChkAjax.do") + public ModelAndView mberGrdEtcChkAjax( + @ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + boolean isSuccess = false; + boolean isEvent = false; + String msg = ""; + MberGrdVO rtnMberGrdVO = new MberGrdVO(); + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String frstRegisterId = loginVO == null ? "" : loginVO.getId(); + mberGrdVO.setEditId(frstRegisterId); // 최초등록자ID + + try{ + if (StringUtils.isNotEmpty(mberGrdVO.getMberId())) { + + // Step 2. 회원별 이벤트 진행여부 + int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId()); + if (mberEventPrgCnt == 0) { + rtnMberGrdVO = mberGrdService.selectMberEtcInfo(mberGrdVO.getMberId()); + if (null != rtnMberGrdVO) { + isSuccess = true; + } + else { + msg = "종료"; + } + } + else { + isEvent = true; + } + + } + } + catch(Exception e) { + msg = e.getMessage(); + } + + modelAndView.addObject("rtnMberGrdVO", rtnMberGrdVO); + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("isEvent", isEvent); + modelAndView.addObject("msg", msg); + + return modelAndView; + } + // 회원 등급제 종료 @RequestMapping(value = "/sym/grd/mberGrdEndByUserAjax.do") public ModelAndView mberGrdEndByUserAjax( @@ -433,7 +492,7 @@ public class MberGrdMngController { // Step 1. 등급제 시행 ON 일경우 MberGrdVO mberGrdVO1 = new MberGrdVO(); mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO); - if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) { + if (mberGrdVO1.getGrdNoti().equals("Y")) { mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate()); // 회원 등급 변경(환불후) => 기존등급 상관없이 업데이트 diff --git a/src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml index 0477dc32..af9ffe33 100644 --- a/src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml @@ -303,6 +303,41 @@ ]]> + + + diff --git a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp index ed73997d..278b17b7 100644 --- a/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp +++ b/src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp @@ -169,9 +169,79 @@ $(document).ready(function(){ $(this).val(value); }); + //등급제 적용 테스트 + getMberGrdChk(); }); +//등급제 적용 테스트 +function getMberGrdChk() { + $(".grdSetNm").html(""); + + var mberId = document.mberManageVO.mberSearchId.value; + + $.ajax({ + type: "POST", + url: "/sym/grd/mberGrdChkAjax.do", + data: {"mberId" : mberId}, + dataType:'json', + async: false, + success: function (data) { + if (data.isSuccess) { + $(".grdSetNm").html(data.rtnMberGrdVO.grdSetNm); + } + else { + //회원 등급 예외 정보 + getMberGrdEtc(); + //alert("Msg : " + data.msg); + } + }, + error: function (e) { + //alert("ERROR : " + JSON.stringify(e)); + } + }); +} + +//회원 등급 예외 정보 +function getMberGrdEtc() { + $(".grdSetNm").html(""); + + var mberId = document.mberManageVO.mberSearchId.value; + + $.ajax({ + type: "POST", + url: "/sym/grd/mberGrdEtcChkAjax.do", + data: {"mberId" : mberId}, + dataType:'json', + async: false, + success: function (data) { + if (data.isSuccess) { + var gradeNm = ""; + if (data.isEvent) { + gradeNm += "(할인이벤트회원) "; + } + else if (data.rtnMberGrdVO.isSalePrice == "Y") { + gradeNm += "(단가협의회원) "; + } + else if (data.rtnMberGrdVO.blineCode == "Y") { + gradeNm += "(B선회원) "; + } + else if (data.rtnMberGrdVO.spamYn == "Y") { + gradeNm += "(스팸회원) "; + } + + $(".grdSetNm").html(gradeNm); + } + else { + //alert("Msg : " + data.msg); + } + }, + error: function (e) { + //alert("ERROR : " + JSON.stringify(e)); + } + }); +} + function fnCheckAll(){ var checkField = document.delayForm.checkDelayField; @@ -480,7 +550,7 @@ function layerPopOpen(obj){ // 발송 금액 변경 if (obj == "price") { //등급별 단가 정보 - //getMberGrdSettingList(); + getMberGrdSettingList(); } } @@ -3064,9 +3134,8 @@ function kakaoATDelayCancel(msgGroupId){ - - - + 등급 + 전화번호 @@ -3461,9 +3530,8 @@ function kakaoATDelayCancel(msgGroupId){ - - - + 등급 + 전화번호 @@ -5472,12 +5540,10 @@ function kakaoATDelayCancel(msgGroupId){ - 단문 금액 diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/apikey/UserAPIKEYModify.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/apikey/UserAPIKEYModify.jsp index acd465b0..4a6a8ef5 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/apikey/UserAPIKEYModify.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/apikey/UserAPIKEYModify.jsp @@ -649,8 +649,10 @@ function fnSelectMber(mberId) { - + @@ -667,6 +669,10 @@ function fnSelectMber(mberId) { onclick="fn_delete('Y'); return false;"> + + + diff --git a/src/main/webapp/WEB-INF/jsp/web/api/appMgmt.jsp b/src/main/webapp/WEB-INF/jsp/web/api/appMgmt.jsp index fb41db38..6298b82d 100644 --- a/src/main/webapp/WEB-INF/jsp/web/api/appMgmt.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/api/appMgmt.jsp @@ -322,7 +322,7 @@ function fn_reg_user_4_apikey(){ - + ${apiVO.frstRegistPnttm} ${apiVO.lastUpdtPnttm} 승인 @@ -366,7 +366,7 @@ function fn_reg_user_4_apikey(){ - + ${apiVO.lastUpdtPnttm} @@ -377,11 +377,11 @@ function fn_reg_user_4_apikey(){ 사용 - + - <%-- + ${apiVO.lastUpdtPnttm} @@ -392,10 +392,9 @@ function fn_reg_user_4_apikey(){ 미사용 - - + - --%> + API KEY 발급 내역이 없습니다. @@ -427,7 +426,7 @@ function fn_reg_user_4_apikey(){ - + ${result.frstRegistPnttm} @@ -461,8 +460,9 @@ function fn_reg_user_4_apikey(){ -

* 대역 등록을 원하실 경우 상위 IP만 작성하시면 됩니다. ex) 92.168.255.0 ~ 192.168.255.255 대역을 등록할 경우 192.168. 255. 입력

-

* IP는 최대 10개까지 등록 가능합니다. 단, IP 대역은 1개의 IP로 계산합니다.

+ + +

* IP는 최대 10개까지 등록 가능합니다. 단, IP 대역은 1개의 IP로 계산합니다.

diff --git a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp index 967dd730..63d13e71 100644 --- a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp @@ -101,8 +101,72 @@ $(document).ready(function (){ getid(); + + if(!${empty LoginVO}){ + //등급제 대상 여부(헤더) + getMberGrdChk_Header(); + } + + var reqURL = "${pageContext.request.requestURL}"; + var mainURL = "web/main/mainPage.do"; + if (reqURL.lastIndexOf(mainURL) > -1) { + //등급제 시행 ON/OFF 체크(비로그인) + getMberSettingDetailByNotLogin(); + } + else { + // 문자(등급별 요금 안내) + $("#priceTopBanner").hide(); + } + }); +//등급제 시행 ON/OFF 체크(비로그인) +function getMberSettingDetailByNotLogin() { + $.ajax({ + type: "POST", + url: "/web/grd/mberSettDetailByNotLoginAjax.do", + data: {}, + dataType:'json', + async: false, + success: function (data) { + if (data.isSuccess) { + // 문자(등급별 요금 안내) + $("#priceTopBanner").show(); + } + else { + //alert("Msg : " + data.msg); + } + }, + error: function (e) { + //alert("ERROR : " + JSON.stringify(e)); + } + }); +} + +//등급제 대상 여부 +function getMberGrdChk_Header() { + $.ajax({ + type: "POST", + url: "/web/grd/mberGrdChkAjax.do", + data: {}, + dataType:'json', + async: false, + success: function (data) { + if (data.isSuccess) { + // 등급제 누적결제액 세부내역 + var levelIcon = "/publish/images/level/level_icon/" + data.rtnMberGrdVO.grdSetIcon + "_icon.png"; + $("#commonHeaderGradeIcon").attr("src", levelIcon); + } + else { + //alert("Msg : " + data.msg); + } + }, + error: function (e) { + //alert("ERROR : " + JSON.stringify(e)); + } + }); +} + //남은 시간 계산해주기(화면 새로고침해도 시간은 계속 유지됨) function getTimer(date) { var _vDate = new Date(date); @@ -1057,12 +1121,10 @@ function actionLogin() { - @@ -1534,7 +1596,7 @@ function actionLogin() {