Commit bad30f33 authored by caotao's avatar caotao

固德威相关代码提交

parent e2b06a0c
package com.yeejoin.amos.api.householdapi.Utils;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.api.householdapi.constant.GoLangConstant;
import com.yeejoin.amos.api.householdapi.constant.GoodWeConstant;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.houseapi.HouseholdPvProducerInfo;
import com.yeejoin.amos.api.householdapi.face.orm.mapper.tdengine.GolangStationMapper;
import com.yeejoin.amos.api.householdapi.face.service.impl.HouseholdPvProducerInfoServiceImpl;
import com.yeejoin.amos.openapi.enums.PVProducerInfoEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestParam;
import org.typroject.tyboot.component.cache.Redis;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.*;
@Component
public class GoodWeRequestUtil {
private final String redisKey = "GOODWE_REQUEST_TOKEN";
@Autowired
private HouseholdPvProducerInfoServiceImpl householdPvProducerInfoServiceImpl;
@Autowired
private GolangStationMapper golangStationMapper;
private RedisUtils redisUtils;
/**
* @return HashMap<String, Object> 发送请求前的准备 准备header信息
* @deprecated 根据厂商编码获取厂商的hearer
*/
public HashMap<String, Object> getHeaderOfGolang() {
HashMap<String, Object> hashMap = new HashMap<>();
HashMap<String, String> hashMaphead = new HashMap<>();
String url = GoLangConstant.baseurl + GoLangConstant.tokenurl;
hashMap.put("apiurl", GoLangConstant.baseurl);
hashMaphead.put("Content-type", "application/json;charset=UTF-8");
hashMaphead.put("Authorization", "API " + GoLangConstant.prodcerappid);
hashMaphead.put("Content-MD5", null);
hashMaphead.put("Date", GoLangHeaderUtils.getGMTTime());
hashMap.put("header", hashMaphead);
hashMap.put("appsecret", GoLangConstant.prodcerappsecret);
public HashMap<String, String> getHeaderOfGoodWE() {
HashMap<String,String> requestHeader = new HashMap<>();
if(ObjectUtil.isNotEmpty(redisUtils.get(redisKey))){
requestHeader.put("token",redisUtils.get(redisKey).toString());
return requestHeader;
}
HashMap<String, String> hashMap = new HashMap<>();
String url = GoodWeConstant.baseurl+GoodWeConstant.tokenurl;
Map<String,String> params = new HashMap<>();
params.put("account",GoodWeConstant.account);
params.put("pwd",GoodWeConstant.password);
String requestParams = JSON.toJSONString(params);
String respone = HttpUtil.createPost(url).headerMap(null, false).
body(requestParams).execute().body();
JSONObject jsonObject = JSON.parseObject(respone);
if(jsonObject.getString("code").equals("0")){
JSONObject jsonObject1 = jsonObject.getJSONObject("data");
hashMap.put("token",jsonObject1.getString("token"));
redisUtils.expire(redisKey,jsonObject1.getLong("expire")-10);
}
return hashMap;
}
......@@ -59,13 +71,8 @@ public class GoodWeRequestUtil {
JSONArray jsonArray = null;
List<T> result = new ArrayList<>();
try {
HashMap<String, Object> producerInfo = getHeaderOfGolang();
String baseurl = (String) producerInfo.get("apiurl");
HashMap<String, String> headMap = (HashMap<String, String>) producerInfo.get("header");
String orginalAuthorization = headMap.get("Authorization") + ":";
String url = baseurl + apiurl;
String appsecret = (String) producerInfo.get("appsecret");
JLYHeaderMapHandler(params, headMap, orginalAuthorization, appsecret, apiurl);
HashMap<String, String> headMap = getHeaderOfGoodWE();
String url = GoodWeConstant.baseurl + apiurl;
respone = sendRequest(requestMethod, url, requestParmInfo, headMap);
jsonArray = handlerResponseByResultResolverule(ResultResolveRule, respone);
if (!ObjectUtils.isEmpty(jsonArray)) {
......@@ -120,27 +127,6 @@ public class GoodWeRequestUtil {
return respone;
}
/***
*
* @param params 参数字符窜
* @param headMap header头
* @param orginalAuthorization 原始的orginalAuthorization
* @param appsecret appsecret
* @desc 锦浪云请求参数及head头处理
*/
public void JLYHeaderMapHandler(String params, HashMap<String, String> headMap, String orginalAuthorization, String appsecret, String apiurl) {
String contentMD5 = GoLangHeaderUtils.getDigest(params);
headMap.put("Date", GoLangHeaderUtils.getGMTTime());
String param = "POST" + "\n" + contentMD5 + "\n" + "application/json" + "\n" + headMap.get("Date") + "\n" + apiurl;
String sign = "";
try {
sign = GoLangHeaderUtils.HmacSHA1Encrypt(param, appsecret);
} catch (Exception e) {
throw new RuntimeException(e);
}
headMap.put("Content-MD5", contentMD5);
headMap.put("Authorization", orginalAuthorization + sign);
}
/**
* @param pageSizeResovle
......
package com.yeejoin.amos.api.householdapi.constant;
import java.time.format.DateTimeFormatter;
/**
* 固德威常量
*/
public class GoodWeConstant {
public static String baseurl = "http://openapi.sems.com.cn";
public static String account = "18679135705";
public static String password = "Lfj5705@sems";
public static String tokenurl = "/api/OpenApi/GetToken";
public static String stationListUrl = "/api/OpenApi/GetUserPowerStation";
public static String stationDetailUrl = "/v1/api/stationDetail";
public static String collectorListUrl = "/v1/api/collectorList";
public static String collectorDetailUrl = "/v1/api/collectorDetail";
public static String inverterListUrl = "/v1/api/inverterList";
public static String inverterDetailUrl = "/v1/api/inverterDetail";
public static String alarmListUrl = "/v1/api/alarmList";
public static String stationDayGenUrl ="/v1/api/stationDayEnergyList";
public static String stationMonthEnergyList ="/v1/api/stationDayEnergyList";
public static String stationYearEnergyList ="/v1/api/stationDayEnergyList";
public static String inverterDayURL ="/v1/api/inverterDay";
public static String inverterMonthURL ="/v1/api/inverterMonth";
public static String inverterYearURL ="/v1/api/inverterYear";
public static String resovleRule_data_page_records = "data,page,records";
public static String resovleRule_data_list = "data,page,list";
public static String resovleRule_data_records = "data,records";
public static String resovleRule_data = "data";
public static String requestPost = "POST";
public static String datePattern = "yyyy-MM-dd HH:mm:ss.SSS";
public static DateTimeFormatter formatter = DateTimeFormatter.ofPattern(datePattern);
public static Double kwhToMwh = 0.0001;
public static Double mwhTokwh = 1000.0;
}
package com.yeejoin.amos.api.householdapi.controller;
import com.yeejoin.amos.api.householdapi.Utils.GoodWeRequestUtil;
import com.yeejoin.amos.api.householdapi.Utils.HouseholdPvUtils;
import com.yeejoin.amos.api.householdapi.face.service.GoLangDataAcquisitionService;
import com.yeejoin.amos.api.householdapi.face.service.GoodWeDataAcquisitionService;
import com.yeejoin.amos.api.householdapi.face.service.ImasterDataService;
import com.yeejoin.amos.api.householdapi.face.service.KSolarDataAcquisitionService;
import com.yeejoin.amos.api.householdapi.face.service.impl.ImasterDataServiceImpl;
......@@ -36,6 +38,8 @@ public class HouseholdTestController {
private KSolarDataAcquisitionService kSolarDataAcquisitionService;
@Autowired
private ImasterDataService imasterDataService;
@Autowired
private GoodWeDataAcquisitionService goodWeDataAcquisitionService;
/**
......@@ -44,10 +48,10 @@ public class HouseholdTestController {
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping(value = "/gdwdemo")
@PostMapping(value = "/goodweDemo")
@ApiOperation(httpMethod = "POST", value = "固德威示例", notes = "固德威示例")
public String save(Long seq) throws IOException {
return householdPvUtils.gerResponseByAPiID(seq);
public void goodweDemo() throws IOException {
goodWeDataAcquisitionService.stationList();
}
/**
......
package com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine;
import lombok.Data;
@Data
public class GoodWeStationList {
private String id;
private String pw_name;
private String conn_date;
private String pw_capacity;
private String pw_type;
private String pw_inventersnum;
}
package com.yeejoin.amos.api.householdapi.face.service.impl;
import com.alibaba.fastjson.JSON;
import com.yeejoin.amos.api.householdapi.Utils.GoodWeRequestUtil;
import com.yeejoin.amos.api.householdapi.constant.GoodWeConstant;
import com.yeejoin.amos.api.householdapi.face.orm.houseapi.entity.tdeingine.GoodWeStationList;
import com.yeejoin.amos.api.householdapi.face.service.GoodWeDataAcquisitionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
@Service
public class GoodWeDataAcquisitionServiceImpl implements GoodWeDataAcquisitionService {
@Autowired
GoodWeRequestUtil goodWeRequestUtil;
@Override
public void stationList() {
HashMap<String, Object> requestInfo = new HashMap<>();
requestInfo.put("page_index", 1);
requestInfo.put("page_size", 100);
String requstParam = JSON.toJSONString(requestInfo);
List<GoodWeStationList> goodWeStationLists =goodWeRequestUtil.getResPonse(GoodWeConstant.stationListUrl, GoodWeConstant.requestPost, requstParam, GoodWeConstant.resovleRule_data_list, GoodWeStationList.class);
goodWeStationLists.size();
}
@Override
public void stationDetail() {
}
@Override
public void collectorList() {
}
@Override
public void collectorDetail() {
}
@Override
public void inverterList() {
}
@Override
public void inverterDetail() {
}
@Override
public void inverAlramInfo() {
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment