# SpringbootPulsar **Repository Path**: volturihao/springboot-pulsar ## Basic Information - **Project Name**: SpringbootPulsar - **Description**: Springboot - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-03 - **Last Updated**: 2025-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 环境配置 maven + jdk1.8 # 项目运行流程 1.项目启动时会调用DeviceUtil中的init()来获取SN码设备id映射表,每天0:05时DeviceUtil会更新设备列表 2.用户发出鉴权请求,AuthController接收,调用AuthService对应方法返回token和refreshToken 2.用户携带token发出数据请求,由BaseInfoController接收(Controller层),调用BaseInfoService对应方法(Service层) 3.BaseInfoService首先根据设备映射表由SN码获取设备id,调用对应Service方法,使用传入的权限Token调用心跳包接口(http://47.92.164.101:8080/api/plugins/telemetry/DEVICE/12588900-9622-11ed-a0e9-537f02ef31a7/values/timeseries)获取基本数据以及编码,对于编码再调用DecodeUtil进行解码,数据封装到对应的实体类,再封装成Result({code,success,data,msg}格式)返回给BaseInfoController 4.BaseInfoController收到BaseInfoService返回的Result,再次返回给请求方,形成json数据 # 项目文件详细说明 ## controller ### BaseInfoController.java Controller层代码,用于接受用户请求[/openapi/v1.0/gateway/](/openapi/v1.0/gateway/detail?carNo=787986982814&imei=),调用service层返回结果 (额外建立了一个接口来接收refreshDevice请求手动刷新设备列表,目前还有问题这个) ### AuthController.java ## service ### BaseInfoService.java 定义了service层接口 ### impl/BaseInfoServiceImpl.java 实现了上面接口,调用心跳包接口http://47.92.164.101:8080/api/plugins/telemetry/DEVICE/12588900-9622-11ed-a0e9-537f02ef31a7/values/timeseries获取所需要的数据并包装为实体类返回 业务查询接口都在这里面实现 ### AuthService.java 定义了获取token的service层接口 ### impl/AuthServiceImpl.java 实现了上面的接口 ### OnOffStatusService.java 获取在线离线状态的接口 ## entity 实体类,按照文档所需数据定义,返回给请求方形成json数据 ## util 各种工具类 ### AlarmUtil.java 定义告警编号和名称,方便生成结果 ### ChargeStatus.java 枚举类,电池状态 ### DecodeUtil.java 解码工具类,通过读取心跳包中DATA编码进行解码,获取所需要的额外信息 ### DeviceUtil.java 获取设备列表的工具类,项目开始时自动调用init()获取设备列表,建立SN码与设备id的映射表,之后每天0:05重新获取一次来刷新设备列表,也可通过BaseInfoController中定义的refreshDevice接口进行手动刷新 ### HttpClientUtil.java httpclient工具类,用于调用http接口来获取所需要的数据 ### Result.java 把BatteryBaseInfo实体类进一步包装为{code,success,data,msg}的形式,最终返回给请求方的是这个 ### ResultCode.java 枚举类,定义了Result的返回状态码code ### TokenUtil.java(已弃用) 获取和刷新鉴权Token的工具类,项目启动时自动调用init()来获取Token和refreshToken,之后每小时刷新一次,调用心跳包接口等都直接使用这里获取的Token