Browse Source

앱 버전 체크 api 개발

junekeunsong 4 years ago
parent
commit
3e126c906d

+ 1 - 1
src/main/java/com/lemon/lifecenter/common/LifeCenterInterCeptor.java

@@ -41,7 +41,7 @@ public class LifeCenterInterCeptor extends HandlerInterceptorAdapter {
         logger.error("url -- > " + url);
         logger.error("url -- > " + url.contains( "/mobile" ));
         
-        if (url.contains( "/error" ) || url.contains("/nonface/wait") || url.contains("/store")) {
+        if (url.contains( "/error" ) || url.contains("/nonface/wait") || url.contains("/store") || url.contains("/mobile/getAppVersion")) {
             return true;
         }
         

+ 34 - 3
src/main/java/com/lemon/lifecenter/controller/RestApiController.java

@@ -1,17 +1,48 @@
 package com.lemon.lifecenter.controller;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.lemon.lifecenter.dto.AppVersionDTO;
+import com.lemon.lifecenter.service.RestApiService;
+
 @RestController
 public class RestApiController {
-    @RequestMapping()
-    public Map<String, String> appVersion() {
-        HashMap<String, String> result = new HashMap<String, String>();
+    
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+    
+    @Autowired
+    private RestApiService restApiService;
+    
+    @RequestMapping("/mobile/getAppVersion")
+    public ArrayList<HashMap<String, String>> appVersion(@RequestParam(value="deviceType", required=false, defaultValue="") String deviceType) {
+        ArrayList<HashMap<String, String>> result = new ArrayList<>();
+        HashMap<String, String> data = new HashMap<String, String>();
         
+        String code = "99";
+        if (deviceType.equals("")) {
+            code = "01";
+        } else {
+            AppVersionDTO dto = restApiService.selectAppVersion(deviceType);
+            if (dto == null) {
+                code = "02";
+            } else {
+                code = "00";
+                data.put("version", dto.getVersion());
+                data.put("downloadUrl", dto.getDownloadUrl());
+            }
+            
+        }
+        data.put("code", code);
+        result.add(data);
         return result;
     }
 }

+ 12 - 0
src/main/java/com/lemon/lifecenter/mapper/RestApiMapper.java

@@ -0,0 +1,12 @@
+package com.lemon.lifecenter.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import com.lemon.lifecenter.dto.AppVersionDTO;
+
+@Repository
+@Mapper
+public interface RestApiMapper {
+    public AppVersionDTO selectAppVersion(String deviceType);
+}

+ 17 - 0
src/main/java/com/lemon/lifecenter/service/RestApiService.java

@@ -0,0 +1,17 @@
+package com.lemon.lifecenter.service;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.lemon.lifecenter.dto.AppVersionDTO;
+import com.lemon.lifecenter.mapper.RestApiMapper;
+
+@Service
+public class RestApiService {
+    @Autowired
+    private RestApiMapper mapper;
+    
+    public AppVersionDTO selectAppVersion(String deviceType) {
+        return mapper.selectAppVersion(deviceType);
+    }
+}

+ 13 - 0
src/main/resources/mybatis/mapper/api/api.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.lemon.lifecenter.mapper.RestApiMapper">
+    <select id="selectAppVersion" parameterType="String" resultType="appVersionDTO">
+        <![CDATA[
+            SELECT VERSION AS version,
+                   DOWNLOAD_URL AS downloadUrl
+              FROM APP_VERSION
+             WHERE DEVICE_TYPE = #{deviceType}
+        ]]>
+    </select>
+</mapper>

+ 9 - 1
src/main/webapp/WEB-INF/jsp/mobile/login/login.jsp

@@ -63,8 +63,14 @@ $( function(){
         }
     });
     
-    autoLogin();
+    if (localStorage.getItem( "id" ) != null) {
+        autoLogin();
+    }
+    
 });
+
+
+
 function autoLogin(){
     if( localStorage.getItem( "id" ) != null && 
         localStorage.getItem( "pw" ) != null && 
@@ -76,6 +82,8 @@ function autoLogin(){
         $( "#submitBtn" ).trigger( "click" );
     }
 }
+
+
 </script>
 </head>
 <body>

+ 2 - 1
src/main/webapp/WEB-INF/jsp/mobile/menu/menu.jsp

@@ -5,7 +5,8 @@
 <jsp:include page="${data._INCLUDE}/header.jsp"></jsp:include>
 <script type="text/javascript">
 $(function(){
-    
+    //version(getVersion);
+    //$("div.version").val(localStorage.getItem("version"));
 });
 </script>
 </head>

+ 22 - 0
src/main/webapp/resources/js/mobile/common.js

@@ -39,6 +39,28 @@ function toNative( reqParam ){
 //         self.log(e,"mcare_mobile_toNative");
     }
 };
+
+var getVersion = function(data) {
+    localStorage.appVersion = data.version;
+    console.log(localStorage.getItem("appVersion"));
+}
+
+/**
+ * 버전정보확인 callback(string)
+ * @param callback fn
+ */
+function version(callback) {
+    var jsonMsg = {
+        "type" : "command",
+        "functionType" : "version",
+        "value" : {
+            "callbackFn" : callback
+        }
+    };
+    
+    toNative(jsonMsg);
+}
+    
 function systemBrowsing(url) {
     var jsonMsg = {
         "type" : "command",