From 0c99deb331cb0aa749f3b7c7d802d64d67672685 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Tue, 22 Sep 2020 08:34:41 +0800 Subject: [PATCH] B/S获取传感器平均值测试 --- src/main/java/com/moral/controller/WebController.java | 152 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 138 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/moral/controller/WebController.java b/src/main/java/com/moral/controller/WebController.java index fcec4ca..1450043 100644 --- a/src/main/java/com/moral/controller/WebController.java +++ b/src/main/java/com/moral/controller/WebController.java @@ -1,18 +1,24 @@ package com.moral.controller; -import com.moral.Webinterceptor.WebInterceptor; +import com.auth0.jwt.exceptions.JWTDecodeException; +import com.moral.common.bean.ResultBean; +import com.moral.common.exception.WebAuthException; import com.moral.common.util.BeanUtils; +import com.moral.common.util.ParameterUtils; +import com.moral.common.util.RedisHashUtil; +import com.moral.common.util.WebTokenUtils; +import com.moral.common.webAnno.UserLoginToken; import com.moral.entity.AreaNames; import com.moral.entity.Organization; -import com.moral.service.AccountService; -import com.moral.service.DictionaryDataService; -import com.moral.service.OrganizationService; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.moral.service.*; +import com.moral.util.LatLngTransformation; +import jdk.nashorn.internal.runtime.logging.Logger; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -30,11 +36,109 @@ @Resource DictionaryDataService dictionaryDataService; OrganizationService organizationService; + @Resource + WebTokenService webTokenService; + @Resource + RedisHashUtil redisHashUtil; + @Resource + HistoryMinutelyService historyMinutelyService; - @RequestMapping("login") - public Map<String, Object> login(HttpServletRequest request){ + @UserLoginToken + @GetMapping("test") + public String add() { + return "test success!"; + } + + @PostMapping("login") + public Map<String, Object> login(@RequestBody Map<String, Object> parameters) { Map<String, Object> resultMap = new HashMap<String, Object>(); - Map<String, Object> parameters = getParametersStartingWith(request, null); + if (!(parameters.containsKey("account") && parameters.containsKey("password"))) { + resultMap.put("msg", "������������������������������������"); + resultMap.put("accountId", -1); + } else { + resultMap = accountService.webLogin(parameters); + String accountId = String.valueOf(resultMap.get("accountId")); + if (!accountId.equals("-1")) { + redisHashUtil.deleteMapVal("webToken",accountId); + resultMap.put("token", webTokenService.getToken(accountId)); + } + } + return resultMap; + } + + @UserLoginToken + @PostMapping("logout") + public Map<String, Object> logout(HttpServletRequest request) { + Map<String, Object> resultMap = new HashMap<>(); + String token = request.getHeader("token"); + String id = WebTokenUtils.getIdBytoken(token); + redisHashUtil.addMapOne("webToken", String.valueOf(id),token); + resultMap.put("msg", "������������!"); + return resultMap; + } + + @UserLoginToken + @GetMapping("getAccountInfo") + public Map<String, Object> getAccountInfo(HttpServletRequest request) { + String token = request.getHeader("token"); + String id = ""; + try { + id = WebTokenUtils.getIdBytoken(token); + } catch (JWTDecodeException e) { + throw new WebAuthException("401,token������"); + } + Map<String, Object> resultMap = accountService.getAccountInfoById(id); + Object orgId = resultMap.get("orgId"); + if (resultMap.get("orgId") != null && resultMap.get("orgId") instanceof Integer) { + StringBuilder areaNamesBuilder = new StringBuilder("������"); + //��������������������������������� + if (!((Integer) orgId).equals(dictionaryDataService.querySupperOrgId())) { + //��������������������������������������������������� + Organization organization = organizationService.getOrganizationById((Integer) orgId); + if (organization.getAreaNames() != null) { + Map<String, String> areaNameMap = BeanUtils.beanToMap(organization.getAreaNames()); + List<String> names = areaNameMap.entrySet().stream().filter(item -> { + return item.getValue() != null; + }).map(item -> { + return item.getValue(); + }).collect(Collectors.toList()); + AreaNames areaNames = organization.getAreaNames(); + areaNamesBuilder.append("/"); + areaNamesBuilder.append(String.join("/", names)); + } + // ������������ + if (organization.getRank() != null && organization.getRank() == 0) { + resultMap.put("type", "enterprise"); + } else { + resultMap.put("type", "government"); + } + Number mapAreaCode = null; + if (organization.getVillageCode() != null) { + mapAreaCode = organization.getVillageCode(); + } else if (organization.getTownCode() != null) { + mapAreaCode = organization.getTownCode(); + } else if (organization.getAreaCode() != null) { + mapAreaCode = organization.getAreaCode(); + } else if (organization.getCityCode() != null) { + mapAreaCode = organization.getCityCode(); + } else if (organization.getProvinceCode() != null) { + mapAreaCode = organization.getProvinceCode(); + } + resultMap.put("mapAreaCode", mapAreaCode.toString()); + } + resultMap.put("mapPath", areaNamesBuilder.toString()); + String accountId = String.valueOf(resultMap.get("accountId")); + resultMap.put("token", webTokenService.getToken(accountId)); + } + return resultMap; + } + + //������ + @UserLoginToken + @RequestMapping("getAccountInfoTest") + public Map<String, Object> getAccountInfoTest(@RequestBody Map<String, Object> parameters) { + Map<String, Object> resultMap = new HashMap<String, Object>(); + System.out.println(parameters); if (!(parameters.containsKey("account") && parameters.containsKey("password"))) { resultMap.put("msg", "������������������������������������"); resultMap.put("accountId", -1); @@ -44,7 +148,9 @@ Object orgId = resultMap.get("orgId"); if (resultMap.get("orgId") != null && resultMap.get("orgId") instanceof Integer) { StringBuilder areaNamesBuilder = new StringBuilder("������"); + //��������������������������������� if (!((Integer) orgId).equals(dictionaryDataService.querySupperOrgId())) { + //��������������������������������������������������� Organization organization = organizationService.getOrganizationById((Integer) orgId); if (organization.getAreaNames() != null) { Map<String, String> areaNameMap = BeanUtils.beanToMap(organization.getAreaNames()); @@ -78,14 +184,32 @@ resultMap.put("mapAreaCode", mapAreaCode.toString()); } resultMap.put("mapPath", areaNamesBuilder.toString()); + String accountId = String.valueOf(resultMap.get("accountId")); + resultMap.put("token", webTokenService.getToken(accountId)); } } - request.getSession().setAttribute(WebInterceptor.SESSION_KEY,resultMap); return resultMap; } - @RequestMapping("add") - public String add(){ - return "123123"; + + @UserLoginToken + @PostMapping("report_avg_datas") + public ResultBean<List<Map<String, Object>>> getMonitorPointOrDeviceAvgData(HttpServletRequest request,@RequestBody Map<String, Object> parameters) + throws Exception { + //������������������������������������������������ + ParameterUtils.getTimeType4Time(parameters); + Object sensorKey = parameters.remove("sensorKey"); + parameters.put("sensors", Arrays.asList(sensorKey)); + List<Map<String, Object>> list = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters); + for (Map<String, Object> map : list) { + String time = map.get("time").toString(); + time = time.substring(time.length() - 2); + map.put("time", Integer.valueOf(time)); + if(parameters.get("type").equals("day")){ + map.put("time", Integer.valueOf(time)+1); + } + map.put("value", map.remove(sensorKey)); + } + return new ResultBean<List<Map<String, Object>>>(list); } } -- Gitblit v1.8.0