From 6d1509ab9e5aa911a6a2cdc2ab5a0887210f0b41 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Thu, 12 Jul 2018 16:07:38 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/com/moral/service/impl/AccountServiceImpl.java | 3 src/main/java/com/moral/mapper/DemoMapper.java | 4 + src/main/resources/mapper/DeviceMapper.xml | 30 +++++++ src/main/java/com/moral/controller/MobileController.java | 91 +++++++++++++++++++++- src/main/java/com/moral/mapper/HistoryMapper.java | 2 src/main/java/com/moral/mapper/SensorMapper.java | 2 src/main/java/com/moral/service/impl/DeviceServiceImpl.java | 6 + src/main/java/com/moral/controller/DemoConreoller.java | 10 ++ src/main/java/com/moral/service/DeviceService.java | 2 src/main/java/com/moral/service/HistoryService.java | 5 + src/main/java/com/moral/service/impl/HistoryServiceImpl.java | 41 ++++++++++ src/main/java/com/moral/mapper/DeviceMapper.java | 2 src/main/resources/mapper/HistoryMapper.xml | 13 +++ src/main/java/com/moral/controller/ScreenController.java | 9 + src/main/resources/mapper/DemoMapper.xml | 4 + 15 files changed, 214 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/moral/controller/DemoConreoller.java b/src/main/java/com/moral/controller/DemoConreoller.java new file mode 100644 index 0000000..8531945 --- /dev/null +++ b/src/main/java/com/moral/controller/DemoConreoller.java @@ -0,0 +1,10 @@ +package com.moral.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("demo") +public class DemoConreoller { + +} diff --git a/src/main/java/com/moral/controller/MobileController.java b/src/main/java/com/moral/controller/MobileController.java index b9f1174..a15ddaf 100644 --- a/src/main/java/com/moral/controller/MobileController.java +++ b/src/main/java/com/moral/controller/MobileController.java @@ -9,17 +9,38 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import com.moral.common.util.Crypto; -import com.moral.entity.*; -import com.moral.entity.adapter.EquDeviceAdapter; -import com.moral.service.*; -import com.moral.util.MessageUtils; -import com.taobao.api.ApiException; import org.apache.commons.lang3.StringUtils; import org.springframework.cglib.beans.BeanMap; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import com.moral.common.bean.AppData; +import com.moral.common.bean.ResultBean; +import com.moral.common.util.Crypto; +import com.moral.entity.Account; +import com.moral.entity.Device; +import com.moral.entity.MonitorPoint; +import com.moral.entity.OperateUser; +import com.moral.entity.Organization; +import com.moral.entity.Profession; +import com.moral.entity.adapter.EquDeviceAdapter; +import com.moral.service.AccountService; +import com.moral.service.DeviceService; +import com.moral.service.HistoryService; +import com.moral.service.MonitorPointService; +import com.moral.service.OperateUserService; +import com.moral.service.OrganizationService; +import com.moral.service.ProfessionService; +import com.moral.util.MessageUtils; +import com.taobao.api.ApiException; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; /** * The Class MobileController. @@ -27,6 +48,7 @@ @RestController @RequestMapping("mobile") @CrossOrigin(origins = "*", maxAge = 3600) +@Api(tags = "Mobile", description = "APP������") public class MobileController { /** The operate user service. */ @@ -47,6 +69,12 @@ @Resource private ProfessionService professionService; + + @Resource + private AccountService accountService; + + @Resource + private HistoryService historyService; /** * Mobile login.������ @@ -250,4 +278,53 @@ List<Profession> professions = professionService.getProfessiontList(); return new AppData<List<Profession>>(professions); } + + @GetMapping("login") + @ApiOperation(value = "������������������", notes = "������������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "account", value = "������", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "password", value = "������", required = true, paramType = "query", dataType = "String") + }) + public ResultBean<Account> companyLogin(HttpServletRequest request){ + Map<String, Object> parameters = getParametersStartingWith(request, null); + Account account = accountService.companyLogin(parameters); + return new ResultBean<Account>(account); + } + + @GetMapping("devices") + @ApiOperation(value = "������������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "organizationId", value = "������Id", required = true, paramType = "query", dataType = "String"), + }) + public ResultBean<List<Device>> getDevicesByOrganizationId(HttpServletRequest request){ + Map<String, Object> parameters = getParametersStartingWith(request, null); + List<Device> devices = deviceService.getDevicesByOrganizationId(parameters); + return new ResultBean<List<Device>>(devices); + } + + @GetMapping("sensors") + @ApiOperation(value = "���������������������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "deviceVersionId", value = "������������Id", required = true, paramType = "query", dataType = "int"), + @ApiImplicitParam(name = "mac", value = "������mac", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "deviceId", value = "������id", required = true, paramType = "query", dataType = "int"), + }) + public ResultBean<List<Map<String, Object>>> getSensorsDataByDevice(HttpServletRequest request){ + Map<String, Object> parameters = getParametersStartingWith(request, null); + List<Map<String, Object>> sensors = historyService.getSensorsDataByDevice(parameters); + return new ResultBean<List<Map<String, Object>>>(sensors); + } + + @GetMapping("sensor") + @ApiOperation(value = "���������������������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "mac", value = "������mac", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "sensorKey", value = "���������key", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "size", value = "������������������", required = true, paramType = "query", dataType = "int"), + }) + public ResultBean<List<Map<String, Object>>> getSensorDataBySensorKey(HttpServletRequest request){ + Map<String, Object> parameters = getParametersStartingWith(request, null); + List<Map<String, Object>> sensors = historyService.getSensorDataBySensorKey(parameters); + return new ResultBean<List<Map<String, Object>>>(sensors); + } } diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index 11ada56..759c759 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -53,7 +53,7 @@ @RequestMapping("/screen") @CrossOrigin(origins = "*", maxAge = 3600) @SuppressWarnings({ "rawtypes", "unchecked", "unused" }) -@Api(tags = "Screen", description = "������������") +@Api(tags = "Screen", description = "������������") public class ScreenController { public static Logger log = Logger.getLogger(ScreenController.class); @Resource @@ -619,7 +619,12 @@ }) public ResultBean<List<Map<String, Object>>> getMonitorPointOrDeviceAvgDataBySensorKey(HttpServletRequest request) throws Exception { Map<String, Object> parameters = getParametersStartingWith(request, null); - parameters.put("type", "month"); + int length = ((String)parameters.get("time")).split("-").length; + if (length == 2) { + parameters.put("type", "month"); + } else if (length == 3){ + parameters.put("type", "day"); + } parameters.put("monitorPointId", parameters.remove("monitorPoint")); String[] sensorKeys = parameters.remove("sensorKey").toString().split(","); parameters.put("sensors", Arrays.asList(sensorKeys)); diff --git a/src/main/java/com/moral/mapper/DemoMapper.java b/src/main/java/com/moral/mapper/DemoMapper.java new file mode 100644 index 0000000..b07a595 --- /dev/null +++ b/src/main/java/com/moral/mapper/DemoMapper.java @@ -0,0 +1,4 @@ +package com.moral.mapper; + +public interface DemoMapper { +} \ No newline at end of file diff --git a/src/main/java/com/moral/mapper/DeviceMapper.java b/src/main/java/com/moral/mapper/DeviceMapper.java index 0a934e1..3ba6f22 100644 --- a/src/main/java/com/moral/mapper/DeviceMapper.java +++ b/src/main/java/com/moral/mapper/DeviceMapper.java @@ -35,4 +35,6 @@ List<Map> countByTimes(@Param("start")Date start,@Param("end")Date end,@Param("format")String format); List<Device> getDevicesByProfession(Map<String, Object> parameters); + + List<Device> getDevicesByOrganizationId(Map<String, Object> parameters); } \ No newline at end of file diff --git a/src/main/java/com/moral/mapper/HistoryMapper.java b/src/main/java/com/moral/mapper/HistoryMapper.java index 5f81619..4b5a131 100644 --- a/src/main/java/com/moral/mapper/HistoryMapper.java +++ b/src/main/java/com/moral/mapper/HistoryMapper.java @@ -15,5 +15,7 @@ List<String> selectNextLevelRegion(Map<String, Object> parameters); List<Map<String, Object>> getDischargeByRegion(Map<String, Object> parameters); + + List<Map<String, Object>> getValueByMacAndSize(Map<String, Object> parameters); } \ No newline at end of file diff --git a/src/main/java/com/moral/mapper/SensorMapper.java b/src/main/java/com/moral/mapper/SensorMapper.java index fa1d9b8..be79476 100644 --- a/src/main/java/com/moral/mapper/SensorMapper.java +++ b/src/main/java/com/moral/mapper/SensorMapper.java @@ -16,7 +16,7 @@ List<Sensor> selectByOrgId(Integer organizationId); - List<Map<String, Object>> getSensorsByDeviceVersionId(Integer deviceVersionId); + List<Map<String, Object>> getSensorsByDeviceVersionId(Map<String, Object> parameters); List<Sensor> getSensorsByCriteria(Map<String, Object> parameters); diff --git a/src/main/java/com/moral/service/DeviceService.java b/src/main/java/com/moral/service/DeviceService.java index e05acea..e76912f 100644 --- a/src/main/java/com/moral/service/DeviceService.java +++ b/src/main/java/com/moral/service/DeviceService.java @@ -42,4 +42,6 @@ Device queryById(Integer id); List<Device> getDevicesByProfessionId(Map<String, Object> parameters); + + List<Device> getDevicesByOrganizationId(Map<String, Object> parameters); } diff --git a/src/main/java/com/moral/service/HistoryService.java b/src/main/java/com/moral/service/HistoryService.java index dec4d08..1a28271 100644 --- a/src/main/java/com/moral/service/HistoryService.java +++ b/src/main/java/com/moral/service/HistoryService.java @@ -14,4 +14,9 @@ String queryValueByMacAndTime(String mac, Date time); List<Map<String, Object>> getRegionRankingData(Map<String, Object> parameters); + + List<Map<String, Object>> getSensorsDataByDevice(Map<String, Object> parameters); + + List<Map<String, Object>> getSensorDataBySensorKey(Map<String, Object> parameters); + } diff --git a/src/main/java/com/moral/service/impl/AccountServiceImpl.java b/src/main/java/com/moral/service/impl/AccountServiceImpl.java index 87ee342..cf1ef0c 100644 --- a/src/main/java/com/moral/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/moral/service/impl/AccountServiceImpl.java @@ -22,6 +22,7 @@ import com.moral.common.exception.BusinessException; import com.moral.common.util.Crypto; import com.moral.common.util.ResourceUtil; +import com.moral.common.util.ValidateUtil; import com.moral.entity.Account; import com.moral.entity.Organization; import com.moral.mapper.AccountMapper; @@ -182,6 +183,8 @@ @Override public Account companyLogin(Map<String, Object> parameters) { + ValidateUtil.notNull(parameters.get("account"), "param.is.null"); + ValidateUtil.notNull(parameters.get("password"), "param.is.null"); Account account = new Account(); account.setIsDelete(Constants.IS_DELETE_FALSE); account.setAccountName(parameters.get("account").toString()); diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java index 2094ad5..264ed65 100644 --- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java @@ -474,4 +474,10 @@ return deviceMapper.getDevicesByProfession(parameters); } + @Override + public List<Device> getDevicesByOrganizationId(Map<String, Object> parameters) { + ValidateUtil.notNull(parameters.get("organizationId"), "param.is.null"); + return deviceMapper.getDevicesByOrganizationId(parameters); + } + } diff --git a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java index fa11e80..70fe9ac 100644 --- a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java +++ b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java @@ -18,7 +18,10 @@ import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.moral.common.util.ValidateUtil; +import com.moral.entity.Device; import com.moral.entity.Profession; import com.moral.entity.Sensor; import com.moral.mapper.DeviceMapper; @@ -215,4 +218,42 @@ } return result; } + + @Override + public List<Map<String, Object>> getSensorsDataByDevice(Map<String, Object> parameters) { + ValidateUtil.notNull(parameters.get("deviceVersionId"), "param.is.null"); + ValidateUtil.notNull(parameters.get("mac"), "param.is.null"); + ValidateUtil.notNull(parameters.get("deviceId"), "param.is.null"); + List<Map<String, Object>> sensors = sensorMapper.getSensorsByDeviceVersionId(parameters); + parameters.put("size", 1); + List<Map<String, Object>> values = historyMapper.getValueByMacAndSize(parameters); + JSONObject map = null; + if (!ObjectUtils.isEmpty(values)) { + map = JSON.parseObject(values.get(0).get("value").toString()); + } + Device device = deviceMapper.selectByPrimaryKey(Integer.valueOf((String) parameters.get("deviceId"))); + for (Map<String, Object> sensor : sensors) { + if (!ObjectUtils.isEmpty(map)) { + sensor.put("value", map.remove(sensor.get("sensor_key"))); + } + sensor.put("state", device.getState()); + sensor.put("name", sensor.get("description")); + } + return sensors; + } + + @Override + public List<Map<String, Object>> getSensorDataBySensorKey(Map<String, Object> parameters) { + ValidateUtil.notNull(parameters.get("sensorKey"), "param.is.null"); + ValidateUtil.notNull(parameters.get("mac"), "param.is.null"); + ValidateUtil.notNull(parameters.get("size"), "param.is.null"); + parameters.put("size", Integer.valueOf(parameters.remove("size").toString())); + List<Map<String, Object>> values = historyMapper.getValueByMacAndSize(parameters); + for (Map<String, Object> value : values) { + JSONObject json = JSON.parseObject(value.remove("value").toString()); + value.put("value", json.get(parameters.get("sensorKey"))); + } + return values; + } + } diff --git a/src/main/resources/mapper/DemoMapper.xml b/src/main/resources/mapper/DemoMapper.xml new file mode 100644 index 0000000..8403e41 --- /dev/null +++ b/src/main/resources/mapper/DemoMapper.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.moral.mapper.DemoMapper" > +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml index 4d483d0..16521ec 100644 --- a/src/main/resources/mapper/DeviceMapper.xml +++ b/src/main/resources/mapper/DeviceMapper.xml @@ -332,4 +332,34 @@ AND d.profession_id = #{professionId} </if> </select> + + <resultMap id="ResultMap" type="com.moral.entity.Device"> + <id column="id" jdbcType="INTEGER" property="id" /> + <result column="name" jdbcType="VARCHAR" property="name" /> + <result column="address" jdbcType="VARCHAR" property="address" /> + <result column="longitude" jdbcType="DOUBLE" property="longitude" /> + <result column="latitude" jdbcType="DOUBLE" property="latitude" /> + <result column="mac" jdbcType="VARCHAR" property="mac" /> + <result column="operate_user_id" jdbcType="INTEGER" property="operateUserId" /> + <result column="state" jdbcType="CHAR" property="state" /> + <result column="is_delete" jdbcType="CHAR" property="isDelete" /> + <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> + <result column="install_time" jdbcType="TIMESTAMP" property="installTime" /> + <result column="monitor_point_id" jdbcType="INTEGER" property="monitorPointId" /> + <result column="device_version_id" jdbcType="INTEGER" property="deviceVersionId" /> + <result column="profession_id" jdbcType="INTEGER" property="professionId" /> + </resultMap> + + <select id="getDevicesByOrganizationId" resultMap="ResultMap"> + SELECT + d.* + FROM + device d, + monitor_point mp + WHERE + d.monitor_point_id = mp.id + AND d.is_delete = 0 + AND mp.is_delete = 0 + AND mp.organization_id = #{organizationId} + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/HistoryMapper.xml b/src/main/resources/mapper/HistoryMapper.xml index e19db1a..bef36f5 100644 --- a/src/main/resources/mapper/HistoryMapper.xml +++ b/src/main/resources/mapper/HistoryMapper.xml @@ -115,4 +115,17 @@ AND mp.${regionType}_code = #{regionCode} AND dis.`year` = #{year} </select> + + <select id="getValueByMacAndSize" resultType="java.util.Map"> + SELECT + value, + time + FROM + history + WHERE + mac = #{mac} + ORDER BY + time DESC + LIMIT #{size} + </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0