2025-10-30 16:38:04 +08:00
|
|
|
package com.cdzy.operations.utils;
|
|
|
|
|
|
2025-11-17 16:00:56 +08:00
|
|
|
import cn.hutool.core.io.FileUtil;
|
2025-10-30 16:38:04 +08:00
|
|
|
import com.cdzy.common.ex.EbikeException;
|
2025-11-17 16:00:56 +08:00
|
|
|
import com.cdzy.common.utils.RemoteFileUtils;
|
2025-10-30 16:38:04 +08:00
|
|
|
import com.cdzy.operations.enums.CommandType;
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
|
|
|
2025-11-17 16:00:56 +08:00
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
2025-10-30 16:38:04 +08:00
|
|
|
/**
|
|
|
|
|
* @author attiya
|
|
|
|
|
* @since 2025-10-30
|
|
|
|
|
*/
|
|
|
|
|
public class CommandUtil {
|
|
|
|
|
private static final ObjectMapper mapper = new ObjectMapper();
|
|
|
|
|
|
2025-10-30 17:08:36 +08:00
|
|
|
private static final String prefix = "ecu/cmd/cdzybms/";
|
2025-10-30 16:38:04 +08:00
|
|
|
|
|
|
|
|
|
2025-11-17 16:00:56 +08:00
|
|
|
public static String guang_he_tong(String ecuSn, String taskId, String code,String url) throws IOException {
|
2025-10-30 16:38:04 +08:00
|
|
|
String topic = prefix + ecuSn;
|
|
|
|
|
ObjectNode jsonNode = mapper.createObjectNode();
|
|
|
|
|
jsonNode.put("topic", topic);
|
|
|
|
|
|
|
|
|
|
switch (code) {
|
|
|
|
|
case CommandType.FIND_BIKE:
|
2025-11-03 11:30:59 +08:00
|
|
|
String command_14 = "{\"c\":14,\"tid\":\"" + taskId + "\",\"param\":{\"volume\":50,\"idx\":5}}";
|
|
|
|
|
ObjectNode objectNode_14 = mapper.readValue(command_14, ObjectNode.class);
|
|
|
|
|
jsonNode.put("command", objectNode_14.toString());
|
2025-10-31 10:07:37 +08:00
|
|
|
break;
|
|
|
|
|
case CommandType.GPS:
|
2025-11-03 11:30:59 +08:00
|
|
|
String command_34 = "{\"c\":34,\"tid\":\"" + taskId + "\"}";
|
|
|
|
|
ObjectNode objectNode_34 = mapper.readValue(command_34, ObjectNode.class);
|
|
|
|
|
jsonNode.put("command", objectNode_34.toString());
|
2025-10-30 16:38:04 +08:00
|
|
|
break;
|
2025-10-31 10:23:00 +08:00
|
|
|
case CommandType.OPEN_BATTERY_LOCK:
|
2025-11-03 11:30:59 +08:00
|
|
|
String command_29 = "{\"c\":29,\"tid\":\"" + taskId + "\"}";
|
|
|
|
|
ObjectNode objectNode_29 = mapper.readValue(command_29, ObjectNode.class);
|
|
|
|
|
jsonNode.put("command", objectNode_29.toString());
|
2025-10-31 10:23:00 +08:00
|
|
|
break;
|
2025-11-03 11:30:59 +08:00
|
|
|
case CommandType.CLOSE_BATTERY_LOCK:
|
|
|
|
|
String command_94 = "{\"c\":94,\"tid\":\"" + taskId + "\"}";
|
|
|
|
|
ObjectNode objectNode_94 = mapper.readValue(command_94, ObjectNode.class);
|
|
|
|
|
jsonNode.put("command", objectNode_94.toString());
|
|
|
|
|
break;
|
|
|
|
|
case CommandType.UNLOCK:
|
|
|
|
|
String command_33 = "{\"c\":33,\"tid\":\"" + taskId + "\",\"param\":{\"acc\":1,\"idx\":14,\"stamp\":" + System.currentTimeMillis() + "}}";
|
|
|
|
|
ObjectNode objectNode_33 = mapper.readValue(command_33, ObjectNode.class);
|
|
|
|
|
jsonNode.put("command", objectNode_33.toString());
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CommandType.LOCK:
|
|
|
|
|
String command_4 = "{\"c\":4,\"tid\":\""+taskId+"\",\"param\":{\"defend\":1,\"idx\":14,\"isTBeacon\":0}}";
|
|
|
|
|
ObjectNode objectNode_4 = mapper.readValue(command_4, ObjectNode.class);
|
|
|
|
|
jsonNode.put("command", objectNode_4.toString());
|
|
|
|
|
break;
|
|
|
|
|
case CommandType.OPEN_HELMET:
|
|
|
|
|
String command_89 = "{\"tid\":\""+taskId+"\",\"c\":89,\"param\":{\"opt\":0}}";
|
|
|
|
|
ObjectNode objectNode_89 = mapper.readValue(command_89, ObjectNode.class);
|
|
|
|
|
jsonNode.put("command", objectNode_89.toString());
|
|
|
|
|
break;
|
2025-11-05 09:45:29 +08:00
|
|
|
case CommandType.POWER_OFF:
|
|
|
|
|
String command_100 = "{\"c\":100,\"tid\":\""+taskId+"\",\"param\":{\"Dsg\":0}}";
|
|
|
|
|
ObjectNode objectNode_100 = mapper.readValue(command_100, ObjectNode.class);
|
|
|
|
|
jsonNode.put("command", objectNode_100.toString());
|
|
|
|
|
break;
|
2025-11-17 16:00:56 +08:00
|
|
|
case CommandType.UPGRADE:
|
|
|
|
|
File tempFile = RemoteFileUtils.getRemoteFile(url);
|
|
|
|
|
long size = FileUtil.size(tempFile);
|
|
|
|
|
String command_35 = "{\"tid\":\""+taskId+"\",\"c\":35,\"param\":{\"len\":"+size+",\"url\":\""+url+"\"}}";
|
|
|
|
|
ObjectNode objectNode_35 = mapper.readValue(command_35, ObjectNode.class);
|
|
|
|
|
jsonNode.put("command", objectNode_35.toString());
|
|
|
|
|
break;
|
2025-11-03 11:30:59 +08:00
|
|
|
default:
|
2025-10-30 16:38:04 +08:00
|
|
|
throw new EbikeException("该命令暂未接入");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return jsonNode.toString();
|
|
|
|
|
}
|
|
|
|
|
}
|