From b25fef7e301ad5bd947dc213d2f4455f434139f5 Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Mon, 14 May 2018 16:38:36 +0800
Subject: [PATCH] 优化

---
 src/main/java/com/moral/service/impl/DeviceServiceImpl.java |   80 +++++++++++++++++++++++++++++-----------
 1 files changed, 58 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index 58b7dc2..f6b20ef 100644
--- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -104,6 +104,8 @@
 			device.setId(queryDevice.getId());
 			deviceMapper.updateByPrimaryKeySelective(device);
 		}
+		//������redis������������
+		refreshDeviceInRedis(device);
 	}
 
 	@Override
@@ -111,21 +113,43 @@
 		ValidateUtil.notNull(uid, "param.is.null");
 		Device device = new Device();
 		device.setOperateUserId(uid);
-		PageHelper.startPage(pageIndex, pageSize);
+		PageHelper.startPage(pageIndex, pageSize,false);
 		List<Device> devices = deviceMapper.select(device);
 		return devices;
 	}
 
+	/**
+	 *
+	 * @param mac
+	 * @param fromCache
+	 * @return ������������������
+	 */
+    @Override
+    public  Device getDeviceByMac (String mac ,boolean fromCache){
+	    if(fromCache){
+            Device device = getDeviceFromRedis(mac);
+            if(device==null) {
+                device = deviceMapper.selectWithOrgIdsByMac(mac);
+                if(device!=null){
+                    setDeviceToRedis(mac,device);
+                }
+            }
+            return  device;
+        }else {
+            return  deviceMapper.selectWithOrgIdsByMac(mac);
+        }
+
+    }
+
+    /**
+     * ���������������������
+     * @param mac
+     * @return
+     */
 	@Override
 	public Device getDeviceByMac(String mac) {
-		Device device = getDeviceFromRedis(mac);
-		if(device==null) {
-			device = deviceMapper.selectWithOrgIdsByMac(mac);
-			if(device!=null){
-				setDeviceToRedis(mac,device);
-			}
-		}
-		return device;
+
+		return getDeviceByMac(mac,true);
 	}
 	/*
 	 * ���������������������redis������key
@@ -254,20 +278,20 @@
 	 */
 	private void refreshDeviceInRedis(Device device){
 	     if(!StringUtils.isBlank(device.getMac())){
-             Device simpleDevice = new Device();
-			 simpleDevice.setId(device.getId());// id
-			 simpleDevice.setName(device.getName());// name
-			 simpleDevice.setAddress(device.getAddress());// address
-			 simpleDevice.setDeviceVersionId(device.getDeviceVersionId());// version
-			 simpleDevice.setMac(device.getMac()); // mac
-			 simpleDevice.setMonitorPointId(device.getMonitorPointId());// ���������id
-			 simpleDevice.setOrganizationIds(device.getOrganizationIds());// ������������
+//             Device simpleDevice = new Device();
+//			 simpleDevice.setId(device.getId());// id
+//			 simpleDevice.setName(device.getName());// name
+//			 simpleDevice.setAddress(device.getAddress());// address
+//			 simpleDevice.setDeviceVersionId(device.getDeviceVersionId());// version
+//			 simpleDevice.setMac(device.getMac()); // mac
+//			 simpleDevice.setMonitorPointId(device.getMonitorPointId());// ���������id
+//			 simpleDevice.setOrganizationIds(device.getOrganizationIds());// ������������
              if(device.getMonitorPointId()!=null){
                  List<Integer> orgIds = monitorPointMapper.selectOrganizationIds(device.getMonitorPointId());
-                 simpleDevice.setOrganizationIds(orgIds);
+				 device.setOrganizationIds(orgIds);
              }
              String key = "device_"+device.getMac();
-             redisUtils.set(key,simpleDevice);
+             redisUtils.set(key,device);
          }
 	}
 	@Override
@@ -323,7 +347,7 @@
 	public void addOrModify(Device device){
 		try{
 			//mac ���������
-			if(StringUtils.isBlank(device.getMac())){
+			if(!StringUtils.isBlank(device.getMac())){
 				device.setMac(device.getMac().toLowerCase());
 			}
 			if(device.getId()==null){
@@ -332,9 +356,9 @@
 				deviceMapper.insertSelective(device);
 			}else{
 				deviceMapper.updateByPrimaryKeySelective(device);
-				//������redis���������������
-				refreshDeviceInRedis(device);
 			}
+			//������redis���������������
+			refreshDeviceInRedis(device);
 		}
 		catch (Exception ex){
 			throw  ex;
@@ -388,4 +412,16 @@
 		}).collect(Collectors.toList());
 		return list;
 	}
+
+	@Override
+	public Device queryById(Integer id) {
+		return deviceMapper.selectByPrimaryKey(id);
+	}
+
+	@Override
+	public List<Device> getDevicesByProfessionId(Map<String, Object> parameters) {
+		
+		return deviceMapper.getDevicesByProfession(parameters);
+	}
+
 }

--
Gitblit v1.8.0