From 5f549c4d7bb36ff4dc012fed9ee1e049dbf899a8 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Tue, 08 May 2018 09:28:55 +0800
Subject: [PATCH] 运维app getEquInfoByMac api

---
 src/main/java/com/moral/service/DeviceService.java          |    4 +
 src/main/resources/mapper/DeviceMapper.xml                  |    8 ++-
 src/main/java/com/moral/controller/MobileController.java    |   16 +++++--
 src/main/java/com/moral/service/impl/DeviceServiceImpl.java |   33 ++++++++++++----
 src/main/java/com/moral/entity/Device.java                  |    6 +--
 5 files changed, 46 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/moral/controller/MobileController.java b/src/main/java/com/moral/controller/MobileController.java
index 47007b4..b4d908a 100644
--- a/src/main/java/com/moral/controller/MobileController.java
+++ b/src/main/java/com/moral/controller/MobileController.java
@@ -2,6 +2,7 @@
 
 import static com.moral.common.util.WebUtils.getParametersStartingWith;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -12,6 +13,7 @@
 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 com.moral.common.bean.AppData;
@@ -109,9 +111,12 @@
 	 * @return the device by mac
 	 */
 	@GetMapping("getEquInfoByMac")
-	public AppData<Device> getDeviceByMac(@RequestParam(value="mac", required=true)String mac) {
-		Device device = deviceService.getDeviceByMac(mac);
-		return new AppData<Device>(device);
+	public AppData<Map> getDeviceByMac(@RequestParam(value="mac", required=true)String mac) {
+		Device device = deviceService.getDeviceByMac(mac,false);//���������������
+		Map<String,Object> deviceMap = new HashMap<>(BeanMap.create(device));
+		deviceMap.put("monitorpointDetail",deviceMap.get("monitorPoint"));
+		deviceMap.remove("monitorPoint");
+		return new AppData<Map>(deviceMap);
 	}
 
 	/**
@@ -190,9 +195,10 @@
 	}
 
 	/**
-	 * Send SMS
 	 *
-	 * @param mobile
+	 * @param username
+	 * @param password
+	 * @param code
 	 * @return
 	 */
 	@PostMapping("password")
diff --git a/src/main/java/com/moral/entity/Device.java b/src/main/java/com/moral/entity/Device.java
index 6d98dfc..588df3f 100644
--- a/src/main/java/com/moral/entity/Device.java
+++ b/src/main/java/com/moral/entity/Device.java
@@ -117,11 +117,9 @@
 	private OperateUser operateUser;
 	@Transient
 	private DeviceVersion deviceVersion;
-	//@Transient
-	//private MonitorPoint monitorPoint;
+	@Transient
+	private MonitorPoint monitorPoint;
 	@Transient
 	private List<Integer> organizationIds;
 
-	@Transient
-	private MonitorPoint monitorpointDetail;
 }
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/DeviceService.java b/src/main/java/com/moral/service/DeviceService.java
index 2c5be38..ff611fc 100644
--- a/src/main/java/com/moral/service/DeviceService.java
+++ b/src/main/java/com/moral/service/DeviceService.java
@@ -16,7 +16,9 @@
 
 	List<Device> getInstallDevicesByOperateUser(Integer uid, Integer pageIndex, Integer pageSize);
 
-	Device getDeviceByMac(String mac);
+    Device getDeviceByMac(String mac, boolean fromCache);
+
+    Device getDeviceByMac(String mac);
 
 	List<Device> query(Map<String,Object> map);
     PageResult query(Integer orgId, String deviceName,Integer pageSize,Integer pageNo);
diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index 58b7dc2..93fad37 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
@@ -115,17 +117,32 @@
 		List<Device> devices = deviceMapper.select(device);
 		return devices;
 	}
+    @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
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
index c7924aa..36ce410 100644
--- a/src/main/resources/mapper/DeviceMapper.xml
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -210,9 +210,11 @@
 	</select>
 	<select id="selectWithOrgIdsByMac" parameterType="java.lang.String" resultMap="BaseResultWithOrgIdsMap">
 		select
-		id,device_version_id,mac,monitor_point_id
-		from device
-		where mac = #{mac,jdbcType=VARCHAR}
+		dev.*,
+		mpt.name as monitor_point_name
+		from device dev
+        left join monitor_point  mpt on dev.monitor_point_id = mpt.id
+		where dev.mac = #{mac,jdbcType=VARCHAR}
 	</select>
 
 	<select id="getDeviceCountByRegion" resultType="java.lang.Integer">

--
Gitblit v1.8.0