Преглед изворни кода

API 관리 승인변경적용

databank102 пре 4 година
родитељ
комит
08bf142791

+ 52 - 5
src/main/java/com/lemon/lifecenter/controller/ApiManagerController.java

@@ -2,6 +2,7 @@ package com.lemon.lifecenter.controller;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Random;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -79,8 +80,30 @@ public class ApiManagerController extends LifeCenterController {
     }
     
     @RequestMapping("/new")
-    public ModelAndView apiManagerNew() {
+    public ModelAndView apiManagerNew(HttpServletRequest request) {
+        String sesId  = LifeCenterSessionController.getSession( request, "sesId" );
+        String sesName  = LifeCenterSessionController.getSession( request, "sesName" );
+        String sesCenterCode  = LifeCenterSessionController.getSession( request, "sesCenterCode" );
+        String sesCenterName  = LifeCenterSessionController.getSession( request, "sesCenterName" );
+        String sesPhoneNumber  = LifeCenterSessionController.getSession( request, "sesPhoneNumber" );
+        
+        ApiManagerDTO dto = new ApiManagerDTO();
+        
+        dto.setManagerId(sesId);
+        dto.setManagerName(sesName);
+        dto.setCenterCode(sesCenterCode);
+        dto.setCenterName(sesCenterName);
+        dto.setManagerPhone(sesPhoneNumber);
+        
+        CenterInfoDTO cdto = new CenterInfoDTO();
+        cdto.setCenterCode(Integer.valueOf(sesCenterCode));
+        cdto = centerService.selectCenterInfo(cdto);
+         
+        dto.setCooperativeCode(cdto.getCooperativeCode());
+        dto.setCooperativeName(cdto.getCooperativeName());
+        
         ModelAndView mv = setMV("api/new");
+        mv.addObject("info", dto);
         return mv;
     }
     
@@ -98,15 +121,21 @@ public class ApiManagerController extends LifeCenterController {
             @ModelAttribute("dto") final ApiManagerDTO dto,
             HttpServletRequest request,HttpServletResponse response) {
         String sesId  = LifeCenterSessionController.getSession( request, "sesId" );
+        String sesName  = LifeCenterSessionController.getSession( request, "sesName" );
         String sesCenterCode  = LifeCenterSessionController.getSession( request, "sesCenterCode" );
+        String sesCenterName  = LifeCenterSessionController.getSession( request, "sesCenterName" );
+        
         dto.setManagerId(sesId);
+        dto.setManagerName(sesName);
         dto.setCenterCode(sesCenterCode);
+        dto.setCenterName(sesCenterName);
         
         CenterInfoDTO cdto = new CenterInfoDTO();
         cdto.setCenterCode(Integer.valueOf(sesCenterCode));
-        centerService.selectCenterInfo(cdto);
+        cdto = centerService.selectCenterInfo(cdto);
          
         dto.setCooperativeCode(cdto.getCooperativeCode());
+        //dto.setHospitalName(cdto.getCooperativeName());
         
         service.insertApiManager(dto);
         
@@ -120,9 +149,27 @@ public class ApiManagerController extends LifeCenterController {
     public String updateUseYnApiManager(
             @ModelAttribute("dto") final ApiManagerDTO dto,
             HttpServletRequest request,HttpServletResponse response) {
-        String sesId  = LifeCenterSessionController.getSession( request, "sesId" );
-        //dto.setCreateBy(sesId);
-         
+        
+        if (dto.getApiKey().isEmpty()) {
+            int pwdLength = 32;
+            final char[] passwordTable =  { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 
+                                                    'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
+                                                    'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
+                                                    'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 
+                                                    'w', 'x', 'y', 'z', '!', '@', '#', '$', '%', '^', '&', '*',
+                                                    '(', ')', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' };
+
+            Random random = new Random(System.currentTimeMillis());
+            int tablelength = passwordTable.length;
+            StringBuffer buf = new StringBuffer();
+            
+            for(int i = 0; i < pwdLength; i++) {
+                buf.append(passwordTable[random.nextInt(tablelength)]);
+            }
+            
+            dto.setApiKey(buf.toString());
+        }
+        
         service.updateUseYnApiManager(dto);
         
         LifeCenterFunction.scriptMessage( response, "alertBox({ txt: '서비스 신청을 완료하였습니다.', callBack : function(){ location.href='/apiManager/list'; } });" );

+ 14 - 1
src/main/java/com/lemon/lifecenter/dto/ApiManagerDTO.java

@@ -22,7 +22,8 @@ public class ApiManagerDTO {
     private String useYnNm = "";
     private String managerId = "";
     private String centerCode = "";
-    
+    private String centerName = "";
+    private String cooperativeName = "";
     
     private int limit = 0;
     private int limitMax = 0;
@@ -134,5 +135,17 @@ public class ApiManagerDTO {
     public void setUseYnNm(String useYnNm) {
         this.useYnNm = useYnNm;
     }
+    public String getCenterName() {
+        return centerName;
+    }
+    public void setCenterName(String centerName) {
+        this.centerName = centerName;
+    }
+    public String getCooperativeName() {
+        return cooperativeName;
+    }
+    public void setCooperativeName(String cooperativeName) {
+        this.cooperativeName = cooperativeName;
+    }
     
 }

+ 65 - 40
src/main/resources/mybatis/mapper/api/apiManager.xml

@@ -24,27 +24,35 @@
     <select id="selectApiManagerList" parameterType="ApiManagerDTO" resultType="ApiManagerDTO">
         <![CDATA[
             SELECT
-                IDX,
-                MANAGER_NAME AS managerName,
-                HOSPITAL_NAME AS hospitalName,
-                DEPARTMENT_NAME AS departmentName,
-                MANAGER_EMAIL AS managerEmail,
-                MANAGER_PHONE AS managerPhone,
-                USE_PURPOSE AS usePurpose,
-                API_KEY AS apiKey,
-                COOPERATIVE_CODE AS cooperativeCode,
-                USE_YN AS useYn,
-                REQUEST_DATE AS requestDate,
-                ACCEPT_DATE AS acceptDate,
-                CREATE_DATE AS createDate,
-                CASE WHEN USE_YN = 'C' THEN '승인완료'
-                     WHEN USE_YN = 'W' THEN '승인대기'
-                     WHEN USE_YN = 'D' THEN '승인해제'
+                M.IDX,
+                M.MANAGER_NAME AS managerName,
+                M.HOSPITAL_NAME AS hospitalName,
+                M.DEPARTMENT_NAME AS departmentName,
+                M.MANAGER_EMAIL AS managerEmail,
+                M.MANAGER_PHONE AS managerPhone,
+                M.USE_PURPOSE AS usePurpose,
+                M.API_KEY AS apiKey,
+                M.COOPERATIVE_CODE AS cooperativeCode,
+                M.USE_YN AS useYn,
+                M.REQUEST_DATE AS requestDate,
+                M.ACCEPT_DATE AS acceptDate,
+                M.CREATE_DATE AS createDate,
+                CASE WHEN M.USE_YN = 'C' THEN '승인완료'
+                     WHEN M.USE_YN = 'W' THEN '승인대기'
+                     WHEN M.USE_YN = 'D' THEN '승인해제'
                 ELSE '' END AS useynNm,
-                MANAGER_ID AS managerId,
-                CENTER_CODE AS centerCode
+                M.MANAGER_ID AS managerId,
+                M.CENTER_CODE AS centerCode,
+                (SELECT CI.CENTER_NAME 
+                    FROM CENTER_INFO CI
+                    WHERE M.CENTER_CODE = CI.CENTER_CODE
+                ) AS centerName,
+                (SELECT CH.COOPERATIVE_NAME 
+                    FROM COOPERATIVE_HOSPITAL CH
+                    WHERE M.COOPERATIVE_CODE = CH.COOPERATIVE_CODE
+                ) AS cooperativeName
             FROM
-                API_MANAGER
+                API_MANAGER M
             WHERE 1 = 1
         ]]>
         
@@ -67,27 +75,35 @@
     <select id="selectApiManagerInfoOne" parameterType="String" resultType="ApiManagerDTO">
         <![CDATA[
             SELECT
-                IDX,
-                MANAGER_NAME AS managerName,
-                HOSPITAL_NAME AS hospitalName,
-                DEPARTMENT_NAME AS departmentName,
-                MANAGER_EMAIL AS managerEmail,
-                MANAGER_PHONE AS managerPhone,
-                USE_PURPOSE AS usePurpose,
-                API_KEY AS apiKey,
-                COOPERATIVE_CODE AS cooperativeCode,
-                USE_YN AS useYn,
-                REQUEST_DATE AS requestDate,
-                ACCEPT_DATE AS acceptDate,
-                CREATE_DATE AS createDate,
-                CASE WHEN USE_YN = 'C' THEN '승인완료'
-                     WHEN USE_YN = 'W' THEN '승인대기'
-                     WHEN USE_YN = 'D' THEN '승인해제'
+                M.IDX,
+                M.MANAGER_NAME AS managerName,
+                M.HOSPITAL_NAME AS hospitalName,
+                M.DEPARTMENT_NAME AS departmentName,
+                M.MANAGER_EMAIL AS managerEmail,
+                M.MANAGER_PHONE AS managerPhone,
+                M.USE_PURPOSE AS usePurpose,
+                M.API_KEY AS apiKey,
+                M.COOPERATIVE_CODE AS cooperativeCode,
+                M.USE_YN AS useYn,
+                M.REQUEST_DATE AS requestDate,
+                M.ACCEPT_DATE AS acceptDate,
+                M.CREATE_DATE AS createDate,
+                CASE WHEN M.USE_YN = 'C' THEN '승인완료'
+                     WHEN M.USE_YN = 'W' THEN '승인대기'
+                     WHEN M.USE_YN = 'D' THEN '승인해제'
                 ELSE '' END AS useynNm,
-                MANAGER_ID AS managerId,
-                CENTER_CODE AS centerCode
+                M.MANAGER_ID AS managerId,
+                M.CENTER_CODE AS centerCode,
+                (SELECT CI.CENTER_NAME 
+                    FROM CENTER_INFO CI
+                    WHERE M.CENTER_CODE = CI.CENTER_CODE
+                ) AS centerName,
+                (SELECT CH.COOPERATIVE_NAME 
+                    FROM COOPERATIVE_HOSPITAL CH
+                    WHERE M.COOPERATIVE_CODE = CH.COOPERATIVE_CODE
+                ) AS cooperativeName
             FROM
-                API_MANAGER
+                API_MANAGER M
             WHERE 1 = 1
             AND IDX = #{idx}
         ]]>
@@ -107,7 +123,8 @@
                     REQUEST_DATE,
                     CREATE_DATE,
                     USE_YN,
-                    CENTER_CODE
+                    CENTER_CODE,
+                    COOPERATIVE_CODE
                 )
             VALUES
                 (
@@ -121,7 +138,8 @@
                     NOW(),
                     NOW(),
                     'W',
-                    #{centerCode}
+                    #{centerCode},
+                    #{cooperativeCode}
                 )
         ]]>
     </insert>
@@ -133,6 +151,13 @@
                 API_MANAGER
             SET
                 USE_YN = #{useYn},
+        ]]>
+        <if test='apiKey != null and apiKey != ""'>
+        <![CDATA[
+                API_KEY = #{apiKey},
+        ]]>
+        </if>
+        <![CDATA[    
                 ACCEPT_DATE = NOW()
             WHERE
                 IDX = #{idx}

+ 9 - 1
src/main/webapp/WEB-INF/jsp/api/info.jsp

@@ -84,7 +84,7 @@ $( function(){
                                             <tr>
                                                 <th>병원 명</th>
                                                 <td colspan="3">
-                                                    <c:out value="${info.hospitalName}" />
+                                                    <c:out value="${info.cooperativeName}" />
                                                 </td>
                                             </tr>
                                             <tr>
@@ -105,12 +105,20 @@ $( function(){
                                                     <c:out value="${info.managerPhone}" />
                                                 </td>
                                             </tr>
+                                            <c:if test="${info.useYn ne 'D'}">
                                             <tr>
                                                 <th>api key</th>
                                                 <td colspan="3">
                                                     <c:out value="${info.apiKey}" />
                                                 </td>
                                             </tr>
+                                            </c:if>
+                                            <tr>
+                                                <th>센터코드</th>
+                                                <td colspan="3">
+                                                    <c:out value="${info.centerCode}" />
+                                                </td>
+                                            </tr>
                                             <tr>
                                                 <th>신청일</th>
                                                 <td colspan="3">

+ 1 - 2
src/main/webapp/WEB-INF/jsp/api/list.jsp

@@ -102,7 +102,6 @@
                                             
                                             <tbody>
                                                 <c:choose>
-                                                
                                                     <c:when test="${total > 0}">
                                                         <c:forEach var="l" items="${list}" varStatus="lStatus">
                                                         
@@ -110,7 +109,7 @@
                                                             <tr>
                                                                 <td><a href="./info?idx=${l.idx}"><c:out value="${pageNum}" /></a></td>
                                                                 <td class="text-left">
-                                                                    <a href="./info?idx=${l.idx}"><c:out value="${l.hospitalName}" /></a>
+                                                                    <a href="./info?idx=${l.idx}"><c:out value="${l.cooperativeName}" /></a>
                                                                 </td>
                                                                 <td><c:out value="${l.managerName}" /></td>
                                                                 <td><c:out value="${l.requestDate}" /></td>

+ 3 - 3
src/main/webapp/WEB-INF/jsp/api/new.jsp

@@ -66,13 +66,13 @@ $( function(){
                                             <tr>
                                                 <th><span class="fix">*</span>신청자 명</th>
                                                 <td colspan="3">
-                                                    <input name="managerName" type="text" class="form-control" placeholder="신청자 이름을 입력해주세요." required>
+                                                    <input name="managerName" value="<c:out value="${info.managerName}" />" type="text" class="form-control" placeholder="신청자 이름을 입력해주세요." required>
                                                 </td>
                                             </tr>
                                             <tr>
                                                 <th>병원 명</th>
                                                 <td colspan="3">
-                                                    테스트 병원
+                                                   <c:out value="${info.cooperativeName}" />
                                                 </td>
                                             </tr>
                                             <tr>
@@ -90,7 +90,7 @@ $( function(){
                                             <tr>
                                                 <th><span class="fix">*</span>전화번호</th>
                                                 <td colspan="3">
-                                                    <input name="managerPhone" type="text" class="form-control" placeholder="신청자 전화번호를 입력해주세요." required>
+                                                    <input name="managerPhone" value="<c:out value="${info.managerPhone}" />" type="text" class="form-control" placeholder="신청자 전화번호를 입력해주세요." required>
                                                 </td>
                                             </tr>
                                             <tr>