From d10235124e675103c1a27fb5aeff337493413cc2 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Thu, 22 Aug 2019 16:57:50 +0800
Subject: [PATCH] Merge branch 'master' of http://blit.7drlb.com:8888/r/screen_api_v2

---
 src/main/java/com/moral/service/impl/DeviceServiceImpl.java |  113 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 92 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index 8e9366c..c273e14 100644
--- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -1,24 +1,5 @@
 package com.moral.service.impl;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import javax.annotation.Resource;
-import javax.validation.constraints.NotNull;
-
-import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.ObjectUtils;
-
 import com.alibaba.fastjson.TypeReference;
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
@@ -39,8 +20,24 @@
 import com.moral.mapper.OrganizationMapper;
 import com.moral.service.AccountService;
 import com.moral.service.DeviceService;
-
+import org.apache.commons.collections.MapUtils;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
 import tk.mybatis.mapper.entity.Example;
+
+import javax.annotation.Resource;
+import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class DeviceServiceImpl implements DeviceService {
@@ -432,12 +429,18 @@
 		}
 		return  deviceMapper.countByTimes(start, end, format);
 	}
+	
 	@Override
 	public List<Device> getDevicesByMonitorPointId(Integer monitorPointId) {
 		Device device = new Device();
 		device.setMonitorPointId(monitorPointId);
 		device.setIsDelete(Constants.IS_DELETE_FALSE);
-		return deviceMapper.select(device);
+		List<Device> devices = deviceMapper.select(device);
+		for (Device device2 : devices) {
+			DeviceProperty deviceProperty = devicePropertyMapper.selectByPrimaryKey(device2.getId());
+			device2.setDeviceProperty(deviceProperty);
+		}
+		return devices;
 	}
 
 	/**
@@ -526,6 +529,7 @@
 	@Override
 	@Transactional
 	public void saveOrUpdate(Device device, DeviceProperty deviceProperty) {
+		device.setMac(device.getMac().toLowerCase());
 		if (ObjectUtils.isEmpty(device.getId())) {
 			device.setState(Constants.DEVICE_STATE_OFFLINE);
 			device.setIsDelete(Constants.IS_DELETE_FALSE);
@@ -550,4 +554,71 @@
 		return new PageBean(deviceList);
 	}
 
+	@Override
+	public void offLinToMaintenance(Map<String, Object> parameters) {
+		ValidateUtil.notNull(parameters.get("id"), "param.is.null");
+		ValidateUtil.notNull(parameters.get("old_state"), "param.is.null");
+		ValidateUtil.notNull(parameters.get("new_state"), "param.is.null");
+		int count = 0;
+		if (Constants.DEVICE_STATE_OFFLINE.equals(parameters.get("old_state")) && Constants.DEVICE_STATE_MAINTENANCE.equals(parameters.get("new_state"))) {
+			Device device = new Device();
+			Example example = new Example(ENTITY_CLASS);
+			example.and().andEqualTo("id", new Integer(parameters.get("id").toString())).andEqualTo("state", Constants.DEVICE_STATE_OFFLINE);
+			device.setState(Constants.DEVICE_STATE_MAINTENANCE);
+			count = deviceMapper.updateByExampleSelective(device, example);
+		} 
+		if (count == 0) {
+			throw new BusinessException("������������������");
+		}
+	}
+
+	@Override
+	public void saveOrUpdate4Mobile(Device device, DeviceProperty deviceProperty) {
+		device.setMac(device.getMac().toLowerCase());
+		Device selectDevice = new Device();
+		selectDevice.setMac(device.getMac());
+		selectDevice = deviceMapper.selectOne(selectDevice);
+		if (ObjectUtils.isEmpty(selectDevice)) {
+			device.setState(Constants.DEVICE_STATE_OFFLINE);
+			device.setIsDelete(Constants.IS_DELETE_FALSE);
+			deviceMapper.insertSelective(device);
+			deviceProperty.setId(device.getId());
+			devicePropertyMapper.insertSelective(deviceProperty);
+		} else {
+			device.setId(selectDevice.getId());
+			deviceMapper.updateByPrimaryKeySelective(device);
+			deviceProperty.setId(selectDevice.getId());
+			devicePropertyMapper.selectByPrimaryKey(selectDevice.getId());
+			if (ObjectUtils.isEmpty(devicePropertyMapper.selectByPrimaryKey(deviceProperty.getId()))) {
+				devicePropertyMapper.insertSelective(deviceProperty);
+			} else {
+				devicePropertyMapper.updateByPrimaryKeySelective(deviceProperty);
+			}
+			
+		}
+		refreshDeviceInRedis(device.getMac());
+
+		
+	}
+
+	@Override
+	public String getLimitDataByDevice(Map<String, Object> parameters) {
+		// TODO Auto-generated method stub
+		return deviceMapper.getLimitDataByDevice(parameters);
+	}
+
+	//������������������������������mac���������������������������������������������
+	@Override
+	public Device getDeviceByLongitudeAsc(String mac) {
+		Example example = new Example(Device.class);
+		example.setOrderByClause("longitude ASC");
+		List<Device> deviceList=deviceMapper.selectByExample(example);
+		for(int i=0;i<deviceList.size();i++){
+			if(mac.equals(deviceList.get(i).getMac())){
+				Device deviceSecond=deviceList.get(i+1);
+				return deviceSecond;
+			}
+		}
+		return null;
+	}
 }

--
Gitblit v1.8.0