Forráskód Böngészése

腾讯地图接口

小么熊🐻 1 éve
szülő
commit
1448b78b11

+ 4 - 3
nbjk-admin/src/main/java/com/miaxis/app/controller/wx/WxController.java

@@ -7,7 +7,6 @@ import com.miaxis.common.config.WxpayConfig;
 import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.domain.Response;
-import com.miaxis.common.core.domain.entity.SysDictData;
 import com.miaxis.common.core.domain.entity.UserInfo;
 import com.miaxis.common.enums.OrderStatusEnum;
 import com.miaxis.common.exception.CustomException;
@@ -22,7 +21,6 @@ import com.miaxis.wx.dto.WxOrderDTO;
 import com.miaxis.wx.service.IWxOrderService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import lombok.Data;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -35,7 +33,10 @@ import org.apache.http.util.EntityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.io.ClassPathResource;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;

+ 120 - 0
nbjk-admin/src/main/java/com/miaxis/app/controller/wx/WxMapController.java

@@ -0,0 +1,120 @@
+package com.miaxis.app.controller.wx;
+
+import com.alibaba.fastjson.JSONObject;
+import com.miaxis.common.config.TxMapConfig;
+import com.miaxis.common.constant.Constants;
+import com.miaxis.common.core.controller.BaseController;
+import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.sms.MD5Utils;
+import com.miaxis.dict.domain.DictCity;
+import com.miaxis.dict.service.IDictCityService;
+import com.miaxis.feign.service.IWxMapService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * 【APP-地图接口】Controller
+ *
+ * @author miaxis
+ * @date 2021-10-20
+ */
+@RestController
+@RequestMapping(Constants.STUDENT_PREFIX+"/wxmap")
+@Api(tags={"【APP-地图接口】"})
+public class WxMapController extends BaseController {
+    @Autowired
+    private IWxMapService wxMapService;
+
+    @Autowired
+    private IDictCityService dictCityService;
+
+    @Autowired
+    private TxMapConfig txMapConfig;
+
+    //经纬度(GCJ02坐标系),格式:
+    //location=lat<纬度>,lng<经度>
+    @GetMapping(value = "/getLocation")
+    @ApiOperation("获取题库详细信息")
+    public Response getLocation(@ApiParam(value = "格式为 lat<纬度>,lng<经度>。例如:39.984154,116.307490")String location) {
+        Map<String, Object> params = new HashMap<String, Object>();
+       // String location = "39.984154,116.307490";
+        String apiName = "/ws/geocoder/v1?";
+
+        params.put("key", txMapConfig.getKey());
+        params.put("location", location);
+
+        String sign = this.getSign(params, txMapConfig.getSecret(), apiName);
+        String sig = MD5Utils.MD5Encode(sign);
+
+        System.out.println("sign = " + sign);
+        System.out.println("sig = " + sig);
+
+        String result = wxMapService.getLocation(txMapConfig.getKey(),location,sig);
+        System.out.println(result);
+        JSONObject json = JSONObject.parseObject(result);
+        String status = json.get("status").toString();
+        System.out.println("status = " + status);
+
+        if(status.equals("0")) { //调用成功
+            JSONObject resultNode = (JSONObject)json.get("result");
+            JSONObject addressComponent = (JSONObject) resultNode.get("address_component");
+            String province = addressComponent.get("province").toString();
+            String city = addressComponent.get("city").toString();
+            System.out.println("province = " + province);
+            System.out.println("city = " + city);
+            DictCity dictCity = dictCityService.getDictCityByName(city);
+            System.out.println("parentCcode = " + dictCity.getParentcode());
+            System.out.println("code = " + dictCity.getCode());
+
+            //   List<Map<String,Object>> resultList = new ArrayList<>();
+
+            Map<String,Object> map = new HashMap<String,Object>();
+            map.put("province",province);
+            map.put("city",city);
+            map.put("provinceCode",dictCity.getParentcode());
+            map.put("cityCode",dictCity.getCode());
+            System.out.println(map);
+            return Response.success(map);
+        } else {
+            Response response = new Response(200,"腾讯地图接口请求错误");
+            return response;
+        }
+    }
+
+
+    public static String getSign(Map<String, Object> params, String secret, String apiName) {
+        Map<String, Object> sortMap = new TreeMap<String, Object>();
+        sortMap.putAll(params);
+        // 以k1=v1&k2=v2...方式拼接参数
+        StringBuilder builder = new StringBuilder();
+        for (Map.Entry<String, Object> s : sortMap.entrySet()) {
+            String k = s.getKey();
+            Object v = s.getValue();
+            builder.append(k).append("=").append(v).append("&");
+        }
+        if (!sortMap.isEmpty()) {
+            builder.deleteCharAt(builder.length() - 1);
+        }
+        builder.append(secret);
+        builder.insert(0, apiName);
+        return builder.toString();
+    }
+
+
+
+
+
+
+
+
+}
+

