From 9f21969b69703a35bde9d659be19f3e39795010d Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期四, 12 五月 2022 11:58:01 +0800
Subject: [PATCH] fix

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java |  179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 165 insertions(+), 14 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
index e4cbf16..c4e6774 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
@@ -1,6 +1,8 @@
 package com.sandu.ximon.admin.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.sandu.common.execption.BusinessException;
@@ -8,17 +10,27 @@
 import com.sandu.ximon.admin.config.RealtimeServerBean;
 import com.sandu.ximon.admin.config.XiXunConfig;
 import com.sandu.ximon.admin.entity.*;
+import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame;
 import com.sandu.ximon.admin.security.SecurityUtils;
 import com.sandu.ximon.admin.utils.JsonUtil;
 import com.sandu.ximon.admin.utils.LightemitUtils;
+import com.sandu.ximon.admin.utils.LogUtils;
+import com.sandu.ximon.admin.utils.request.SubTitleSet;
+import com.sandu.ximon.dao.domain.LedSFile;
+import com.sandu.ximon.dao.domain.Pole;
 import com.sandu.ximon.dao.domain.PoleLightemitEntity;
 import com.sandu.ximon.dao.domain.PoleXixunPlayerEntity;
 import com.sandu.ximon.dao.mapper.PoleXixunPlayerEntityMapper;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
 
