2021与蓝度共同重构项目,服务端
zhanzhiqin
2022-05-26 4e91adbb41c89688fe5b0ef03807cfe748a7d59d
ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
@@ -15,6 +15,7 @@
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.StoreOperationRecordsUtils;
import com.sandu.ximon.admin.utils.request.SubTitleSet;
import com.sandu.ximon.dao.domain.LedSFile;
import com.sandu.ximon.dao.domain.Pole;
@@ -68,6 +69,20 @@
    }
    public boolean insert(ProgramPro programPro) {
        programPro.getLayers().forEach(
                layerPro -> {
                    layerPro.getSources().forEach(
                            sourcePro -> {
                                long fileId = Long.parseLong(sourcePro.getId());
                                LedSFile file = xiXunFileService.getById(fileId);
                                String fileUrl = file.getFileUrl();
                                String[] split = fileUrl.split("/");
                                sourcePro.setId(split[split.length - 1]);
                                sourcePro.setMd5(file.getMd5());
                            }
                    );
                }
        );
        String json = JsonUtil.jsonObj2Sting(programPro);
        PoleXixunPlayerEntity poleXixunPlayer = new PoleXixunPlayerEntity();
        poleXixunPlayer.setProgramCode(programPro.get_id());
@@ -75,19 +90,27 @@
        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));
        if (SecurityUtils.getClientId() != null) {
            poleXixunPlayer.setCreateUserId(SecurityUtils.getUserId());
            if (clientService.findClientId()) {
                poleXixunPlayer.setClientId(clientService.getClientId());
            }
        }
        return this.save(poleXixunPlayer);
        boolean save = this.save(poleXixunPlayer);
        /**
         * 熙汛节目新增日志记录开始
         */
        String content = "{节目id:" + poleXixunPlayer.getProgramId()
                + ", 节目名称:" + poleXixunPlayer.getProgramName()
                + ", 节目内容:" + json
                + " }";
        StoreOperationRecordsUtils.storeOperationData(null, null, "熙汛节目更改", content);
        /**
         * 熙汛节目新增日志记录结束
         */
        return save;
    }
    public boolean deleteProgram(Long pid) {
@@ -95,6 +118,16 @@
        if (byId == null) {
            throw new BusinessException("未找到该节目");
        }
        /**
         * 熙汛节目删除日志记录开始
         */
        String content = "{删除的节目id:" + byId.getProgramId()
                + ", 删除的节目名称:" + byId.getProgramName()
                + " }";
        StoreOperationRecordsUtils.storeOperationData(null, null, "熙汛节目删除", content);
        /**
         * 熙汛节目删除日志记录结束
         */
        return removeById(pid);
    }
@@ -129,43 +162,15 @@
    }
//    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) {
    public List<Map> videoXixunPlayer(long programId, List<Long> lightemitIds) {
        //记录操作结果
        List<Map> mapList = new ArrayList<>();
        ProgramPro pro = new ProgramPro();
        ItemPro items = new ItemPro();
@@ -195,10 +200,10 @@
        list2.add(items);
        taskPro.setItems(list2);
        command.setId(UUID.randomUUID().toString());
        //这里是下方的post回调地址,需要修改IP地址
        command.setNotificationURL("http://" + config.getIp() + ":" + config.getPort() + "/machine-fast/serv/download/getJSON");
//        //这里是下方的post回调地址,需要修改IP地址
        command.setNotificationURL("");
        //资源下载链接的请求头
        command.setPreDownloadURL("http://" + config.getIp() + ":" + config.getPort() + "/machine-fast/serv/download/downliadFileById/");
        command.setPreDownloadURL("https://ximonsmart.oss-cn-shanghai.aliyuncs.com/");
        command.setTask(taskPro);
        xixun.set_id(UUID.randomUUID().toString());
        xixun.setCommand(command);
@@ -212,13 +217,50 @@
        Collection<PoleLightemitEntity> poleLightemitEntities = poleLightemitService.listByIds(lightemitIds);
        if (poleLightemitEntities != null) {
            Map map;
            for (PoleLightemitEntity entity : poleLightemitEntities) {
                lightemitUtils.clear(entity.getLightemitControlCode());
                poleLightemitService.updateRequestBody(entity.getLightemitControlCode(), jsondata);
                String post = lightemitUtils.post(realtimeServerBean.getCommand() + entity.getLightemitControlCode(), jsondata);
                LogUtils.error("结果:" + post);
                map = new LinkedHashMap();
                String clearResult = lightemitUtils.clear(entity.getLightemitControlCode());
                if (clearResult.contains("does not exist")) {
                    map.put("LightemitId", entity.getLightemitId());
                    map.put("Result", "失败");
                    mapList.add(map);
                } else {
                    poleLightemitService.updateRequestBody(entity.getLightemitControlCode(), jsondata);
                    String post = lightemitUtils.post(realtimeServerBean.getCommand() + entity.getLightemitControlCode(), jsondata);
                    //{"_type":"success","_id":"ce8dc3ff-dc88-43b7-8f55-60abd8700f1a","timestamp":1653555160535}
                    if (post.startsWith("{") && post.endsWith("}") && post.contains("_type\":\"success")) {
                        map.put("LightemitId", entity.getLightemitId());
                        map.put("Result", "成功");
                        mapList.add(map);
                    } else {
                        map.put("LightemitId", entity.getLightemitId());
                        map.put("Result", "失败");
                        mapList.add(map);
                    }
                    LogUtils.error("结果:" + post);
                }
            }
        }
        /**
         * 熙汛节目推送日志记录开始
         */
        List<String> listCode = new ArrayList<>();
        for (PoleLightemitEntity bean : poleLightemitEntities) {
            listCode.add(bean.getLightemitControlCode());
        }
        String content = "{节目id:" + programId
                + ", 节目名称:" + poleXixunPlayerEntity.getProgramName()
                + ", 节目内容:" + json
                + " }";
        StoreOperationRecordsUtils.storeOperationData(listCode, null, "熙汛节目推送", content);
        /**
         * 熙汛节目推送日志记录结束
         */
        return mapList;
    }
@@ -275,6 +317,19 @@
                    lightemitUtils.clearPlayerTask(lightemitControlCode);
                    //推送最后命令
                    lightemitUtils.sendLastCommand(lightemitControlCode);
                    /**
                     * 熙汛大气数据推送日志记录开始
                     //                     */
//                    String content = "{设备code:" + lightemitControlCode
//                            + ", 推送内容:" + body
//                            + " }";
//                    List<String> listCode = new ArrayList<>();
//                    listCode.add(lightemitControlCode);
//                    StoreOperationRecordsUtils.storeOperationData(listCode, null, "熙汛大气数据推送", content);
                    /**
                     * 熙汛大气数据推送日志记录结束
                     */
                }
            }, 60 * 1000);
        }