+ 4 - 0
nbjk-admin/src/main/resources/application-dev.yml

@@ -133,6 +133,10 @@ file:
     path: /data/www/wwwroot/ndata/upfile/feedback
     url: https://ndata1.zzxcx.net/upfile/feedback
 
+#腾讯地图
+txmap:
+    key: TYIBZ-T6FH7-EEBXW-PQNLS-NPAL7-ZVFYT
+    secret: FpPyvw07CBEcYmJFraYkYea64fpoqaX
 
 
 

+ 4 - 0
nbjk-admin/src/main/resources/application-local.yml

@@ -133,6 +133,10 @@ file:
     path: G:\中正\题库图\ndata\upfile\feedback
     url: https://ndata1.zzxcx.net/upfile/feedback
 
+#腾讯地图
+txmap:
+    key: TYIBZ-T6FH7-EEBXW-PQNLS-NPAL7-ZVFYT
+    secret: FpPyvw07CBEcYmJFraYkYea64fpoqaX
 
 
 

+ 6 - 1
nbjk-admin/src/main/resources/application-prod.yml

@@ -128,4 +128,9 @@ geo:
 #File文件保存地址
 file:
     path: /data/www/wwwroot/ndata/upfile/feedback
-    url: https://ndata.zzxcx.net/upfile/feedback
+    url: https://ndata.zzxcx.net/upfile/feedback
+
+#腾讯地图
+txmap:
+    key: TYIBZ-T6FH7-EEBXW-PQNLS-NPAL7-ZVFYT
+    secret: FpPyvw07CBEcYmJFraYkYea64fpoqaX

+ 20 - 3
nbjk-admin/src/test/java/com/miaxis/test/WxMapTest.java

@@ -3,6 +3,8 @@ package com.miaxis.test;
 import com.alibaba.fastjson.JSONObject;
 import com.miaxis.NbjkApplication;
 import com.miaxis.common.sms.MD5Utils;
+import com.miaxis.dict.domain.DictCity;
+import com.miaxis.dict.service.IDictCityService;
 import com.miaxis.feign.service.IWxMapService;
 import com.miaxis.wx.dto.WxMaterialList;
 import com.miaxis.wx.service.IWxGzhService;
@@ -14,9 +16,7 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
 import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.TreeMap;
+import java.util.*;
 
 @SpringBootTest(classes = NbjkApplication.class)
 @RunWith(SpringRunner.class)
@@ -25,6 +25,10 @@ public class WxMapTest {
     @Autowired
     private IWxMapService wxMapService;
 
+    @Autowired
+    private IDictCityService dictCityService;
+
+
     @Test
     public void getLocation() {
         Map<String, Object> params = new HashMap<String, Object>();
@@ -55,6 +59,19 @@ public class WxMapTest {
             String city = addressComponent.get("city").toString();
             System.out.println("province = " + province);
             System.out.println("city = " + city);
+            DictCity dictCity = dictCityService.getDictCityByName(city);
+            System.out.println("parentCcode = " + dictCity.getParentcode());
+            System.out.println("code = " + dictCity.getCode());
+
+         //   List<Map<String,Object>> resultList = new ArrayList<>();
+
+            Map<String,Object> map = new HashMap<String,Object>();
+            map.put("province",province);
+            map.put("city",city);
+            map.put("provinceCode",dictCity.getParentcode());
+            map.put("cityCode",dictCity.getCode());
+            System.out.println(map);
+
         } else {
 
         }

+ 19 - 0
nbjk-common/src/main/java/com/miaxis/common/config/TxMapConfig.java

@@ -0,0 +1,19 @@
+package com.miaxis.common.config;
+
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+@ConfigurationProperties(prefix = "txmap")
+public class TxMapConfig {
+
+    //key
+    private String key;
+    //访问路径url
+    private String secret;
+
+
+}

+ 1 - 0
nbjk-service/src/main/java/com/miaxis/exam/dto/ExamInfoDto.java

@@ -16,6 +16,7 @@ import lombok.Data;
 public class ExamInfoDto {
 
     @JsonIgnore
+    @ApiModelProperty(value = "用户ID",hidden = true)
     private transient Long userId;
 
     @ApiModelProperty(value = "考场名称")