fengxiang
2018-02-07 0723049b7785749898fede88452055a66c49770e
地图相关资源
4 files modified
90 ■■■■■ changed files
src/main/java/com/moral/service/impl/DeviceServiceImpl.java 41 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/DeviceMapper.xml 7 ●●●● patch | view | raw | blame | history
src/main/webapp/js/moralmap.js 40 ●●●● patch | view | raw | blame | history
src/main/webapp/view/map.jsp 2 ●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -165,9 +165,13 @@
    private void loadDeviceState(List<Device> list){
        //从redis里取状态
        list.stream().map( device -> {
            String mac = Optional.of(device.getMac()).get();
            String state = getSateFromRedis(device.getMonitorPointId(),mac.toLowerCase());
            device.setState(state);
            String mac = device.getMac();
            if(!StringUtils.isBlank(mac)){
                String state = getSateFromRedis(device.getMonitorPointId(),mac.toLowerCase());
                device.setState(state);
            }else{
                device.setState(Constants.DEVICE_STATE_OFFLINE);
            }
            return device;
        }).count();
    }
@@ -269,21 +273,24 @@
    @Override
    public List<Map<String,String>> queryDevicesState(List<String> macList,Boolean withData) {
        List<Map<String,String>> list = macList.stream().map(mac->{
            mac = mac.toLowerCase();
            Device device = getDeviceWithOrgIdsByMac(mac);
            Map<String,String> resultMap = new HashMap<>();
            Map<String,String> stateMap = getStateMapFromRedis(device.getMonitorPointId(),mac);
            if(!MapUtils.isEmpty(stateMap)){
                resultMap.putAll(stateMap);
            }else{
                resultMap.put("state",Constants.DEVICE_STATE_OFFLINE);
                resultMap.put("mac",mac);
            }
            if(BooleanUtils.isTrue(withData)){
                String dataKey = "data_"+mac;
                Map<String,String> dataMap = redisUtils.get(dataKey,new TypeReference<Map<String,String>>(){});
                if(!MapUtils.isEmpty(dataMap)){
                    resultMap.putAll(dataMap);
            if(!StringUtils.isBlank(mac)){
                mac = mac.toLowerCase();
                Device device = getDeviceWithOrgIdsByMac(mac);
                Map<String,String> stateMap = getStateMapFromRedis(device.getMonitorPointId(),mac);
                if(!MapUtils.isEmpty(stateMap)){
                    resultMap.putAll(stateMap);
                }else{
                    resultMap.put("state",Constants.DEVICE_STATE_OFFLINE);
                    resultMap.put("mac",mac);
                }
                //添加data
                if(BooleanUtils.isTrue(withData)){
                    String dataKey = "data_"+mac;
                    Map<String,String> dataMap = redisUtils.get(dataKey,new TypeReference<Map<String,String>>(){});
                    if(!MapUtils.isEmpty(dataMap)){
                        resultMap.putAll(dataMap);
                    }
                }
            }
            return  resultMap;
src/main/resources/mapper/DeviceMapper.xml
@@ -21,6 +21,7 @@
      </association>
      <association property="deviceVersion" javaType="com.moral.entity.DeviceVersion">
          <result column="device_version_id" property="id" jdbcType="INTEGER" />
          <result column="device_version_value" property="version" jdbcType="INTEGER" />
          <result column="device_version_name" property="name" jdbcType="VARCHAR" />
      </association>
      <association property="monitorPoint" javaType="com.moral.entity.MonitorPoint">
@@ -133,8 +134,9 @@
        AND device_version_id = #{deviceVersionId}
    </select>
    <select id="selectByOrgIdAndDevName" resultMap="BaseResultMap">
        SELECT * from device dev
        SELECT dev.*,dve.version as device_version_value from device dev
        left join monitor_point mpt on dev.monitor_point_id = mpt.id
        left join device_version dve on dev.device_version_id = dve.id
        <where>
            <if test="@com.moral.common.bean.Constants@isNotSpecialOrgId(orgId)">
                mpt.organization_id =  #{orgId}
@@ -145,8 +147,9 @@
        </where>
    </select>
    <select id="selectByOrgIdAndMpId" resultMap="BaseResultMap">
        SELECT * from device dev
        SELECT dev.*,dve.version as device_version_value from device dev
        left join monitor_point mpt on dev.monitor_point_id = mpt.id
        left join device_version dve on dev.device_version_id = dve.id
        <where>
            <if test="@com.moral.common.bean.Constants@isNotSpecialOrgId(orgId)">
                mpt.organization_id =  #{orgId}
src/main/webapp/js/moralmap.js
@@ -26,20 +26,20 @@
    /*
     * 根据mac地址获取version
     */
    moralMap.getVersion = function(mac){
        var version = null;
        $.ajax({
            type:"get",
            url:"getversion?mac="+mac,
            async:false,
            success:function(jsonData){
                if(jsonData!=null&&typeof jsonData=='object'){
                    version = jsonData['version'];
                }
            }
        });
        return version;
    }
    // moralMap.getVersion = function(mac){
    //     var version = null;
    //     $.ajax({
    //         type:"get",
    //         url:"getversion?mac="+mac,
    //         async:false,
    //         success:function(jsonData){
    //             if(jsonData!=null&&typeof jsonData=='object'){
    //                 version = jsonData['version'];
    //             }
    //         }
    //     });
    //     return version;
    // }
    /*
     * 百度地图初始化
     */
@@ -260,7 +260,7 @@
            mac: (row['mac']).toLowerCase(),
            longitude: row['longitude'],
            latitude: row['latitude'],
            version:moralMap.getVersion(row['mac'])
            version:row['deviceVersion']['version']
        }
        var equStr = JSON.stringify(equ);
        if(window["console"]!=undefined){
@@ -736,11 +736,13 @@
    }
    //储存MonitorPoint对象
    moralMap.putEquipment = function(key, obj) {
        key = String.prototype.toLowerCase.call(key);
        if(moralMap['_equipments'] == undefined) {
            moralMap['_equipments'] = {};
        if(key!=null&&key!=""){
            key = String.prototype.toLowerCase.call(key);
            if(moralMap['_equipments'] == undefined) {
                moralMap['_equipments'] = {};
            }
            moralMap['_equipments'][key] = obj;
        }
        moralMap['_equipments'][key] = obj;
    }
    moralMap.getEquipment = function(key) {
        if(key == null){
src/main/webapp/view/map.jsp
@@ -321,7 +321,7 @@
                                        mac: (_obj['mac']).toLowerCase(),
                                        longitude: _obj['longitude'],
                                        latitude: _obj['latitude'],
                                        version:moralMap.getVersion(_obj['mac'])
                                        version:_obj['deviceVersion']['version']
                                    }
                                    var equStr = JSON.stringify(equ);
                                    if(window["console"]!=undefined){