mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-19 18:45:03 +08:00
add 添加向第三方服务发送mq的Controller
This commit is contained in:
161
jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/ThirdPartyMQController.java
vendored
Normal file
161
jsowell-admin/src/main/java/com/jsowell/web/controller/thirdparty/ThirdPartyMQController.java
vendored
Normal file
@@ -0,0 +1,161 @@
|
||||
package com.jsowell.web.controller.thirdparty;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.jsowell.common.core.controller.BaseController;
|
||||
import com.jsowell.common.core.domain.AjaxResult;
|
||||
import com.jsowell.common.constant.mq.ThirdPartyRabbitConstants;
|
||||
import com.jsowell.common.dto.JCTRealTimeMonitorData;
|
||||
import com.jsowell.common.vo.thirdParty.JCTOrderBasicInfo;
|
||||
import com.jsowell.pile.domain.OrderBasicInfo;
|
||||
import com.jsowell.pile.service.OrderBasicInfoService;
|
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 第三方平台MQ消息发送Controller
|
||||
* 用于发送MQ消息让thirdparty执行业务
|
||||
*
|
||||
* @author jsowell
|
||||
* @date 2024
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/thirdparty/mq")
|
||||
public class ThirdPartyMQController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private RabbitTemplate rabbitTemplate;
|
||||
|
||||
@Autowired
|
||||
private OrderBasicInfoService orderBasicInfoService;
|
||||
|
||||
// TODO 需优化
|
||||
/**
|
||||
* 发送实时监测数据MQ消息
|
||||
*
|
||||
* @param data 实时监测数据
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PostMapping("/sendRealtimeData")
|
||||
public AjaxResult sendRealtimeData(@RequestBody JCTRealTimeMonitorData data) {
|
||||
try {
|
||||
if (data == null) {
|
||||
return AjaxResult.error("实时监测数据不能为空");
|
||||
}
|
||||
logger.info("发送实时监测数据MQ消息: {}", JSON.toJSONString(data));
|
||||
rabbitTemplate.convertAndSend(
|
||||
ThirdPartyRabbitConstants.WCC_THIRDPARTY_NAME,
|
||||
ThirdPartyRabbitConstants.ROUTING_KEY_REALTIME_DATA_PUSH,
|
||||
data
|
||||
);
|
||||
return AjaxResult.success("实时监测数据MQ消息发送成功");
|
||||
} catch (Exception e) {
|
||||
logger.error("发送实时监测数据MQ消息失败", e);
|
||||
return AjaxResult.error("发送实时监测数据MQ消息失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送告警数据MQ消息
|
||||
*
|
||||
* @param data 告警数据(实时监测数据格式)
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PostMapping("/sendAlarmData")
|
||||
public AjaxResult sendAlarmData(@RequestBody JCTRealTimeMonitorData data) {
|
||||
try {
|
||||
if (data == null) {
|
||||
return AjaxResult.error("告警数据不能为空");
|
||||
}
|
||||
logger.info("发送告警数据MQ消息: {}", JSON.toJSONString(data));
|
||||
// 注意:告警消息发送的是realTimeMonitorData.getPutGunType(),这里发送整个对象
|
||||
// 如果需要只发送putGunType,可以单独处理
|
||||
rabbitTemplate.convertAndSend(
|
||||
ThirdPartyRabbitConstants.WCC_THIRDPARTY_NAME,
|
||||
ThirdPartyRabbitConstants.ROUTING_KEY_ALARM_PUSH,
|
||||
data
|
||||
);
|
||||
return AjaxResult.success("告警数据MQ消息发送成功");
|
||||
} catch (Exception e) {
|
||||
logger.error("发送告警数据MQ消息失败", e);
|
||||
return AjaxResult.error("发送告警数据MQ消息失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送启动充电结果MQ消息
|
||||
*
|
||||
* @param orderBasicInfo 订单基本信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PostMapping("/sendChargeResult")
|
||||
public AjaxResult sendChargeResult(@RequestBody JCTOrderBasicInfo orderBasicInfo) {
|
||||
try {
|
||||
if (orderBasicInfo == null) {
|
||||
return AjaxResult.error("订单基本信息不能为空");
|
||||
}
|
||||
logger.info("发送启动充电结果MQ消息: {}", JSON.toJSONString(orderBasicInfo));
|
||||
rabbitTemplate.convertAndSend(
|
||||
ThirdPartyRabbitConstants.WCC_THIRDPARTY_NAME,
|
||||
ThirdPartyRabbitConstants.ROUTING_KEY_CHARGE_RESULT_PUSH,
|
||||
orderBasicInfo
|
||||
);
|
||||
return AjaxResult.success("启动充电结果MQ消息发送成功");
|
||||
} catch (Exception e) {
|
||||
logger.error("发送启动充电结果MQ消息失败", e);
|
||||
return AjaxResult.error("发送启动充电结果MQ消息失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送启动充电失败MQ消息
|
||||
*
|
||||
* @param orderBasicInfo 订单基本信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PostMapping("/sendStartupChargingFailed")
|
||||
public AjaxResult sendStartupChargingFailed(@RequestBody JCTOrderBasicInfo orderBasicInfo) {
|
||||
try {
|
||||
if (orderBasicInfo == null) {
|
||||
return AjaxResult.error("订单基本信息不能为空");
|
||||
}
|
||||
logger.info("发送启动充电失败MQ消息: {}", JSON.toJSONString(orderBasicInfo));
|
||||
rabbitTemplate.convertAndSend(
|
||||
ThirdPartyRabbitConstants.WCC_THIRDPARTY_NAME,
|
||||
ThirdPartyRabbitConstants.ROUTING_KEY_STARTUP_CHARGING_FAILED_PUSH,
|
||||
orderBasicInfo
|
||||
);
|
||||
return AjaxResult.success("启动充电失败MQ消息发送成功");
|
||||
} catch (Exception e) {
|
||||
logger.error("发送启动充电失败MQ消息失败", e);
|
||||
return AjaxResult.error("发送启动充电失败MQ消息失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送充电订单MQ消息
|
||||
*
|
||||
*
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PostMapping("/sendChargeOrder/{orderCode}}")
|
||||
public AjaxResult sendChargeOrder(@PathVariable("orderCode") String orderCode) {
|
||||
try {
|
||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
|
||||
if (orderBasicInfo == null) {
|
||||
return AjaxResult.error("订单基本信息不能为空");
|
||||
}
|
||||
logger.info("发送充电订单MQ消息: {}", JSON.toJSONString(orderBasicInfo));
|
||||
rabbitTemplate.convertAndSend(
|
||||
ThirdPartyRabbitConstants.WCC_THIRDPARTY_NAME,
|
||||
ThirdPartyRabbitConstants.ROUTING_KEY_CHARGE_ORDER_PUSH,
|
||||
orderBasicInfo
|
||||
);
|
||||
return AjaxResult.success("充电订单MQ消息发送成功");
|
||||
} catch (Exception e) {
|
||||
logger.error("发送充电订单MQ消息失败", e);
|
||||
return AjaxResult.error("发送充电订单MQ消息失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user