+/**
+ * 鐔欒鑺傜洰
+ */
 @Service
 @AllArgsConstructor
 public class XiXunPlayerService extends BaseServiceImpl<PoleXixunPlayerEntityMapper, PoleXixunPlayerEntity> {
@@ -28,17 +40,34 @@
     private final LightemitUtils lightemitUtils;
     private final RealtimeServerBean realtimeServerBean;
     private final PoleLightemitService poleLightemitService;
+    private final ClientService clientService;
+    private final LedSFileService xiXunFileService;
 
+    //鐔欒鑺傜洰鍒楄〃
+    public LambdaQueryWrapper<PoleXixunPlayerEntity> XixunPlayerList(String keyword) {
+        if (SecurityUtils.getClientId() == null) {
+            if (keyword != null && keyword.isEmpty()) {
+                return Wrappers.lambdaQuery(PoleXixunPlayerEntity.class);
+            } else {
+                return Wrappers.lambdaQuery(PoleXixunPlayerEntity.class).like(PoleXixunPlayerEntity::getProgramName, keyword);
+            }
+
+        } else {
+            if (keyword != null && keyword.isEmpty()) {
+                return Wrappers.lambdaQuery(PoleXixunPlayerEntity.class).eq(PoleXixunPlayerEntity::getCreateUserId, SecurityUtils.getUserId())
+                        .or(w -> {
+                            w.eq(PoleXixunPlayerEntity::getClientId, SecurityUtils.getClientId());
+                        });
+            } else {
+                return Wrappers.lambdaQuery(PoleXixunPlayerEntity.class).eq(PoleXixunPlayerEntity::getCreateUserId, SecurityUtils.getUserId())
+                        .or(w -> {
+                            w.eq(PoleXixunPlayerEntity::getClientId, SecurityUtils.getClientId());
+                        }).like(PoleXixunPlayerEntity::getProgramName, keyword);
+            }
+        }
+    }
 
     public boolean insert(ProgramPro programPro) {
-        //  SimpleDateFormat sdf=new SimpleDateFormat("yy-MM-dd HH:mm:ss");
-        // Date date = new Date();
-//        Program program = new Program();
-//        try {
-//            program = JsonUtil.convertJsonStringToObject(json,Program.class);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
         String json = JsonUtil.jsonObj2Sting(programPro);
         PoleXixunPlayerEntity poleXixunPlayer = new PoleXixunPlayerEntity();
         poleXixunPlayer.setProgramCode(programPro.get_id());
@@ -46,10 +75,18 @@
         poleXixunPlayer.setHeight(programPro.getHeight());
         poleXixunPlayer.setWidth(programPro.getWidth());
         poleXixunPlayer.setTotalSize((float) programPro.getTotalSize() / 1000000 + "MB");
+//        poleXixunPlayer.setTotalSize( Long.parseLong(programPro.getTotalSize()) / 1000000 + "MB");
+//        programPro.setProgramId(poleXixunPlayer.getProgramId());
+//        System.out.println(poleXixunPlayer.getProgramId());
         poleXixunPlayer.setRequestBody(json);
+        poleXixunPlayer.setScreenShot(programPro.getScreenShot());
         //  poleXixunPlayer.setCreatTime(sdf.format(date));
-        poleXixunPlayer.setCreateUserId(SecurityUtils.getClientId());
-
+        if (SecurityUtils.getClientId() != null) {
+            poleXixunPlayer.setCreateUserId(SecurityUtils.getUserId());
+            if (clientService.findClientId()) {
+                poleXixunPlayer.setClientId(clientService.getClientId());
+            }
+        }
         return this.save(poleXixunPlayer);
     }
 
@@ -63,6 +100,8 @@
 
     public Object getByPid(Long pid) {
         PoleXixunPlayerEntity byId = getById(pid);
+        List<Long> fileIds = new ArrayList<>();
+        List<LedSFile> file = new ArrayList<>();
         if (byId == null) {
             throw new BusinessException("鏈壘鍒拌鑺傜洰");
         }
@@ -70,12 +109,62 @@
         ProgramPro programPro = new ProgramPro();
         try {
             programPro = JsonUtil.convertJsonStringToObject(json, ProgramPro.class);
+            programPro.setProgramId(pid);
+            programPro.setScreenShot(byId.getScreenShot());
+            programPro.getLayers().forEach(
+                    layerPro -> {
+                        layerPro.getSources().forEach(
+                                sourcePro -> {
+                                    long fileId = Long.parseLong(sourcePro.getId());
+                                    file.add(xiXunFileService.getById(fileId));
+                                }
+                        );
+                    }
+            );
+            programPro.setFileList(file);
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return  programPro;
+        return programPro;
     }
 
+
+//    public Object getProgram(String json) {
+////        PoleXixunPlayerEntity byId = getById(pid);
+//        List<Long> fileIds = new ArrayList<>();
+//        List<LedSFile> file = new ArrayList<>();
+//        if (json == null) {
+//            throw new BusinessException("鏈壘鍒拌鑺傜洰");
+//        }
+//        ProgramPro programPro = new ProgramPro();
+//        try {
+//            programPro = JsonUtil.convertJsonStringToObject(json, ProgramPro.class);
+//            programPro.setProgramId(pid);
+//            programPro.setScreenShot(byId.getScreenShot());
+//            programPro.getLayers().forEach(
+//                    layerPro -> {
+//                        layerPro.getSources().forEach(
+//                                sourcePro -> {
+//                                    long fileId = Long.parseLong(sourcePro.getId());
+//                                    file.add(xiXunFileService.getById(fileId));
+//                                }
+//                        );
+//                    }
+//            );
+//            programPro.setFileList(file);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        return programPro;
+//    }
+
+
+    /**
+     * 鎺ㄩ�佽妭鐩�
+     *
+     * @param programId
+     * @param lightemitIds
+     */
     public void videoXixunPlayer(long programId, List<Long> lightemitIds) {
 
         ProgramPro pro = new ProgramPro();
@@ -89,6 +178,9 @@
         queryWrapper.eq("program_id", programId);
         poleXixunPlayerEntity = this.getOne(queryWrapper);
         String json = poleXixunPlayerEntity.getRequestBody();
+
+//        System.out.println( JSON.parseArray(json, ProgramPro.class));
+
         try {
             pro = JsonUtil.convertJsonStringToObject(json, ProgramPro.class);
         } catch (Exception e) {
@@ -119,14 +211,73 @@
 
         Collection<PoleLightemitEntity> poleLightemitEntities = poleLightemitService.listByIds(lightemitIds);
 
-        if(poleLightemitEntities != null){
-            for (PoleLightemitEntity entity: poleLightemitEntities) {
+        if (poleLightemitEntities != null) {
+            for (PoleLightemitEntity entity : poleLightemitEntities) {
                 lightemitUtils.clear(entity.getLightemitControlCode());
                 poleLightemitService.updateRequestBody(entity.getLightemitControlCode(), jsondata);
-                lightemitUtils.post(realtimeServerBean.getCommand() + entity.getLightemitControlCode(), jsondata);
+                String post = lightemitUtils.post(realtimeServerBean.getCommand() + entity.getLightemitControlCode(), jsondata);
+                LogUtils.error("缁撴灉:" + post);
             }
         }
     }
 
 
+    /**
+     * 鎺ㄩ�佸ぇ姘旀暟鎹埌鐔欒LED
+     */
+    @Async("taskExecutor")
+    public Boolean pushWeather(String lightemitControlCode, A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage sensorEntity, Pole streetlightEntity) {
+        if (StringUtils.isBlank(lightemitControlCode)) {
+            return Boolean.valueOf(false);
+        }
+        Integer screenHeight = Integer.parseInt(lightemitUtils.getScreenHeight(lightemitControlCode));
+        String size = String.valueOf(screenHeight / 18);
+        //瀛楀箷涓讳綋鎷兼帴
+        String body =
+                "<head><style type=\"text/css\">body{background-color:#000;}</style></head>" +
+                        "<p style=\"font-size:" + size + "px;line-height:17px;color:#fff\">" +
+                        (streetlightEntity == null || streetlightEntity.getCity() == null ? "" : streetlightEntity.getCity().replace("甯�", "")) + "<br/>" +
+                        "娓╁害锛�" + (sensorEntity == null || sensorEntity.getTemperature() == null ? "   -" : sensorEntity.getTemperature()) + "鈩�<br/>" +
+                        "婀垮害锛�" + (sensorEntity == null || sensorEntity.getHumidity() == null ? "-" : sensorEntity.getHumidity()) + "%RH<br/>" +
+                        "浜害锛�" + (sensorEntity == null || sensorEntity.getLightIntensity() == null ? "-" : sensorEntity.getLightIntensity()) + "lux<br/>" +
+                        "椋庨�燂細" + (sensorEntity == null || sensorEntity.getWindSpeed() == null ? "-" : sensorEntity.getWindSpeed()) + "m/s<br/>" +
+                        "CO2锛�" + (sensorEntity == null || sensorEntity.getCo2() == null ? "-" : sensorEntity.getCo2()) + "ppm<br/>" +
+                        "鐢查啗锛�" + (sensorEntity == null || sensorEntity.getEch2o() == null ? "-" : sensorEntity.getEch2o()) + "mg/m鲁<br/>" +
+                        "TVOC锛�" + (sensorEntity == null || sensorEntity.getTvoc() == null ? "-" : sensorEntity.getTvoc()) + "mg/m鲁<br/>" +
+                        "PM25锛�" + (sensorEntity == null || sensorEntity.getPm25() == null ? "-" : sensorEntity.getPm25()) + "mg/m鲁<br/>" +
+                        "PM10锛�" + (sensorEntity == null || sensorEntity.getPm10() == null ? "-" : sensorEntity.getPm10()) + "mg/m鲁<br/>";
+
+        //缁勮璇锋眰鍙傛暟
+        SubTitleSet subTitleSet = new SubTitleSet();
+        subTitleSet.html = body;
+        subTitleSet.num = 1;
+
+        //娓呭睆鎿嶄綔
+        lightemitUtils.clear(lightemitControlCode);
+        //娓呴櫎鎾斁鍒楄〃
+        lightemitUtils.clearVideoPlay(lightemitControlCode);
+        //娓呴櫎鑺傜洰鍒楄〃
+        lightemitUtils.clearPlayerTask(lightemitControlCode);
+        try {
+            lightemitUtils.subTitleSet(subTitleSet, lightemitControlCode, false);
+            return true;
+        } catch (Exception e) {
+            return false;
+        } finally {
+            //涓�鍒嗛挓鍚庢竻闄ゅ睆骞�
+            new Timer().schedule(new TimerTask() {
+                @Override
+                public void run() {
+                    lightemitUtils.clear(lightemitControlCode);
+                    //娓呴櫎鎾斁鍒楄〃
+                    lightemitUtils.clearVideoPlay(lightemitControlCode);
+                    //娓呴櫎鑺傜洰鍒楄〃
+                    lightemitUtils.clearPlayerTask(lightemitControlCode);
+                    //鎺ㄩ�佹渶鍚庡懡浠�
+                    lightemitUtils.sendLastCommand(lightemitControlCode);
+                }
+            }, 60 * 1000);
+        }
+    }
+
 }

--
Gitblit v1.9.3