From 788489c7e95352a11cf5ec40a7a9c7277e5cc0f3 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Fri, 02 Feb 2018 09:19:53 +0800 Subject: [PATCH] 安全跨域设置 --- src/main/java/com/moral/controller/ScreenController.java | 273 +++++++++++++++++++++++++---------------------------- 1 files changed, 129 insertions(+), 144 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index 01c7c41..6a1e617 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -1,65 +1,75 @@ package com.moral.controller; -import java.io.IOException; -import java.io.InputStreamReader; +import static com.moral.common.util.RedisUtil.get; +import static com.moral.common.util.RedisUtil.hasKey; +import static com.moral.common.util.ResourceUtil.getValue; +import static com.moral.common.util.WebUtils.getParametersStartingWith; + +import java.io.*; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import org.springframework.beans.factory.annotation.Autowired; +import com.moral.common.xml.Version; +import org.apache.commons.net.ftp.FTPClient; +import org.dom4j.Document; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.io.Resource; import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.util.ObjectUtils; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONReader; import com.alibaba.fastjson.TypeReference; -import com.moral.util.ResourceUtil; +import com.moral.common.bean.ResultBean; +import com.moral.common.util.ValidateUtil; import com.moral.service.AccountService; +import com.moral.service.DataService; import com.moral.service.DeviceService; import com.moral.service.HistoryService; -import com.moral.util.BusinessException; -import com.moral.util.RedisUtil; -import com.moral.util.WebUtils; +import com.moral.service.MachineActivateService; +import org.xml.sax.InputSource; -// TODO: Auto-generated Javadoc /** - * The Class ScreenController. + * The Class ScreenController.������������ */ @RestController -@RequestMapping(value = "screen") +@RequestMapping("screen") @CrossOrigin(origins = "*", maxAge = 3600) public class ScreenController { /** The screen service. */ - @Autowired + @Resource private HistoryService historyService; /** The account service. */ - @Autowired + @Resource private AccountService accountService; /** The device service. */ - @Autowired + @Resource private DeviceService deviceService; + + @Resource + private DataService dataService; + + @Resource + private MachineActivateService machineActivateService; /** The resource. */ @Value(value = "classpath:system/alarmLevels.json") - private Resource resource; + private org.springframework.core.io.Resource resource; /** The redis template. */ - @javax.annotation.Resource - RedisTemplate<String, String> redisTemplate; + @Resource + private RedisTemplate<String, String> redisTemplate; /** The level key. */ - private String levelKey = "alarm_level_config"; + private String levelKey = "alarm_"; /** * Screen login. ������������ @@ -68,24 +78,19 @@ * the request * @return the map */ - @RequestMapping(value = "login", method = RequestMethod.GET) + @GetMapping("login") public Map<String, Object> screenLogin(HttpServletRequest request) { Map<String, Object> resultMap = new HashMap<String, Object>(); - try { - Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); - if (!(parameters.containsKey("account") && parameters.containsKey("password"))) { - resultMap.put("msg", "������������������������������������"); - resultMap.put("accountId", -1); - } else { - resultMap = accountService.screenLogin(parameters); - } - } catch (Exception e) { - e.printStackTrace(); + Map<String, Object> parameters = getParametersStartingWith(request, null); + if (!(parameters.containsKey("account") && parameters.containsKey("password"))) { + resultMap.put("msg", "������������������������������������"); resultMap.put("accountId", -1); - resultMap.put("msg", "���������������������������������������������������" + e.getMessage()); + } else { + resultMap = accountService.screenLogin(parameters); } return resultMap; } + /** * Gets the equipment states. ��������������������������������������� @@ -94,24 +99,10 @@ * the request * @return the equipment states */ - @RequestMapping(value = "equipment-state", method = RequestMethod.GET) - public Map<String, Object> getDeviceStates(HttpServletRequest request) { - Map<String, Object> result = new LinkedHashMap<String, Object>(); - try { - Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); - if (!parameters.containsKey("accountId")) { - result.put("msg", "���������������������"); - } else { - result = deviceService.getDeviceStates(parameters); - } - } catch (BusinessException be) { - be.printStackTrace(); - result.put("msg", be.getMessage()); - } catch (Exception e) { - e.printStackTrace(); - result.put("msg", "���������������������������������������������������" + e.getMessage()); - } - return result; + @GetMapping("equipment-state") + public Map<String, Object> getDeviceStatesByAccount(HttpServletRequest request) { + Map<String, Object> parameters = getParametersStartingWith(request, null); + return deviceService.getDeviceStatesByAccount(parameters); } /** @@ -122,17 +113,19 @@ * @return the alarm levels */ @SuppressWarnings("resource") - @RequestMapping(value = "alarm-levels", method = RequestMethod.GET) - public Map<String, Object> getAlarmLevels(HttpServletRequest request) { + @GetMapping("alarm-levels") + public Map<String, Object> getAlarmLevels(HttpServletRequest request,String orgId) { Map<String, Object> result = new LinkedHashMap<String, Object>(); + String key = levelKey + orgId; try { - if (RedisUtil.hasKey(redisTemplate, levelKey)) { - String levelConfigStr = RedisUtil.get(redisTemplate, levelKey); + if (hasKey(redisTemplate, key)) { + String levelConfigStr = get(redisTemplate, key); result = JSON.parseObject(levelConfigStr, new TypeReference<Map<String, Object>>() {}); } else { InputStreamReader reader = new InputStreamReader(resource.getInputStream()); result = new JSONReader(reader).readObject(new TypeReference<LinkedHashMap<String, Object>>() {}); } + } catch (IOException e) { e.printStackTrace(); result.put("msg", "���������������������������������������������������" + e.getMessage()); @@ -147,23 +140,11 @@ * the request * @return the standard by sensor */ - @RequestMapping(value = "sensor-standard", method = RequestMethod.GET) - public Map<String, Object> getStandardBySensor(HttpServletRequest request) { + @GetMapping("sensor-standard") + public Map<String, Object> getStandardBySensor(@RequestParam("macKey") String macKey) { + ValidateUtil.notEmpty(macKey, "param.is.null"); Map<String, Object> result = new HashMap<String, Object>(); - try { - String macKey = request.getParameter("macKey"); - if (ObjectUtils.isEmpty(macKey)) { - result.put("msg", "���������������������"); - } else { - result.put("standard", ResourceUtil.getValue(macKey + "-standard")); - } - } catch (BusinessException be) { - be.printStackTrace(); - result.put("msg", be.getMessage()); - } catch (Exception e) { - e.printStackTrace(); - result.put("msg", "���������������������������������������������������" + e.getMessage()); - } + result.put("standard", getValue(macKey + "-standard")); return result; } @@ -174,24 +155,10 @@ * the request * @return the day AQI by sensor */ - @RequestMapping(value = "day-aqi", method = RequestMethod.GET) + @GetMapping("day-aqi") public Map<String, Object> getDayAQIByDevice(HttpServletRequest request) { - Map<String, Object> result = new HashMap<String, Object>(); - try { - Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); - if (!parameters.containsKey("mac")) { - result.put("msg", "���������������������"); - } else { - result = historyService.getDayAQIByDevice(parameters); - } - } catch (BusinessException be) { - be.printStackTrace(); - result.put("msg", be.getMessage()); - } catch (Exception e) { - e.printStackTrace(); - result.put("msg", "���������������������������������������������������" + e.getMessage()); - } - return result; + Map<String, Object> parameters = getParametersStartingWith(request, null); + return dataService.getDayAQIByDevice(parameters); } /** @@ -201,24 +168,10 @@ * the request * @return the average by all */ - @RequestMapping(value = "/all-average", method = RequestMethod.GET) - public Map<String, Object> getAverageByAll(HttpServletRequest request) { - Map<String, Object> result = new LinkedHashMap<String, Object>(); - try { - Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); - if (!(parameters.containsKey("areaCode") && parameters.containsKey("accountId"))) { - result.put("msg", "���������������������"); - } else { - result = historyService.getAverageByAll(parameters); - } - } catch (BusinessException be) { - be.printStackTrace(); - result.put("msg", be.getMessage()); - } catch (Exception e) { - e.printStackTrace(); - result.put("msg", "���������������������������������������������������" + e.getMessage()); - } - return result; + @GetMapping("all-average") + public Map<String, Object> getAllSensorAverageByDevice(HttpServletRequest request) { + Map<String, Object> parameters = getParametersStartingWith(request, null); + return historyService.getAllSensorAverageByDevice(parameters); } /** @@ -228,25 +181,10 @@ * the request * @return the average by sensor */ - @RequestMapping(value = "/sensor-average", method = RequestMethod.GET) - public Map<String, Object> getAverageBySensor(HttpServletRequest request) { - Map<String, Object> result = new HashMap<String, Object>(); - try { - Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); - if (!(parameters.containsKey("areaCode") && parameters.containsKey("accountId") - && parameters.containsKey("macKey"))) { - result.put("msg", "���������������������"); - } else { - result = historyService.getAverageBySensor(parameters); - } - } catch (BusinessException be) { - be.printStackTrace(); - result.put("msg", be.getMessage()); - } catch (Exception e) { - e.printStackTrace(); - result.put("msg", "���������������������������������������������������" + e.getMessage()); - } - return result; + @GetMapping("sensor-average") + public Map<String, Object> getDeviceRankingBySensorAverage(HttpServletRequest request) { + Map<String, Object> parameters = getParametersStartingWith(request, null); + return historyService.getDeviceRankingBySensorAverage(parameters); } /** @@ -256,24 +194,71 @@ * the request * @return the month average by sensor */ - @RequestMapping(value = "month-sensor-average", method = RequestMethod.GET) + @GetMapping("month-sensor-average") public Map<String, Object> getMonthAverageBySensor(HttpServletRequest request) { - Map<String, Object> result = new HashMap<String, Object>(); - try { - Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); - if (!(parameters.containsKey("mac") && parameters.containsKey("macKey"))) { - result.put("msg", "���������������������"); - } else { - result = historyService.getMonthAverageBySensor(parameters); - } - } catch (BusinessException be) { - be.printStackTrace(); - result.put("msg", be.getMessage()); - } catch (Exception e) { - e.printStackTrace(); - result.put("msg", "���������������������������������������������������" + e.getMessage()); - } - return result; + Map<String, Object> parameters = getParametersStartingWith(request, null); + return historyService.getMonthAverageBySensor(parameters); } + @GetMapping("check-activate") + public ResultBean<Integer> checkActivate(String macCpuCode) { + Integer result = machineActivateService.checkActivate(macCpuCode); + return new ResultBean<Integer>(result); + } + + @PostMapping("activate-machine") + public ResultBean<Integer> activateMachine(HttpServletRequest request) { + Map<String, Object> parameters = getParametersStartingWith(request, null); + Integer result = machineActivateService.activateMachine(parameters); + return new ResultBean<Integer>(result); + } + + /********************************************* + * ������������������������������������ + *********************************************/ + private String fileName = "Version.xml"; + private String ip = "121.40.92.176"; + private String userName = "ftp_user"; + private String userPwd = "qwer1234"; + private int port = 21; + private String path = "/"; + + @RequestMapping(value = "/upgrade", method = RequestMethod.GET) + public Version index() { + Version version = new Version(); + FTPClient ftpClient = new FTPClient(); + try { + ftpClient.connect(ip, port); + ftpClient.login(userName, userPwd); + ftpClient.changeWorkingDirectory(path); + //ftpClient.enterRemotePassiveMode(); + ftpClient.enterLocalPassiveMode(); + InputStream ins = ftpClient.retrieveFileStream(fileName); + BufferedReader reader = new BufferedReader(new InputStreamReader(ins,"utf-8")); + String line; + StringBuilder builder = new StringBuilder(); + while ((line = reader.readLine()) != null) { + builder.append(line); + } + reader.close(); + if (ins != null) { + ins.close(); + } + ftpClient.getReply(); + String content = builder.toString(); + if(ftpClient.isConnected()) { + ftpClient.logout(); + ftpClient.disconnect(); + } + SAXReader saxReader = new SAXReader(); + Document document = saxReader.read(new InputSource(new ByteArrayInputStream(content.getBytes("utf-8")))); + Element root = document.getRootElement(); + version.setVer(root.element("Ver").getText()); + version.setFileName(root.element("FileName").getText()); + version.setFileMD5Hash(root.element("FileMD5Hash").getText()); + } catch (Exception e) { + e.printStackTrace(); + } + return version; + } } -- Gitblit v1.8.0