瀏覽代碼

压缩网页类型接口的封装实现:compress.zlib

weclouds 1 年之前
父節點
當前提交
ede536a03a

+ 128 - 132
src/main/java/com/welampiot/controller/BasePlatformController.java

@@ -1,5 +1,8 @@
 package com.welampiot.controller;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
 import com.welampiot.dto.*;
@@ -58,6 +61,14 @@ public class BasePlatformController {
     private ProgramService programService;
     @Autowired
     private WifiService wifiService;
+    @Autowired
+    private ChargeService chargeService;
+    @Autowired
+    private BroadcastService broadcastService;
+    @Autowired
+    private BroadcastProListService broadcastProListService;
+    @Autowired
+    private BroadcastItemService broadcastItemService;
 
 
     /**
@@ -271,7 +282,7 @@ public class BasePlatformController {
             }else {
                 lampPoleDetailVO.setBroadcastPro("Нет программы");
             }
-
+            lampPoleDetailVO.setIsPlay(0);
             return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleDetailVO);
         }
         for (LampInfoDTO dto:lampJoinLogList) {
@@ -421,142 +432,127 @@ public class BasePlatformController {
         LampPoleDTO localDataById = lampPoleService.getLocalDataById(id);
         String urlStr = "https://devapi.heweather.net/v7/weather/3d?location="+localDataById.getLongitude()+","+localDataById.getLatitude()+"&key="+ToolUtils.WEATHER_KEY;
 
-        String info = toolUtils.sendHttp("get", urlStr, null, 5, ToolUtils.ContentTypeEnum.CONTENT_TYPE_FORM, null);
-
+        //String info = toolUtils.sendHttp("get", urlStr, null, 5, ToolUtils.ContentTypeEnum.CONTENT_TYPE_FORM, null);
+        String zlibNetwork = toolUtils.zlibNetwork(urlStr);
+        WeatherDTO weather = new WeatherDTO();
+        if (!zlibNetwork.isEmpty()){
+            JSONObject jsonObject = JSON.parseObject(zlibNetwork);
+            String code = jsonObject.getString("code");
+            if (code.equals("200")){
 
+                JSONArray jsonArray = jsonObject.getJSONArray("daily");
+                JSONObject o = (JSONObject)jsonArray.get(0);
+                weather.setTempMax(o.getString("tempMax"));
+                weather.setTempMin(o.getString("tempMin"));
 
-        //        $weather_info = file_get_contents("compress.zlib://".$url);
-//        $weather_info = json_decode($weather_info,true);
+                String weatherUrl = "https://devapi.heweather.net/v7/weather/now?location="+localDataById.getLongitude()+","+localDataById.getLatitude()+"&key="+ToolUtils.WEATHER_KEY;
+                String weatherResult = toolUtils.zlibNetwork(weatherUrl);
+                if (!weatherResult.isEmpty()){
+                    JSONObject weatherJsonObject = JSON.parseObject(weatherResult);
+                    if (weatherJsonObject.get("now") != null){
+                        String weatherCode = weatherJsonObject.getString("code");
+                        if (weatherCode.equals("200")){
+                            JSONObject w = (JSONObject)weatherJsonObject.get("now");
+                            weather.setTemp(w.getString("temp"));
+                            if (version == 0){
+                                weather.setWeatherText(w.getString("text"));
+                            } else if (version == 1) {
+                                weather.setWeatherText(toolUtils.weatherTranslateEn(w.getString("icon")));
+                            }else {
+                                weather.setWeatherText(toolUtils.weatherTranslateRu(w.getString("icon")));
+                            }
+                            weather.setWeatherCode(w.getString("icon"));
+                        }
+                    }
+                }
+                String airUrl = "https://devapi.heweather.net/v7/air/now?location="+localDataById.getLongitude()+","+localDataById.getLatitude()+"&key="+ToolUtils.WEATHER_KEY;
+                String airResult = toolUtils.zlibNetwork(airUrl);
+                if (!airResult.isEmpty()){
+                    JSONObject airJsonObject = JSONObject.parseObject(airResult);
+                    String airCode = airJsonObject.getString("code");
+                    if (airCode.equals("200")){
+                        JSONObject air = (JSONObject)airJsonObject.get("now");
+                        if (air != null){
+                            weather.setAqi(air.getString("aqi"));
+                            weather.setCategory(air.getString("level"));
+                        }
+                    }
+                }
+            }
+            lampPoleDetailVO.setWeatherInfo(weather);
+        }else {
+            lampPoleDetailVO.setWeatherInfo(new WeatherDTO());
+        }
 
+        //充电桩
+        ChargeDTO infoByLampPoleId = chargeService.getChargeInfoByLampPoleId(id);
+        if (infoByLampPoleId != null){
+            ChargeDTO chargeDTO = new ChargeDTO();
+            chargeDTO.setStatus(infoByLampPoleId.getStatus());
+            chargeDTO.setOnline(infoByLampPoleId.getOnline());
+            chargeDTO.setEquipmentElectricity(infoByLampPoleId.getEquipmentElectricity());
+            chargeDTO.setBillAmt(infoByLampPoleId.getBillAmt());
+        }else {
+            lampPoleDetailVO.setCharge(new ChargeDTO());
+        }
 
-//        if (!empty($res)) {
-//            $enddate = date('Y-m-d H:00:00',time()-8*3600);
-//            $startdate = date('Y-m-d H:00:00',time()-8*3600-7*24*3600);
-//            $data['day_flow'] = $res['day_flow'];
-//            $temp_list = [];
-//            for ($i=0; $i < 7; $i++) {
-//                $in = date('Y-m-d',time()-$i*24*3600);
-//                $temp_list[$in] = ['max'=>0,'min'=>0];
-//            }
-//            $flow_list = $this->db->query('select total_com,updatetime from wifi_info_log where id = '.$res['id'].' and updatetime >= "'.$startdate.'" and updatetime <= "'.$enddate.'" order by updatetime desc')->result_array();
-//            foreach ($flow_list as $key => $value) {
-//                $in = date('Y-m-d',strtotime($value['updatetime'])+8*3600);
-//                if (isset($temp_list[$in])) {
-//                    $temp_list[$in]['min'] = $value['total_com'];
-//                    if ($temp_list[$in]['max'] == 0) {
-//                        $temp_list[$in]['max'] = $value['total_com'];
-//                    }
-//                }
-//            }
-//            $temp_list = array_reverse($temp_list);
-//            foreach ($temp_list as $key => $value) {
-//                $data['flow_list']['date'][] = date('m-d',strtotime($key));
-//                $data['flow_list']['flow'][] = $value['max'] > $value['min'] ? $value['max'] - $value['min'] : 0;
-//            }
-//        }
+        // 故障信息
+        String[] alamDevArr = {"路灯","摄像头","云盒","RFID","LED屏","一键报警","充电桩","气象站","微基站","广播音柱"};
+        LampPoleVO lampPoleVO = new LampPoleVO();
+        List<LampPoleDTO> lampPoleAlarmInfoList = lampPoleService.getLampPoleAlarmInfoList(lampPoleVO);
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        for (LampPoleDTO dto:lampPoleAlarmInfoList) {
+            if (dto.getDType() != null){
+                dto.setContent(alamDevArr[dto.getDType()]+dto.getContent());
+                dto.setAlarmTypeStr(dto.getContent());
+            }
+            Date cmdTime = null;
+            try {
+                cmdTime = simpleDateFormat.parse(dto.getUpdateTime());
+            } catch (ParseException e) {
+                throw new RuntimeException(e);
+            }
+            long timeStamp = cmdTime.getTime() + dto.getTimezone() * 3600 * 1000;
+            String newUpdateTime = simpleDateFormat.format(new Date(timeStamp));
+            dto.setUpdateTime(newUpdateTime);
+            dto.setTimezone(null);
+            dto.setDType(null);
+            dto.setContent(null);
+        }
+        if (lampPoleAlarmInfoList != null && lampPoleAlarmInfoList.size() != 0){
+            lampPoleDetailVO.setAlarmList(lampPoleAlarmInfoList);
+        }else {
+            lampPoleDetailVO.setAlarmList(new ArrayList<>());
+        }
 
-        // 故障列表
-//        List<LampPoleDTO> alarmList = lampPoleService.getLampPoleAlarmListByLampPoleId(id);
-//        // 灯控列表
-//        List<LampPoleDTO> lampList = lampPoleService.getLampListByLampPoleId(id);
-//        // 灯杆详情
-//        LampPoleDTO dto = lampPoleService.getNewLampPoleDetailsById(id);
-//        if (dto == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
-//
-////        LampPoleDetailVO lampPoleDetailVO = new LampPoleDetailVO();
-//        // 气象信息
-//        String longitude = dto.getLongitude();
-//        String latitude = dto.getLatitude();
-//        WeatherDTO weatherInfo = WeatherUtil.getNowWeatherInfo(longitude, latitude);
-//        lampPoleDetailVO.setWeatherInfo(weatherInfo);
-//        // 音柱当前播放的节目
-//        lampPoleDetailVO.setBroadcastPro(dto.getBroadcastPro());
-//        // 音柱当前播放节目的id
-//        lampPoleDetailVO.setProgramId(dto.getProgramId());
-//        // 音柱id
-//        lampPoleDetailVO.setBroadcastId(dto.getBroadcastId());
-//        // 当天流量
-//        lampPoleDetailVO.setDayFlow(dto.getDayFlow());
-//        // 故障列表
-//        lampPoleDetailVO.setAlarmList(alarmList);
-//        // 灯控列表
-//        lampPoleDetailVO.setLampList(lampList);
-//        // 摄像头
-//        VideoMonitorDTO videoMonitorDTO = new VideoMonitorDTO();
-//        videoMonitorDTO.setId(dto.getVideoId());
-//        videoMonitorDTO.setVideoAddress(dto.getVideoAddress());
-//        lampPoleDetailVO.setVideo(videoMonitorDTO);
-//        // 屏幕
-//        ScreenDTO screenDTO = new ScreenDTO();
-//        screenDTO.setId(dto.getScreenId());
-//        screenDTO.setName(dto.getProgramName());
-//        screenDTO.setStatus(dto.getScreenStatus());
-//        screenDTO.setLight(dto.getLight());
-//        screenDTO.setVolume(dto.getVolume());
-//        screenDTO.setMaxLight(dto.getMaxLight());
-//        screenDTO.setPlayingId(dto.getPlayingId());
-//        screenDTO.setScreenImage(dto.getImage());
-//        lampPoleDetailVO.setScreen(screenDTO);
-//        // 充电桩
-//        ChargeDTO chargeDTO = new ChargeDTO();
-//        chargeDTO.setOnline(dto.getChargeOnline());
-//        chargeDTO.setStatus(dto.getChargeStatus());
-//        chargeDTO.setEquipmentElectricity(dto.getEquipmentElectricity());
-//        if (dto.getBillAmt() != null) {
-//            chargeDTO.setBillAmt(Float.parseFloat(dto.getBillAmt()));
-//        }
-//        lampPoleDetailVO.setCharge(chargeDTO);
-//        // 流量列表
-//        List<Object> dateList = new ArrayList<>();
-//        List<Object> flowList = new ArrayList<>();
-//        long l = System.currentTimeMillis();
-//        long startTime = l - 24 * 3600 * 1000 * 6;
-//        HashMap<String, Integer> objectObjectHashMap = new HashMap<>();
-//        long timeT = startTime;
-//        int i = 0;
-//
-//        DecimalFormat decimalFormat = new DecimalFormat("0.00");
-//        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
-//        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//        while (timeT <= l) {
-//            objectObjectHashMap.put(simpleDateFormat.format(new Date(timeT)), i);
-//            dateList.add(simpleDateFormat.format(new Date(timeT)));
-//            flowList.add(0);
-//            timeT += 3600 * 1000;
-//            i++;
-//        }
-//
-//        int dayNumber = 1;
-//        WifiInfoLogDTO wifiInfoLogDTO = new WifiInfoLogDTO();
-//        wifiInfoLogDTO.setDayNum(7);
-//        wifiInfoLogDTO.setDayNumber(dayNumber);
-//        wifiInfoLogDTO.setLampPoleId(id);
-//        List<WifiInfoLogDTO> wifiInfoLogList = wifiInfoLogService.getWifiStatisticsListByDTO(wifiInfoLogDTO);
-//        for (WifiInfoLogDTO dto1 : wifiInfoLogList) {
-//            Date date = new Date(simpleDateFormat2.parse(dto1.getUpdateTime()).getTime());
-//            String s = simpleDateFormat.format(date);
-//            long time = simpleDateFormat.parse(s).getTime();
-//            String formatStart = simpleDateFormat.format(startTime);
-//            startTime = simpleDateFormat.parse(formatStart).getTime();
-//            long timespan = (time - startTime) / (3600 * 1000 * dayNumber);
-//            long newTime = startTime + timespan * (3600 * 1000 * dayNumber);
-//            date = new Date(newTime);
-//            s = simpleDateFormat.format(date);
-//            Integer integer = null;
-//            if (objectObjectHashMap.containsKey(s)) {
-//                integer = objectObjectHashMap.get(s);
-//            }
-//
-//            if (dto1.getMinFlow() != null && !dto1.getMinFlow().equals("0") && integer != null &&
-//                    dto1.getMaxFlow() != null && !dto1.getMaxFlow().equals("0")) {
-//                Float flow = Float.parseFloat(dto1.getMaxFlow()) - Float.parseFloat(dto1.getMinFlow());
-//                flowList.set(integer,Float.parseFloat(decimalFormat.format(flow)));
-//            }
-//        }
-//        WifiInfoLogVO wifiInfoLogVO = new WifiInfoLogVO();
-//        wifiInfoLogVO.setDate(dateList);
-//        wifiInfoLogVO.setFlow(flowList);
-//        lampPoleDetailVO.setFlowList(wifiInfoLogVO);
+        //广播
+        BroadcastDTO oneDataByLampPoleId = broadcastService.getOneDataByLampPoleId(id);
+        if (oneDataByLampPoleId != null){
+            //BroadcastDTO broadcastDTO = new BroadcastDTO();
+            lampPoleDetailVO.setIsPlay(oneDataByLampPoleId.getIsPlay());
+            lampPoleDetailVO.setBroadcastId(oneDataByLampPoleId.getId());
+            lampPoleDetailVO.setProgramId(oneDataByLampPoleId.getItemId());
+            if (oneDataByLampPoleId.getIsPlay() == 1){
+                if (oneDataByLampPoleId.getProId() != 0){
+                    BroadcastProListDTO oneById = broadcastProListService.getOneById(oneDataByLampPoleId.getProId());
+                    if (oneById != null){
+                        lampPoleDetailVO.setBroadcastPro(oneById.getName());
+                    }
+                }else {
+                    if (oneDataByLampPoleId.getItemId() !=0 ){
+                        BroadcastItemDTO oneDataById = broadcastItemService.getOneDataById(oneDataByLampPoleId.getItemId());
+                        if (oneDataById != null){
+                            lampPoleDetailVO.setBroadcastPro(oneDataById.getName());
+                        }
+                    }
+                }
+            }
+        }else {
+            lampPoleDetailVO.setBroadcastPro("");
+            lampPoleDetailVO.setProgramId(0);
+            lampPoleDetailVO.setBroadcastId(0);
+            lampPoleDetailVO.setIsPlay(0);
+        }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleDetailVO);
     }
 }

+ 1 - 2
src/main/java/com/welampiot/dao/BroadcastDao.java

@@ -4,9 +4,7 @@ import com.welampiot.dto.BroadcastDTO;
 import com.welampiot.dto.BroadcastItemDTO;
 import com.welampiot.dto.BroadcastProListDTO;
 import org.apache.ibatis.annotations.Param;
-import org.springframework.security.core.parameters.P;
 
-import java.lang.reflect.Array;
 import java.util.List;
 
 /**
@@ -44,4 +42,5 @@ public interface BroadcastDao {
     Integer checkBroadcastData(BroadcastDTO dto);
     void updateBroadcastById(BroadcastDTO dto);
     List<BroadcastDTO> getListByIds(@Param("ids")String ids);
+    BroadcastDTO getOneDataByLampPoleId(Integer lampPoleId);
 }

+ 1 - 0
src/main/java/com/welampiot/dao/BroadcastItemDao.java

@@ -27,4 +27,5 @@ public interface BroadcastItemDao {
     List<BroadcastItemDTO> getBroadcastItemListByItemVO(BroadcastItemVO vo);
 
     Integer getBroadcastItemTotalByItemVO(BroadcastItemVO vo);
+    BroadcastItemDTO getOneDataById(Integer id);
 }

+ 1 - 0
src/main/java/com/welampiot/dao/ChargeDao.java

@@ -51,4 +51,5 @@ public interface ChargeDao {
     Integer getChargeTotalByDTO(ChargeDTO dto);
 
     ChargeDTO getOneCharge(HashMap<String,Object> map);
+    ChargeDTO getOneChargeByLampPoleId(Integer lampPoleId);
 }

+ 1 - 0
src/main/java/com/welampiot/dto/LampPoleDTO.java

@@ -135,4 +135,5 @@ public class LampPoleDTO {
     private Integer dType;
     private String content;
     private String modelType;
+    private String alarmTypeStr;
 }

+ 2 - 0
src/main/java/com/welampiot/dto/WeatherDTO.java

@@ -29,4 +29,6 @@ public class WeatherDTO {
     private String date;
     private String sunrise; // 日出时间
     private String sunset; // 日落时间
+    private String weatherText;
+    private String weatherCode;
 }

+ 1 - 0
src/main/java/com/welampiot/service/BroadcastItemService.java

@@ -27,4 +27,5 @@ public interface BroadcastItemService {
     List<BroadcastItemDTO> getBroadcastItemListByItemVO(BroadcastItemVO vo);
 
     Integer getBroadcastItemTotalByItemVO(BroadcastItemVO vo);
+    BroadcastItemDTO getOneDataById(Integer id);
 }

+ 1 - 0
src/main/java/com/welampiot/service/BroadcastService.java

@@ -38,4 +38,5 @@ public interface BroadcastService {
     void updateBroadcastById(BroadcastDTO dto);
     List<BroadcastDTO> getListByIds(@Param("ids")String ids);
     Integer getTotalBySectionList(BroadcastDTO dto);
+    BroadcastDTO getOneDataByLampPoleId(Integer lampPoleId);
 }

+ 1 - 0
src/main/java/com/welampiot/service/ChargeService.java

@@ -38,4 +38,5 @@ public interface ChargeService {
 
     Integer getChargeTotalByDTO(ChargeDTO dto);
     ChargeDTO getOneCharge(HashMap<String,Object> map);
+    ChargeDTO getOneChargeByLampPoleId(Integer lampPoleId);
 }

+ 4 - 0
src/main/java/com/welampiot/service/impl/BroadcastItemServiceImpl.java

@@ -52,4 +52,8 @@ public class BroadcastItemServiceImpl implements BroadcastItemService {
     public Integer getBroadcastItemTotalByItemVO(BroadcastItemVO vo) {
         return broadcastItemDao.getBroadcastItemTotalByItemVO(vo);
     }
+    @Override
+    public BroadcastItemDTO getOneDataById(Integer id){
+        return broadcastItemDao.getOneDataById(id);
+    }
 }

+ 4 - 0
src/main/java/com/welampiot/service/impl/BroadcastServiceImpl.java

@@ -173,4 +173,8 @@ public class BroadcastServiceImpl implements BroadcastService {
     public Integer getTotalBySectionList(BroadcastDTO dto) {
         return broadcastDao.getTotalBySectionList(dto);
     }
+    @Override
+    public BroadcastDTO getOneDataByLampPoleId(Integer lampPoleId){
+        return broadcastDao.getOneDataByLampPoleId(lampPoleId);
+    }
 }

+ 4 - 0
src/main/java/com/welampiot/service/impl/ChargeServiceImpl.java

@@ -217,4 +217,8 @@ public class ChargeServiceImpl implements ChargeService {
     public ChargeDTO getOneCharge(HashMap<String,Object> map){
         return chargeDao.getOneCharge(map);
     }
+    @Override
+    public ChargeDTO getOneChargeByLampPoleId(Integer lampPoleId){
+        return chargeDao.getOneChargeByLampPoleId(lampPoleId);
+    }
 }

+ 251 - 0
src/main/java/com/welampiot/utils/ToolUtils.java

@@ -42,6 +42,7 @@ import java.util.*;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import java.util.zip.CRC32;
+import java.util.zip.GZIPInputStream;
 
 @Component
 public class ToolUtils {
@@ -1657,4 +1658,254 @@ System.out.println(res);
         }
         return address;
     }
+
+    /**
+     * 请求 compress.zlib://这压缩类型接口
+     * @param url 网址
+     * @return 返回请求后的json字符串
+     */
+    public String zlibNetwork(String url){
+
+        try {
+            // 使用URL类来创建URL对象
+            URL resourceUrl = new URL(url);
+            // 打开连接
+            GZIPInputStream gzipInputStream = new GZIPInputStream(resourceUrl.openStream());
+            // 创建BufferedReader来读取数据
+            BufferedReader reader = new BufferedReader(new InputStreamReader(gzipInputStream));
+            String line;
+            StringBuilder content = new StringBuilder();
+            // 读取每一行
+            while ((line = reader.readLine()) != null) {
+                content.append(line);
+            }
+            // 输出结果
+            return content.toString();
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+    // 天气信息翻译
+    public String weatherTranslateEn(String code){
+
+        HashMap<String, String> map = new HashMap<>();
+        map.put("100","Sunny/Clear");
+        map.put("101","Cloudy");
+        map.put("102","Few Clouds");
+        map.put("103","Partly Cloudy");
+        map.put("104","Overcast");
+        map.put("200","Windy");
+        map.put("201","Calm");
+        map.put("202","Light Breeze");
+        map.put("203","Moderate/Gentle Breeze");
+        map.put("204","Fresh Breeze");
+        map.put("205","Strong Breeze");
+        map.put("206","High Wind, Near Gale");
+        map.put("207","Gale");
+        map.put("208","Strong Gale");
+        map.put("209","Storm");
+        map.put("210","Violent Storm");
+        map.put("211","Hurricane");
+        map.put("212","Tornado");
+        map.put("213","Tropical Storm");
+        map.put("300","Shower Rain");
+        map.put("301","Heavy Shower Rain");
+        map.put("302","Thundershower");
+        map.put("303","Heavy Thunderstorm");
+        map.put("304","Thundershower with hail");
+        map.put("305","Light Rain");
+        map.put("306","Moderate Rain");
+        map.put("307","Heavy Rain");
+        map.put("308","Extreme Rain");
+        map.put("309","Drizzle Rain");
+        map.put("310","Storm");
+        map.put("311","Heavy Storm");
+        map.put("312","Severe Storm");
+        map.put("313","Freezing Rain");
+        map.put("314","Light to moderate rain");
+        map.put("315","Moderate to heavy rain");
+        map.put("316","Heavy rain to storm");
+        map.put("317","Storm to heavy storm");
+        map.put("318","Heavy to severe storm");
+        map.put("399","Rain");
+        map.put("400","Light Snow");
+        map.put("401","Moderate Snow");
+        map.put("402","Heavy Snow");
+        map.put("403","Snowstorm");
+        map.put("404","Sleet");
+        map.put("405","Rain And Snow");
+        map.put("406","Shower Snow");
+        map.put("407","Snow Flurry");
+        map.put("408","Light to moderate snow");
+        map.put("409","Moderate to heavy snow");
+        map.put("410","Heavy snow to snowstorm");
+        map.put("499","Snow");
+        map.put("500","Mist");
+        map.put("501","Foggy");
+        map.put("502","Haze");
+        map.put("503","Sand");
+        map.put("504","Dust");
+        map.put("507","Duststorm");
+        map.put("508","Sandstorm");
+        map.put("509","Dense fog");
+        map.put("510","Strong fog");
+        map.put("511","Moderate haze");
+        map.put("512","Heavy haze");
+        map.put("513","Severe haze");
+        map.put("514","Heavy fog");
+        map.put("515","Extra heavy fog");
+        map.put("900","Hot");
+        map.put("901","Cold");
+        map.put("999","Unknown");
+
+        return map.get(code) == null ? "":map.get(code);
+    }
+    public String weatherTranslateCn(String code){
+        HashMap<String, String> map = new HashMap<>();
+        map.put("100","晴");
+        map.put("101","多云");
+        map.put("102","少云");
+        map.put("103","晴间多云");
+        map.put("104","阴");
+        map.put("200","有风");
+        map.put("201","平静");
+        map.put("202","微风");
+        map.put("203","和风");
+        map.put("204","清风");
+        map.put("205","强风/劲风");
+        map.put("206","疾风");
+        map.put("207","大风");
+        map.put("208","烈风");
+        map.put("209","风暴");
+        map.put("210","狂爆风");
+        map.put("211","飓风");
+        map.put("212","龙卷风");
+        map.put("213","热带风暴");
+        map.put("300","阵雨");
+        map.put("301","强阵雨");
+        map.put("302","雷阵雨");
+        map.put("303","强雷阵雨");
+        map.put("304","雷阵雨伴有冰雹");
+        map.put("305","小雨");
+        map.put("306","中雨");
+        map.put("307","大雨");
+        map.put("308","极端降雨");
+        map.put("309","毛毛雨/细雨");
+        map.put("310","暴雨");
+        map.put("311","大暴雨");
+        map.put("312","特大暴雨");
+        map.put("313","冻雨");
+        map.put("314","小到中雨");
+        map.put("315","中到大雨");
+        map.put("316","大到暴雨");
+        map.put("317","暴雨到大暴雨");
+        map.put("318","大暴雨到特大暴雨");
+        map.put("399","雨");
+        map.put("400","小雪");
+        map.put("401","中雪");
+        map.put("402","大雪");
+        map.put("403","暴雪");
+        map.put("404","雨夹雪");
+        map.put("405","雨雪天气");
+        map.put("406","阵雨夹雪");
+        map.put("407","阵雪");
+        map.put("408","小到中雪");
+        map.put("409","中到大雪");
+        map.put("410","大到暴雪");
+        map.put("499","雪");
+        map.put("500","薄雾");
+        map.put("501","雾");
+        map.put("502","霾");
+        map.put("503","扬沙");
+        map.put("504","浮尘");
+        map.put("507","沙尘暴");
+        map.put("508","强沙尘暴");
+        map.put("509","浓雾");
+        map.put("510","强浓雾");
+        map.put("511","中度霾");
+        map.put("512","重度霾");
+        map.put("513","严重霾");
+        map.put("514","大雾");
+        map.put("515","特强浓雾");
+        map.put("900","热");
+        map.put("901","冷");
+        map.put("999","未知");
+        return map.get(code) == null ? "":map.get(code);
+
+    }
+    public String weatherTranslateRu(String code){
+        HashMap<String, String> map = new HashMap<>();
+        map.put("100","чинг");
+        map.put("101","облачно");
+        map.put("102","Меньше облако");
+        map.put("103","Ясная и облачная");
+        map.put("104","инь");
+        map.put("200","дует");
+        map.put("201","спокойствие");
+        map.put("202","ветерок");
+        map.put("203","зефир");
+        map.put("204","Свежий ветер");
+        map.put("205","Сильный ветер/сильный ветер");
+        map.put("206","шквал");
+        map.put("207","ветер");
+        map.put("208","шторм");
+        map.put("209","шторм");
+        map.put("210","Сильный ветер");
+        map.put("211","ураган");
+        map.put("212","Торнадо");
+        map.put("213","Тропический шторм");
+        map.put("300","ливень");
+        map.put("301","Сильный душ");
+        map.put("302","Грозовой дождь");
+        map.put("303","Сильный грозовой дождь");
+        map.put("304","Ливень сопровождается градом");
+        map.put("305","дождик");
+        map.put("306","Средний дождь");
+        map.put("307","дождь");
+        map.put("308","Экстремальный дождь");
+        map.put("309","Дождик/мелкий дождь");
+        map.put("310","Проливной дождь");
+        map.put("311","Сильный дождь");
+        map.put("312","Сильный ливень");
+        map.put("313","Ледяной дождь");
+        map.put("314","Немного дождя");
+        map.put("315","Под дождём");
+        map.put("316","Большой до грозы");
+        map.put("317","От грозы до грозы");
+        map.put("318","Сильные ливни, сильные ливни");
+        map.put("399","дождь");
+        map.put("400","Мелкий снежок");
+        map.put("401","средний снег");
+        map.put("402","снегопад");
+        map.put("403","Снежная буря");
+        map.put("404","Дождь и снег");
+        map.put("405","Дождливая и снежная погода");
+        map.put("406","Дождь и снег");
+        map.put("407","снежный");
+        map.put("408","Маленький до снега");
+        map.put("409","Прямо в снег");
+        map.put("410","От большой до снежной бури");
+        map.put("499","снег");
+        map.put("500","дымка");
+        map.put("501","туман");
+        map.put("502","мгла");
+        map.put("503","янша");
+        map.put("504","пыль");
+        map.put("507","Песчаная буря");
+        map.put("508","Сильная песчаная буря");
+        map.put("509","Густой туман");
+        map.put("510","Сильный густой туман");
+        map.put("511","Умеренный туман");
+        map.put("512","Тяжелая смола");
+        map.put("513","Туман");
+        map.put("514","Сильный туман");
+        map.put("515","Густой туман");
+        map.put("900","горячая");
+        map.put("901","холодно");
+        map.put("999","неизвестный");
+        return map.get(code) == null ? "":map.get(code);
+    }
 }

+ 1 - 0
src/main/java/com/welampiot/vo/LampPoleDetailVO.java

@@ -36,4 +36,5 @@ public class LampPoleDetailVO {
     private List<LampPoleDTO> alarmList; // 故障列表
 
     private WifiInfoLogVO flowList; // 流量统计图
+    private Integer isPlay;
 }

+ 3 - 0
src/main/resources/mapper/BroadcastItemMapper.xml

@@ -179,4 +179,7 @@
         where b.userId = #{userId}
     </select>
 
+    <select id="getOneDataById" resultType="BroadcastItemDTO" parameterType="integer">
+        select name from broadcast_item where id = #{id} order by id desc
+    </select>
 </mapper>

+ 6 - 0
src/main/resources/mapper/BroadcastMapper.xml

@@ -155,4 +155,10 @@
         from broadcast b
         where id in (#{ids})
     </select>
+
+    <select id="getOneDataByLampPoleId" parameterType="integer" resultType="BroadcastDTO">
+        select isPlay,proId,itemId,id
+        from broadcast
+        where lamp_pole_id = #{lampPoleId} order by id desc
+    </select>
 </mapper>

+ 1 - 1
src/main/resources/mapper/BroadcastProListMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.welampiot.dao.BroadcastProListDao">
     <select id="getOneById" resultType="BroadcastProListDTO" parameterType="int">
-        select url,time,xianke_name as xianKeName,xianke_id as xianKeId,disipu_id as diSiPuId
+        select url,time,xianke_name as xianKeName,xianke_id as xianKeId,disipu_id as diSiPuId,name
         from broadcast_pro_list
         where id = #{id}
     </select>

+ 6 - 0
src/main/resources/mapper/ChargeMapper.xml

@@ -297,4 +297,10 @@
             </otherwise>
         </choose>
     </select>
+
+    <select id="getOneChargeByLampPoleId" resultType="ChargeDTO" parameterType="Integer">
+        select status,online,equipmentElectricity,bill_amt as billAmt
+        from charge
+        where lamp_pole_id = #{lampPoleId} order by id desc
+    </select>
 </mapper>