liujie
2026-05-12 560be817c1342d4da523760ba38433c4c0f52983
xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/webSocket/controller/WebSocketController.java
@@ -1,11 +1,9 @@
package com.xiaopeng.pushMessage.webSocket.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.xiaopeng.api.dto.pushMessage.SendMessageDTO;
import com.xiaopeng.api.vo.TaskVO;
import com.xiaopeng.api.vo.XpTaskVO;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.controller.BaseController;
import com.xiaopeng.pushMessage.webSocket.service.WebSocketUserService;
@@ -15,7 +13,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -34,15 +32,7 @@
    @Autowired
    private WebSocketUserService webSocketUserService;
    private ObjectMapper om;
    @PostConstruct
    void setupObjectMapper() {
        // 允许对象忽略json中不存在的属性
        om = new ObjectMapper();
        om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        om.registerModule(new JavaTimeModule());
    }
    @Autowired ObjectMapper om;
    // ==================== 基于XpAppUser的WebSocket接口 ====================
@@ -56,7 +46,7 @@
     * @return 操作结果
     */
    @ApiOperation(value = "发送订单状态")
    @PostMapping("/inner/websocket/order/sendStatus")
    @PostMapping("/logan/inner/websocket/order/sendStatus")
    public R<String> sendStatus(@RequestBody SendMessageDTO dto) {
        try {
            String message = dto.getMessage();
@@ -114,7 +104,7 @@
     * @return 操作结果
     */
    @ApiOperation(value = "发送车辆路线、时间")
    @PostMapping("/inner/websocket/order/sendRoute")
    @PostMapping("/logan/inner/websocket/order/sendRoute")
    public R<String> sendRoute(@RequestBody SendMessageDTO dto) {
        try {
            String message = dto.getMessage();
@@ -377,12 +367,15 @@
     * 运维工单app推送
     */
    @PostMapping("/inner/websocket/push/task")
    public R<?> pushTask(@RequestBody TaskVO vo) throws JsonProcessingException {
    public R<?> pushTask(@RequestBody XpTaskVO vo) throws JsonProcessingException {
        String handleUserId = vo.getHandleUserId();
        String msg = om.writeValueAsString(vo);
        webSocketUserService.sendMessageToUser(handleUserId, msg);
        Map<String, Object> msg = new HashMap<>();
        msg.put("type", "task");
        msg.put("data", vo);
        webSocketUserService.sendMessageToUser(handleUserId, om.writeValueAsString(msg));
        return R.ok();
    }
}