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 initHeadVo() { long timestamp = System.currentTimeMillis()/1000; HashMap 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 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 getGridInfo(GridCoordinateVo gridCoordinateVo) { log.info("gridCoordinateVo:{}", JSON.toJSONString(gridCoordinateVo)); HashMap 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); } }