package siso.edu.cn.controller;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.jsonschema.JsonSchema;
import com.fasterxml.jackson.databind.node.ObjectNode;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import siso.edu.cn.entity.*;
import siso.edu.cn.service.DeviceLocationService;
import sun.net.www.http.HttpClient;
import java.io.IOException;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @apiDefine deviceLocationGroup 设备实时位置管理接口
*/
@RestController
@RequestMapping(value = "/api/manage", produces = "application/json;charset=utf-8")
public class DeviceLocationController extends IControllerImpl {
// 基站信息转经纬度接口
public static final String AGPS_CONVERT_URL = "http://api.gpsspg.com/bs/?oid=%s&key=9564xy0zx29yu427ywz50439u49uu16370yxx&type=%s&bs=%s&hex=%s&to=%s&output=%s";
// 经纬度转地理信息接口
public static final String GECODE_CONVERT_URL = "https://restapi.amap.com/v3/geocode/regeo?key=f11511080fd76b66485b50902cb00a75&location=%s";
// 天气转换接口
public static final String WEATHER_CONVERT_URL = "http://v.juhe.cn/weather/geo?key=e0fca72351651e3c4e910ed848f57d0f&dtype=json&format=1&lon=%s&lat=%s";
private DeviceLocationService deviceLocationService;
private OkHttpClient httpClient = null;
@Autowired
public DeviceLocationController(DeviceLocationService deviceLocationService) {
this.deviceLocationService = deviceLocationService;
this.httpClient = new OkHttpClient();
}
/**
* @api {post} /api/manage/location 创建设备的实时位置
* @apiVersion 0.0.1
* @apiName createLocation
* @apiGroup deviceLocationGroup
*
* @apiParam {Number} device_id 设备ID
* @apiParam {String} device_time 设备记录时间
* @apiParam {Number} signal_quality 当前网络信号
* @apiParam {Number} device_on_off 设备开关机状态
* @apiParam {Number} battery_voltage 设备电压
* @apiParam {Number} [longitude] 设备位置经度
* @apiParam {Number} [longitude_direction] 设备位置经度方向
* @apiParam {Number} [latitude] 设备位置纬度
* @apiParam {Number} [latitude_direction] 设备位置纬度方向
* @apiParam {Number} [agps_station_num] AGPS基站数量
* @apiParam {Number} [nation_num_1] 设备的AGPS国家号1
* @apiParam {Number} [mobile_num_1] 设备的AGPS移动网络号1
* @apiParam {Number} [location_num_1] 设备的AGPS位置区域号1
* @apiParam {Number} [community_num_1] 设备的AGPS小区号1
* @apiParam {Number} [station_flag_1] 设备的AGPS基站标识号1
* @apiParam {Number} [signal_strength_1] 设备的AGPS信号强度1
* @apiParam {Number} [nation_num_2] 设备的AGPS国家号2
* @apiParam {Number} [mobile_num_2] 设备的AGPS移动网络号2
* @apiParam {Number} [location_num_2] 设备的AGPS位置区域号2
* @apiParam {Number} [community_num_2] 设备的AGPS小区号2
* @apiParam {Number} [station_flag_2] 设备的AGPS基站标识号2
* @apiParam {Number} [signal_strength_2] 设备的AGPS信号强度2
* @apiParam {Number} [nation_num_3] 设备的AGPS国家号3
* @apiParam {Number} [mobile_num_3] 设备的AGPS移动网络号3
* @apiParam {Number} [location_num_3] 设备的AGPS位置区域号3
* @apiParam {Number} [community_num_3] 设备的AGPS小区号3
* @apiParam {Number} [station_flag_3] 设备的AGPS基站标识号3
* @apiParam {Number} [signal_strength_3] 设备的AGPS信号强度3
* @apiParam {Number} [nation_num_4] 设备的AGPS国家号4
* @apiParam {Number} [mobile_num_4] 设备的AGPS移动网络号4
* @apiParam {Number} [location_num_4] 设备的AGPS位置区域号4
* @apiParam {Number} [community_num_4] 设备的AGPS小区号4
* @apiParam {Number} [station_flag_4] 设备的AGPS基站标识号4
* @apiParam {Number} [signal_strength_4] 设备的AGPS信号强度4
*
* @apiSuccess {String} code 返回码.
* @apiSuccess {String} msg 返回消息.
* @apiSuccess {Object} data JSON格式的对象.
*/
@RequestMapping(value = "/location", method = RequestMethod.POST)
public ResultEntity createLocation(@RequestParam("device_id") long deviceId,
@RequestParam("device_time") String deviceTime,
@RequestParam("signal_quality") int signalQuality,
@RequestParam("device_on_off") int deviceOnOff,
@RequestParam("battery_voltage") float batteryVoltage,
@RequestParam(name = "longitude", required = false, defaultValue = "-1") BigDecimal longitude,
@RequestParam(name = "longitude_direction", required = false, defaultValue = "-1") int longitudeDirection,
@RequestParam(name = "latitude", required = false, defaultValue = "-1") BigDecimal latitude,
@RequestParam(name = "latitude_direction", required = false, defaultValue = "-1") int latitudeDirection,
@RequestParam(name = "agps_station_num", required = false, defaultValue = "-1") int agpsStationNum,
@RequestParam(name = "nation_num_1", required = false, defaultValue = "-1") int nationNum1,
@RequestParam(name = "mobile_num_1", required = false, defaultValue = "-1") int mobileNum1,
@RequestParam(name = "location_num_1", required = false, defaultValue = "-1") int locationNum1,
@RequestParam(name = "community_num_1", required = false, defaultValue = "-1") int communityNum1,
@RequestParam(name = "station_flag_1", required = false, defaultValue = "-1") int stationFlag1,
@RequestParam(name = "signal_strength_1", required = false, defaultValue = "-1") int signalStrength1,
@RequestParam(name = "nation_num_2", required = false, defaultValue = "-1") int nationNum2,
@RequestParam(name = "mobile_num_2", required = false, defaultValue = "-1") int mobileNum2,
@RequestParam(name = "location_num_2", required = false, defaultValue = "-1") int locationNum2,
@RequestParam(name = "community_num_2", required = false, defaultValue = "-1") int communityNum2,
@RequestParam(name = "station_flag_2", required = false, defaultValue = "-1") int stationFlag2,
@RequestParam(name = "signal_strength_2", required = false, defaultValue = "-1") int signalStrength2,
@RequestParam(name = "nation_num_3", required = false, defaultValue = "-1") int nationNum3,
@RequestParam(name = "mobile_num_3", required = false, defaultValue = "-1") int mobileNum3,
@RequestParam(name = "location_num_3", required = false, defaultValue = "-1") int locationNum3,
@RequestParam(name = "community_num_3", required = false, defaultValue = "-1") int communityNum3,
@Reque
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
电力物联网系统.zip (102个子文件)
gradlew.bat 2KB
build_api_doc.bat 48B
jquery-ui.min.css 31KB
build.gradle 3KB
settings.gradle 40B
gradlew 5KB
index.html 293B
gradle-wrapper.jar 54KB
DeviceLocationController.java 33KB
DeviceController.java 22KB
DeviceLocationEntity.java 17KB
ViewGetDeviceLastLocationEntity.java 17KB
UserController.java 11KB
DeviceEntity.java 8KB
DeviceCmdEntity.java 8KB
ViewBindUserDepartmentRoleEntity.java 8KB
DepartmentController.java 8KB
ViewGetAllDeviceInfoEntity.java 7KB
RoleController.java 6KB
UserEntity.java 5KB
StatusController.java 5KB
DatabaseConfig.java 5KB
TypeController.java 4KB
DepartmentService.java 4KB
DepartmentEntity.java 4KB
WebConfig.java 4KB
RoleEntity.java 4KB
BindUserDepartmentRoleEntity.java 3KB
NettyConfig.java 3KB
RightEntity.java 3KB
RoleRightRelationEntity.java 3KB
UserRightRelationEntity.java 3KB
IDaoImpl.java 2KB
ReceiveDeviceDataEntity.java 2KB
ResultEntity.java 2KB
ElectricAppInitializer.java 2KB
StringProtocolInitalizer.java 2KB
DeviceLocationService.java 2KB
ServerHandler.java 2KB
StatusEntity.java 2KB
TypeEntity.java 2KB
AGpsResultEntity.java 2KB
LoginController.java 2KB
AGpsEntity.java 2KB
DeviceService.java 2KB
IDao.java 1KB
TcpSocketServer.java 1KB
BindUserDepartmentRoleService.java 1KB
ViewBindUserDepartmentRoleService.java 1KB
ReceiveDeviceDataService.java 1KB
UserService.java 1KB
IServiceImpl.java 1KB
GeocodeEntity.java 1KB
RightController.java 983B
ViewGetDeviceLastLocationService.java 839B
AddressComponentEntity.java 837B
RegeocodeEntity.java 826B
IControllerImpl.java 809B
ViewGetAllDeviceInfoService.java 804B
DeviceCmdService.java 728B
StatusService.java 703B
DeviceLocationInterceptor.java 702B
DeviceTypeClassifyEntity.java 689B
RoleService.java 666B
RightService.java 664B
TypeService.java 656B
RootConfig.java 501B
ViewBindUserDepartmentRoleDao.java 492B
ViewGetDeviceLastLocationDao.java 489B
BindUserDepartmentRoleDao.java 480B
RootController.java 477B
ViewGetAllDeviceInfoDao.java 474B
ReceiveDeviceDataDao.java 465B
DeviceLocationDao.java 456B
DepartmentDao.java 445B
DeviceCmdDao.java 441B
StatusDao.java 432B
DeviceDao.java 432B
RightDao.java 429B
UserDao.java 427B
RoleDao.java 426B
TypeDao.java 426B
IController.java 287B
FlagEntity.java 278B
Header.java 232B
IService.java 134B
jquery-ui.min.js 248KB
jquery-3.3.1.min.js 85KB
apidoc.json 222B
index.jsp 307B
jquery-3.3.1.min.map 129KB
flow.png 54KB
ui-icons_555555_256x240.png 7KB
ui-icons_777777_256x240.png 7KB
ui-icons_444444_256x240.png 7KB
ui-icons_ffffff_256x240.png 6KB
ui-icons_777620_256x240.png 5KB
ui-icons_cc0000_256x240.png 5KB
log4j.properties 1KB
gradle-wrapper.properties 230B
共 102 条
- 1
- 2
资源评论
博士僧小星
- 粉丝: 1946
- 资源: 5903
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功