From 46670e34c1105649da6091a0829b9451c9fe5b37 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Mon, 07 May 2018 14:44:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java      |  122 +++++++++++
 lib/taobao-sdk-java-auto_1455552377940-20160607.jar                  |    0 
 src/main/java/com/moral/controller/ReportController.java             |   14 +
 src/main/resources/mapper/AlarmDailyMapper.xml                       |   97 ++++++++
 src/main/java/com/moral/controller/MobileController.java             |  114 +++++++++-
 src/main/java/com/moral/mapper/AlarmDailyMapper.java                 |   15 +
 src/main/java/com/moral/service/OperateUserService.java              |    2 
 src/main/java/com/moral/service/AlarmDailyService.java               |   13 +
 src/main/java/com/moral/service/impl/OperateUserServiceImpl.java     |    5 
 pom.xml                                                              |   27 ++
 src/main/java/com/moral/entity/AlarmDaily.java                       |   35 +++
 src/main/resources/mapper/AlarmMapper.xml                            |   74 ------
 src/main/java/com/moral/entity/OperateUser.java                      |    4 
 src/main/java/com/moral/mapper/AlarmMapper.java                      |    1 
 src/main/java/com/moral/service/impl/AlarmServiceImpl.java           |   67 -----
 src/main/java/com/moral/util/MessageUtils.java                       |   43 +++
 src/main/java/com/moral/service/AlarmService.java                    |    6 
 src/main/java/com/moral/controller/ScreenController.java             |    9 
 src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java |    5 
 19 files changed, 488 insertions(+), 165 deletions(-)

diff --git a/lib/taobao-sdk-java-auto_1455552377940-20160607.jar b/lib/taobao-sdk-java-auto_1455552377940-20160607.jar
new file mode 100644
index 0000000..1b5f22f
--- /dev/null
+++ b/lib/taobao-sdk-java-auto_1455552377940-20160607.jar
Binary files differ
diff --git a/pom.xml b/pom.xml
index 45eb35b..7125301 100644
--- a/pom.xml
+++ b/pom.xml
@@ -177,6 +177,15 @@
 			<artifactId>jjwt</artifactId>
 			<version>0.9.0</version>
 		</dependency>
+
+		<!-- ������������ -->
+		<dependency>
+			<groupId>com.taobao.api</groupId>
+			<artifactId>taobao-sdk</artifactId>
+			<version>1.0.0</version>
+			<scope>system</scope>
+			<systemPath>${project.basedir}/lib/taobao-sdk-java-auto_1455552377940-20160607.jar</systemPath>
+		</dependency>
 	</dependencies>
 
 	<build>
@@ -204,6 +213,24 @@
 				<groupId>org.springframework.boot</groupId>
 				<artifactId>spring-boot-maven-plugin</artifactId>
 			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-dependency-plugin</artifactId>
+				<version>3.1.0</version>
+				<executions>
+					<execution>
+						<id>copy-dependencies</id>
+						<phase>compile</phase>
+						<goals>
+							<goal>copy-dependencies</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory>
+							<includeScope>system</includeScope>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
 		</plugins>
 	</build>
 </project>
\ No newline at end of file
diff --git a/src/main/java/com/moral/controller/MobileController.java b/src/main/java/com/moral/controller/MobileController.java
index 1f4e182..61740c2 100644
--- a/src/main/java/com/moral/controller/MobileController.java
+++ b/src/main/java/com/moral/controller/MobileController.java
@@ -8,11 +8,11 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
-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.util.Crypto;
+import com.moral.util.MessageUtils;
+import com.taobao.api.ApiException;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.*;
 
 import com.moral.common.bean.AppData;
 import com.moral.entity.Device;
@@ -55,7 +55,7 @@
 	 * @param password the password
 	 * @return the result bean
 	 */
