Bläddra i källkod

优化回流逻辑

DESKTOP-6LTVLN7\Liumouren 4 veckor sedan
förälder
incheckning
3f7b2c0e11

+ 53 - 172
src/main/java/com/skyversation/poiaddr/addquery/AddressQueryEngine.java

@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.skyversation.poiaddr.bean.Address;
 import com.skyversation.poiaddr.bean.AddressResult;
 import com.skyversation.poiaddr.bean.GeoJsonBean;
-import com.skyversation.poiaddr.bean.WDToken;
 import com.skyversation.poiaddr.service.AreaService;
 import com.skyversation.poiaddr.util.ShanghaiAddressSplitUtil;
 import com.skyversation.poiaddr.util.SplitAddress;
@@ -14,8 +13,6 @@ import com.skyversation.poiaddr.util.status.AddressLevel;
 import com.skyversation.poiaddr.util.status.AddressResultEnum;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
-import org.springframework.util.LinkedMultiValueMap;
-import org.springframework.util.MultiValueMap;
 import org.springframework.util.StringUtils;
 import org.apache.commons.codec.binary.Base64;
 
@@ -37,8 +34,6 @@ public class AddressQueryEngine {
         return instance;
     }
 
-    private WDToken wdToken = null;
-
     /***
      * 单条地名搜索通用方法,搜索顺序  1. 武大吉奥; 2. 市四中心; 3. 高德搜索; 4. 高德高级搜索;
      * @param addrs
@@ -75,7 +70,7 @@ public class AddressQueryEngine {
         AddressResult addressResult = new AddressResult();
 
         SplitAddress splitAddress = ShanghaiAddressSplitUtil.splitBestAddress(addr);
-        if(splitAddress.getStatus() == 2){ // 外省数据
+        if (splitAddress.getStatus() == 2) { // 外省数据
             addressResult.setMessage("非上海数据");
             AddressResult.ContentBean content = new AddressResult.ContentBean();
             content.setPname(splitAddress.getProvince());
@@ -84,7 +79,7 @@ public class AddressQueryEngine {
             content.setCommunity(splitAddress.getCommunity());
             addressResult.setData(new ArrayList<>());
             addressResult.getData().add(content);
-        } else if(splitAddress.getStatus() == 3){// 不是地址
+        } else if (splitAddress.getStatus() == 3) {// 不是地址
             addressResult.setMessage("非地址数据");
         } else {
             AddressResult.ContentBean addrBean = new AddressResult.ContentBean();
@@ -94,7 +89,7 @@ public class AddressQueryEngine {
             addrBean.setDistance(splitAddress.getDistrict());
             addrBean.setAdname(splitAddress.getStreet());
             addrBean.setCommunity(splitAddress.getCommunity());
-            addrBean.setStandAddr(splitAddress.getCity() + splitAddress.getDistrict() +splitAddress.getStreet()
+            addrBean.setStandAddr(splitAddress.getCity() + splitAddress.getDistrict() + splitAddress.getStreet()
                     + splitAddress.getCommunity() + splitAddress.getAddr());
             addressResult.setAddrBean(addrBean);
 
@@ -104,7 +99,7 @@ public class AddressQueryEngine {
                 JSONArray pois = new JSONArray();
                 pois.addAll(dbPois);
                 SplitAddress splitAddress1 = ShanghaiAddressSplitUtil.splitBestAddress(addr);
-                addressResult = new TransfromDataTool().dbResultToResult(splitAddress1,addr, pois);
+                addressResult = new TransfromDataTool().dbResultToResult(splitAddress1, addr, pois);
                 addressResult.setAddrBean(addrBean);
                 if (addressResult != null && addressResult.getData() != null && addressResult.getData().size() > 0) {
                     getCjWgWgwByLoc(addressResult);
@@ -120,7 +115,7 @@ public class AddressQueryEngine {
                     addressResult.setAddrBean(addrBean);
                     return addressResult;
                 }
-            }else {
+            } else {
                 if (splitAddress.getDistrict() != null && !splitAddress.getDistrict().isEmpty()) {
                     //查询无结果,尝试给出推荐结果
                     List<Address> recommendPois = AreaService.getInstance().getRecommendAddress(splitAddress);
@@ -128,7 +123,7 @@ public class AddressQueryEngine {
                         JSONArray pois = new JSONArray();
                         pois.addAll(recommendPois);
                         SplitAddress splitAddress1 = ShanghaiAddressSplitUtil.splitBestAddress(addr);
-                        addressResult = new TransfromDataTool().dbResultToResult(splitAddress1,addr, pois);
+                        addressResult = new TransfromDataTool().dbResultToResult(splitAddress1, addr, pois);
                         addressResult.setAddrBean(addrBean);
                         if (addressResult != null && addressResult.getData() != null && addressResult.getData().size() > 0) {
                             getCjWgWgwByLoc(addressResult);
@@ -149,46 +144,12 @@ public class AddressQueryEngine {
             }
         }
 
-        if(addressResult != null){
+        if (addressResult != null) {
             addressResult.setMessage("失败");
         }
         return addressResult;
     }
 
-    /***
-     * 武大吉奥单条地名搜索
-     * @param address
-     */
-    public AddressResult wdjaSearchByName(String address) {
-        System.out.println("<<<<<<<<<<----------开始武大吉奥地名地址搜索------------>>>>>>>>>>>>>");
-        if (wdToken == null || System.currentTimeMillis() - wdToken.getTime() > 36000000) {
-            wdToken = AddressTools.getInstance().getWDToken(Constant.WD_USER_NAME, Constant.WD_USER_PWD);
-            if (wdToken == null) {
-                return null;
-            }
-            wdToken.setTime(System.currentTimeMillis());
-        }
-        if (wdToken == null)
-            return AddressTools.getInstance().faildQuery(AddressResultEnum.NO_TOKEN, "token获取失败");
-        String token = wdToken.getToken();
-
-        String url = Constant.GET_ADDRESS_MEG_URL + "?token=" + token + "&addr=" + address;
-        String body = null;
-        try {
-            body = AddressNetTools.getInstance().wdSendGetRequest(url);
-        } catch (Exception e) {
-            e.toString();
-        }
-        if (body == null || body.equals("null") || !StringUtils.hasText(body))
-            return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_NULL, "搜索无结果");
-        try {
-            JSONObject json = JSONObject.parseObject(body);
-            return TransfromDataTool.wdResultToResult(json);
-        } catch (Exception e) {
-            return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "格式化失败");
-        }
-    }
-
     public static Map<String, String> initSigns() {
         Map<String, String> headerMap = new HashMap<>();
         String timestamp = System.currentTimeMillis() + "";
@@ -278,24 +239,19 @@ public class AddressQueryEngine {
                     level--;
                     return sj_szxSearchByName(address, level);
                 }
-                return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_NULL, "搜索无结果");
+                return new AddressResult(AddressResultEnum.RESULT_NULL, "搜索无结果");
             }
 
             try {
-                if (body.indexOf("[") != 0) {
-                    AddressResult addressResult = TransfromDataTool.szxResultToResult(JSONObject.parseObject(body), address);
-                    if (addressResult.getCode().equals(AddressResultEnum.RESULT_NULL) && level > 0) {
-                        level--;
-                        return sj_szxSearchByName(address, level);
-                    }
-                    return addressResult;
-                } else {
-//                  将得分最高的结果映射到实体类
-                    return TransfromDataTool.szxResultToResult2(com.skyversation.poiaddr.util.AddressTools.getInstance().findBestMatch(address, JSONArray.parseArray(body), "address"));
+                AddressResult addressResult = TransfromDataTool.szxResultToResult(JSONObject.parseObject(body), address);
+                if (addressResult.getCode().equals(AddressResultEnum.RESULT_NULL) && level > 0) {
+                    level--;
+                    return sj_szxSearchByName(address, level);
                 }
+                return addressResult;
             } catch (Exception e) {
                 System.err.println("请求地址:" + address + ";返回结果:" + body + ";处理异常:" + e);
-                return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "格式化失败");
+                return new AddressResult(AddressResultEnum.DATA_FROMAT_FAILD, "格式化失败");
             }
         } else {
             if (level > 0) {
@@ -307,82 +263,6 @@ public class AddressQueryEngine {
         }
     }
 
-    /***
-     * 高德普通地名搜索
-     * @param address
-     * @return
-     */
-    public AddressResult gdSearchByName(String address) {
-        String geoUrl = Constant.AMAP_GEO_URL + "?key=" + Constant.AMAP_KEY + "&address=" + address + "&city=" + Constant.getAMAP_CITY_CODE() + "&output=JSON";
-        ResponseEntity response = AddressNetTools.getInstance().requestGetOrPost(HttpMethod.GET, geoUrl, null, null, 0);
-        if (response != null && response.getBody() != null) {
-            String body = response.getBody() + "";
-            if (!StringUtils.hasText(body))
-                return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_NULL, "搜索无结果");
-            try {
-                JSONObject json = JSONObject.parseObject(body);
-                return TransfromDataTool.gdResultToResult(json);
-            } catch (Exception e) {
-                System.err.println(e);
-                return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "格式化失败");
-            }
-        } else {
-            return null;
-        }
-    }
-
-    /***
-     * 高德高级地名搜索
-     * @param address
-     * @return
-     */
-    public AddressResult gdV3SearchByName(String address) {
-        String geoUrl =
-                Constant.AMAP_SEARCH_NAME_V3 + "?key=" + Constant.AMAP_KEY + "&types=" + Constant.AMAP_SEARCH_TYPES +
-                        "&keywords=" + address + "&city=" + Constant.getAMAP_CITY_CODE() + "&offset=20";
-        ResponseEntity responseEntity = AddressNetTools.getInstance().requestGetOrPost(HttpMethod.GET, geoUrl, null, null, 0);
-        if (responseEntity.hasBody()) {
-            String body = responseEntity.getBody() + "";
-            if (!StringUtils.hasText(body)) {
-                return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_NULL, "搜索无结果");
-            }
-            JSONArray pois = new JSONArray();
-            JSONObject json = JSONObject.parseObject(body);
-            if (json.containsKey("pois")) {
-                pois.addAll(json.getJSONArray("pois"));
-            }
-            if (json.containsKey("count")) {
-                int count = Integer.parseInt(json.get("count") + "");
-                if (count > 20) {
-                    for (int i = 2; i < (count % 20 + 1); i++) {
-                        geoUrl =
-                                Constant.AMAP_SEARCH_NAME_V3 + "?key=" + Constant.AMAP_KEY + "&types=" + Constant.AMAP_SEARCH_TYPES +
-                                        "&keywords=" + address + "&city=" + Constant.getAMAP_CITY_CODE() + "&offset=20&page=" + i;
-                        ResponseEntity responseEntity2 = AddressNetTools.getInstance().requestGetOrPost(HttpMethod.GET, geoUrl, null, null, 0);
-                        if (responseEntity2.hasBody()) {
-                            body = responseEntity2.getBody() + "";
-                        }
-                        if (!StringUtils.hasText(body)) {
-                            return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_AGAIN_NULL, "多次搜索无结果");
-                        }
-                        JSONObject json2 = JSONObject.parseObject(body);
-                        if (json2.containsKey(pois)) {
-                            pois.addAll(JSONObject.parseObject(body).getJSONArray("pois"));
-                        }
-                    }
-                }
-            }
-            try {
-                return TransfromDataTool.gdV3ResultToResult(pois);
-            } catch (Exception e) {
-                System.err.println(e);
-                return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "格式化失败");
-            }
-        } else {
-            return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_AGAIN_NULL, "高德V3分页查询无结果");
-        }
-    }
-
 
     /***
      * 根据搜索地址,赋值村居、网格、微格网信息
@@ -395,58 +275,60 @@ public class AddressQueryEngine {
         } else {
             AreaService areaService = AreaService.getInstance();
             for (AddressResult.ContentBean content : result.getData()) {
-                if ((content.getAdname() == null || content.getAdname().isEmpty() || content.getCityname() == null || content.getCityname().isEmpty() || content.getCommunity() == null || content.getCommunity().isEmpty()) && content.getLat() != null && content.getLon() != null) {
+                if (content.getLat() != null && content.getLon() != null) {
+                    if ((content.getAdname() == null || content.getAdname().isEmpty() || content.getCityname() == null || content.getCityname().isEmpty() || content.getCommunity() == null || content.getCommunity().isEmpty())) {
 //                  判断是否存在行政区划数据
-                    if (content.getCityname() == null || content.getCityname().isEmpty()) {
-                        GeoJsonBean adBean = areaService.isInadPolygon(content.getLon(), content.getLat());
-                        if(adBean != null && adBean.getProperties() != null){
-                            content.setPname("上海市");
-                            content.setCityname(adBean.getProperties().getString("name"));
+                        if (content.getCityname() == null || content.getCityname().isEmpty()) {
+                            GeoJsonBean adBean = areaService.isInadPolygon(content.getLon(), content.getLat());
+                            if (adBean != null && adBean.getProperties() != null) {
+                                content.setPname("上海市");
+                                content.setCityname(adBean.getProperties().getString("name"));
+                            }
                         }
-                    }
 //                  判断是否存在街镇数据
-                    if (content.getAdname() == null || content.getAdname().isEmpty()) {
-                        GeoJsonBean townBean = areaService.isInTownPolygon(content.getLon(), content.getLat());
-                        if(townBean != null && townBean.getProperties() != null){
-                            content.setPname("上海市");
-                            content.setAdnameCode(townBean.getProperties().getString("area_code"));
-                            content.setAdname(townBean.getProperties().getString("name"));
+                        if (content.getAdname() == null || content.getAdname().isEmpty()) {
+                            GeoJsonBean townBean = areaService.isInTownPolygon(content.getLon(), content.getLat());
+                            if (townBean != null && townBean.getProperties() != null) {
+                                content.setPname("上海市");
+                                content.setAdnameCode(townBean.getProperties().getString("area_code"));
+                                content.setAdname(townBean.getProperties().getString("name"));
+                            }
                         }
-                    }
 //                  判断是否存在村居数据
-                    if (content.getCommunity() == null || content.getCommunity().isEmpty()) {
-                        GeoJsonBean cjBean = areaService.isInResidentialCommitteePolygon(content.getLon(), content.getLat());
-                        if(cjBean != null && cjBean.getProperties() != null){
-                            content.setPname("上海市");
-                            content.setCityname(cjBean.getProperties().getString("所属区"));
-                            content.setAdname(cjBean.getProperties().getString("所属街"));
-                            content.setCommunityCode(cjBean.getProperties().getString("居委会"));
-                            content.setCommunity(cjBean.getProperties().getString("居委_1"));
+                        if (content.getCommunity() == null || content.getCommunity().isEmpty()) {
+                            GeoJsonBean cjBean = areaService.isInResidentialCommitteePolygon(content.getLon(), content.getLat());
+                            if (cjBean != null && cjBean.getProperties() != null) {
+                                content.setPname("上海市");
+                                content.setCityname(cjBean.getProperties().getString("所属区"));
+                                content.setAdname(cjBean.getProperties().getString("所属街"));
+                                content.setCommunityCode(cjBean.getProperties().getString("居委会"));
+                                content.setCommunity(cjBean.getProperties().getString("居委_1"));
+                            }
                         }
                     }
-                }
-                if (content.getLat() != null && content.getLon() != null) {
-                    if(!StringUtils.hasText(content.getWgName())){
+                    if (!StringUtils.hasText(content.getWgName())) {
                         GeoJsonBean geoJsonBean = areaService.isInWGPolygon(content.getLon(), content.getLat());
-                        if(geoJsonBean != null && geoJsonBean.getProperties() != null){
+                        if (geoJsonBean != null && geoJsonBean.getProperties() != null) {
                             content.setWgName(geoJsonBean.getProperties().getString("网格名称"));
                             content.setWgCode(geoJsonBean.getProperties().getString("网格编码"));
                         }
                     }
-                    if(!StringUtils.hasText(content.getWgwCode())){
+                    if (!StringUtils.hasText(content.getWgwCode())) {
                         GeoJsonBean geoJsonBean = areaService.isInWGWPolygon(content.getLon(), content.getLat());
-                        if(geoJsonBean != null && geoJsonBean.getProperties() != null){
+                        if (geoJsonBean != null && geoJsonBean.getProperties() != null) {
                             content.setWgwName(geoJsonBean.getProperties().getString("å¾®ç½\u0091_1"));
                             content.setWgwCode(geoJsonBean.getProperties().getString("å¾®ç½\u0091æ ¼"));
                         }
                     }
-                    if(!StringUtils.hasText(content.getZhwgName())){
+                    if (!StringUtils.hasText(content.getZhwgName())) {
                         GeoJsonBean geoJsonBean = areaService.isInZHGWPolygon(content.getLon(), content.getLat());
-                        if(geoJsonBean != null && geoJsonBean.getProperties() != null){
+                        if (geoJsonBean != null && geoJsonBean.getProperties() != null) {
                             content.setZhwgName(geoJsonBean.getProperties().getString("网格名称"));
                             content.setZhwgCode(geoJsonBean.getProperties().getString("网格编码"));
                         }
                     }
+                }else{
+                    System.err.println("没有经纬度参数,不能根据经纬度落点补充街镇等信息!");
                 }
             }
             return result;
@@ -454,27 +336,26 @@ public class AddressQueryEngine {
     }
 
 
-
-    public AddressResult.ContentBean addContentWGWGrid(AddressResult.ContentBean content){
+    public AddressResult.ContentBean addContentWGWGrid(AddressResult.ContentBean content) {
         AreaService areaService = AreaService.getInstance();
         if (content != null && content.getLat() != null && content.getLon() != null) {
-            if(!StringUtils.hasText(content.getWgName())){
+            if (!StringUtils.hasText(content.getWgName())) {
                 GeoJsonBean geoJsonBean = areaService.isInWGPolygon(content.getLon(), content.getLat());
-                if(geoJsonBean != null && geoJsonBean.getProperties() != null){
+                if (geoJsonBean != null && geoJsonBean.getProperties() != null) {
                     content.setWgName(geoJsonBean.getProperties().getString("网格名称"));
                     content.setWgCode(geoJsonBean.getProperties().getString("网格编码"));
                 }
             }
-            if(!StringUtils.hasText(content.getWgwCode())){
+            if (!StringUtils.hasText(content.getWgwCode())) {
                 GeoJsonBean geoJsonBean = areaService.isInWGWPolygon(content.getLon(), content.getLat());
-                if(geoJsonBean != null && geoJsonBean.getProperties() != null){
+                if (geoJsonBean != null && geoJsonBean.getProperties() != null) {
                     content.setWgwName(geoJsonBean.getProperties().getString("å¾®ç½\u0091_1"));
                     content.setWgwCode(geoJsonBean.getProperties().getString("å¾®ç½\u0091æ ¼"));
                 }
             }
-            if(!StringUtils.hasText(content.getZhwgName())){
+            if (!StringUtils.hasText(content.getZhwgName())) {
                 GeoJsonBean geoJsonBean = areaService.isInZHGWPolygon(content.getLon(), content.getLat());
-                if(geoJsonBean != null && geoJsonBean.getProperties() != null){
+                if (geoJsonBean != null && geoJsonBean.getProperties() != null) {
                     content.setZhwgName(geoJsonBean.getProperties().getString("网格名称"));
                     content.setZhwgCode(geoJsonBean.getProperties().getString("网格编码"));
                 }

+ 0 - 69
src/main/java/com/skyversation/poiaddr/addquery/AddressTools.java

@@ -1,69 +0,0 @@
-package com.skyversation.poiaddr.addquery;
-
-import com.alibaba.fastjson.JSONObject;
-import com.skyversation.poiaddr.bean.WDToken;
-import com.skyversation.poiaddr.util.net.AddressNetTools;
-import com.skyversation.poiaddr.bean.AddressResult;
-import com.skyversation.poiaddr.util.status.AddressResultEnum;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
-
-import java.math.BigInteger;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-public class AddressTools {
-
-    private static AddressTools instance = new AddressTools();
-
-    private AddressTools() {
-    }
-
-    public synchronized static AddressTools getInstance() {
-        if (instance == null) {
-            instance = new AddressTools();
-        }
-        return instance;
-    }
-
-    public WDToken getWDToken(String userName, String pwd) {
-        long time = System.currentTimeMillis() / 1000;
-        System.out.println("当前时间为:" + time);
-        String secret = time + pwd;
-        System.out.println("当前secret为:" + secret);
-        secret = md5_32(secret);
-        System.out.println("加密后secret为:" + secret);
-
-        String param = "?user=" + userName + "&secret=" + secret + "&time=" + time;
-        System.out.println("准备获取token,获取地址为:" + Constant.GET_TOKEN_URL + param);
-        ResponseEntity responseEntity = AddressNetTools.getInstance().requestGetOrPost(HttpMethod.GET, Constant.GET_TOKEN_URL + param, null, null, 0);
-        if (responseEntity != null) {
-            String body = responseEntity.getBody() + "";
-            WDToken wdToken = JSONObject.parseObject(body, WDToken.class);
-            System.out.println("获取token完成,返回信息为:" + body);
-            return wdToken;
-        } else {
-            return null;
-        }
-    }
-
-    private String md5_32(String msg) {
-        try {
-            MessageDigest md = MessageDigest.getInstance("MD5");
-            byte[] messageDigest = md.digest(msg.getBytes());
-            BigInteger no = new BigInteger(1, messageDigest);
-            String hashtext = no.toString(16);
-            while (hashtext.length() < 32) {
-                hashtext = "0" + hashtext;
-            }
-            return hashtext;
-        } catch (NoSuchAlgorithmException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    public AddressResult faildQuery(AddressResultEnum code, String message) {
-        return new AddressResult(code, message);
-    }
-
-}

+ 1 - 22
src/main/java/com/skyversation/poiaddr/addquery/Constant.java

@@ -4,7 +4,6 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
-import java.sql.SQLException;
 
 @Service
 public class Constant {
@@ -50,31 +49,11 @@ public class Constant {
         return "青浦".equals(getArea()) ? "310118" : "松江".equals(getArea()) ? "310117" : "310000";
     }
 
-    public static final String WD_USER_NAME = "yuanyi";
-    public static final String WD_USER_PWD = "yuanyi@123";
-    public static final String GET_TOKEN_URL = "http://10.235.245.226:7010/addrMatch/auth/getToken";
-    public static final String GET_ADDRESS_MEG_URL = "http://10.235.245.226:7010/addrMatch/addrApi/searchAddr";
-
     @PostConstruct
-    public void initDbConnection() throws SQLException {
+    public void initDbConnection() {
 //      加载驱动
         System.out.println("加载搜索服务id!");
         SJ_SZX_SEARCH_BY_NAME = "http://172.30.77.20:8084/openapi/" + searchServerId;
         System.out.println("服务接口:" + SJ_SZX_SEARCH_BY_NAME);
     }
-
-    public static String AMAP_GEO_URL = "https://restapi.amap.com/v3/geocode/geo";
-    public static String AMAP_SEARCH_NAME_V3 = "https://restapi.amap" +
-            ".com/v3/place/text";
-    public static String AMAP_SEARCH_TYPES = "010000|020000|030000|040000|050000|060000|070000|080000|090000" +
-            "|100000|110000|120000|130000|140000|150000|160000|170000|180000|190000|200000|220000|970000|980000|990000";
-
-    public static String AMAP_KEY = "161e0c673807a9586ba5a115da2a0112";
-
-    //    oauth和dms搭建服务器地址
-    public static String ServerBaseUrl = "http://121.43.55.7:";
-    //    DMS服务端口和路径
-    public static String Dms_Base_Url = ServerBaseUrl + "2101/proxy_dms";
-    //    Oauth服务端口和路径
-    public static String Oauth_Base_Url = ServerBaseUrl + "2101/proxy_oauth";
 }

+ 0 - 202
src/main/java/com/skyversation/poiaddr/addquery/TransfromDataTool.java

@@ -2,15 +2,12 @@ package com.skyversation.poiaddr.addquery;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.skyversation.poiaddr.bean.Address;
 import com.skyversation.poiaddr.bean.AddressResult;
 import com.skyversation.poiaddr.util.AddressTools;
-import com.skyversation.poiaddr.util.CoordTransform2;
 import com.skyversation.poiaddr.util.SplitAddress;
 import com.skyversation.poiaddr.util.status.AddressResultEnum;
 
 import java.util.ArrayList;
-import java.util.List;
 
 public class TransfromDataTool {
 
@@ -44,137 +41,6 @@ public class TransfromDataTool {
         return result;
     }
 
-    public AddressResult dbResultToResult(List<Address> list){
-        AddressResult result = new AddressResult();
-        result.setCode(AddressResultEnum.DB_RADIUS_SUCCESS);
-        result.setMessage("数据库周边查询");
-        result.setData(new ArrayList<>());
-
-        for(Address  addr : list){
-            result.getData().add(addressToContent(addr));
-        }
-        return result;
-    }
-
-    public AddressResult.ContentBean addressToContent(Address address){
-        AddressResult.ContentBean content = new AddressResult.ContentBean();
-
-        content.setPname(address.getCity());
-        content.setCityname(address.getCounty());
-        content.setAdname(address.getTown());
-        content.setAdnameCode(address.getTown_code());
-        content.setCommunity(address.getCommunity());
-        content.setCommunityCode(address.getCommunity_code());
-        content.setWgName(address.getGrid_name());
-        content.setWgCode(address.getGrid_code());
-        content.setType(address.getSource());
-        content.setAddress(address.getSourceaddress());
-        content.setName(address.getAddress());
-        content.setLocation(address.getLon() + "," + address.getLat());
-        content.setLat((double)address.getLat());
-        content.setLon((double)address.getLon());
-        content.setScore("rule_3");
-
-        AddressQueryEngine.getInstance().addContentWGWGrid(content);
-        return content;
-    }
-
-    public static AddressResult wdResultToResult(JSONObject json) {
-        AddressResult result = new AddressResult();
-        JSONArray array = json.getJSONObject("data").getJSONArray("addrList");
-        if (array == null || array.size() < 1) {
-            result.setCode(AddressResultEnum.RESULT_NULL);
-            return result;
-        }
-        for (int i = 0; i < array.size(); i++) {
-            JSONObject jsonObject = array.getJSONObject(i);
-            AddressResult.ContentBean content = new AddressResult.ContentBean();
-            content.setPname(jsonObject.getString("city"));
-            content.setCityname(jsonObject.getString("city"));
-            content.setAdname(jsonObject.getString("town"));
-            content.setCommunity(jsonObject.getString("community"));
-            content.setCommunityCode(jsonObject.getString("communitycode"));
-            content.setType(jsonObject.getString("datasource"));
-            content.setAddress(jsonObject.getString("addr"));
-            content.setDistance(jsonObject.getString("lv"));
-            content.setName(jsonObject.getString("addr"));
-            double[] points = CoordTransform2.getInstance().shcj_to_wgs84(
-                    Double.parseDouble(jsonObject.getString("x")), Double.parseDouble(jsonObject.getString("y")));
-            content.setLocation(points[0] + "," + points[1]);
-            content.setLon(points[0]);
-            content.setLat(points[1]);
-            if (result.getData() == null) {
-                result.setData(new ArrayList<>());
-            }
-            result.getData().add(content);
-        }
-        result.setCode(AddressResultEnum.WDJA_SUCCESS);
-        return result;
-    }
-
-    public static AddressResult szxResultToResult2(JSONArray array) {
-        AddressResult result = new AddressResult();
-        if (array == null || array.size() < 1) {
-            result.setCode(AddressResultEnum.RESULT_NULL);
-            return result;
-        }
-        for (int i = 0; i < array.size(); i++) {
-            JSONObject jsonObject = array.getJSONObject(i);
-            AddressResult.ContentBean content = new AddressResult.ContentBean();
-            content.setPname(jsonObject.getString("province"));
-            content.setCityname(jsonObject.getString("district"));
-            content.setAdname(jsonObject.getString("town"));
-            content.setType(jsonObject.getString("type"));
-            content.setAddress(jsonObject.getString("address"));
-            content.setName(jsonObject.getString("address"));
-            if (jsonObject.containsKey("location") && jsonObject.getJSONObject("location").containsKey("lat") && jsonObject.getJSONObject("location").containsKey("lng")) {
-                double[] points = CoordTransform2.getInstance().shcj_to_wgs84(
-                        Double.parseDouble(jsonObject.getJSONObject("location").getString("lat")), Double.parseDouble(jsonObject.getJSONObject("location").getString("lng")));
-                content.setLocation(points[0] + "," + points[1]);
-                content.setLat(points[0]);
-                content.setLon(points[1]);
-            }
-            if (result.getData() == null) {
-                result.setData(new ArrayList<>());
-            }
-            result.getData().add(content);
-        }
-        result.setCode(AddressResultEnum.WDJA_SUCCESS);
-        return result;
-    }
-
-    public static AddressResult szxResultToResult2(JSONObject jsonObject) {
-        AddressResult result = new AddressResult();
-        if (jsonObject == null || jsonObject.size() < 1) {
-            result.setCode(AddressResultEnum.RESULT_NULL);
-            return result;
-        }
-        AddressResult.ContentBean content = new AddressResult.ContentBean();
-        if (jsonObject.containsKey("总分") && jsonObject.get("总分") != null) {
-            content.setPname(jsonObject.getString("province"));
-            content.setCityname(jsonObject.getString("district"));
-            content.setAdname(jsonObject.getString("town"));
-            content.setType(jsonObject.getString("type"));
-            content.setAddress(jsonObject.getString("address"));
-            content.setName(jsonObject.getString("address"));
-            content.setSearchAddress(jsonObject.getString("searchAddress"));
-            content.setScore(jsonObject.getString("总分"));
-            if (jsonObject.containsKey("location") && jsonObject.getJSONObject("location").containsKey("lat") && jsonObject.getJSONObject("location").containsKey("lng")) {
-                double[] points = CoordTransform2.getInstance().shcj_to_wgs84(
-                        Double.parseDouble(jsonObject.getJSONObject("location").getString("lat")), Double.parseDouble(jsonObject.getJSONObject("location").getString("lng")));
-                content.setLocation(points[0] + "," + points[1]);
-                content.setLat(points[0]);
-                content.setLon(points[1]);
-            }
-            if (result.getData() == null) {
-                result.setData(new ArrayList<>());
-            }
-            result.getData().add(content);
-            result.setCode(AddressResultEnum.WDJA_SUCCESS);
-        }
-        return result;
-    }
-
     public static AddressResult szxResultToResult(JSONObject json, String searchAddress) {
         AddressResult result = new AddressResult();
         JSONArray array = json.getJSONArray("result");
@@ -222,72 +88,4 @@ public class TransfromDataTool {
         }
         return result;
     }
-
-    public static AddressResult gdResultToResult(JSONObject json) {
-        AddressResult result = new AddressResult();
-        JSONArray array = json.getJSONArray("geocodes");
-        if (array == null || array.size() < 1) {
-            result.setCode(AddressResultEnum.RESULT_NULL);
-            return result;
-        }
-        for (int i = 0; i < array.size(); i++) {
-            JSONObject jsonObject = array.getJSONObject(i);
-            AddressResult.ContentBean content = new AddressResult.ContentBean();
-            content.setPname(jsonObject.getString("city"));
-            content.setCityname(jsonObject.getString("city"));
-            content.setAdname(jsonObject.getString("district"));
-            content.setType(jsonObject.getString("level"));
-            content.setAddress(jsonObject.getString("formatted_address"));
-            content.setName(jsonObject.getString("street"));
-            String[] loc = jsonObject.getString("location").split(",");
-            double[] points = CoordTransform2.getInstance().gcj02_to_wgs84(
-                    Double.valueOf(loc[0]), Double.valueOf(loc[1]));
-            content.setLocation(points[0] + "," + points[1]);
-            content.setLon(points[0]);
-            content.setLat(points[1]);
-            if (result.getData() == null) {
-                result.setData(new ArrayList<>());
-            }
-            result.getData().add(content);
-        }
-        result.setCode(AddressResultEnum.GD_SUCCESS);
-        return result;
-    }
-
-    public static AddressResult gdV3ResultToResult(JSONArray array) {
-        AddressResult result = new AddressResult();
-        if (array == null || array.size() < 1) {
-            result.setCode(AddressResultEnum.RESULT_NULL);
-            return result;
-        }
-        try {
-            for (int i = 0; i < array.size(); i++) {
-                JSONObject jsonObject = array.getJSONObject(i);
-                AddressResult.ContentBean content = new AddressResult.ContentBean();
-                content.setPname(jsonObject.getString("pname"));
-                content.setCityname(jsonObject.getString("cityname"));
-                content.setAdname(jsonObject.getString("adname"));
-                content.setType(jsonObject.getString("type"));
-                content.setAddress(content.getCityname() + content.getAdname() + jsonObject.getString("address"));
-                content.setName(jsonObject.getString("name"));
-                String[] loc = jsonObject.getString("location").split(",");
-                double[] points = CoordTransform2.getInstance().gcj02_to_wgs84(
-                        Double.parseDouble(loc[0]), Double.parseDouble(loc[1]));
-                content.setLocation(points[0] + "," + points[1]);
-                content.setLon(points[0]);
-                content.setLat(points[1]);
-                if (result.getData() == null) {
-                    result.setData(new ArrayList<>());
-                }
-                result.getData().add(content);
-            }
-        } catch (Exception e) {
-            System.err.println("gdV3ResultToResult err:" + e);
-        }
-        result.setCode(AddressResultEnum.WDJA_SUCCESS);
-
-        result.setCode(AddressResultEnum.GDV3_SUCCESS);
-        return result;
-    }
-
 }

+ 0 - 31
src/main/java/com/skyversation/poiaddr/bean/WDToken.java

@@ -1,31 +0,0 @@
-package com.skyversation.poiaddr.bean;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@NoArgsConstructor
-@Data
-public class WDToken {
-
-    @JsonProperty("msg")
-    private String msg;
-    @JsonProperty("code")
-    private Integer code;
-    @JsonProperty("data")
-    private DataDTO data;
-    @JsonProperty("success")
-    private Boolean success;
-    private Long time;
-
-    @NoArgsConstructor
-    @Data
-    public static class DataDTO {
-        @JsonProperty("token")
-        private String token;
-    }
-
-    public String getToken(){
-        return data.getToken();
-    }
-}

+ 52 - 35
src/main/java/com/skyversation/poiaddr/service/AreaService.java

@@ -70,7 +70,7 @@ public class AreaService {
         System.out.println("<<<<<<<<------根据配置文件为AREA赋值:" + Constant.getArea());
         System.out.println("<<<<<<<<------当前AMAP_CITY_CODE:" + Constant.getAMAP_CITY_CODE());
 //      TODO 网络连通性测试,可以请求一下测试的市中心地址
-        /*try {
+        try {
             System.out.println("电脑最大线程数:" + Runtime.getRuntime().availableProcessors());
             System.out.println("<<<<<<<<------开始网络连通性测试");
             long startTime = System.currentTimeMillis();
@@ -81,7 +81,7 @@ public class AreaService {
             System.out.println(">>>>>>>>------网络连通性测试完成!用时" + (endTime - startTime) / 1000 + "秒!结果:" + addressResult);
         } catch (Exception e) {
             System.err.println(">>>>>>>>------网络连通性测试结果:" + e);
-        }*/
+        }
 //      TODO 数据库连通性测试
         try {
             System.out.println("<<<<<<<<------开始数据库连通性测试");
@@ -89,6 +89,22 @@ public class AreaService {
         } catch (Exception e) {
             System.err.println(">>>>>>>>------数据库连通性测试结果:" + e);
         }
+        //          查询callback表中最大的id和添加到callBackAllErrorAddrs列表中
+        try {
+            List<Map<String, Object>> callBackAddr = DbConnection.getInstance().runSqlStr("select * from t_address_callback");
+            if (callBackAddr != null && callBackAddr.size() == 1) {
+                for (Map<String, Object> item : callBackAddr) {
+                    Integer maxId = Integer.parseInt(item.get("id").toString());
+                    if (ScheduledTasks.callBackMaxId < maxId) {
+                        ScheduledTasks.callBackMaxId = maxId;
+                    }
+                    ScheduledTasks.callBackAllErrorAddrs.add(item.get("address").toString());
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
     }
 
     public void initPolygons() {
@@ -140,55 +156,55 @@ public class AreaService {
         System.out.println("<<<<<<<<------run geo data complete------>>>>>>>>>");
     }
 
-    public void callBackAddrs(List<String> addrs){
-        String maxIdSqlStr = "select id from t_address_callback order by id desc limit 1";
-        int maxId = 0;
+    /**
+     * 批量插入数据到callback表
+     */
+    public void callBackAddrs() {
+        StringBuilder sql = new StringBuilder("insert into t_address_callback (id,create_time,address,name,provice_name,city_name,town_name,community_name,status,process_status,is_new) values ");
+        for (String addr : ScheduledTasks.callBackAddrs) {
+            SplitAddress splitAddress = ShanghaiAddressSplitUtil.splitBestAddress(addr);
+            ScheduledTasks.callBackMaxId++;
+            sql.append("(").append(ScheduledTasks.callBackMaxId).append(1).append(",'").append(ScheduledTasks.getCurrentDateTime()).append("','").append(addr).append("','").append(splitAddress.getAddr()).append("','").append(splitAddress.getProvince()).append("','").append(splitAddress.getCity()).append("','").append(splitAddress.getStreet()).append("','").append(splitAddress.getCommunity()).append("',").append(0).append(",").append(0).append(",").append(1).append(") ,");
+        }
         try {
-            List<Map<String, Object>> datas = DbConnection.getInstance().runSqlStr(maxIdSqlStr);
-            if (datas != null && datas.size() == 1) {
-                maxId = Integer.parseInt(datas.get(0).get("id").toString());
-            }
+            DbConnection.getInstance().updateSql(sql.substring(0, sql.toString().length() - 2));
+            ScheduledTasks.callBackAddrs.clear();
+            System.out.println("数据回流成功");
         } catch (Exception e) {
             e.printStackTrace();
+            System.out.println("数据回流异常:" + e);
         }
-        for(String addr: addrs){
-            SplitAddress splitAddress = ShanghaiAddressSplitUtil.splitBestAddress(addr);
-            String sql = "insert into t_address_callback (id,create_time,address,name,provice_name,city_name,town_name,community_name,status,process_status,is_new) values (" +
-                    "" + maxId + 1 + ",'" + ScheduledTasks.getPreviousDateStr() + "','" + addr + "','" + splitAddress.getAddr() + "','" + splitAddress.getProvince() + "','" + splitAddress.getCity() + "','" + splitAddress.getStreet() + "','" + splitAddress.getCommunity() + "'," + 0 + "," + 0 + "," + 1 + ")";
-            try {
-                DbConnection.getInstance().updateSql(sql);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-
     }
 
+    /**
+     * 是否进入callBack表判断
+     *
+     * @param addrStr
+     */
     public void callBackErrorAddr(String addrStr) {
-//      查询回流列表中是否存在
-        if(!ScheduledTasks.callBackAddrs.contains(addrStr)){
-            ScheduledTasks.callBackAddrs.add(addrStr);
-        }
         System.out.println("尝试回流无结果数据:" + addrStr);
         SplitAddress splitAddress = ShanghaiAddressSplitUtil.splitBestAddress(addrStr);
         if (splitAddress.getStatus() == 3 || splitAddress.getStatus() == -1) {
             System.out.println("拒绝回流,检测到非地址");
             return;
-        }
-        String maxIdSqlStr = "select * from t_address_callback where status = 0 or status = 1";
-        try {
-            List<Map<String, Object>> datas = DbConnection.getInstance().runSqlStr(maxIdSqlStr);
-            if (datas != null && datas.size() == 1) {
-
+        } else {
+            //      查询回流列表中是否存在
+            if (!ScheduledTasks.callBackAllErrorAddrs.contains(addrStr)) {
+                ScheduledTasks.callBackAddrs.add(addrStr);
+                ScheduledTasks.callBackAllErrorAddrs.add(addrStr);
+                System.out.println("回流成功,等待进一检查处理");
+            } else {
+                System.out.println("回流列表中已存在该数据!");
             }
-        } catch (Exception e) {
-            e.printStackTrace();
         }
-
-
-        System.out.println("回流成功,等待进一检查处理");
     }
 
+    /**
+     * 数据库查询 尝试给出推荐结果
+     *
+     * @param splitAddress
+     * @return
+     */
     public List<Address> getRecommendAddress(SplitAddress splitAddress) {
         if (splitAddress.getCity() == null) {
             splitAddress.setCity("");
@@ -212,6 +228,7 @@ public class AreaService {
         }
     }
 
+    //    进行数据库查询
     public List<Address> getAddressPoisByAddr(SplitAddress splitAddress) {
         if (splitAddress.getAddr().contains("号")) {
             splitAddress.setSearchAddr(splitAddress.getAddr().substring(0, splitAddress.getAddr().lastIndexOf("号")));

+ 0 - 1
src/main/java/com/skyversation/poiaddr/util/AddressTools.java

@@ -488,7 +488,6 @@ public class AddressTools {
         for (int i = 0; i < array.size(); i++) {
             JSONObject obj = array.getJSONObject(i);
             obj.put("searchAddress", address);
-//            && obj.getString(param).contains(Constant.getArea())
             if (obj.containsKey(param) && obj.get(param) != null && !obj.getString(param).trim().isEmpty()) {
 //              得到返回的地址
                 String addr = obj.getString(param);

+ 43 - 11
src/main/java/com/skyversation/poiaddr/util/tasks/ScheduledTasks.java

@@ -1,11 +1,13 @@
 package com.skyversation.poiaddr.util.tasks;
 
 import com.skyversation.poiaddr.config.DbConnection;
+import com.skyversation.poiaddr.service.AreaService;
 import com.skyversation.poiaddr.service.impl.YyskAddressStandardizationServiceImpl;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
@@ -41,18 +43,47 @@ public class ScheduledTasks {
      * 一天执行一次,把callBack表中查询到的数据保存到地址库中,并删除callBack表有数据的记录
      */
     public static List<String> callBackAddrs = new ArrayList<>();
+    public static List<String> callBackAllErrorAddrs = new ArrayList<>();
+    public static Integer callBackMaxId = 0;
 
     @Resource
     private YyskAddressStandardizationServiceImpl yyskAddressStandardizationService;
 
 
-    @Scheduled(cron = "*/1 * * * * *")
+    /**
+     * 每10秒验证一次,是否已经缓存了1000条异常地址
+     * 是的话直接入库
+     */
+    @Scheduled(cron = "*/10 * * * * *")
     public void setCallBackAddrs() {
-        if (callBackAddrs.size() > 1000) {
+        if (callBackAddrs.size() >= 1000) {
+            AreaService.getInstance().callBackAddrs();
+        }
+    }
 
+    /**
+     * 每10分钟验证一次,是否已经缓存了异常地址,存在的话入库
+     */
+    @Scheduled(cron = "0 */10 * * * *")
+    public void setCallBackAddrs10() {
+        if (callBackAddrs.size() > 0) {
+            AreaService.getInstance().callBackAddrs();
         }
     }
 
+    /**
+     * (先不整)
+     * 回流表数据查询并更新
+     * 查询callback表中state为0的数据
+     * 根据address字段查询市中心接口
+     * 如果返回了正确的数据,入到地址库表中,并更新state为2
+     * 否则更新状态为1
+     */
+//    @Scheduled(cron = "0 30 2 * * ?")
+    public void dbdataCallBackTask() {
+        String sqlStr = "";
+    }
+
     /**
      * 每天凌晨一点跑地址表没跑过的数据
      */
@@ -106,15 +137,6 @@ public class ScheduledTasks {
         }
     }
 
-    /**
-     * 回流表数据查询并更新
-     * 分页查询
-     */
-    @Scheduled(cron = "0 30 2 * * ?")
-    public void dbdataCallBackTask() {
-
-    }
-
     public static String getPreviousDateStr() {
 //      获取当前日期
         LocalDate currentDate = LocalDate.now();
@@ -126,4 +148,14 @@ public class ScheduledTasks {
         return previousDate.format(formatter);
     }
 
+    /**
+     * 获取当前时间的方法
+     *
+     * @return
+     */
+    public static String getCurrentDateTime() {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-dd-MM hh:mm:ss");
+        return sdf.format(new Date());
+    }
+
 }

+ 0 - 27
src/main/resources/application.properties

@@ -3,30 +3,6 @@ server.servlet.context-path=/poiApi/
 spring.application.name=poiAddr
 spring.servlet.multipart.max-file-size=300MB
 spring.servlet.multipart.max-request-size=300MB
-# \u6570\u636E\u5E93\u914D\u7F6E\uFF08\u672C\u5730\u8C03\u8BD5\u73AF\u5883\uFF09
-#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/songjiang?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
-#spring.datasource.username=root
-#spring.datasource.password=root
-#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-# \u6570\u636E\u5E93\u914D\u7F6E\uFF08\u672C\u5730\u8C03\u8BD5\u73AF\u5883\uFF09
-#spring.datasource.url=jdbc:mysql://127.0.0.1:3307/songjiang?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
-#spring.datasource.username=root
-#spring.datasource.password=yysk1234
-#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-# \u6570\u636E\u5E93\u8FDE\u63A5\u4FE1\u606F\uFF08\u5F00\u53D1\u73AF\u5883\uFF09
-#spring.datasource.url=jdbc:transwarp2://172.30.75.126:31768/kjyy_dev
-#spring.datasource.username=dev_sjbdc_kjyy
-#spring.datasource.password=30DFBEABYi#5
-#spring.datasource.driver-class-name=io.transwarp.jdbc.QuarkDriver
-# \u6570\u636E\u5E93\u8FDE\u63A5\u4FE1\u606F\uFF08\u751F\u4EA7\u73AF\u5883\uFF09
-#spring.datasource.url=jdbc:argoDb://172.30.75.126:31768/dws
-#spring.datasource.username=prd_sjbdc_kjyy
-#spring.datasource.password=B9344157Yi#5
-#spring.datasource.driver-class-name=com.argoDb.jdbc.Driver
-# JPA \u914D\u7F6E
-#spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
-#spring.jpa.hibernate.ddl-auto=update
-#spring.jpa.show-sql=false
 # \u677E\u6C5F\u8857\u9547
 app.area=\u4E0A\u6D77
 app.town=\u5CB3\u9633\u8857\u9053,\u6C38\u4E30\u8857\u9053,\u65B9\u677E\u8857\u9053,\u4E2D\u5C71\u8857\u9053,\u5E7F\u5BCC\u6797\u8857\u9053,\u4E5D\u91CC\u4EAD\u8857\u9053,\u6CD7\u6CFE\u9547,\u4F58\u5C71\u9547,\u8F66\u58A9\u9547,\u65B0\u6865\u9547,\u6D1E\u6CFE\u9547,\u4E5D\u4EAD\u9547,\u6CD6\u6E2F\u9547,\u77F3\u6E56\u8361\u9547,\u65B0\u6D5C\u9547,\u53F6\u69AD\u9547,\u5C0F\u6606\u5C71\u9547,\u5929\u9A6C\u5C71\u9547
@@ -36,6 +12,3 @@ app.db.username=dev_sjbdc_kjyy
 app.db.password=30DFBEABYi#5
 app.db.driver=io.transwarp.jdbc.QuarkDriver
 app.db.jdbc_url=jdbc:transwarp2://172.30.75.126:32265/kjyy_dev
-# \u9752\u6D66\u8857\u9547
-#app.area=\u9752\u6D66
-#app.town2=\u6731\u5BB6\u89D2\u9547\u3001\u8D75\u5DF7\u9547\u3001\u5F90\u6CFE\u9547\u3001\u534E\u65B0\u9547\u3001\u91CD\u56FA\u9547\u3001\u767D\u9E64\u9547\u3001\u7EC3\u5858\u9547\u3001\u91D1\u6CFD\u9547\u3001\u590F\u9633\u8857\u9053\u3001\u76C8\u6D66\u8857\u9053\u3001\u9999\u82B1\u6865\u8857\u9053