This commit is contained in:
andy 2025-04-08 11:46:39 +08:00
parent f67dd4d40a
commit 3692245745
9 changed files with 129 additions and 6 deletions

0
.idea/.gitignore vendored Normal file
View File

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4" />

36
.idea/compiler.xml Normal file
View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="common-mybatis" />
<module name="authorization-server" />
<module name="resource-server" />
<module name="gateway-server" />
<module name="admin-server" />
<module name="common-web" />
<module name="wechat-server" />
<module name="cloud-manage-server" />
<module name="common-redis" />
<module name="common-core" />
</profile>
</annotationProcessing>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="admin-server" options="-parameters" />
<module name="authorization-server" options="-parameters" />
<module name="cloud-manage-server" options="-parameters" />
<module name="common-core" options="-parameters" />
<module name="common-mybatis" options="-parameters" />
<module name="common-redis" options="-parameters" />
<module name="common-web" options="-parameters" />
<module name="gateway-server" options="-parameters" />
<module name="resource-server" options="-parameters" />
<module name="wechat-server" options="-parameters" />
</option>
</component>
</project>

19
.idea/encodings.xml Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/admin-server/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/authorization-server/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/base-commons/common-core/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/base-commons/common-mybatis/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/base-commons/common-redis/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/base-commons/common-web/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/base-commons/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/base-commons/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/cloud-manage-server/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/gateway-server/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/resource-server/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/wechat-server/src/main/java" charset="UTF-8" />
</component>
</project>

35
.idea/jarRepositories.xml Normal file
View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="central" />
<option name="url" value="https://maven.aliyun.com/nexus/content/groups/public" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="rdc-releases" />
<option name="name" value="rdc-releases" />
<option name="url" value="https://packages.aliyun.com/maven/repository/2038145-release-RKrdrG/" />
</remote-repository>
<remote-repository>
<option name="id" value="rdc-snapshots" />
<option name="name" value="rdc-snapshots" />
<option name="url" value="https://packages.aliyun.com/maven/repository/2038145-snapshot-hRO31q/" />
</remote-repository>
<remote-repository>
<option name="id" value="snapshots" />
<option name="name" value="snapshots" />
<option name="url" value="https://maven.aliyun.com/nexus/content/groups/public" />
</remote-repository>
</component>
</project>

12
.idea/misc.xml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_14" project-jdk-name="17 (2)" project-jdk-type="JavaSDK" />
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@ -30,7 +30,8 @@ public enum RequestFunctionTypesEnum {
FUN_PREORDER("preOrder", "preOrderResponse", "站端预约订单"),
FUN_ORDERBYPLATENUM("orderByPlateNum", "orderByPlateNumResponse", "站端用车牌号查询订单"),
FUN_CANCELORDER("cancelOrder", "cancelOrderResponse", "站端取消订单"),
FUN_STARTSWAP("BatterySwapReq", "BatterySwapResponse", "站端回复开始换电");
FUN_STARTSWAP("BatterySwapReq", "BatterySwapResponse", "站端回复开始换电"),
FUN_STRATEGY_INFO("strategyInfo", "strategyInfoResponse", "站端查询充电策略");
String function;
String reFunction;

View File

@ -1,12 +1,10 @@
package com.evotech.hd.cloud.mqtt.message.handle;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Stream;
import cn.hutool.core.util.StrUtil;
import com.evotech.hd.cloud.mqtt.message.processor.MqttMessageRequestExchangeProcessor;
import com.evotech.hd.common.core.entity.cloud.request.BatterySwapResponse;
import com.evotech.hd.cloud.mqtt.message.dto.newer.req.battery.*;
import com.evotech.hd.cloud.mqtt.message.dto.newer.req.order.*;
@ -16,8 +14,11 @@ import com.evotech.hd.common.core.entity.wechat.WechatUser;
import com.evotech.hd.common.redis.utils.RedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -69,6 +70,9 @@ public class RequestMessageService {
private OrderSwapBatteryService orderSwapBatteryService;
@Resource
private RedisUtil redisUtil;
@Autowired
private ApplicationContext applicationContext;
@Async("taskExecutor")
public void request(MessageTopic topic, MqttMessageHeader header, JSONObject dataBody) {
switch (Objects.requireNonNull(RequestFunctionTypesEnum.getFunctionType(header.getFunction()))) {
@ -96,8 +100,16 @@ public class RequestMessageService {
BatterySwapResponse battery = JSONUtil.toBean(dataBody, BatterySwapResponse.class);
handlStartSwap(topic,header,battery);
break;
default:
Map<String, MqttMessageRequestExchangeProcessor> mqttMessageRequestExchangeProcessorMap = applicationContext.getBeansOfType(MqttMessageRequestExchangeProcessor.class);
if(CollectionUtils.isEmpty(mqttMessageRequestExchangeProcessorMap)){
log.error("mqttRequestExchangeProcessorMap is empty, 没有找到当前的请求信息, 请求接口{}, 请求参数{}", JSONUtil.toJsonStr(header), JSONUtil.toJsonStr(dataBody));
}
for (MqttMessageRequestExchangeProcessor processor : mqttMessageRequestExchangeProcessorMap.values()) {
if(processor.accept(header.getFunction())){
processor.exchange(topic, header, dataBody);
}
}
break;
}