From a0d0ad8de7ac244aa29d1ca84d13b90e74729e33 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Mon, 19 Oct 2020 13:16:04 +0800
Subject: [PATCH] 增加获取六参五分钟平均值接口
---
src/main/resources/mapper/HistoryFiveMinutelyMapper.xml | 12 +
/dev/null | 173 -------------------
src/main/java/com/moral/controller/WebController.java | 125 +++++++++++++
src/main/java/com/moral/service/HistoryMinutelyService.java | 2
src/main/java/com/moral/mapper/HistoryFiveMinutelyMapper.java | 8
src/main/java/com/moral/util/DateUtil.java | 179 +++++++++++++++++++
src/main/java/com/moral/common/bean/ResultBean.java | 1
src/main/java/com/moral/webSocketServer/BSTestWebsocketServer.java | 26 +-
src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java | 13 +
9 files changed, 347 insertions(+), 192 deletions(-)
diff --git a/src/main/java/com/moral/common/bean/ResultBean.java b/src/main/java/com/moral/common/bean/ResultBean.java
index d4391f4..1889300 100644
--- a/src/main/java/com/moral/common/bean/ResultBean.java
+++ b/src/main/java/com/moral/common/bean/ResultBean.java
@@ -12,6 +12,7 @@
public static final int FAIL = 0;
public static final int SUCCESS = 1;
public static final int NO_PERMISSION = 2;
+
private String message;
private Integer code;
private Integer errno;
diff --git a/src/main/java/com/moral/controller/WebController.java b/src/main/java/com/moral/controller/WebController.java
index 43a14aa..7b66415 100644
--- a/src/main/java/com/moral/controller/WebController.java
+++ b/src/main/java/com/moral/controller/WebController.java
@@ -10,20 +10,20 @@
import com.moral.entity.MonitorPoint;
import com.moral.entity.Organization;
import com.moral.service.*;
+import com.moral.util.DateUtil;
import com.moral.util.LatLngTransformation;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import jdk.nashorn.internal.runtime.logging.Logger;
+import org.springframework.util.ObjectUtils;
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;
+import java.text.SimpleDateFormat;
+import java.util.*;
import java.util.stream.Collectors;
import static com.moral.common.util.WebUtils.getParametersStartingWith;
@@ -56,6 +56,13 @@
return "test success!";
}
+ /**
+ * @Description: ������������
+ * @Param: [parameters]
+ * @return: java.util.Map<java.lang.String,java.lang.Object>
+ * @Author: ������������
+ * @Date: 2020/10/19
+ */
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, Object> parameters) {
Map<String, Object> resultMap = new HashMap<String, Object>();
@@ -73,6 +80,13 @@
return resultMap;
}
+ /**
+ * @Description: ������������
+ * @Param: [request]
+ * @return: java.util.Map<java.lang.String,java.lang.Object>
+ * @Author: ������������
+ * @Date: 2020/10/19
+ */
@UserLoginToken
@PostMapping("logout")
public Map<String, Object> logout(HttpServletRequest request) {
@@ -84,6 +98,13 @@
return resultMap;
}
+ /**
+ * @Description:
+ * @Param: [request]
+ * @return: java.util.Map<java.lang.String,java.lang.Object>
+ * @Author: ������������
+ * @Date: 2020/10/19
+ */
@UserLoginToken
@GetMapping("getAccountInfo")
public Map<String, Object> getAccountInfo(HttpServletRequest request) {
@@ -141,6 +162,13 @@
}
+ /**
+ * @Description: ������������������������
+ * @Param: [request]
+ * @return: com.moral.common.bean.ResultBean<java.util.List<java.util.Map<java.lang.String,java.lang.Object>>>
+ * @Author: ������������
+ * @Date: 2020/10/19
+ */
@UserLoginToken
@GetMapping("report_avg_datas")
public ResultBean<List<Map<String, Object>>> getMonitorPointOrDeviceAvgData(HttpServletRequest request)
@@ -163,6 +191,13 @@
return new ResultBean<List<Map<String, Object>>>(list);
}
+ /**
+ * @Description: ������������������������������
+ * @Param: [request]
+ * @return: com.moral.common.bean.ResultBean<java.util.List<com.moral.entity.MonitorPoint>>
+ * @Author: ������������
+ * @Date: 2020/10/19
+ */
@UserLoginToken
@GetMapping("monitorpoints-devices")
public ResultBean<List<MonitorPoint>> getMonitorPointsAndDevicesByRegion(HttpServletRequest request)
@@ -172,6 +207,13 @@
return new ResultBean<List<MonitorPoint>>(monitorPoints);
}
+ /**
+ * @Description: ���������������������������������������
+ * @Param: [request]
+ * @return: com.moral.common.bean.ResultBean<java.util.List<com.moral.entity.Device>>
+ * @Author: ������������
+ * @Date: 2020/10/19
+ */
/* @UserLoginToken*/
@GetMapping("coordinates")
public ResultBean<List<Device>> getDeviceCoordinatesAndState(HttpServletRequest request){
@@ -179,4 +221,79 @@
ParameterUtils.getRegionType4RegionCode(parameters);
return new ResultBean<List<Device>>(deviceService.queryDevice(parameters));
}
+
+ /**
+ * @Description: ������monitorId���������������������������������������������������������������������
+ * @Param: []
+ * @return: com.moral.common.bean.ResultBean<java.util.Map<java.lang.String,java.lang.Object>>
+ * @Author: ������������
+ * @Date: 2020/10/19
+ */
+
+ @GetMapping("fiveMinuteAvgData")
+ public ResultBean<List<Map<String, Object>>> getSensorFiveMinuteAvgData(HttpServletRequest request){
+ //���������������������������monitorpointId
+ Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+ if((!parameters.containsKey("sensorKey"))||(!parameters.containsKey("monitorPointId")))
+ return ResultBean.fail("���������null");
+ String sensorKey = (String) parameters.get("sensorKey");
+ Integer monitorPointId = Integer.parseInt((String) parameters.get("monitorPointId"));
+
+ //������monitorpointId������������������������������mac������
+ List<Device> devices = deviceService.getDevicesByMonitorPointId(monitorPointId);
+ if(ObjectUtils.isEmpty(devices))
+ return ResultBean.fail("���������������������monitorPointId������");
+ List<String> macs = new ArrayList<>();
+ devices.forEach(p->{
+ macs.add(p.getMac());
+ });
+
+ //���������������mac���������������������������������������������������������
+ Map<String, Object> timeAndYearMonth = getTimeAndYearMonthForFiveMinuteData();
+ String time= (String) timeAndYearMonth.get("time");
+ String yearAndMonth = (String) timeAndYearMonth.get("yearAndMonth");
+ parameters.put("time",time);
+ parameters.put("yearAndMonth",yearAndMonth);
+ parameters.put("macs",macs);
+ List<Map<String, Object>> datas = historyMinutelyService.getFiveMinutesDataByMacsAndTime(parameters);
+ return new ResultBean<List<Map<String, Object>>>(datas);
+
+ }
+
+ /**
+ * @Description: ������������������������������������������������������������������������������
+ * @Param: []
+ * @return: java.lang.String
+ * @Author: ������������
+ * @Date: 2020/10/19
+ */
+ private Map<String, Object> getTimeAndYearMonthForFiveMinuteData() {
+ Map<String, Object> map = new HashMap<>();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date date = new Date();
+ String minute = DateUtil.getMinute(date);
+ String year = "";
+ String month = "";
+ String yearAndMonth = "";
+ String startTime = "";
+ Integer endMinute = Integer.parseInt(String.valueOf(minute.charAt(minute.length() - 1)));
+ if (endMinute >= 5) {
+ StringBuilder time = new StringBuilder(sdf.format(date));
+ startTime = time.replace(15, 19, "0:00").toString();
+ } else {
+ date = DateUtil.rollMinute(date, -5);
+ StringBuilder time = new StringBuilder(sdf.format(date));
+ startTime = time.replace(15, 19, "5:00").toString();
+ }
+
+ year = DateUtil.getYear(date);
+ month = DateUtil.getMonth(date);
+ yearAndMonth = year + month;
+ map.put("time", startTime);
+ map.put("yearAndMonth", yearAndMonth);
+ return map;
+ }
+
+
+
}
diff --git a/src/main/java/com/moral/mapper/HistoryFiveMinutelyMapper.java b/src/main/java/com/moral/mapper/HistoryFiveMinutelyMapper.java
new file mode 100644
index 0000000..91a720a
--- /dev/null
+++ b/src/main/java/com/moral/mapper/HistoryFiveMinutelyMapper.java
@@ -0,0 +1,8 @@
+package com.moral.mapper;
+
+import java.util.List;
+import java.util.Map;
+
+public interface HistoryFiveMinutelyMapper {
+ List<Map<String,Object>> getFiveMinutesDataByMacsAndTime(Map<String,Object> parameters);
+}
diff --git a/src/main/java/com/moral/service/HistoryMinutelyService.java b/src/main/java/com/moral/service/HistoryMinutelyService.java
index b4ccde5..1904618 100644
--- a/src/main/java/com/moral/service/HistoryMinutelyService.java
+++ b/src/main/java/com/moral/service/HistoryMinutelyService.java
@@ -38,4 +38,6 @@
List<Map<String, Object>> getMultiDeviceSensorData(Map<String, Object> parameters) throws Exception;
+ List<Map<String,Object>> getFiveMinutesDataByMacsAndTime(Map<String,Object> parameters);
+
}
diff --git a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
index e734433..79ef541 100644
--- a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
@@ -1,5 +1,6 @@
package com.moral.service.impl;
+import com.moral.mapper.*;
import io.swagger.models.auth.In;
import java.math.BigDecimal;
@@ -103,6 +104,14 @@
@Resource
private MonitorPointMapper monitorPointMapper;
+ @Resource
+ HistoryFiveMinutelyMapper historyFiveMinutelyMapper;
+
+ @Override
+ public List<Map<String, Object>> getFiveMinutesDataByMacsAndTime(Map<String, Object> parameters) {
+ ValidateUtil.notNull(parameters,"���������������������������������");
+ return historyFiveMinutelyMapper.getFiveMinutesDataByMacsAndTime(parameters);
+ }
@Override
public Map<String, Object> getDayAQIByDevice(Map<String, Object> parameters) {
@@ -911,11 +920,11 @@
}*/
values.add(value);
-
-
}
System.out.println(data);
}
return null;
}
+
+
}
diff --git a/src/main/java/com/moral/util/DateUtil.java b/src/main/java/com/moral/util/DateUtil.java
new file mode 100644
index 0000000..4ed0b22
--- /dev/null
+++ b/src/main/java/com/moral/util/DateUtil.java
@@ -0,0 +1,179 @@
+package com.moral.util;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+public class DateUtil {
+ /**
+ * ������������������������������2010-12-01
+ */
+ public static String FORMAT_SHORT = "yyyy-MM-dd";
+ /**
+ * ������������ ������2010-12-01 23:15:06
+ */
+ public static String FORMAT_LONG = "yyyy-MM-dd HH:mm:ss";
+ /**
+ * ������������������������������ ������yyyy-MM-dd HH:mm:ss.S
+ */
+ public static String FORMAT_FULL = "yyyy-MM-dd HH:mm:ss.S";
+ /**
+ * ������������ ������2010���12���01���
+ */
+ public static String FORMAT_SHORT_CN = "yyyy���MM���dd";
+ /**
+ * ������������ ������2010���12���01��� 23���15���06���
+ */
+ public static String FORMAT_LONG_CN = "yyyy���MM���dd��� HH���mm���ss���";
+ /**
+ * ������������������������������������
+ */
+ public static String FORMAT_FULL_CN = "yyyy���MM���dd��� HH���mm���ss���SSS������";
+
+
+ public static void main(String[] args) {
+ Date date = rollMinute(new Date(), -2);
+ System.out.println(date);
+
+ }
+
+
+
+ /**
+ * ������������������
+ */
+ public static String getTimeString() {
+ SimpleDateFormat df = new SimpleDateFormat(FORMAT_SHORT_CN);
+ Calendar calendar = Calendar.getInstance();
+ return df.format(calendar.getTime());
+ }
+
+ /**
+ * ������������������
+ * @param date ������
+ * @return
+ */
+ public static String getYear(Date date) {
+ SimpleDateFormat df = new SimpleDateFormat(FORMAT_FULL);
+ return df.format(date).substring(0, 4);
+ }
+
+ /**
+ * ������������������������
+ *
+ * @param date
+ * Date ������
+ * @return ������������
+ */
+ public static String getMonth(Date date) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ int Month = calendar.get(Calendar.MONTH);
+ Month++;
+ String str = String.valueOf(Month);
+ return str = str.length()==1?"0".concat(str):str;
+ }
+
+ /**
+ * ���������������������������
+ *
+ * @param date
+ * Date ������
+ * @return ������������
+ */
+ public static int getDay(Date date) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ return calendar.get(Calendar.DAY_OF_MONTH);
+ }
+
+ /**
+ * ���������������������������
+ *
+ * @param date
+ * ������
+ * @return ������������
+ */
+ public static int getHour(Date date) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ return calendar.get(Calendar.HOUR_OF_DAY);
+ }
+
+ /**
+ * ������������������������
+ *
+ * @param date
+ * ������
+ * @return ������������
+ */
+ public static String getMinute(Date date) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ int minute = calendar.get(Calendar.MINUTE);
+ String str = String.valueOf(minute);
+ return str = str.length()==1?"0".concat(str):str;
+ }
+
+ /**
+ * ������������
+ *
+ * @param date
+ * Date ������
+ * @return ������������
+ */
+ public static int getSecond(Date date) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ return calendar.get(Calendar.SECOND);
+ }
+
+ /**
+ * ������������������������
+ *
+ * @param date
+ * ������
+ * @return ���������
+ */
+ public static long getMillis(Date date) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ return calendar.getTimeInMillis();
+ }
+
+ /**
+ * ���������������������������������������������
+ *
+ * @param
+ *
+ * @return ������������������
+ */
+ public static Date rollMinute(Date d, int minute) {
+ return new Date(d.getTime() + minute * 60 * 1000);
+ }
+
+
+ /**
+ * ���/���?���
+ *
+ * @param d
+ * @param mon
+ * @return
+ */
+ public static Date rollMon(Date d, int mon) {
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(d);
+ cal.add(Calendar.MONTH, mon);
+ return cal.getTime();
+ }
+
+ //������������i���������������
+ public static String getOldTime(int i){
+ Long time=System.currentTimeMillis();
+ Long time1=time-(1000 * 60 * 60 * 24 * i);
+ SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String sd = sdf.format(new Date(Long.parseLong(String.valueOf(time1))));
+ String s=sd.substring(0,10);
+ return s;
+ }
+}
diff --git a/src/main/java/com/moral/webSocketServer/BSTestWebsocketServer.java b/src/main/java/com/moral/webSocketServer/BSTestWebsocketServer.java
index 9b42ef0..12e9cb8 100644
--- a/src/main/java/com/moral/webSocketServer/BSTestWebsocketServer.java
+++ b/src/main/java/com/moral/webSocketServer/BSTestWebsocketServer.java
@@ -24,15 +24,15 @@
import java.util.concurrent.ConcurrentHashMap;
@Slf4j
-@ServerEndpoint("/web/testWebSocket/{param}")
+@ServerEndpoint("/web/WebSocket/{param}")
@Component
-/**
+/**
* @Description: ���������������websocket
- * @Param:
- * @return:
+ * @Param:
+ * @return:
* @Author: ������������
* @Date: 2020/9/30
- */
+ */
public class BSTestWebsocketServer {
public static DeviceService deviceService;
@@ -116,17 +116,17 @@
channel.basicConsume(queue, false, new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
- //������MQ������������������������������������������������������������
+ //������MQ������������������������������������������������������������
Map message = (Map) JSON.parse((String) JSON.parse(new String(body)));
sendWindInfo(message);
-
+
//���������������������������������������mac���������������������������������mac������������
if(mac!=null&&(!mac.equals(0)))
sendDeviceInfo(message,deviceMap);
-
+
//������������
channel.basicAck(envelope.getDeliveryTag(), true);
-
+
//������socket������������������
if (!webSocketMap.containsKey(accountId)) {
RabbitMQUtils.closeConnectionChannel(connection, channel);
@@ -171,13 +171,13 @@
}
}
- /**
+ /**
* @Description: ���������������������socket���������������������������������
* @Param: [param]
* @return: void
* @Author: ���������
* @Date: 2020/9/30
- */
+ */
private void sendWindInfo(Map<String, Object> param) {
try {
Map<String, Object> map = new HashMap<>();
@@ -191,13 +191,13 @@
}
}
- /**
+ /**
* @Description: ������������mac������accountid���������������������mac������������������
* @Param: [param]
* @return: void
* @Author: ���������
* @Date: 2020/9/30
- */
+ */
private void sendDeviceInfo(Map<String, Object> param,Map<String,Device> deviceMap) {
String deviceMac = (String) param.get("mac");
if (mac.equals(deviceMac)) {
diff --git a/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java b/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java
deleted file mode 100644
index f4901f2..0000000
--- a/src/main/java/com/moral/webSocketServer/BSWebsocketServer.java
+++ /dev/null
@@ -1,173 +0,0 @@
-package com.moral.webSocketServer;
-
-import com.alibaba.fastjson.JSON;
-import com.moral.common.util.ParameterUtils;
-import com.moral.entity.Device;
-import com.moral.entity.Sensor;
-import com.moral.service.DeviceService;
-import com.moral.service.SensorService;
-import com.rabbitmq.client.*;
-import com.moral.util.RabbitMQUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-import org.springframework.util.ObjectUtils;
-
-import javax.annotation.PostConstruct;
-import javax.websocket.*;
-import javax.websocket.server.PathParam;
-import javax.websocket.server.ServerEndpoint;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-@Slf4j
-@ServerEndpoint("/web/webSocket/{param}")
-@Component
-public class BSWebsocketServer {
-
- public static DeviceService deviceService;
-
- public static SensorService sensorService;
-
- /**
- * concurrent������������������Set���������������������������������������MyWebSocket���������
- */
- private static ConcurrentHashMap<String, BSWebsocketServer> webSocketMap = new ConcurrentHashMap<>();
- /**
- * ������������������������������������������������������������������������������
- */
- private Session session;
-
- private String orgId;
-
- private String accountId;
-
- private String regionCode;
-
- private final String exchange = "screens_data";
-
- private static Map<String, Sensor> sensors;
-
-
- @PostConstruct
- public void init() {
- sensors = new HashMap<>();
- List<Sensor> allSensors = sensorService.getAllSensors();
- for (Sensor sensor : allSensors) {
- sensors.put(sensor.getSensorKey(), sensor);
- }
- }
-
- /**
- * ���������������������������������
- */
- @OnOpen
- public void onOpen(Session session, @PathParam("param") String param) {
- this.session = session;
- String[] params = param.split("&");
- this.accountId = params[0];
- this.orgId = params[1];
- this.regionCode = params[2];
-
- if (webSocketMap.containsKey(accountId)) {
- webSocketMap.remove(accountId);
- webSocketMap.put(accountId, this);
- } else {
- webSocketMap.put(accountId, this);
- }
-
- Map<String, Object> paramMap = new HashMap<String, Object>();
- paramMap.put("orgId", orgId);
- paramMap.put("regionCode", regionCode);
- ParameterUtils.getRegionType4RegionCode(paramMap);
- List<Device> deviceList = deviceService.queryDevice(paramMap);
-
- try {
- Connection connection = RabbitMQUtils.getConnection();
- final Channel channel = connection.createChannel();
- //������������������
- String queue = channel.queueDeclare().getQueue();
-
- //������������������������routingKey������������
- String routingKey = "";
- for (Device d : deviceList) {
- routingKey = orgId + "." + d.getMac();
- channel.queueBind(queue, exchange, routingKey);
- }
-
- //������������,���������������������
- channel.basicQos(1);//���������������������������
- channel.basicConsume(queue, false, new DefaultConsumer(channel) {
- @Override
- public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
- Map message = (Map) JSON.parse((String) JSON.parse(new String(body)));
- message = messageFormat(message,deviceList);
- sendMessage(JSON.toJSONString(message));
- channel.basicAck(envelope.getDeliveryTag(), false);
- //������socket������������������
- if (!webSocketMap.containsKey(accountId)) {
- RabbitMQUtils.closeConnectionChannel(connection,channel);
- }
- }
- });
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
-
- @OnClose
- public void onClose() {
- if (webSocketMap.containsKey(accountId)) {
- webSocketMap.remove(accountId);
- }
- }
-
- //������������������������������
- @OnMessage
- public void onMessage(String message, Session session) {
-
- }
-
- @OnError
- public void onError(Session session, Throwable error) {
- log.error(error.getMessage());
- }
-
- public void sendMessage(String message) throws IOException {
- try {
- if (session.isOpen()) {
- this.session.getBasicRemote().sendText(message);
- }
- } catch (IOException e) {
-
- //log.error(e.getMessage());
- }
- }
-
- //���MQ���������������������������������������������������������������
- private Map<String,Object> messageFormat( Map<String,Object> param,List<Device> deviceList) {
- Map<String, Object> map = new HashMap<>();
- param.forEach((key, value) -> {
- Sensor sensor = sensors.get(key);
- if (!ObjectUtils.isEmpty(sensor)) {
- String unit = ObjectUtils.isEmpty(sensor.getUnit())?"":(String)sensor.getUnit();
- map.put(sensor.getName(),value+unit);
- }
- });
- String mac = (String) param.get("mac");
- for (Device device : deviceList) {
- if(mac.equals(device.getMac())){
- map.put("������",device.getLatitude());
- map.put("������",device.getLongitude());
- map.put("������",device.getState());
- break;
- }
- }
- map.put("mac",mac);
- return map;
- }
-
-}
diff --git a/src/main/resources/mapper/HistoryFiveMinutelyMapper.xml b/src/main/resources/mapper/HistoryFiveMinutelyMapper.xml
new file mode 100644
index 0000000..89eee37
--- /dev/null
+++ b/src/main/resources/mapper/HistoryFiveMinutelyMapper.xml
@@ -0,0 +1,12 @@
+<?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.HistoryFiveMinutelyMapper">
+ <select id="getFiveMinutesDataByMacsAndTime" resultType="map">
+ SELECT h.mac,json->'$.${sensorKey}' as #{sensorKey}
+ from history_five_minutely_${yearAndMonth} h
+ where time = #{time} and mac IN
+ <foreach collection="macs" separator="," open="(" close=")" item="mac">
+ #{mac}
+ </foreach>
+ </select>
+</mapper>
\ No newline at end of file
--
Gitblit v1.8.0