|
|
@@ -1,341 +0,0 @@
|
|
|
-package com.yunfeiyun.agmp.iots.core.http;
|
|
|
-
|
|
|
-import cn.hutool.core.bean.BeanUtil;
|
|
|
-import cn.hutool.core.map.MapUtil;
|
|
|
-import cn.hutool.http.HttpRequest;
|
|
|
-import cn.hutool.http.HttpResponse;
|
|
|
-import com.alibaba.fastjson2.JSON;
|
|
|
-import com.alibaba.fastjson2.JSONArray;
|
|
|
-import com.alibaba.fastjson2.JSONObject;
|
|
|
-import com.yunfeiyun.agmp.common.utils.JSONUtils;
|
|
|
-import com.yunfeiyun.agmp.iot.common.constant.device.xmzn.XmznEnumCtrlCode;
|
|
|
-import com.yunfeiyun.agmp.iot.common.constant.devicetype.ServiceNameConst;
|
|
|
-import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotAdznReqVo;
|
|
|
-import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotXmznCtrlReqVo;
|
|
|
-import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotXmznReqVo;
|
|
|
-import com.yunfeiyun.agmp.iot.common.domain.resvo.IotAdznResVo;
|
|
|
-import com.yunfeiyun.agmp.iot.common.domain.resvo.IotXmznResVo;
|
|
|
-import com.yunfeiyun.agmp.iots.common.annotate.HttpCore;
|
|
|
-import com.yunfeiyun.agmp.iots.device.common.adzn.AdznApi;
|
|
|
-import com.yunfeiyun.agmp.iots.device.common.xmzn.XmznApi;
|
|
|
-import com.yunfeiyun.agmp.iots.device.common.xmzn.XmznEnumRetCode;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.apache.http.util.TextUtils;
|
|
|
-import springfox.documentation.builders.RequestParameterBuilder;
|
|
|
-
|
|
|
-/**
|
|
|
- * 爱迪智农 http client
|
|
|
- */
|
|
|
-@Slf4j
|
|
|
-@HttpCore(serviceName = ServiceNameConst.SERVICE_ADZN_GSSQ)
|
|
|
-public class AdznHttpClient extends HttpClient{
|
|
|
-
|
|
|
- public final static String TAG = "【爱迪智农】";
|
|
|
-
|
|
|
- /**
|
|
|
- * 直接配置一个固定的token(userid)
|
|
|
- */
|
|
|
- public final static boolean NEED_LOGIN = false;
|
|
|
-
|
|
|
- /**
|
|
|
- * 已登录凭证
|
|
|
- */
|
|
|
- private String token;
|
|
|
-
|
|
|
- /**
|
|
|
- * 厂商标识
|
|
|
- */
|
|
|
- private String firmBid;
|
|
|
-
|
|
|
- /*@Autowired
|
|
|
- private IIotFirmService iotFirmService;*/
|
|
|
-
|
|
|
- /**
|
|
|
- * 标记是否已登录
|
|
|
- */
|
|
|
- private boolean isLogin = false;
|
|
|
-
|
|
|
-
|
|
|
- private AdznHttpConfig adznHttpConfig;
|
|
|
-
|
|
|
-
|
|
|
- public String getFirmBid(){
|
|
|
- return firmBid;
|
|
|
- }
|
|
|
-
|
|
|
- public boolean isLogin(){
|
|
|
- return isLogin;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 初始化:
|
|
|
- * 构造一个 http客户端实例;
|
|
|
- * 并登录(获取token);
|
|
|
- *
|
|
|
- * 就绪:
|
|
|
- * 提供调用API接口方法(默认提供异步调用,由调用者提供回调函数来处理响应数据)
|
|
|
- *
|
|
|
- * @param httpConfig
|
|
|
- */
|
|
|
- @Override
|
|
|
- public void init(String firmBid,HttpConfig httpConfig, String devtypeBid){
|
|
|
- super.init(firmBid,httpConfig, devtypeBid);
|
|
|
-
|
|
|
- adznHttpConfig = (AdznHttpConfig)httpConfig;
|
|
|
-
|
|
|
- if(adznHttpConfig==null){
|
|
|
- log.error(TAG+"对接配置 null");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- this.firmBid = firmBid;
|
|
|
-
|
|
|
-/* IotFirm findFirm = iotFirmService.selectIotFirmByName(XmznConst.FIRM_NAME);
|
|
|
- if(findFirm!=null){
|
|
|
- firmBid = findFirm.getFirmBid();
|
|
|
- }*/
|
|
|
-
|
|
|
- if(TextUtils.isEmpty(this.firmBid)){
|
|
|
- log.error(TAG+"厂家标识 empty");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- if(NEED_LOGIN){
|
|
|
- login();
|
|
|
- }else{
|
|
|
- log.info(TAG+"无需登录");
|
|
|
- token = adznHttpConfig.getUserID();
|
|
|
- isLogin = true;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public void login(){
|
|
|
-
|
|
|
- if (adznHttpConfig == null
|
|
|
- || TextUtils.isEmpty(adznHttpConfig.getAcctount())
|
|
|
- || TextUtils.isEmpty(adznHttpConfig.getPwd())) {
|
|
|
- log.error(TAG+"登录参数 empty");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- IotAdznReqVo reqVo = new IotAdznReqVo();
|
|
|
- reqVo.setName(adznHttpConfig.getAcctount());
|
|
|
- reqVo.setPwd(adznHttpConfig.getPwd());
|
|
|
-
|
|
|
- HttpRequest.post(AdznApi.BASE_URL+ AdznApi.API_GET_TOKEN)
|
|
|
- .form(BeanUtil.beanToMap(reqVo,false,true))
|
|
|
- .then(httpResponse -> {
|
|
|
-
|
|
|
- IotAdznResVo resp = JSON.parseObject(httpResponse.body(), IotAdznResVo.class);
|
|
|
-
|
|
|
- if(resp==null){
|
|
|
- log.error(TAG+"接口返回的不是json!");
|
|
|
- }else{
|
|
|
- if(resp.getIsSuccess()){
|
|
|
- if(TextUtils.isEmpty(resp.getUserID())){
|
|
|
- log.error(TAG+"token emtpy");
|
|
|
- }else{
|
|
|
- token = resp.getUserID();
|
|
|
- isLogin = true;
|
|
|
- log.info(TAG+"登录成功(取到新token了)");
|
|
|
- }
|
|
|
- }else{
|
|
|
- log.error(TAG+"登录失败");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 查询设备列表
|
|
|
- */
|
|
|
- public void reqDeviceList(OnResp<IotAdznReqVo,IotAdznResVo> onResp){
|
|
|
-
|
|
|
- if(TextUtils.isEmpty(token)){
|
|
|
- log.error(TAG+"未登录");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- IotAdznReqVo reqVo = new IotAdznReqVo();
|
|
|
- reqVo.setUserID(token);
|
|
|
-
|
|
|
- HttpRequest
|
|
|
- .post(AdznApi.BASE_URL+ AdznApi.API_REQ_DEVICE_LIST)
|
|
|
- .form(BeanUtil.beanToMap(reqVo,false,true))
|
|
|
- .then(httpResponse -> {
|
|
|
-
|
|
|
- IotAdznResVo resp = JSON.parseObject(httpResponse.body(), IotAdznResVo.class);
|
|
|
-
|
|
|
- if(resp==null){
|
|
|
- if(onResp!=null){
|
|
|
- onResp.onFail(500,"接口返回的不是json!");
|
|
|
- }
|
|
|
-
|
|
|
- }else{
|
|
|
-
|
|
|
- if(resp.getIsSuccess()){
|
|
|
- log.debug(TAG+"操作成功 {}",resp);
|
|
|
- if(onResp!=null){
|
|
|
- onResp.onSuccess(reqVo,resp);
|
|
|
- }
|
|
|
-
|
|
|
- }else{
|
|
|
- log.error(TAG+"操作失败 {}",resp);
|
|
|
- if(onResp!=null){
|
|
|
- onResp.onError(resp);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 根据设备ID,取最新数据
|
|
|
- * 支持一次查询多个设备,逗号分隔
|
|
|
- * @param devID
|
|
|
- * @param onResp
|
|
|
- */
|
|
|
- public void reqLatestData(String devID, OnResp<IotAdznReqVo,IotAdznResVo> onResp){
|
|
|
-
|
|
|
-
|
|
|
- IotAdznReqVo req = new IotAdznReqVo();
|
|
|
- req.setUserID(token);
|
|
|
- req.setDevID(devID);
|
|
|
-
|
|
|
- HttpRequest.post(AdznApi.BASE_URL+ AdznApi.API_REQ_LATEST_DATA)
|
|
|
- .form(BeanUtil.beanToMap(req,false,true))
|
|
|
- .then(httpResponse -> {
|
|
|
-
|
|
|
- IotAdznResVo resp = JSON.parseObject(httpResponse.body(), IotAdznResVo.class);
|
|
|
-
|
|
|
- if(resp==null){
|
|
|
- if(onResp!=null){
|
|
|
- onResp.onFail(500,"接口返回的不是json!");
|
|
|
- }
|
|
|
- }else{
|
|
|
- if(resp.getIsSuccess()){
|
|
|
-
|
|
|
- log.debug(TAG+"操作成功 {}",resp);
|
|
|
- if(onResp!=null){
|
|
|
- onResp.onSuccess(req,resp);
|
|
|
- }
|
|
|
-
|
|
|
- }else{
|
|
|
-
|
|
|
- log.error(TAG+"操作失败 {}",resp);
|
|
|
- if(onResp!=null){
|
|
|
- onResp.onError(resp);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 查询历史数据
|
|
|
- * (指定设备、时间段)
|
|
|
- * 目前未使用
|
|
|
- *
|
|
|
- * @param devID
|
|
|
- * @param startTime
|
|
|
- * @param stopTime
|
|
|
- * @param onResp
|
|
|
- */
|
|
|
- public void reqData(String devID, String startTime, String stopTime, OnResp onResp){
|
|
|
-
|
|
|
- IotAdznReqVo req = new IotAdznReqVo();
|
|
|
- req.setUserID(token);
|
|
|
- req.setDevID(devID);
|
|
|
- req.setStartTime(startTime);
|
|
|
- req.setEndTime(stopTime);
|
|
|
-
|
|
|
- HttpRequest.post(AdznApi.BASE_URL+ AdznApi.API_REQ_DATA)
|
|
|
- .form(BeanUtil.beanToMap(req,false,true))
|
|
|
- .then(httpResponse -> {
|
|
|
-
|
|
|
- IotAdznResVo resp = JSON.parseObject(httpResponse.body(), IotAdznResVo.class);
|
|
|
-
|
|
|
- if(resp==null){
|
|
|
- if(onResp!=null){
|
|
|
- onResp.onFail(500,"接口返回的不是json!");
|
|
|
- }
|
|
|
- }else{
|
|
|
- if(resp.getIsSuccess()){
|
|
|
-
|
|
|
- log.debug(TAG+"操作成功 {}",resp);
|
|
|
- if(onResp!=null){
|
|
|
- onResp.onSuccess(req,resp);
|
|
|
- }
|
|
|
-
|
|
|
- }else{
|
|
|
-
|
|
|
- log.error(TAG+"操作失败 {}",resp);
|
|
|
- if(onResp!=null){
|
|
|
- onResp.onError(resp);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 重新定位
|
|
|
- * 目前未使用
|
|
|
- * @param devID
|
|
|
- * @param onResp
|
|
|
- */
|
|
|
- public void reqRepos(String devID, OnResp<IotAdznReqVo,IotAdznResVo> onResp){
|
|
|
-
|
|
|
-
|
|
|
- IotAdznReqVo req = new IotAdznReqVo();
|
|
|
- req.setUserID(token);
|
|
|
- req.setDevID(devID);
|
|
|
-
|
|
|
- HttpRequest.post(AdznApi.BASE_URL+ AdznApi.API_REQ_REPOS)
|
|
|
- .form(BeanUtil.beanToMap(req,false,true))
|
|
|
- .then(httpResponse -> {
|
|
|
-
|
|
|
- IotAdznResVo resp = JSON.parseObject(httpResponse.body(), IotAdznResVo.class);
|
|
|
-
|
|
|
- if(resp==null){
|
|
|
- if(onResp!=null){
|
|
|
- onResp.onFail(500,"接口返回的不是json!");
|
|
|
- }
|
|
|
- }else{
|
|
|
-
|
|
|
- if(resp.getIsSuccess()){
|
|
|
- log.debug(TAG+"操作成功 {}",resp);
|
|
|
- if(onResp!=null){
|
|
|
- onResp.onSuccess(req,resp);
|
|
|
- }
|
|
|
- }else{
|
|
|
- log.error(TAG+"操作失败 {}",resp);
|
|
|
- if(onResp!=null){
|
|
|
- onResp.onError(resp);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-}
|