diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/ZhipingController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/ZhipingController.java index 7f0d6e7..647663a 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/ZhipingController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/ZhipingController.java @@ -3,9 +3,10 @@ package com.shxy.xymanager_admin.controller; import com.github.pagehelper.PageInfo; import com.shxy.xymanager_common.annotation.Log; import com.shxy.xymanager_common.base.BaseController; +import com.shxy.xymanager_common.util.DigestUtils; import com.shxy.xymanager_common.util.StringUtils; -import com.shxy.xymanager_common.zhiping.OutModel; -import com.shxy.xymanager_common.zhiping.ZhipingReult; +import com.shxy.xymanager_common.util.TokenUtil; +import com.shxy.xymanager_common.zhiping.*; import com.shxy.xymanager_common.entity.LeadPulls; import com.shxy.xymanager_common.entity.Weathers; import com.shxy.xymanager_common.util.DateUtil; @@ -14,10 +15,9 @@ import com.shxy.xymanager_service.service.WeatherService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; @@ -26,14 +26,18 @@ import java.util.List; @RestController @Api(tags = {"微气象监测数据同步接口"}) -@RequestMapping("zhiping") +@RequestMapping("henan") @Slf4j public class ZhipingController extends BaseController { + String accountName = "admin"; + String secretKey = "123456"; @Resource LeadPullsService leadPullsService; @Resource WeatherService weatherService; + @Autowired + TokenUtil tokenUtil; @GetMapping("query") @ApiOperation("查询") @@ -107,4 +111,124 @@ public class ZhipingController extends BaseController { return result; } + @PostMapping("login") + @ApiOperation("同步登入") + @Log(title = "同步登入", type = "登入") + public SdqjResult login(@RequestBody LoginModel model) throws Exception { + SdqjResult result = new SdqjResult(); + String account = DigestUtils.md5(accountName); + String key = DigestUtils.md5(secretKey); + if (account.equals(model.getAccountName()) && + key.equals(model.getSecretKey())) { + result.setCode("200"); + result.setMessage("认证成功"); + Long time = System.currentTimeMillis() / 1000; + String token = tokenUtil.generateToken(time.intValue()); + result.setToken(token); + } else { + result.setCode("-1"); + result.setMessage("认证失败"); + } + return result; + } + + @PostMapping("queryMicromes") + @ApiOperation("天气数据同步查询") + @Log(title = "天气数据同步查询", type = "查询") + public SdqjResult queryMicromes(String token, + String startTime, String endTime) throws Exception { + + if (StringUtils.isBlank(token)) { + return SdqjResult.error("token不能为空"); + } + if (StringUtils.isBlank(startTime)) { + return SdqjResult.error("startTime不能为空"); + } + if (StringUtils.isBlank(endTime)) { + return SdqjResult.error("endTime不能为空"); + } + try { + String str = tokenUtil.getUserId(token); + long time = Long.valueOf(str); + time = System.currentTimeMillis() / 1000 - time; + if (time >= 0 && time <= 30 * 60) { + + } else { + return SdqjResult.error("token已过期"); + } + } catch (Exception e) { + return SdqjResult.error("token无效"); + } + + Date start = DateUtil.parse(startTime); + Date end = DateUtil.parse(endTime); + List list = new ArrayList<>(); + PageInfo page = weatherService.list(null, null, null, + start.getTime() / 1000, end.getTime() / 1000, 1, 10000); + if (!CollectionUtils.isEmpty(page.getList())) { + for (Weathers weather : page.getList()) { + WeatherModel item = new WeatherModel(); + item.setCollTime(DateUtil.format(weather.getUpdateDate())); + item.setWindAvg(String.valueOf(weather.getAvgWindSpeed10min())); + item.setWindAngle(String.valueOf(weather.getAvgWindDir10min())); + item.setMaxWind(String.valueOf(weather.getMaxWindSpeed())); + item.setExtrWind(String.valueOf(weather.getExtremeWindSpeed())); + item.setStandWind(String.valueOf(weather.getStandardWindSpeed())); + item.setTemperature(String.valueOf(weather.getAirTemperature())); + item.setHumidity(String.valueOf(weather.getHumidity())); + item.setPressure(String.valueOf(weather.getAirPressure())); + item.setPrecipitation(String.valueOf(weather.getPrecipitation())); + item.setPrecipInten(String.valueOf(weather.getPrecipitationIntensity())); + item.setRadiaInten(String.valueOf(weather.getRadiationIntensity())); + list.add(item); + } + } + return SdqjResult.success(list); + } + + @PostMapping("queryPullIces") + @ApiOperation("拉力覆冰数据同步查询") + @Log(title = "拉力覆冰数据同步查询", type = "查询") + public SdqjResult queryPullIces(String token, + String startTime, String endTime) throws Exception { + + if (StringUtils.isBlank(token)) { + return SdqjResult.error("token不能为空"); + } + if (StringUtils.isBlank(startTime)) { + return SdqjResult.error("startTime不能为空"); + } + if (StringUtils.isBlank(endTime)) { + return SdqjResult.error("endTime不能为空"); + } + try { + String str = tokenUtil.getUserId(token); + long time = Long.valueOf(str); + time = System.currentTimeMillis() / 1000 - time; + if (time >= 0 && time <= 30 * 60) { + + } else { + return SdqjResult.error("token已过期"); + } + } catch (Exception e) { + return SdqjResult.error("token无效"); + } + + Date start = DateUtil.parse(startTime); + Date end = DateUtil.parse(endTime); + List list = new ArrayList<>(); + PageInfo page = leadPullsService.list(null, null, null, + start.getTime() / 1000, end.getTime() / 1000, 1, 10000); + if (!CollectionUtils.isEmpty(page.getList())) { + for (LeadPulls pull : page.getList()) { + PulliceModel item = new PulliceModel(); + item.setCollTime(DateUtil.format(pull.getUpdateDate())); + item.setPull(String.valueOf(pull.getMaxpullPull())); + item.setCrosswiseAngle(String.valueOf(pull.getMaxpullWind())); + item.setForwardTiltAngle(String.valueOf(pull.getMaxpullTilt())); + list.add(item); + } + } + return SdqjResult.success(list); + } } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/config/SecurityConfig.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/config/SecurityConfig.java index 011a237..81c4f9f 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/config/SecurityConfig.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/config/SecurityConfig.java @@ -75,7 +75,7 @@ public class SecurityConfig { urlWhiteList.add("/xymanager/weather/export"); urlWhiteList.add("/xymanager/upload/uploadLog"); urlWhiteList.add("/xymanager/upload/uploadFile"); - urlWhiteList.add("/xymanager/zhiping/query"); + urlWhiteList.add("/xymanager/henan/**"); StreamReadConstraints streamReadConstraints = StreamReadConstraints .builder() diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/zhiping/LoginModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/zhiping/LoginModel.java new file mode 100644 index 0000000..52ef94f --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/zhiping/LoginModel.java @@ -0,0 +1,9 @@ +package com.shxy.xymanager_common.zhiping; + +import lombok.Data; + +@Data +public class LoginModel { + private String accountName; + private String secretKey; +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/zhiping/PulliceModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/zhiping/PulliceModel.java new file mode 100644 index 0000000..390340a --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/zhiping/PulliceModel.java @@ -0,0 +1,23 @@ +package com.shxy.xymanager_common.zhiping; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +@Data +public class PulliceModel { + private String equipId; + private String pointId; + private String collTime; + private String ice; + private String tension; + private String difftension; + private String pull; + private String crosswiseAngle; + private String forwardTiltAngle; + private String windSpeed; + private String wAngle; + private String airTemper; + private String humidity; + private String ccll; + private String T_Sensor_Num; +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/zhiping/SdqjResult.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/zhiping/SdqjResult.java new file mode 100644 index 0000000..bba857d --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/zhiping/SdqjResult.java @@ -0,0 +1,31 @@ +package com.shxy.xymanager_common.zhiping; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.io.Serializable; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +public class SdqjResult implements Serializable { + private T data; + private String code; + private String message; + private String token; + + public static SdqjResult success(T obj) { + SdqjResult result = new SdqjResult<>(); + result.setCode("200"); + if (obj != null) { + result.setData(obj); + } + return result; + } + + public static SdqjResult error(String msg) { + SdqjResult result = new SdqjResult<>(); + result.setCode("-1"); + result.setMessage(msg); + return result; + } +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/zhiping/WeatherModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/zhiping/WeatherModel.java new file mode 100644 index 0000000..ab876cc --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/zhiping/WeatherModel.java @@ -0,0 +1,24 @@ +package com.shxy.xymanager_common.zhiping; + +import lombok.Data; + +@Data +public class WeatherModel { + private String equipId; + private String componentId; + private String windAvg; + private String windAngle; + private String maxWind; + private String extrWind; + private String standWind; + private String collTime; + private String ice; + private String pull; + private String tiltAngle; + private String temperature; + private String humidity; + private String pressure; + private String precipitation; + private String precipInten; + private String radiaInten; +}