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);
|
}
|
}
|