diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java index fa6109c..aa6233a 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java @@ -187,4 +187,33 @@ public class BusinessAlertController extends BaseController { + + @Operation(summary ="ai实时流预警保存-用于演示",description = "ai实时流预警保存-用于演示") + @PostMapping("/saveAlert") + public R selectAlert(@RequestBody BusinessAlertVo vo) { + vo.setBusinessType(2); + BusinessAlert businessAlert = businessAlertService.addBusinessAlert(vo); + RemoteStartProcess startProcess = new RemoteStartProcess(); + startProcess.setBusinessId(String.valueOf(businessAlert.getId())); + startProcess.setFlowCode("alertChz"); + remoteWorkflowService.startWorkFlowBatch(List.of(startProcess)); + RemoteNoticeBo remoteNoticeBo = new RemoteNoticeBo(); + remoteNoticeBo.setNoticeTitle(vo.getDeptName()+"产生预警,预警类型["+vo.getLabelCn()+"],请立即查看"); + remoteNoticeBo.setNoticeType("3"); + remoteNoticeBo.setNoticeContent(vo.getDeptName()+"产生预警,预警类型["+vo.getLabelCn()+"],请立即查看"); + remoteNoticeBo.setStatus("0"); + remoteNoticeBo.setIsRead(0); + remoteNoticeBo.setCreateBy(1L); + remoteNoticeBo.setCreateDept(1L); + remoteNoticeBo.setCreateTime(businessAlert.getCreateTime()); + if (businessAlert.getBusinessType() == 2){ + businessAlert.setImages(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_DKCY, vo.getImages(), 3600).toString()); + } + remoteNoticeBo.setDeviceSn(vo.getDeviceSn()); + businessAlert.setDeviceSn(vo.getDeviceSn()); + remoteNoticeBo.setParam(JSON.toJSONString(businessAlert)); + remoteNoticeService.saveNotice(remoteNoticeBo); + remoteSubmailConfigService.remoteCmdSend("smsMultixsend", JSON.toJSONString(vo)); + return R.ok(); + } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/ITaskJobMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/ITaskJobMapper.java new file mode 100644 index 0000000..5fc2e61 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/ITaskJobMapper.java @@ -0,0 +1,15 @@ +package org.dromara.sample.manage.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.dromara.sample.manage.model.entity.PlayTextEntity; +import org.dromara.sample.manage.model.entity.TaskJobEntity; + +/** + * + * @author sean.zhou + * @date 2021/11/10 + * @version 0.1 + */ +public interface ITaskJobMapper extends BaseMapper { + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/BusinessAlertVo.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/BusinessAlertVo.java new file mode 100644 index 0000000..0126918 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/BusinessAlertVo.java @@ -0,0 +1,212 @@ +package org.dromara.sample.manage.model.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 预警任务视图对象 wayline_alert + * + * @author LionLi + * @date 2025-02-27 + */ +@Data +@ExcelIgnoreUnannotated +public class BusinessAlertVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + + /** + * + */ + private Long id; + + /** + * job任务id + */ + private String jobId; + + /** + * 预警名称 + */ + private String jobName; + + /** + * 图片id 对应的media_file 的fileId + */ + private String taskImageId; + + /** + * 处理原因 + */ + private String reason; + + /** + * 是否指派 + */ + private Boolean assign; + + /** + * 图片文件 + */ + private String images; + + /** + * 纬度 + */ + private String lat; + + /** + * 精度 + */ + private String lng; + + /** + * 标签名-中 + */ + private String labelCn; + + /** + * 标签名-英 + */ + private String labelEn; + + /** + * 任务内容 + */ + private String taskContent; + + /** + * 删除 0 正常 1已删除 + */ + private Integer delFlag; + + /** + * 模板图片 + */ + private String mateSourceImgUrl; + + + /** + * 放大模板违建区域图片 + */ + private String maxMateSourceImgUrl; + + /** + * 预警类型 + */ + private String alertType; + + /** + * 放大违建区域图片 + */ + private String maxImages; + + /** + * 面积 + */ + private Long area; + + /** + * 面积:长 + */ + private Long areaL; + + /** + * 面积:宽 + */ + private Long areaW; + + /** + * 流程处置状态(verify:验证,cancel:已撤销,draft:草稿,waiting:待审核,finish:已完成,invalid:已作废,back:已退回,termination:已终止) + */ + private String handleType; + + /** + * 指派人员 + */ + private String assignUserId; + + /** + * 指派时间 + */ + private Date assignDate; + + /** + * 完成时间 + */ + private Date completeDate; + + /** + * 是否违建 0:否,1:是 + */ + private Boolean isIllegal; + + /** + * 部门id + */ + private String deptId; + + /** + * 部门名称 + */ + private String deptName; + + /** + * 处理时间 + */ + private Date handleTime; + + /** + * 其他:内容 + */ + private String taskHandle; + + /** + * 像素坐标 + */ + private String pixelCoordinate; + + /** + * 当前位置预警数量 + */ + private Integer handleNum; + + /** + * 地类信息数据 + */ + private String landCategories; + + /** + * 忽略原因 + */ + private String ignoringCause; + private Integer value; + + /** + * 来源:0:平台 1:小程序 + */ + private Integer handleSource; + + /** + * 指派人员名称 + */ + private String assignUserName; + + private Date createTime; + //1:图片比对预警 2:AI实时预警 + private Integer businessType; + private String deviceSn; + + /** + * 案件号 + */ + private String caseNumber; +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/EngineType.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/EngineType.java new file mode 100644 index 0000000..71f928a --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/EngineType.java @@ -0,0 +1,30 @@ +package org.dromara.sample.manage.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * The entity class of the device + * + * @author sean.zhou + * @version 0.1 + * @date 2021/11/10 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EngineType implements Serializable { + + private String scene; + + private int id; + + + + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/EngineTypeResponse.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/EngineTypeResponse.java new file mode 100644 index 0000000..0f693f7 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/EngineTypeResponse.java @@ -0,0 +1,30 @@ +package org.dromara.sample.manage.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * The entity class of the device + * + * @author sean.zhou + * @version 0.1 + * @date 2021/11/10 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EngineTypeResponse implements Serializable { + + private Long code; + + private String message; + + private EngineType data; + + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/TaskJobEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/TaskJobEntity.java new file mode 100644 index 0000000..6c56af2 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/TaskJobEntity.java @@ -0,0 +1,33 @@ +package org.dromara.sample.manage.model.entity; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Date; + +/** + * The entity class of the device + * + * @author sean.zhou + * @version 0.1 + * @date 2021/11/10 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName(value = "task_job") +public class TaskJobEntity implements Serializable { + + @TableId(type = IdType.AUTO) + private Integer id; + + private String taskId; + + private String jobId; + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/ITaskJobService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/ITaskJobService.java new file mode 100644 index 0000000..6ba3849 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/ITaskJobService.java @@ -0,0 +1,15 @@ +package org.dromara.sample.manage.service; + +import org.dromara.common.sdk.common.HttpResultResponse; +import org.dromara.common.sdk.common.PaginationData; +import org.dromara.sample.manage.model.entity.PlayTextEntity; + +import java.util.Map; + +/** + * @author sean.zhou + * @date 2021/11/10 + * @version 0.1 + */ +public interface ITaskJobService { +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SampleEngineRecordServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SampleEngineRecordServiceImpl.java index 4bdab9a..47b08fe 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SampleEngineRecordServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SampleEngineRecordServiceImpl.java @@ -1,10 +1,12 @@ package org.dromara.sample.manage.service.impl; +import cn.hutool.core.map.MapUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import io.seata.common.util.StringUtils; import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; @@ -15,11 +17,13 @@ import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.dromara.sample.common.util.Md5Utils; import org.dromara.sample.manage.mapper.ISampleEngineRecordMapper; -import org.dromara.sample.manage.model.dto.EngineResponse; -import org.dromara.sample.manage.model.dto.ExtraType; -import org.dromara.sample.manage.model.dto.ExtraTypeResponse; +import org.dromara.sample.manage.mapper.ITaskJobMapper; +import org.dromara.sample.manage.model.dto.*; import org.dromara.sample.manage.model.entity.EngineRecordEntity; +import org.dromara.sample.manage.model.entity.TaskJobEntity; import org.dromara.sample.manage.service.ISampleEngineRecordService; +import org.dromara.system.api.RemoteConfigService; +import org.json.JSONArray; import org.json.JSONObject; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -27,10 +31,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.net.URI; import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static org.apache.commons.compress.utils.ArchiveUtils.sanitize; @@ -41,17 +42,22 @@ public class SampleEngineRecordServiceImpl implements ISampleEngineRecordService @Resource ISampleEngineRecordMapper mapper; + @Resource + ITaskJobMapper taskJobMapper; + @DubboReference + private RemoteConfigService remoteConfigService; @Override public Map startEngine(Map objectMap){ EngineRecordEntity record = new EngineRecordEntity(); + String ip = remoteConfigService.selectStreamIp(); //获取token //设置请求Header和Body(如JSON) String md5 = Md5Utils.hash("xuzhou_ai"); JSONObject jsonObj = new JSONObject(); jsonObj.put("username", sanitize("xuzhou_ai")); // sanitize函数见下文 jsonObj.put("password", sanitize(md5)); - String responseBody = PostRequest(jsonObj, "http://60.204.247.65:8100/Third/Login"); + String responseBody = PostRequest(jsonObj, "http://60.204.247.65:8100/Third/Login",""); JSONObject jsonObject = new JSONObject(responseBody); // 逐层获取 data -> token JSONObject data = jsonObject.getJSONObject("data"); @@ -60,96 +66,134 @@ public class SampleEngineRecordServiceImpl implements ISampleEngineRecordService String algorithmResponseBody = null; //查询用户开通的场景 if (StringUtils.isNotEmpty(token)){ - try { - URI uri = new URIBuilder("http://60.204.247.65:8100/V2/AI/WX/User/Scene") - .build(); - sceneResponseBody = GetRequest(uri, token); - } catch (URISyntaxException e) { - throw new RuntimeException(e); - } - JSONObject jsonObject1 = new JSONObject(sceneResponseBody); - // 逐层获取 data -> token - JSONObject data1 = jsonObject.getJSONObject("data"); - String scene = data1.getString("scene"); - - //查询场景算法 - List extra_type_list = new ArrayList<>(); - try { - URI uri = new URIBuilder("http://60.204.247.65:8100/V2/AI/WX/User/ExtraType/Get") - .addParameter("scene",scene) - .addParameter("if_open","1") - .build(); - algorithmResponseBody = GetRequest(uri, token); - ObjectMapper mapper = new ObjectMapper(); - ExtraTypeResponse response = mapper.readValue(algorithmResponseBody,ExtraTypeResponse.class); - List list = response.getData(); - for (ExtraType extraType : list) { - extra_type_list.add(extraType.getExtra_type()); - break; - } - } catch (URISyntaxException | JsonProcessingException e) { - throw new RuntimeException(e); - } +// try { +// URI uri = new URIBuilder("http://60.204.247.65:8100/V2/AI/WX/User/Scene") +// .build(); +// sceneResponseBody = GetRequest(uri, token); +// } catch (URISyntaxException e) { +// throw new RuntimeException(e); +// } +// EngineTypeResponse engineTypeResponse = null; +// try { +// ObjectMapper mapper = new ObjectMapper(); +// engineTypeResponse = mapper.readValue(sceneResponseBody, EngineTypeResponse.class); +// } catch (JsonProcessingException e) { +// throw new RuntimeException(e); +// } +//// JSONObject jsonObject1 = new JSONObject(sceneResponseBody); +// // 逐层获取 data -> token +//// JSONObject data1 = jsonObject1.getJSONObject("data"); +// String scene = engineTypeResponse.getData().getScene(); +// +// //查询场景算法 +// List extra_type_list = new ArrayList<>(); +// try { +// URI uri = new URIBuilder("http://60.204.247.65:8100/V2/AI/WX/User/ExtraType/Get") +// .addParameter("scene",scene) +// .addParameter("if_open","1") +// .build(); +// algorithmResponseBody = GetRequest(uri, token); +// ObjectMapper mapper = new ObjectMapper(); +// ExtraTypeResponse response = mapper.readValue(algorithmResponseBody,ExtraTypeResponse.class); +// List list = response.getData(); +// for (ExtraType extraType : list) { +// extra_type_list.add(extraType.getExtra_type()); +// break; +// } +// } catch (URISyntaxException | JsonProcessingException e) { +// throw new RuntimeException(e); +// } JSONObject jsonObj2 = new JSONObject(); - jsonObj2.put("scene", scene); // sanitize函数见下文 - jsonObj2.put("callback_url", objectMap.get("callback_url")); - jsonObj2.put("input_url", objectMap.get("input_url")); - jsonObj2.put("push_url", objectMap.get("push_url")); - jsonObj2.put("play_url", objectMap.get("play_url")); - String responseBody2 = PostRequest(jsonObj2, "http://60.204.247.65:8100/Third/Engine/Start"); - ObjectMapper mapper1 = new ObjectMapper(); - EngineResponse response = null; - try { - response = mapper1.readValue(responseBody2, EngineResponse.class); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); + String type = objectMap.get("type").toString(); + if (StringUtils.isNotEmpty(type)){ + List list = Arrays.asList(type.split(",")); + jsonObj2.put("scene", "可见光"); // sanitize函数见下文 + jsonObj2.put("callback_url", "http://114.235.183.162:9888/ces/iot/deviceLog/some"); + jsonObj2.put("extra_type_list",new JSONArray(list)); + jsonObj2.put("input_url","http://"+ip+":19008/live/livesteam/"+objectMap.get("rtmpUrl")+".flv"); + jsonObj2.put("push_url", "rtmp://"+ip+"/live/livesteam/"+objectMap.get("rtmpUrl")+"ai1"); +// jsonObj2.put("play_url", objectMap.get("play_url")); + String responseBody2 = PostRequest(jsonObj2, "http://60.204.247.65:8100/Third/Engine/Start",token); + ObjectMapper mapper1 = new ObjectMapper(); + EngineResponse response = null; + try { + response = mapper1.readValue(responseBody2, EngineResponse.class); + if (response.getCode() != 200){ + throw new RuntimeException("第三方接口调用失败!"); + } + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + objectMap.put("task_id",response.getData().getTask_id()); + record.setPushUrl(objectMap.get("rtmpUrl").toString()); + record.setTaskId(MapUtil.getStr(objectMap,"task_id","")); + record.setDeviceSn(MapUtil.getStr(objectMap,"deviceSn","")); + record.setTaskId(response.getData().getTask_id()); + record.setExtraType(objectMap.get("type").toString()); + System.out.print(objectMap); } - objectMap.put("task_id",response.getData().getTask_id()); - record.setPushUrl(objectMap.get("push_url").toString()); - record.setDeviceSn(objectMap.get("device_sn").toString()); - record.setTaskId(response.getData().getTask_id()); - record.setExtraType(String.join(",", extra_type_list)); + } Map map = new HashMap(); - map.put("callback_url", objectMap.get("callback_url")); - map.put("input_url", objectMap.get("input_url")); - map.put("push_url", objectMap.get("push_url")); - map.put("play_url", objectMap.get("play_url")); + + map.put("push_url", "http://"+ip+":1985/rtc/v1/whep/?app=live/livesteam&stream="+objectMap.get("rtmpUrl")+"ai1"); + map.put("task_id", objectMap.get("task_id")); //添加启动引擎记录 mapper.insert(record); + + //添加任务id和jobid关联关系 + TaskJobEntity taskJobEntity = new TaskJobEntity(); + taskJobEntity.setJobId(objectMap.get("jobId").toString()); + taskJobEntity.setTaskId(objectMap.get("task_id").toString()); + taskJobMapper.insert(taskJobEntity); return map; } @Override public void closeEngine(Map objectMap) { JSONObject jsonObj2 = new JSONObject(); - EngineRecordEntity record = mapper.selectOne(new LambdaQueryWrapper().eq(EngineRecordEntity::getDeviceSn, objectMap.get("device_sn"))); + EngineRecordEntity record = mapper.selectOne(new LambdaQueryWrapper().eq(EngineRecordEntity::getDeviceSn, objectMap.get("deviceSn"))); if (record == null){ - throw new RuntimeException("关闭引擎失败!"); - } - jsonObj2.put("task_id", record.getTaskId()); // sanitize函数见下文 - String responseBody2 = PostRequest(jsonObj2, "http://60.204.247.65:8100/Third/Engine/Stop"); - JSONObject json = new JSONObject(responseBody2); - // 方式2:安全获取(先判空再转换) - Object dataObj = json.get("data"); - if(dataObj != null && dataObj instanceof Integer) { - int data = (Integer) dataObj; - if (data ==1){ - mapper.delete(new LambdaQueryWrapper().eq(EngineRecordEntity::getDeviceSn, objectMap.get("device_sn"))); - }else { +// throw new RuntimeException("关闭引擎失败!"); + }else { + //获取token + //设置请求Header和Body(如JSON) + String md5 = Md5Utils.hash("xuzhou_ai"); + JSONObject jsonObj = new JSONObject(); + jsonObj.put("username", sanitize("xuzhou_ai")); // sanitize函数见下文 + jsonObj.put("password", sanitize(md5)); + String responseBody = PostRequest(jsonObj, "http://60.204.247.65:8100/Third/Login",""); + JSONObject jsonObject = new JSONObject(responseBody); + // 逐层获取 data -> token + JSONObject data = jsonObject.getJSONObject("data"); + String token = data.getString("token"); + + + jsonObj2.put("task_id", record.getTaskId()); // sanitize函数见下文 + String responseBody2 = PostRequest(jsonObj2, "http://60.204.247.65:8100/Third/Engine/Stop",token); + JSONObject json = new JSONObject(responseBody2); + // 方式2:安全获取(先判空再转换) + Object dataObj = json.get("data"); + if(dataObj != null && dataObj instanceof Integer) { + int data1 = (Integer) dataObj; + if (data1 ==1){ + mapper.delete(new LambdaQueryWrapper().eq(EngineRecordEntity::getDeviceSn, objectMap.get("deviceSn"))); + }else { + throw new RuntimeException("关闭引擎失败!"); + } + } else { throw new RuntimeException("关闭引擎失败!"); } - } else { - throw new RuntimeException("关闭引擎失败!"); } + } - public String PostRequest( JSONObject jsonObj, String url + public String PostRequest( JSONObject jsonObj, String url, String token ) { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { // 1. 创建POST请求对象 @@ -158,6 +202,7 @@ public class SampleEngineRecordServiceImpl implements ISampleEngineRecordService requestEntity.setContentType("application/json"); post.setEntity(requestEntity); post.setHeader("Accept", "application/json"); + post.setHeader("token", token); // 3. 执行请求并获取响应 try (CloseableHttpResponse response = httpClient.execute(post)) { String responseBody = EntityUtils.toString(response.getEntity()); @@ -182,7 +227,9 @@ public class SampleEngineRecordServiceImpl implements ISampleEngineRecordService // .addParameter("param2", "value2") // .build(); HttpGet httpGet = new HttpGet(uri); - httpGet.setHeader("token",token); + if (StringUtils.isNotEmpty(token)){ + httpGet.setHeader("token",token); + } try (CloseableHttpResponse response = httpClient.execute(httpGet)) { // 处理响应 String responseBody = EntityUtils.toString(response.getEntity()); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/TaskJobServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/TaskJobServiceImpl.java new file mode 100644 index 0000000..f8cdbc0 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/TaskJobServiceImpl.java @@ -0,0 +1,44 @@ +package org.dromara.sample.manage.service.impl; + +import cn.hutool.core.convert.Convert; +import cn.hutool.crypto.SecureUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.common.sdk.common.HttpResultResponse; +import org.dromara.common.sdk.common.Pagination; +import org.dromara.common.sdk.common.PaginationData; +import org.dromara.common.sdk.mqtt.CommonTopicRequest; +import org.dromara.common.sdk.mqtt.MqttGatewayPublish; +import org.dromara.sample.feign.RemoteSystemFeign; +import org.dromara.sample.manage.mapper.IPlayTextMapper; +import org.dromara.sample.manage.model.dto.StreamTypeDTO; +import org.dromara.sample.manage.model.entity.PlayTextEntity; +import org.dromara.sample.manage.service.IPlayTextService; +import org.dromara.sample.manage.service.ITaskJobService; +import org.dromara.system.api.RemoteConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +/** + * + * @author sean.zhou + * @version 0.1 + * @date 2021/11/10 + */ +@Service +@Slf4j +@Transactional +public class TaskJobServiceImpl implements ITaskJobService { + +}