广州市综治平台后端
xusd
2025-06-07 36306491396230522fa20585c2621a7fc899849a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package cn.huge.module.grid.service;
 
import cn.huge.base.common.bo.R;
import cn.huge.base.common.utils.HttpClientUtils;
import cn.huge.base.common.utils.MapUtils;
import cn.huge.base.common.utils.PointXY;
import cn.huge.base.common.utils.SpringContextUtil;
import cn.huge.module.grid.domain.vo.GridCoordinateRequestVo;
import cn.huge.module.grid.domain.vo.HeadVo;
import cn.huge.module.sys.dto.GridCoordinateDTO;
import cn.huge.module.sys.vo.GridCoordinateVo;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
 
import java.util.HashMap;
import java.util.UUID;
@Slf4j
@Service
public class GridCoordinateService {
    @Value("${grid.url:http://219.137.166.84:8061}")
    private String gridUrl;
    private String testUrl = "http://183.2.142.21:9007";
    @Value("${grid.username:mtxt0011}")
    private String userName;
    @Value("${grid.password}")
    private String passWord;
    @Value("${grid.secret:BZb2hLCx05}")
    private String secret;
    @Value("${grid.passid:b08c0ec0-772d-caf8-5c9b-1f7d86295a95}")
    private String passid;
    public HashMap<String,String> initHeadVo() {
        long timestamp = System.currentTimeMillis()/1000;
        HashMap<String,String> headVo = new HashMap<>();
        headVo.put("x-rio-paasid",passid);
        headVo.put("x-rio-timestamp",timestamp+"");
        headVo.put("x-rio-nonce","mt");
        headVo.put("x-rio-signature", DigestUtils.sha256Hex(timestamp+secret+"mt"+timestamp));
        return headVo;
    }
 
    /**
     * 根据坐标获取网格信息 bd09 (BD-09)
     */
    public R<GridCoordinateDTO> getGridInfoBd09(GridCoordinateVo gridCoordinateVo) {
 
        log.info("BD-09:{}", JSON.toJSONString(gridCoordinateVo));
        // 百度坐标系(BD-09)转WGS坐标
        PointXY pointXY = MapUtils.bd09towgs84(gridCoordinateVo.getLongitude(),gridCoordinateVo.getLatitude());
        gridCoordinateVo.setLongitude(pointXY.getLon());
        gridCoordinateVo.setLatitude(pointXY.getLat());
        return getGridInfo(gridCoordinateVo);
    }
 
    /**
     * 根据坐标获取网格信息 wgs84 (WGS-84)
     */
    public R<GridCoordinateDTO> getGridInfo(GridCoordinateVo gridCoordinateVo) {
        log.info("gridCoordinateVo:{}", JSON.toJSONString(gridCoordinateVo));
        HashMap<String,String> headVo=initHeadVo();
        log.info("requestVo:{}", JSON.toJSONString(gridCoordinateVo));
        String s;
        try {
            // String httpPostUrl = gridUrl + "/sys/getInfoByPoint";
            // log.info("httpPostUrl:{}", httpPostUrl);
            // s = HttpClientUtils.httpPostRaw(httpPostUrl, JSON.toJSONString(requestVo), new HashMap<>(), "utf-8");
            // 开发环境
            if (SpringContextUtil.checkDev()) {
                log.info("httpPostUrl:{}",testUrl + "/api/thrid/grid/coordinate/getGridInfoBd09");
                s = HttpClientUtils.httpPostRaw(testUrl + "/api/thrid/grid/coordinate/getGridInfoBd09", JSON.toJSONString(gridCoordinateVo), new HashMap<>(), "utf-8");
            }else {
                log.info("httpPostUrl:{}",gridUrl + "/sys/getInfoByPoint");
                s = HttpClientUtils.httpPostRaw(gridUrl + "/sys/getUserByToken", JSON.toJSONString(gridCoordinateVo), headVo, "utf-8");
            }
        } catch (Exception e) {
            log.info("xsderror:{}", e);
            throw new RuntimeException(e);
        }
        log.info("res:{}", s);
        GridCoordinateDTO gridCoordinateDto = JSONObject.parseObject(s).getObject("data", GridCoordinateDTO.class);
        String msg = JSONObject.parseObject(s).getString("desc");
        return R.ok(gridCoordinateDto,msg);
    }
}