-	@GetMapping("accountlogin")
+	@PostMapping("accountlogin")
 	public AppData<OperateUser> mobileLogin(String username, String password) {
 		OperateUser operateUser = operateUserService.mobileLogin(username,password);
 		return new AppData<OperateUser>(operateUser); 
@@ -69,7 +69,7 @@
 	 * @param newpassword the newpassword
 	 * @return the result bean
 	 */
-	@GetMapping("upPassword")
+	@PostMapping("upPassword")
 	public AppData<OperateUser> updatePassword(Integer uid, String password, String newpassword) {
 		OperateUser operateUser = operateUserService.updatePassword(uid,password,newpassword);
 		return new AppData<OperateUser>(operateUser); 
@@ -81,7 +81,7 @@
 	 * @param device the device
 	 * @return the result bean
 	 */
-	@GetMapping("reportDevice")
+	@PostMapping("reportDevice")
 	public AppData<String> installDevice(Device device) {
 		deviceService.saveOrUpdateDevice(device);
 		return new AppData<String>("");
@@ -95,7 +95,7 @@
 	 * @param pageSize the page size
 	 * @return the install devices by operate user
 	 */
-	@GetMapping("myRelease")
+	@PostMapping("myRelease")
 	public AppData<List<Device>> getInstallDevicesByOperateUser(@RequestParam(value="uid", required=true)Integer uid, 
 			@RequestParam(defaultValue="0")Integer pageIndex, @RequestParam(defaultValue="0")Integer pageSize) {
 		List<Device> devices = deviceService.getInstallDevicesByOperateUser(uid, pageIndex, pageSize);
@@ -108,7 +108,7 @@
 	 * @param mac the mac
 	 * @return the device by mac
 	 */
-	@GetMapping("getEquInfoByMac")
+	@PostMapping("getEquInfoByMac")
 	public AppData<Device> getDeviceByMac(@RequestParam(value="mac", required=true)String mac) {
 		Device device = deviceService.getDeviceByMac(mac);
 		return new AppData<Device>(device);
@@ -120,7 +120,7 @@
 	 * @param request the area name
 	 * @return the monitor points by area name
 	 */
-	@GetMapping("getMpointsByAreaName")
+	@PostMapping("getMpointsByAreaName")
 	public AppData<List<MonitorPoint>> getMonitorPointsByAreaName(HttpServletRequest request) {
 		Map<String, Object> parameters = getParametersStartingWith(request, null);
 		List<MonitorPoint> monitorPoints = monitorPointService.getMonitorPointsByAreaName(parameters);
@@ -133,10 +133,100 @@
 	 * @param request the area name
 	 * @return the organizations by area name
 	 */
-	@GetMapping("getOrgsByAreaName")
+	@PostMapping("getOrgsByAreaName")
 	public AppData<List<Organization>> getOrganizationsByAreaName(HttpServletRequest request) {
 		Map<String, Object> parameters = getParametersStartingWith(request, null);
 		List<Organization> organizations = organizationService.getOrganizationsByAreaName(parameters);
 		return new AppData<List<Organization>>(organizations);
 	}
+
+	/**
+	 * Send SMS
+	 *
+	 * @param mobile
+	 * @return
+	 */
+	@PostMapping("sendSms")
+	public AppData<String> sendSms(String mobile) {
+		AppData apiData = new AppData();
+
+		if (StringUtils.isBlank(mobile)){
+			apiData.setErrno(1);
+			apiData.setMessage("������������������������");
+			apiData.setData("{}");
+			return  apiData;
+		}
+		OperateUser user = operateUserService.getOperateUserByMobile(mobile);
+		if (user==null){
+			apiData.setErrno(1);
+			apiData.setMessage("���������������������������");
+			apiData.setData("{}");
+			return  apiData;
+		}
+		//���������������
+		int code = (int)((Math.random() * 9 + 1) * 100000);
+		user.setCode(String.valueOf(code));
+		operateUserService.updateOperateUser(user);
+
+		//���������������
+		try {
+			int state = MessageUtils.sendMsg(mobile, String.valueOf(code));
+			if(state==0){
+				apiData.setErrno(0);
+				apiData.setMessage("���������������������");
+				apiData.setData("{}");
+				return  apiData;
+			}
+			if(state==1){
+				apiData.setErrno(1);
+				apiData.setMessage("���������������������");
+				apiData.setData("{}");
+				return  apiData;
+			}
+		} catch (ApiException e) {
+			e.printStackTrace();
+		}
+		return new AppData<String>("");
+	}
+
+	/**
+	 * Send SMS
+	 *
+	 * @param mobile
+	 * @return
+	 */
+	@PostMapping("password")
+	public AppData<String> password(String username, String password, String code){
+		AppData apiData = new AppData();
+
+		if (StringUtils.isBlank(code)){
+			apiData.setErrno(1);
+			apiData.setMessage("������������������������������������������");
+			apiData.setData("{}");
+			return  apiData;
+		}
+		OperateUser user = operateUserService.getOperateUserByMobile(username);
+		if (user==null){
+			apiData.setErrno(1);
+			apiData.setMessage("���������������������������");
+			apiData.setData("{}");
+			return  apiData;
+		}
+		if (user.getCode().equals(code)){
+			user.setPassword(Crypto.md5(password));
+			int new_code = (int)((Math.random() * 9 + 1) * 100000);
+			user.setCode(String.valueOf(new_code));
+			operateUserService.updateOperateUser(user);
+
+			apiData.setErrno(0);
+			apiData.setMessage("������������������");
+			apiData.setData("{}");
+			return  apiData;
+		} else {
+			apiData.setErrno(1);
+			apiData.setMessage("������������������������");
+			apiData.setData("{}");
+			return  apiData;
+		}
+	}
 }
diff --git a/src/main/java/com/moral/controller/ReportController.java b/src/main/java/com/moral/controller/ReportController.java
index cd4165a..39b6a6a 100644
--- a/src/main/java/com/moral/controller/ReportController.java
+++ b/src/main/java/com/moral/controller/ReportController.java
@@ -21,7 +21,7 @@
 
 import com.moral.common.bean.ResultBean;
 import com.moral.entity.charts.LineChartCriteria;
-import com.moral.service.AlarmService;
+import com.moral.service.AlarmDailyService;
 import com.moral.service.HistoryMinutelyService;
 
 @SuppressWarnings({ "unchecked", "rawtypes" })
@@ -34,7 +34,7 @@
 	private HistoryMinutelyService historyMinutelyService;
 
 	@Resource
-	private AlarmService alarmService;
+	private AlarmDailyService alarmDailyService;
 	
 	@GetMapping("compare")
 	public ResultBean<Map<String, List>> getCompareReport(HttpServletRequest request) throws Exception {
@@ -74,9 +74,17 @@
 	@GetMapping("pie")
 	public ResultBean<Map<String, Object>> getPieData(HttpServletRequest request) throws Exception {
 		Map<String, Object> parameters = getParametersStartingWith(request, null);
-		Map pieData = alarmService.getPieData(parameters);
+		Map pieData = alarmDailyService.getPieData(parameters);
 		
 		return new ResultBean<Map<String, Object>>(pieData);
 	}
 
+	@GetMapping("alarm-year")
+	public ResultBean<List<Integer>> getAlarmDataByYear(HttpServletRequest request) throws Exception {
+		Map<String, Object> parameters = getParametersStartingWith(request, null);
+		List<Integer> alarmDataByYear = alarmDailyService.getAlarmDataByYear(parameters);
+		
+		return new ResultBean<List<Integer>>(alarmDataByYear);
+	}
+
 }
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 5957588..4da099f 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -7,9 +7,6 @@
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.net.InetAddress;
-import java.net.URL;
-import java.net.URLConnection;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
@@ -58,7 +55,7 @@
 import com.moral.entity.alarm.AlarmSensorLevel;
 import com.moral.service.AccountService;
 import com.moral.service.AlarmConfigService;
-import com.moral.service.AlarmService;
+import com.moral.service.AlarmDailyService;
 import com.moral.service.AreaService;
 import com.moral.service.DeviceService;
 import com.moral.service.HistoryMinutelyService;
@@ -116,7 +113,7 @@
 	private String levelKey = "alarm_";
 
 	@Resource
-	private AlarmService alarmService;
+	private AlarmDailyService alarmDailyService;
 	/**
 	 * Screen login. ������������
 	 * 
@@ -493,7 +490,7 @@
 				parameters.remove("organizationId");
 			}
 		}
-		Map pieData = alarmService.getPieData(parameters);
+		Map pieData = alarmDailyService.getPieData(parameters);
 		List<Map<String, Object>> list = (List<Map<String, Object>>) pieData.get(sensorKey);
 		return new ResultBean<List<Map<String, Object>>>(list);
 	}
diff --git a/src/main/java/com/moral/entity/AlarmDaily.java b/src/main/java/com/moral/entity/AlarmDaily.java
new file mode 100644
index 0000000..0c493fb
--- /dev/null
+++ b/src/main/java/com/moral/entity/AlarmDaily.java
@@ -0,0 +1,35 @@
+package com.moral.entity;
+
+import java.util.Date;
+
+import lombok.Data;
+
+@Data
+public class AlarmDaily {
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column alarm.mac
+     *
+     * @mbg.generated Mon Apr 16 09:27:36 CST 2018
+     */
+    private String mac;
+    private Integer state;
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column alarm.json
+     *
+     * @mbg.generated Mon Apr 16 09:27:36 CST 2018
+     */
+    private String json;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column alarm.time
+     *
+     * @mbg.generated Mon Apr 16 09:27:36 CST 2018
+     */
+    private Date time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/moral/entity/OperateUser.java b/src/main/java/com/moral/entity/OperateUser.java
index 4f79eba..99b413f 100644
--- a/src/main/java/com/moral/entity/OperateUser.java
+++ b/src/main/java/com/moral/entity/OperateUser.java
@@ -30,7 +30,9 @@
     private Date createTime;
 
     private Date expireTime;
-    
+
+    private String code;
+
     public Integer getUid() {
         return id;
     }
diff --git a/src/main/java/com/moral/mapper/AlarmDailyMapper.java b/src/main/java/com/moral/mapper/AlarmDailyMapper.java
new file mode 100644
index 0000000..1fc7606
--- /dev/null
+++ b/src/main/java/com/moral/mapper/AlarmDailyMapper.java
@@ -0,0 +1,15 @@
+package com.moral.mapper;
+
+import java.util.List;
+import java.util.Map;
+
+import com.moral.common.mapper.BaseMapper;
+import com.moral.entity.AlarmDaily;
+
+public interface AlarmDailyMapper extends BaseMapper<AlarmDaily> {
+	
+	List<Map<String, Object>> getAlarmData(Map<String, Object> parameters);
+
+	List<Map<String, Object>> getAlarmDataByYear(Map<String, Object> parameters);
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/moral/mapper/AlarmMapper.java b/src/main/java/com/moral/mapper/AlarmMapper.java
index 1783b24..aac5662 100644
--- a/src/main/java/com/moral/mapper/AlarmMapper.java
+++ b/src/main/java/com/moral/mapper/AlarmMapper.java
@@ -10,6 +10,5 @@
 
 public interface AlarmMapper extends BaseMapper<Alarm> {
 	
-	List<Map<String, Object>> getAlarmData(Map<String, Object> parameters);
 	List<Map> countByTimes(@Param("start")Date start, @Param("end")Date end, @Param("format")String format);
 }
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/AlarmDailyService.java b/src/main/java/com/moral/service/AlarmDailyService.java
new file mode 100644
index 0000000..1108fd6
--- /dev/null
+++ b/src/main/java/com/moral/service/AlarmDailyService.java
@@ -0,0 +1,13 @@
+package com.moral.service;
+
+import java.util.List;
+import java.util.Map;
+
+@SuppressWarnings("rawtypes")
+public interface AlarmDailyService {
+
+	Map getPieData(Map<String, Object> parameters);
+
+	List<Integer> getAlarmDataByYear(Map<String, Object> parameters);
+
+}
diff --git a/src/main/java/com/moral/service/AlarmService.java b/src/main/java/com/moral/service/AlarmService.java
index 4433a59..dcad103 100644
--- a/src/main/java/com/moral/service/AlarmService.java
+++ b/src/main/java/com/moral/service/AlarmService.java
@@ -1,16 +1,14 @@
 package com.moral.service;
 
-import com.moral.entity.charts.TimeUnits;
-
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+
+import com.moral.entity.charts.TimeUnits;
 
 @SuppressWarnings("rawtypes")
 public interface AlarmService {
 
     List<Map> countByTimes(Date start, Date end, TimeUnits timeUnits);
-
-    Map getPieData(Map<String, Object> parameters);
 
 }
diff --git a/src/main/java/com/moral/service/OperateUserService.java b/src/main/java/com/moral/service/OperateUserService.java
index ea6e908..4c8e577 100644
--- a/src/main/java/com/moral/service/OperateUserService.java
+++ b/src/main/java/com/moral/service/OperateUserService.java
@@ -25,4 +25,6 @@
 	Integer deleteOperateUsersByLogic(List<Integer> ids);
 
     PageBean queryByPageBean(PageBean pageBean);
+
+	Integer updateOperateUser(OperateUser operateUser);
 }
diff --git a/src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java b/src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java
new file mode 100644
index 0000000..de4d232
--- /dev/null
+++ b/src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java
@@ -0,0 +1,122 @@
+package com.moral.service.impl;
+
+import java.text.ParseException;
+import java.time.LocalDate;
+import java.time.temporal.TemporalAdjusters;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import com.moral.mapper.AlarmDailyMapper;
+import com.moral.mapper.SensorMapper;
+import com.moral.service.AlarmDailyService;
+import com.moral.service.HistoryMinutelyService;
+
+@Service
+@SuppressWarnings({ "rawtypes", "unchecked" })
+public class AlarmDailyServiceImpl implements AlarmDailyService {
+
+	@Resource
+	private AlarmDailyMapper alarmDailyMapper;
+
+	@Resource
+	private SensorMapper sensorMapper;
+
+	@Resource
+	private HistoryMinutelyService historyMinutelyService;
+
+	@Override
+	public Map getPieData(Map<String, Object> parameters) {
+		Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
+		try {
+			historyMinutelyService.convertQueryParam(parameters);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		List<Map<String, Object>> alarmDatas = alarmDailyMapper.getAlarmData(parameters);
+		Object dimension = parameters.get("dimension");
+		if ("monitorPoint".equals(dimension)) {
+			for (Map<String, Object> alarmData : alarmDatas) {
+				String name = alarmData.remove("name").toString();
+				alarmData.remove("sum");
+				for (Map.Entry<String, Object> entry : alarmData.entrySet()) {
+					String key = entry.getKey();
+					Object value = entry.getValue().toString();
+					if (!"0".equals(value)) {
+						List list;
+						Map<String, Object> map = new HashMap<String, Object>();
+						if (ObjectUtils.isEmpty(resultMap.get(key))) {
+							list = new ArrayList();
+						} else {
+							list = (List) resultMap.get(key);
+						}
+						map.put("name", name);
+						map.put("value", value);
+						list.add(map);
+						resultMap.put(key, list);
+					}
+				}
+			}
+		} else {
+			Map<String, Object> alarmData = alarmDatas.get(0);
+			List<String> sensors = (List<String>) parameters.get("sensors");
+			List list = new ArrayList();
+			if (!ObjectUtils.isEmpty(alarmData)) {
+				for (String key : alarmData.keySet()) {
+					for (String sensor : sensors) {
+						String[] split = sensor.split("-");
+						if (key.equals(split[0]) && !"0".equals(alarmData.get(key).toString())) {
+							Map<String, Object> map = new HashMap<String, Object>();
+							if (parameters.containsKey("description")) {
+								map.put("name", split[3]);
+							} else {
+								map.put("name", split[1]);
+							}
+							map.put("value", alarmData.get(key));
+							list.add(map);
+						}
+					}
+				}
+			}
+			resultMap.put("list", list);
+		}
+		return resultMap;
+	}
+
+	@Override
+	public List<Integer> getAlarmDataByYear(Map<String, Object> parameters) {
+		LocalDate localDate = LocalDate.now();
+		parameters.put("start", localDate.with(TemporalAdjusters.firstDayOfYear()));
+		parameters.put("end", localDate.with(TemporalAdjusters.firstDayOfNextYear()));
+		parameters.put("sensorKeys",
+				sensorMapper.selectAll().stream().map(sensor -> sensor.getSensorKey()).collect(Collectors.toList()));
+		List<Map<String, Object>> list = alarmDailyMapper.getAlarmDataByYear(parameters);
+		Integer[] result = new Integer[12];
+		for (int i = 0; i < result.length; i++) {
+			if (ObjectUtils.isEmpty(list)) {
+				break;
+			}
+			for (Map<String, Object> map : list) {
+				Integer month = Integer.valueOf(map.get("time").toString().substring(5));
+				if (i + 1 < month) {
+					break;
+				} else if (i + 1 == month) {
+					result[i] = Integer.valueOf(map.get("sum").toString());
+					list.remove(map);
+					break;
+				}
+			}
+		}
+		return Arrays.asList(result);
+	}
+
+}
diff --git a/src/main/java/com/moral/service/impl/AlarmServiceImpl.java b/src/main/java/com/moral/service/impl/AlarmServiceImpl.java
index 8b97ca5..3386740 100644
--- a/src/main/java/com/moral/service/impl/AlarmServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AlarmServiceImpl.java
@@ -1,20 +1,20 @@
 package com.moral.service.impl;
 
-import java.text.ParseException;
-import java.util.*;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Resource;
 
-import com.moral.entity.charts.TimeUnits;
 import org.springframework.stereotype.Service;
-import org.springframework.util.ObjectUtils;
 
+import com.moral.entity.charts.TimeUnits;
 import com.moral.mapper.AlarmMapper;
 import com.moral.service.AlarmService;
 import com.moral.service.HistoryMinutelyService;
 
 @Service
-@SuppressWarnings({ "rawtypes", "unchecked" })
+@SuppressWarnings({ "rawtypes" })
 public class AlarmServiceImpl implements AlarmService {
 
 	@Resource
@@ -33,63 +33,6 @@
 		}
 
     	return alarmMapper.countByTimes(start, end, format);
-	}
-	@Override
-	public Map getPieData(Map<String, Object> parameters) {
-		Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
-		try {
-			historyMinutelyService.convertQueryParam(parameters);
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		List<Map<String, Object>> alarmDatas = alarmMapper.getAlarmData(parameters);
-		Object dimension = parameters.get("dimension");
-		if ("monitorPoint".equals(dimension)) {
-			for (Map<String, Object> alarmData : alarmDatas) {
-				String name = alarmData.remove("name").toString();
-				alarmData.remove("sum");
-				for (Map.Entry<String, Object> entry : alarmData.entrySet()) {
-					String key = entry.getKey();
-					Object value = entry.getValue().toString();
-					if (!"0".equals(value)) {
-						List list;
-						Map<String, Object> map = new HashMap<String, Object>();
-						if (ObjectUtils.isEmpty(resultMap.get(key))) {
-							list = new ArrayList();
-						} else {
-							list = (List) resultMap.get(key);
-						}
-						map.put("name", name);
-						map.put("value", value);
-						list.add(map);
-						resultMap.put(key, list);
-					}
-				}
-			}
-		} else {
-			Map<String, Object> alarmData = alarmDatas.get(0);
-			List<String> sensors = (List<String>) parameters.get("sensors");
-			List list = new ArrayList();
-			if (!ObjectUtils.isEmpty(alarmData)) {
-				for (String key : alarmData.keySet()) {
-					for (String sensor : sensors) {
-						String[] split = sensor.split("-");
-						if (key.equals(split[0]) && !"0".equals(alarmData.get(key).toString())) {
-							Map<String, Object> map = new HashMap<String, Object>();
-							if (parameters.containsKey("description")) {
-								map.put("name", split[3]);
-							} else {
-								map.put("name", split[1]);
-							}
-							map.put("value", alarmData.get(key));
-							list.add(map);
-						}
-					}
-				}
-			}
-			resultMap.put("list", list);
-		}
-		return resultMap;
 	}
 
 }
diff --git a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
index 4058715..efacd53 100644
--- a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
@@ -44,6 +44,7 @@
 import com.moral.entity.charts.DataCondition;
 import com.moral.entity.charts.LineChartCriteria;
 import com.moral.entity.charts.TimePeriod;
+import com.moral.mapper.AlarmDailyMapper;
 import com.moral.mapper.AlarmMapper;
 import com.moral.mapper.DeviceMapper;
 import com.moral.mapper.HistoryMinutelyMapper;
@@ -64,7 +65,7 @@
 	private SensorMapper sensorMapper;
 
 	@Resource
-	private AlarmMapper alarmMapper;
+	private AlarmDailyMapper alarmDailyMapper;
 
 	@Override
 	public Map<String, Object> getDayAQIByDevice(Map<String, Object> parameters) {
@@ -287,7 +288,7 @@
 		Object type = parameters.get("type");
 		if ("year".equals(type) || "month".equals(type)) {
 			parameters.put("sensorKeys", Arrays.asList("e1", "e2", "e10", "e11", "e15", "e16"));
-			resultMap.put("alarmData" + part, alarmMapper.getAlarmData(parameters).get(0));
+			resultMap.put("alarmData" + part, alarmDailyMapper.getAlarmData(parameters).get(0));
 		}
 		return resultMap;
 	}
diff --git a/src/main/java/com/moral/service/impl/OperateUserServiceImpl.java b/src/main/java/com/moral/service/impl/OperateUserServiceImpl.java
index 9ef3df8..1f4a2f0 100644
--- a/src/main/java/com/moral/service/impl/OperateUserServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/OperateUserServiceImpl.java
@@ -130,4 +130,9 @@
 	public PageBean queryByPageBean(PageBean pageBean) {
 		return MyBatisBaseMapUtil.queryPage(operateUserMapper,pageBean,ENTITY_CLASS);
 	}
+
+	@Override
+	public Integer updateOperateUser(OperateUser operateUser) {
+		return operateUserMapper.updateByPrimaryKeySelective(operateUser);
+	}
 }
diff --git a/src/main/java/com/moral/util/MessageUtils.java b/src/main/java/com/moral/util/MessageUtils.java
new file mode 100644
index 0000000..5d096cf
--- /dev/null
+++ b/src/main/java/com/moral/util/MessageUtils.java
@@ -0,0 +1,43 @@
+package com.moral.util;
+
+import com.taobao.api.ApiException;
+import com.taobao.api.DefaultTaobaoClient;
+import com.taobao.api.TaobaoClient;
+import com.taobao.api.domain.BizResult;
+import com.taobao.api.request.AlibabaAliqinFcSmsNumSendRequest;
+import com.taobao.api.response.AlibabaAliqinFcSmsNumSendResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class MessageUtils {
+
+    private static Logger logger = LoggerFactory.getLogger(MessageUtils.class);
+
+    public static int sendMsg(String mobile,String code) throws ApiException {
+        String url = "http://gw.api.taobao.com/router/rest";
+        String appkey = "23531128";
+        String secret = "b079269785183c5a7520da9b8047bb42";
+        TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
+        AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
+        req.setExtend("");
+        req.setSmsType("normal");
+        req.setSmsFreeSignName("������������");
+        //${address}������������������������������${level}���������������������
+        //req.setSmsParamString("{address:'" + "addre" + "',level:'" + 2 + "'}");
+        req.setSmsParamString("{code:'" + code + "'}");
+        req.setRecNum(mobile);
+        req.setSmsTemplateCode("SMS_25781236");
+        AlibabaAliqinFcSmsNumSendResponse rsp = client.execute(req);
+        BizResult result = rsp.getResult();
+        if (result == null) {
+            logger.warn("������������������������" + rsp.getBody());
+            return 1;
+        }
+        Boolean success = result.getSuccess();
+        if (!success) {
+            logger.warn("������������������" + rsp.getBody());
+            return 1;
+        }
+        return 0;
+    }
+}
diff --git a/src/main/resources/mapper/AlarmDailyMapper.xml b/src/main/resources/mapper/AlarmDailyMapper.xml
new file mode 100644
index 0000000..db13fc0
--- /dev/null
+++ b/src/main/resources/mapper/AlarmDailyMapper.xml
@@ -0,0 +1,97 @@
+<?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.AlarmDailyMapper">
+	<select id="getAlarmData" resultType="java.util.LinkedHashMap">
+		SELECT
+			<if test="dimension=='monitorPoint'">
+				`name`,
+			</if>
+			<choose>
+				<when test="sensorKeys.size > 0">
+					<foreach collection="sensorKeys" separator="," item="sensorKey">
+						SUM( ${sensorKey} ) AS '${sensorKey}'
+					</foreach>
+					<foreach collection="sensorKeys" open="," separator="+" close=" AS 'sum' " item="sensorKey">
+						SUM( ${sensorKey} )
+					</foreach>
+				</when>
+				<otherwise>
+					time
+				</otherwise>
+			</choose>
+		FROM
+			(
+				SELECT 
+					<if test="dimension=='monitorPoint'">
+						mp.`name`,
+					</if>
+					<choose>
+						<when test="sensorKeys.size > 0">
+							<foreach collection="sensorKeys" separator="," item="sensorKey">
+								CASE COUNT( json -> '$.${sensorKey}' ) WHEN 0 THEN 0 ELSE 1 END AS '${sensorKey}'
+							</foreach>
+						</when>
+						<otherwise>
+							 h.time
+						</otherwise>
+					</choose>
+				FROM
+					alarm_daily h, 
+					device d,
+					monitor_point mp 
+				WHERE d.monitor_point_id = mp.id 
+					AND h.mac = d.mac 
+					AND h.time >= #{start}
+					AND h.time <![CDATA[<]]> #{end}
+					<if test="provinceCode != null">
+					AND mp.province_code = #{provinceCode}
+					</if>
+					<if test="cityCode != null">
+					AND mp.city_code = #{cityCode}
+					</if>
+					<if test="areaCode != null">
+					AND mp.area_code = #{areaCode}
+					</if>
+					<if test="monitorPointId != null">
+					AND mp.id =	#{monitorPointId}
+					</if>
+					<if test="organizationId != null">
+					AND mp.organization_id = #{organizationId}
+					</if>
+					<if test="mac != null">
+					AND d.mac =	#{mac}
+					</if>
+					<if test="level != null">
+					AND h.state = #{level}
+					</if>
+				GROUP BY
+					<if test="dimension=='monitorPoint'">
+						mp.id,
+					</if>
+					h.time
+			) a
+		<if test="dimension=='monitorPoint'">
+			GROUP BY name
+		</if>
+			
+	</select>
+
+	<select id="getAlarmDataByYear" resultType="java.util.Map">
+		SELECT
+			DATE_FORMAT(h.time, '%Y-%m') AS 'time'
+			<foreach collection="sensorKeys" open="," separator="+" close=" AS 'sum' " item="sensorKey">
+				COUNT(json -> '$.${sensorKey}')
+			</foreach>
+		FROM
+		    alarm_daily h
+		WHERE
+			h.time >= #{start}
+		    AND h.time <![CDATA[<]]> #{end}
+			<if test="state != null">
+			AND h.state = #{state}
+			</if>
+		GROUP BY
+		    DATE_FORMAT(h.time, '%Y-%m')			
+	</select>
+	
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/AlarmMapper.xml b/src/main/resources/mapper/AlarmMapper.xml
index b3baecf..e2a7007 100644
--- a/src/main/resources/mapper/AlarmMapper.xml
+++ b/src/main/resources/mapper/AlarmMapper.xml
@@ -1,80 +1,6 @@
 <?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.AlarmMapper">
-	<select id="getAlarmData" resultType="java.util.LinkedHashMap">
-		SELECT
-			<if test="dimension=='monitorPoint'">
-				`name`,
-			</if>
-			<choose>
-				<when test="sensorKeys.size > 0">
-					<foreach collection="sensorKeys" separator="," item="sensorKey">
-						SUM( ${sensorKey} ) AS '${sensorKey}'
-					</foreach>
-					<foreach collection="sensorKeys" open="," separator="+" close=" AS 'sum' " item="sensorKey">
-						SUM( ${sensorKey} )
-					</foreach>
-				</when>
-				<otherwise>
-					time
-				</otherwise>
-			</choose>
-		FROM
-			(
-				SELECT 
-					<if test="dimension=='monitorPoint'">
-						mp.`name`,
-					</if>
-					<choose>
-						<when test="sensorKeys.size > 0">
-							<foreach collection="sensorKeys" separator="," item="sensorKey">
-								CASE COUNT( json -> '$.${sensorKey}' ) WHEN 0 THEN 0 ELSE 1 END AS '${sensorKey}'
-							</foreach>
-						</when>
-						<otherwise>
-							 h.time
-						</otherwise>
-					</choose>
-				FROM
-					alarm_daily h, 
-					device d,
-					monitor_point mp 
-				WHERE d.monitor_point_id = mp.id 
-					AND h.mac = d.mac 
-					AND h.time >= #{start}
-					AND h.time <![CDATA[<]]> #{end}
-					<if test="provinceCode != null">
-					AND mp.province_code = #{provinceCode}
-					</if>
-					<if test="cityCode != null">
-					AND mp.city_code = #{cityCode}
-					</if>
-					<if test="areaCode != null">
-					AND mp.area_code = #{areaCode}
-					</if>
-					<if test="monitorPointId != null">
-					AND mp.id =	#{monitorPointId}
-					</if>
-					<if test="organizationId != null">
-					AND mp.organization_id = #{organizationId}
-					</if>
-					<if test="mac != null">
-					AND d.mac =	#{mac}
-					</if>
-					<if test="level != null">
-					AND h.state = #{level}
-					</if>
-				GROUP BY
-					<if test="dimension=='monitorPoint'">
-						mp.id,
-					</if>
-					h.time
-			) a
-		<if test="dimension=='monitorPoint'">
-			GROUP BY name
-		</if>
-			
-	</select>
 	<select id="countByTimes"   resultType="java.util.Map">
 		select
 		<if test="format !=null">

--
Gitblit v1.8.0