package admin.service.impl; import admin.model.SendSseModel; import admin.model.WebSocketModel; import admin.model.maxdb.MaxdbScreenConfig; import admin.model.maxdb.MaxdbZkhjConfig; import admin.model.maxdb.req.MaxdbReq; import admin.resp.ApiResponse; import admin.service.MaxkbOpenApiService; import admin.util.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.websocket.Session; /** * @author lj * @date 2025/2/24 11:11 */ @Slf4j @Service @RequiredArgsConstructor public class MaxkbOpenApiServiceImpl implements MaxkbOpenApiService { private final MaxdbZkhjConfig maxdbConfig; private final MaxdbScreenConfig maxdbScreenConfig; @Override public ApiResponse getMaxkbSessionId(String applicationId) { String data = HttpUtil.get(String.format(maxdbScreenConfig.getChatUrl(),applicationId),maxdbScreenConfig.getApiKey()); return JSONObject.parseObject(data, ApiResponse.class); } @Override public void chatCompletions( String message,String sessionId, String chatId, Session session,String userName) { MaxdbReq maxdbReq = new MaxdbReq(); maxdbReq.setMessage(message); // WebSocketModel webSocketModel = JSONObject.parseObject(message, WebSocketModel.class); HttpUtil.postCallBackStream(String.format(maxdbScreenConfig.getTalkUrl(),chatId), maxdbReq, maxdbScreenConfig.getApiKey(),session,sessionId,userName); } @Override public void talk( SendSseModel sendSseModel) { // if (message.contains("中科")){ // // }else if (message.contains("大屏")){ // // }else if (message.contains("分析")){ // // }else{ // } ApiResponse maxkbSessionId = getMaxkbSessionId(maxdbScreenConfig.getApplicationId()); chatCompletions(sendSseModel.getMessage(),sendSseModel.getSessionId(), String.valueOf(maxkbSessionId.getData()),sendSseModel.getSeesion(),sendSseModel.getUserName()); } }