diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/property/PropertySetPublish.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/property/PropertySetPublish.java index f240de8..812c364 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/property/PropertySetPublish.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/property/PropertySetPublish.java @@ -1,5 +1,6 @@ package org.dromara.common.sdk.mqtt.property; +import org.dromara.common.sdk.mqtt.CommonTopicResponse; import org.dromara.common.sdk.mqtt.MegaphoneTopicRequest; import org.dromara.common.sdk.mqtt.MqttGatewayPublish; import org.dromara.common.sdk.mqtt.TopicConst; @@ -39,9 +40,9 @@ public class PropertySetPublish { } - public PropertySetReplyResultEnum publishPlayText(String topic, Object data, String method) { + public CommonTopicResponse publishPlayText(String topic, Object data, String method) { return gatewayPublish.publishPlayTextWithReply( - PropertySetReplyResultEnum.class, topic, new MegaphoneTopicRequest<>() + CommonTopicResponse.class, topic, new MegaphoneTopicRequest<>() .setTid(UUID.randomUUID().toString()) .setBid(null) .setMethod(method) diff --git a/dk-common/common-web/pom.xml b/dk-common/common-web/pom.xml index 8a05503..caeff9b 100644 --- a/dk-common/common-web/pom.xml +++ b/dk-common/common-web/pom.xml @@ -51,6 +51,12 @@ true + + + org.springframework.cloud + spring-cloud-starter-openfeign + + net.dreamlu mica-metrics diff --git a/dk-modules/business/src/main/java/org/dromara/business/BusinessApplication.java b/dk-modules/business/src/main/java/org/dromara/business/BusinessApplication.java index f40808f..a302459 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/BusinessApplication.java +++ b/dk-modules/business/src/main/java/org/dromara/business/BusinessApplication.java @@ -5,6 +5,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup; +import org.springframework.cloud.openfeign.EnableFeignClients; /** * @auther yq @@ -12,6 +13,7 @@ import org.springframework.boot.context.metrics.buffering.BufferingApplicationSt */ @EnableDubbo @SpringBootApplication() +@EnableFeignClients public class BusinessApplication { public static void main(String[] args) { SpringApplication application = new SpringApplication(BusinessApplication.class); diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessTaskController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessTaskController.java index 0518986..841a2a8 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessTaskController.java +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessTaskController.java @@ -108,6 +108,12 @@ public class BusinessTaskController extends BaseController { } + @Log(title = "预约工单更新", businessType = BusinessType.UPDATE) + @PostMapping("/update/status") + public void updateTaskStatus(@RequestParam("waylineId") String waylineId,@RequestParam("status") String status, + @RequestParam("jobId")String jobId,@RequestParam("jobName") String jobName) { + businessTaskService.updateTaskStatus(waylineId,status,jobId,jobName); + } } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessTaskService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessTaskService.java index 2d93025..22d5cc0 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessTaskService.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessTaskService.java @@ -72,4 +72,5 @@ public interface IBusinessTaskService { BusinessTaskVo queryBusinessTask(String waylineId); + void updateTaskStatus(String waylineId, String status, String jobId, String jobName); } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessTaskServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessTaskServiceImpl.java index c53435e..894b93e 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessTaskServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessTaskServiceImpl.java @@ -8,6 +8,7 @@ import org.dromara.business.domain.bo.BusinessTaskBo; import org.dromara.business.domain.vo.BusinessTaskVo; import org.dromara.business.mapper.BusinessTaskMapper; import org.dromara.business.service.IBusinessTaskService; +import org.dromara.common.core.constant.BusinessConstants; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -156,4 +157,20 @@ public class BusinessTaskServiceImpl implements IBusinessTaskService { public BusinessTaskVo queryBusinessTask(String waylineId) { return baseMapper.queryBusinessTask(waylineId); } + + @Override + public void updateTaskStatus(String waylineId, String status, String jobId, String jobName) { + BusinessTaskVo businessTaskVo = this.queryBusinessTask(waylineId); + if(businessTaskVo != null){ + BusinessTask businessTask = new BusinessTask(); + businessTask.setId(businessTaskVo.getId()); + businessTask.setStatus(status); + if(BusinessConstants.TASK_STATUS_3.equals(status)){ + businessTask.setJobId(jobId); + businessTask.setJobName(jobName); + businessTask.setCompleteTime(new Date()); + } + this.update(businessTask); + } + } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/fegin/RemoteBusinessTaskFeign.java b/dk-modules/sample/src/main/java/org/dromara/sample/fegin/RemoteBusinessTaskFeign.java new file mode 100644 index 0000000..f06d5dd --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/fegin/RemoteBusinessTaskFeign.java @@ -0,0 +1,13 @@ +package org.dromara.sample.fegin; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@FeignClient(name = "business") +public interface RemoteBusinessTaskFeign { + + @PostMapping("/update/status") + void updateTaskStatus(@RequestParam("waylineId") String waylineId, @RequestParam("status") String status, + @RequestParam("jobId")String jobId, @RequestParam("jobName") String jobName); +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/MegaphoneController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/MegaphoneController.java index efe389f..08acb12 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/MegaphoneController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/MegaphoneController.java @@ -10,16 +10,17 @@ import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.business.api.RemoteBusinessTaskService; import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.sdk.cloudapi.wayline.WaylineMethodEnum; import org.dromara.common.sdk.common.HttpResultResponse; import org.dromara.common.sdk.common.PaginationData; import org.dromara.common.sdk.exception.CloudSDKErrorEnum; -import org.dromara.common.sdk.mqtt.CommonTopicRequest; -import org.dromara.common.sdk.mqtt.MegaphoneTopicRequest; -import org.dromara.common.sdk.mqtt.MqttGatewayPublish; -import org.dromara.common.sdk.mqtt.TopicConst; +import org.dromara.common.sdk.mqtt.*; import org.dromara.common.sdk.mqtt.property.PropertySetPublish; import org.dromara.common.sdk.mqtt.property.PropertySetReplyResultEnum; import org.dromara.common.sdk.mqtt.property.TopicPropertySetRequest; +import org.dromara.common.sdk.mqtt.services.ServicesPublish; +import org.dromara.common.sdk.mqtt.services.ServicesReplyReceiver; +import org.dromara.common.sdk.mqtt.services.TopicServicesRequest; import org.dromara.sample.manage.model.dto.*; import org.dromara.sample.manage.service.IDeviceService; import org.dromara.system.api.RemoteConfigService; @@ -29,6 +30,9 @@ import org.springframework.web.bind.annotation.*; import java.util.*; +import static org.dromara.common.sdk.mqtt.MqttGatewayPublish.DEFAULT_RETRY_COUNT; +import static org.dromara.common.sdk.mqtt.MqttGatewayPublish.DEFAULT_RETRY_TIMEOUT; + /** * @author sean.zhou * @version 0.1 @@ -44,6 +48,9 @@ public class MegaphoneController { @Resource private MqttGatewayPublish gatewayPublish; + @Resource + private ServicesPublish servicesPublish; + @Resource PropertySetPublish propertySetPublish; @@ -61,10 +68,16 @@ public class MegaphoneController { @RequestParam("gatewaySn") String gatewaySn, @RequestBody PlayStartDTO param ) { - String top = TOPIC+"gatewaySn"+"/services"; + String top = TOPIC+gatewaySn+"/services"; //发送mqtt - propertySetPublish.publishPlayText(top,param,"speaker_tts_play_start"); - return HttpResultResponse.success(); + CommonTopicResponse servicesReplyReceiverCommonTopicResponse = gatewayPublish.publishWithReply( + ServicesReplyReceiver.class, top, new TopicServicesRequest<>() + .setTid(UUID.randomUUID().toString()) + .setBid(null) + .setTimestamp(System.currentTimeMillis()) + .setMethod("speaker_tts_play_start") + .setData(param), DEFAULT_RETRY_COUNT, DEFAULT_RETRY_TIMEOUT); + return HttpResultResponse.success(servicesReplyReceiverCommonTopicResponse); } /** @@ -80,8 +93,14 @@ public class MegaphoneController { ) { String top = TOPIC+gatewaySn+"/services"; //发送mqtt - propertySetPublish.publishPlayText(top,param,"speaker_replay"); - return HttpResultResponse.success(); + CommonTopicResponse servicesReplyReceiverCommonTopicResponse = gatewayPublish.publishWithReply( + ServicesReplyReceiver.class, top, new TopicServicesRequest<>() + .setTid(UUID.randomUUID().toString()) + .setBid(null) + .setTimestamp(System.currentTimeMillis()) + .setMethod("speaker_replay") + .setData(param), DEFAULT_RETRY_COUNT, DEFAULT_RETRY_TIMEOUT); + return HttpResultResponse.success(servicesReplyReceiverCommonTopicResponse); } /** * 喊话器-暂停播放文档 @@ -96,8 +115,14 @@ public class MegaphoneController { ) { String top = TOPIC+gatewaySn+"/services"; //发送mqtt - propertySetPublish.publishPlayText(top,param,"speaker_play_stop"); - return HttpResultResponse.success(); + CommonTopicResponse servicesReplyReceiverCommonTopicResponse = gatewayPublish.publishWithReply( + ServicesReplyReceiver.class, top, new TopicServicesRequest<>() + .setTid(UUID.randomUUID().toString()) + .setBid(null) + .setTimestamp(System.currentTimeMillis()) + .setMethod("speaker_play_stop") + .setData(param), DEFAULT_RETRY_COUNT, DEFAULT_RETRY_TIMEOUT); + return HttpResultResponse.success(servicesReplyReceiverCommonTopicResponse); } /** @@ -113,8 +138,14 @@ public class MegaphoneController { ) { String top = TOPIC+gatewaySn+"/services"; //发送mqtt - propertySetPublish.publishPlayText(top,param,"speaker_play_mode_set"); - return HttpResultResponse.success(); + CommonTopicResponse servicesReplyReceiverCommonTopicResponse = gatewayPublish.publishWithReply( + ServicesReplyReceiver.class, top, new TopicServicesRequest<>() + .setTid(UUID.randomUUID().toString()) + .setBid(null) + .setTimestamp(System.currentTimeMillis()) + .setMethod("speaker_play_mode_set") + .setData(param), DEFAULT_RETRY_COUNT, DEFAULT_RETRY_TIMEOUT); + return HttpResultResponse.success(servicesReplyReceiverCommonTopicResponse); } @@ -127,20 +158,25 @@ public class MegaphoneController { */ @PostMapping("/{workspace_id}/widgetValueSet") @Operation(summary = "喊话器-设置音量。", description = "喊话器-设置音量。") - public int widgetValueSet(@PathVariable("workspace_id") String workspaceId, + public HttpResultResponse widgetValueSet(@PathVariable("workspace_id") String workspaceId, @RequestParam("gatewaySn") String gatewaySn, @RequestBody PlayVolumeDTO param ) { String top = TOPIC+gatewaySn+"/services"; //发送mqtt - PropertySetReplyResultEnum psdkWidgetValueSet = propertySetPublish.publishPlayText(top,param,"psdk_widget_value_set"); - return psdkWidgetValueSet.getResult(); + CommonTopicResponse servicesReplyReceiverCommonTopicResponse = gatewayPublish.publishWithReply( + ServicesReplyReceiver.class, top, new TopicServicesRequest<>() + .setTid(UUID.randomUUID().toString()) + .setBid(null) + .setTimestamp(System.currentTimeMillis()) + .setMethod("speaker_play_volume_set") + .setData(param), DEFAULT_RETRY_COUNT, DEFAULT_RETRY_TIMEOUT); + return HttpResultResponse.success(servicesReplyReceiverCommonTopicResponse); } - /** * 获取媒体流ip * Get the topology list of all online devices in one workspace.