From f67e78a754fb8d7364d35aaafb0295690a4cc810 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 03 十二月 2025 10:37:06 +0800
Subject: [PATCH] 最新版本541200007
---
server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java | 79 +++++++++++
admin/src/views/business/deviceBroadcast.vue | 54 +++++--
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java | 1
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ISAPIBroadcastAddPlanSchemeRequest.java | 87 ++++++++++++
server/visits/dmvisit_admin/src/main/resources/bootstrap.yml | 2
admin/src/components/business/OperaDeviceBroadcastWindow.vue | 30 ++++
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java | 7
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java | 134 +++++++++++++++++++
8 files changed, 373 insertions(+), 21 deletions(-)
diff --git a/admin/src/components/business/OperaDeviceBroadcastWindow.vue b/admin/src/components/business/OperaDeviceBroadcastWindow.vue
index 5f6ae87..c7a4027 100644
--- a/admin/src/components/business/OperaDeviceBroadcastWindow.vue
+++ b/admin/src/components/business/OperaDeviceBroadcastWindow.vue
@@ -15,6 +15,18 @@
<el-form-item label="璁惧搴忓垪鍙�" prop="no">
<el-input v-model="form.no" placeholder="璇疯緭鍏ュ簭鍒楀彿" v-trim/>
</el-form-item>
+ <el-form-item label="杩炴帴IP" prop="ip">
+ <el-input v-model="form.ip" placeholder="璇疯緭鍏ヨ澶囪繛鎺P鍦板潃" v-trim/>
+ </el-form-item>
+ <el-form-item label="杩炴帴绔彛" prop="port">
+ <el-input v-model="form.port" placeholder="璇疯緭鍏ヨ繛鎺ョ鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杩炴帴璐﹀彿" prop="doorId">
+ <el-input v-model="form.doorId" placeholder="璇疯緭鍏ヨ澶囪繛鎺ヨ处鍙�" v-trim/>
+ </el-form-item>
+ <el-form-item label="杩炴帴瀵嗙爜" prop="doorName">
+ <el-input v-model="form.doorName" type="password" maxlength="30" show-password></el-input>
+ </el-form-item>
<el-form-item label="鎵�鍦ㄤ綅缃�" prop="regionPathName">
<el-input v-model="form.regionPathName" placeholder="璇疯緭鍏ユ墍鍦ㄤ綅缃�" v-trim/>
</el-form-item>
@@ -38,13 +50,29 @@
name: '',
regionPathName: '',
no: '',
- type: 4
+ type: 4,
+ ip: '',
+ port: '',
+ doorId: '',
+ doorName:''
},
// 楠岃瘉瑙勫垯
rules: {
name: [
{ required: true, message: '璇疯緭鍏ヨ澶囧悕绉�' }
],
+ ip: [
+ { required: true, message: '璇疯緭鍏ヨ澶囪繛鎺P鍦板潃' }
+ ],
+ port: [
+ { required: true, message: '璇疯緭鍏ヨ澶囪繛鎺ョ鍙e彿' }
+ ],
+ doorId: [
+ { required: true, message: '璇疯緭鍏ヨ澶囪繛鎺ヨ处鍙�' }
+ ],
+ doorName: [
+ { required: true, message: '璇疯緭鍏ヨ澶囪繛鎺ュ瘑鐮�' }
+ ],
hkId: [
{ required: true, message: '璇疯緭鍏ヨ澶囧敮涓�鐮�' }
]
diff --git a/admin/src/views/business/deviceBroadcast.vue b/admin/src/views/business/deviceBroadcast.vue
index 9e54ee3..baf4669 100644
--- a/admin/src/views/business/deviceBroadcast.vue
+++ b/admin/src/views/business/deviceBroadcast.vue
@@ -25,18 +25,30 @@
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="搴忓彿" width="55" fixed><template slot-scope="scope" >{{scope.$index+1}}</template></el-table-column>
- <el-table-column prop="name" label="鍚嶇О"></el-table-column>
- <el-table-column prop="hkId" label="鍞竴鏍囪瘑" ></el-table-column>
- <el-table-column prop="no" label="搴忓垪鍙�" ></el-table-column>
- <el-table-column prop="regionPathName" label="鎵�鍦ㄤ綅缃�"></el-table-column>
- <el-table-column prop="editDate" label="鏈�杩戞洿鏂版椂闂�"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:devicerole:update', 'business:devicerole:delete'])"
- label="鎿嶄綔"
- align="center"
- min-width="120"
- fixed="right"
- >
+ <el-table-column prop="name" label="鍚嶇О"></el-table-column>
+ <el-table-column prop="hkId" label="鍞竴鏍囪瘑" ></el-table-column>
+ <el-table-column prop="regionPathName" label="鎵�鍦ㄤ綅缃�"></el-table-column>
+ <el-table-column prop="no" label="搴忓垪鍙�" ></el-table-column>
+ <el-table-column prop="ip" label="IP鍦板潃" ></el-table-column>
+ <el-table-column prop="port" label="绔彛" ></el-table-column>
+ <el-table-column prop="doorId" label="璐﹀彿"></el-table-column>
+ <el-table-column prop="doorName" label="瀵嗙爜" align="center">
+ <template slot-scope="{row}">
+ <span :class=" 'blue'">{{row.showPwd?row.doorName:'******'}}</span>
+ <el-button style="margin-left: 10px" v-if="row.doorName!=null"
+ @click.native.p.prevent="showPassward(row)" type="text">
+ <i class="el-icon-view" :class="row.showPwd?'red':'blue'" :title="row.showPwd?'闅愯棌':'鏄剧ず'"></i>
+ </el-button>
+ </template>
+ </el-table-column>
+ <el-table-column prop="editDate" label="鏈�杩戞洿鏂版椂闂�"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:devicerole:update', 'business:devicerole:delete'])"
+ label="鎿嶄綔"
+ align="center"
+ min-width="120"
+ fixed="right"
+ >
<template slot-scope="{row}">
<el-button type="text" @click="$refs.operaDeviceWindow.open('缂栬緫骞挎挱', row)" icon="el-icon-edit" v-permissions="['business:device:update']">缂栬緫</el-button>
<el-button type="text" @click="send(row)" icon="el-icon-edit" v-permissions="['business:device:update']">鍙戦�佹挱鎶�</el-button>
@@ -79,6 +91,7 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaDeviceBroadcastWindow from '@/components/business/OperaDeviceBroadcastWindow'
+import { syncDevices } from '@/api/business/device'
export default {
name: 'Device',
extends: BaseTable,
@@ -114,11 +127,18 @@
this.search()
},
methods: {
+ showPassward (row) {
+ if (!row.showPwd) {
+ this.$set(row, 'showPwd', true)
+ } else {
+ this.$set(row, 'showPwd', false)
+ }
+ },
sendBobao () {
- if(!this.form.sendInfo){
+ if (!this.form.sendInfo) {
return
}
- this.$dialog.actionConfirm('纭杩涜骞挎挱鎾姤鍚楋紵','鎿嶄綔纭鎻愰啋')
+ this.$dialog.actionConfirm('纭杩涜骞挎挱鎾姤鍚楋紵', '鎿嶄綔纭鎻愰啋')
.then(() => {
this.isWorkSending = true
this.api.sendBobao(this.form)
@@ -143,17 +163,17 @@
this.isWorkSending = false
this.form = { sendInfo: '', id: '', hkId: '', name: '' }
},
- synchronousData () {
+ synchronousData () {
this.$dialog.actionConfirm('鎿嶄綔纭鎻愰啋', '鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�')
.then(() => {
this.isWorking.delete = true
- syncDevices({type: 4})
+ syncDevices({ type: 4 })
.then(res => {
this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
this.search()
})
.catch(e => {
- // this.$tip.apiFailed(e)
+ // this.$tip.apiFailed(e)
})
.finally(() => {
this.isWorking.delete = false
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java
index e7845db..244f654 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java
@@ -1,17 +1,35 @@
package com.doumee.core.utils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpEntity;
+import org.apache.http.ParseException;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
import org.springframework.http.HttpMethod;
import javax.net.ssl.*;
import java.io.*;
import java.net.HttpURLConnection;
+import java.net.URI;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
-
+@Slf4j
public class HttpsUtil {
public static String get(String url,boolean ignoreSSL) {
@@ -28,6 +46,65 @@
return connectionHttp(url, "POST", data, "application/json");
}
}
+ private static final int CONNECT_TIMEOUT =10000;// 璁剧疆杩炴帴寤虹珛鐨勮秴鏃舵椂闂翠负10s
+ private static final int SOCKET_TIMEOUT = 10000;//socket璇诲啓瓒呮椂鏃堕棿(鍗曚綅姣)
+
+ private static void setRequestConfig(HttpRequestBase httpRequestBase) {
+ RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(CONNECT_TIMEOUT)
+ .setConnectTimeout(CONNECT_TIMEOUT).setSocketTimeout(SOCKET_TIMEOUT).build();
+ httpRequestBase.setConfig(requestConfig);
+ }
+
+ public static String doPostHk(String host,int port,String UserName,String Password,String url, String Input) {
+ try {
+ CloseableHttpResponse responseBody = null;
+ HttpPost httpPost = new HttpPost("http://"+host+":"+port+url);
+ setRequestConfig(httpPost);
+ httpPost.setEntity(new StringEntity(Input, "UTF-8"));
+ CredentialsProvider credsProvider = new BasicCredentialsProvider();
+ credsProvider.setCredentials(new AuthScope(host, port),
+ new UsernamePasswordCredentials(UserName, Password));
+ CloseableHttpClient httpClient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
+
+ String response = "";
+
+ // 鐢卞鎴风鎵ц(鍙戦��)Post璇锋眰
+ responseBody = httpClient.execute(httpPost);
+ // 浠庡搷搴旀ā鍨嬩腑鑾峰彇鍝嶅簲瀹炰綋
+ HttpEntity responseEntity = responseBody.getEntity();
+ log.error("doPostHk鍝嶅簲鐘舵�佷负:" + responseBody.getStatusLine());
+ if (responseBody.getStatusLine().getStatusCode() == 302){
+ String redirectLocation = responseBody.getHeaders("Location")[0].getValue();
+ log.error("doPostHkRedirected to: " + redirectLocation);
+ // 鍦ㄨ繖閲岋紝浣犲彲浠ュ彂閫佷竴涓柊鐨勮姹傚埌redirectLocation
+ httpPost.setURI(URI.create(redirectLocation));
+ CloseableHttpResponse responseBody2 = httpClient.execute(httpPost);
+ log.error("doPostHk閲嶅畾鍚戝悗鍝嶅簲鐘舵�佷负:" + responseBody2.getStatusLine());
+ HttpEntity responseEntity2 = responseBody2.getEntity();
+ log.error("doPostHk閲嶅畾鍚戝悗鍝嶅簲鍐呭闀垮害涓�:" + responseEntity2.getContentLength());
+ response = EntityUtils.toString(responseEntity2);
+ log.error("doPostHk閲嶅畾鍚戝悗鍝嶅簲鍐呭涓�:\n" + response);
+ responseBody2.close();
+ return response;
+ }else {
+ if (responseEntity != null) {
+ log.error("doPostHk鍝嶅簲鍐呭闀垮害涓�:" + responseEntity.getContentLength());
+ response = EntityUtils.toString(responseEntity);
+ log.error("doPostHk鍝嶅簲鍐呭涓�:\n" + response);
+ return response;
+ }
+ }
+ if (httpClient != null) {
+ httpClient.close();
+ }
+ if (responseBody != null) {
+ responseBody.close();
+ }
+ } catch (Exception e) {
+ log.error("doPostHk鍙戣捣璇锋眰寮傚父:\n" + e.getMessage());
+ }
+ return null;
+ }
public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){
HttpsURLConnection connection = null;
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
index 37a5584..4edb06e 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -356,7 +356,12 @@
}
@ApiOperation("銆愭捣搴枫�戝箍鎾挱鎶�")
@PostMapping("/sendBobao")
- public ApiResponse<List<Map<String,Object>>> setBroadcaseBobao(@RequestBody Device body , HttpServletResponse response) {
+ public ApiResponse<String> setBroadcaseBobao(@RequestBody Device body , HttpServletResponse response) {
+ return ApiResponse.success( deviceService.setBroadcaseBobaoHttp(body));
+ }
+ @ApiOperation("銆愭捣搴枫�戝箍鎾挱鎶�")
+ @PostMapping("/sendBobaoOpenapi")
+ public ApiResponse<List<Map<String,Object>>> sendBobaoOpenapi(@RequestBody Device body , HttpServletResponse response) {
deviceService.setBroadcaseBobao(body);
return ApiResponse.success(null);
}
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
index 2df12af..9dc10e9 100644
--- a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
profiles:
- active: pro
+ active: dev
application:
name: visitsAdmin
# 瀹夊叏閰嶇疆
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ISAPIBroadcastAddPlanSchemeRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ISAPIBroadcastAddPlanSchemeRequest.java
new file mode 100644
index 0000000..1ff34ee
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ISAPIBroadcastAddPlanSchemeRequest.java
@@ -0,0 +1,87 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ISAPIBroadcastAddPlanSchemeRequest {
+
+ /**
+ {
+ "terminalInfoList": [
+ {
+ "terminalID": 1,
+ "audioOutID": [
+ 2
+ ],
+ "audioOutIndexList": [
+ 1
+ ]
+ }
+ ],
+ "broadcastPlanSchemeList": [
+ {
+ "planSchemeID": "plan1",
+ "enabled": true,
+ "sourceID": "fdb4465d7aa5495884845127a8bbbe3c",
+ "weklyScheduleInfo": {
+ "startTime": "1970-01-01",
+ "stopTime": "1970-01-01",
+ "weeklyScheduleList": [
+ {
+ "dayOfWeek": 1,
+ "scheduleList": [
+ {
+ "planSchemeExecID": 0,
+ "beginTime": "00:00:00",
+ "endTime": "00:00:00",
+ "playNowTime": "00:00:00",
+ "operation": {
+ "audioSource": "customAudio",
+ "customAudioID": [
+ 2
+ ],
+ "URLIDs": [
+ 1
+ ],
+ "speechSynthesisContent": "test",
+ "audioLevel": 0,
+ "TTSLanguageType": "english",
+ "voiceType": "male",
+ "audioVolume": 1
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "dailyScheduleInfo": {
+ "startTime": "1970-01-01",
+ "stopTime": "1970-01-01",
+ "dailyScheduleList": [
+ {
+ "beginTime": "00:00:00",
+ "endTime": "00:00:00",
+ "playNowTime": "00:00:00",
+ "operation": {
+ "audioSource": "customAudio",
+ "customAudioID": [
+ 2
+ ],
+ "URLIDs": [
+ 1
+ ],
+ "speechSynthesisContent": "test",
+ "audioLevel": 0,
+ "TTSLanguageType": "english",
+ "audioVolume": 1
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ */
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
index 840dbda..ceced8e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/DeviceService.java
@@ -108,4 +108,5 @@
void allLedDefualtContent();
void setBroadcaseBobao(Device body);
+ String setBroadcaseBobaoHttp(Device body);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
index 86fa98a..0415313 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
@@ -10,6 +11,7 @@
import com.doumee.core.haikang.model.param.request.CustomBroadcastRequest;
import com.doumee.core.haikang.model.param.request.TransparentChannelSingleRequest;
import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.utils.HttpsUtil;
import com.doumee.dao.business.*;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.third.model.LoginUserInfo;
@@ -268,6 +270,138 @@
}
}
@Override
+ public String setBroadcaseBobaoHttp(Device param){
+ /* Device model = deviceMapper.selectById(param.getId());
+ if(model ==null && Constants.equalsInteger(param.getType(),Constants.FOUR)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ String input = "";
+ JSONObject objext = new JSONObject();
+
+ //閲嶆柊涓嬪彂璁″垝
+ JSONObject jsonObject = new JSONObject();
+ //绗竴灞�
+ JSONArray firstJsonArray = new JSONArray();
+ JSONObject downJson = new JSONObject();
+ downJson.put("terminalID",1);
+ //涓嶅~榛樿瀵规墍鏈夐�氶亾涓嬪彂
+ JSONArray audioJsonArray = new JSONArray();
+ audioJsonArray.add(1);
+ downJson.put("audioOutID",audioJsonArray);
+ firstJsonArray.add(downJson);
+ jsonObject.put("TerminalInfoList",firstJsonArray);
+ //绗竴灞傛暟缁�
+ JSONArray allJsonArray = new JSONArray();
+ //鏁扮粍涓璞�
+ for (WaterTimingBroadcastDO waterTimingBroadcastDO : searchList) {
+ JSONObject downArrayData = new JSONObject();
+ downArrayData.put("audioOutID",audioJsonArray);
+ downArrayData.put("enabled",true);
+ downArrayData.put("planSchemeID",waterTimingBroadcastDO.getName());
+ JSONObject executeJson = new JSONObject();
+ executeJson.put("startTime", getDateStringByZones(waterTimingBroadcastDO.getStartDate()));
+ executeJson.put("stopTime",getDateStringByZones(waterTimingBroadcastDO.getEndDate()));
+ if (Constant.ONE.equals(waterTimingBroadcastDO.getPeriodType())){
+ //鏃ヨ鍒�
+ JSONArray executeJsonArray = new JSONArray();
+ JSONObject executeJsonDataItem = new JSONObject();
+ executeJsonDataItem.put("beginTime",waterTimingBroadcastDO.getStartTime()+"+08:00");
+ executeJsonDataItem.put("endTime",waterTimingBroadcastDO.getEndTime()+"+08:00");
+ executeJsonDataItem.put("playMode","loop");
+ executeJsonDataItem.put("playNowTime","");
+ executeJsonDataItem.put("planSchemeExecID",0);
+ JSONObject secondDownOperationJson = new JSONObject();
+ if (Constant.ONE.equals(waterTimingBroadcastDO.getContentType())){
+ //鏂囨湰
+ secondDownOperationJson.put("audioSource","speechSynthesis");
+ secondDownOperationJson.put("speechSynthesisContent",waterTimingBroadcastDO.getContent());
+ }else if (Constant.TWO.equals(waterTimingBroadcastDO.getContentType())){
+ //闊抽
+ secondDownOperationJson.put("audioSource","customAudio");
+ String json = waterTimingBroadcastDO.getJson();
+ JSONObject jsonData = JSONObject.parseObject(json);
+ List<Integer> hkAudioIds = new ArrayList<>();
+ hkAudioIds.add(jsonData.getIntValue(waterDeviceDO.getIp()));
+ secondDownOperationJson.put("customAudioID",hkAudioIds);
+ }
+ secondDownOperationJson.put("audioLevel",5);
+ //璇█绫诲瀷
+ secondDownOperationJson.put("TTSLanguageType","chinese");
+ secondDownOperationJson.put("voiceType","female");
+ secondDownOperationJson.put("audioVolume",100);
+ executeJsonDataItem.put("Operation",secondDownOperationJson);
+ executeJsonArray.add(executeJsonDataItem);
+ executeJson.put("dailyScheduleList",executeJsonArray);
+ }else {
+ //鍛ㄨ鍒�
+ JSONArray executeJsonArray = new JSONArray();
+ List<String> executeTime = new ArrayList<>();
+ if (Constant.ONE.equals(waterTimingBroadcastDO.getPeriodType())){
+ //鏃ヨ鍒� 寰幆涓�娆�
+ executeTime.add("1");
+ }else if (Constant.TWO.equals(waterTimingBroadcastDO.getPeriodType())){
+ //鍛ㄨ鍒掑涓�涓懆鍑�
+ executeTime = Arrays.asList(waterTimingBroadcastDO.getExecuteTime().split(","));
+ }
+ for (String s : executeTime) {
+ JSONObject executeJsonData = new JSONObject();
+ if (Constant.TWO.equals(waterTimingBroadcastDO.getPeriodType())){
+ //鍛ㄨ鍒掑涓�涓懆鍑�
+ executeJsonData.put("dayOfWeek",Integer.parseInt(s));
+ }
+ JSONArray executeJsonDataArray = new JSONArray();
+ JSONObject executeJsonDataItem = new JSONObject();
+ executeJsonDataItem.put("beginTime",waterTimingBroadcastDO.getStartTime()+"+08:00");
+ executeJsonDataItem.put("endTime",waterTimingBroadcastDO.getEndTime()+"+08:00");
+ executeJsonDataItem.put("playMode","loop");
+ executeJsonDataItem.put("playNowTime","");
+ executeJsonDataItem.put("planSchemeExecID",0);
+ JSONObject secondDownOperationJson = new JSONObject();
+ if (Constant.ONE.equals(waterTimingBroadcastDO.getContentType())){
+ //鏂囨湰
+ secondDownOperationJson.put("audioSource","speechSynthesis");
+ secondDownOperationJson.put("speechSynthesisContent",waterTimingBroadcastDO.getContent());
+ }else if (Constant.TWO.equals(waterTimingBroadcastDO.getContentType())){
+ //闊抽
+ secondDownOperationJson.put("audioSource","customAudio");
+ String json = waterTimingBroadcastDO.getJson();
+ JSONObject jsonData = JSONObject.parseObject(json);
+ List<Integer> hkAudioIds = new ArrayList<>();
+ hkAudioIds.add(jsonData.getIntValue(waterDeviceDO.getIp()));
+ secondDownOperationJson.put("customAudioID",hkAudioIds);
+ }
+ secondDownOperationJson.put("audioLevel",5);
+ //璇█绫诲瀷
+ secondDownOperationJson.put("TTSLanguageType","chinese");
+ secondDownOperationJson.put("voiceType","female");
+ secondDownOperationJson.put("audioVolume",10);
+ executeJsonDataItem.put("Operation",secondDownOperationJson);
+ executeJsonDataArray.add(executeJsonDataItem);
+ executeJsonData.put("scheduleList",executeJsonDataArray);
+ executeJsonArray.add(executeJsonData);
+
+ }
+ executeJson.put("weeklyScheduleList",executeJsonArray);
+ }
+
+ if (Constant.ONE.equals(waterTimingBroadcastDO.getPeriodType())){
+ //鏃ヨ鍒�
+ downArrayData.put("dailyScheduleInfo",executeJson);
+ }else {
+ //鍛ㄨ鍒�
+ downArrayData.put("weklyScheduleInfo",executeJson);
+ }
+ allJsonArray.add(downArrayData);
+ }
+ jsonObject.put("broadcastPlanSchemeList",allJsonArray);
+ log.info("娴峰悍鎾斁璁″垝涓嬪彂鍏ュ弬鍐呭 : " + jsonObject);
+
+ String result = HttpsUtil.doPostHk(param.getIp(),Integer.parseInt(StringUtils.defaultString(param.getPort(),"80"))
+ ,"/ISAPI/VideoIntercom/broadcast/AddPlanScheme?format=json",param.getDoorId(), param.getDoorName(),jsonObject.toJSONString());
+ return result;*/
+ return null;
+ }
+ @Override
public void setLedContent(TransparentChannelSingleRequest model) {
Device device = findById(model.getDeviceId());
if(device == null
--
Gitblit v1.9.3