项目名称: gep-suez (电动汽车平台 - 苏伊士充电桩管理系统)
项目描述: "Suez"项目是吉利汽车旗下的家用充电桩智能管理平台,旨在通过技术升级和智能化手段提升家用充电桩的使用效率和准确性,实现对充电桩的远程控制和管理。该系统帮助用户更好地管理电动汽车充电过程,缓解电网负荷,提高能源利用效率。
命名寓意: 取名自"苏伊士运河"(Suez Canal),象征连接、便捷与高效。
plaintext
gep-suez (父工程)
├── gep-suez-common # 公共模块 - 工具类、常量、枚举、通用模型
├── gep-suez-server # 服务端核心模块 - 业务逻辑、数据访问、集成层
├── gep-suez-api # API接口模块 - REST Controller层
└── gep-suez-starter # 启动模块 - Spring Boot应用入口、配置
API层 (gep-suez-api):
服务层 (gep-suez-server/service):
领域层 (gep-suez-server/domain):
基础设施层 (gep-suez-server/infrastructure):
集成层 (gep-suez-server/integration):
| 技术 | 版本 | 说明 |
|---|---|---|
| Spring Boot | 2.7.18 | 核心框架 |
| Spring Cloud | 2021.0.9 | 微服务框架 |
| Spring Cloud Alibaba | 2021.0.6.0 | 阿里微服务组件 |
| Java | 1.8 | JDK版本 |
| 组件 | 版本 | 用途 |
|---|---|---|
| Nacos | - | 服务注册发现 + 配置中心 |
| OpenFeign | 11.1 | 声明式HTTP客户端 |
| Spring Cloud LoadBalancer | - | 负载均衡 |
| Spring Cloud Bootstrap | 3.1.8 | 引导配置加载 |
| 技术 | 版本 | 说明 |
|---|---|---|
| MySQL | 8.3.0 | 关系型数据库 |
| MyBatis | 2.2.2 (starter) | ORM框架 |
| MyBatis Generator | 1.3.3 | 代码生成器 |
| Druid | 1.2.23 | 数据库连接池 + 监控 |
| MapStruct | 1.2.0.Final | 对象映射转换 |
| 技术 | 版本 | 说明 |
|---|---|---|
| Redis | Jedis 3.8.0 | 分布式缓存 |
| Caffeine | 2.7.0 | 本地缓存 |
| Spring Integration Redis | 5.5.17 | Redis集成 |
| 技术 | 版本 | 说明 |
|---|---|---|
| Kafka | spring-kafka 2.8.10 / kafka-clients 2.8.2 | 消息中间件 |
| 技术 | 版本 | 用途 |
|---|---|---|
| Zookeeper | 3.9.2 | 分布式协调 |
| Curator | 5.6.0 | Zookeeper客户端 |
| Netty | 4.1.27.Final | 网络通信 |
| Disruptor | 3.4.4 | 高性能队列 |
| 技术 | 版本 | 用途 |
|---|---|---|
| Aliyun OSS | 3.10.2 | 对象存储服务 |
| InfluxDB | 2.24 | 时序数据库(可能用于充电数据采集) |
| 库 | 版本 | 用途 |
|---|---|---|
| Lombok | 1.18.4 | 代码简化 |
| Guava | 32.1.2-jre | Google工具集 |
| FastJSON | 2.0.29 | JSON处理 |
| Apache Commons | collections4 4.4, lang3 3.12.0 | 通用工具 |
| Joda-Time | 2.13.0 | 日期时间处理 |
| HttpComponents | 4.5.14 | HTTP客户端 |
| AspectJ | 1.8.9 | AOP切面 |
| Hibernate Validator | 7.0.1.Final | 参数校验 |
| Protobuf | 3.21.9 | 序列化协议 |
| 组件 | 版本 |
|---|---|
| Logback | 1.2.13 |
| SLF4J | 1.7.36 |
| Log4j2 | 2.24.3 |
| 框架 | 版本 |
|---|---|
| JUnit | - |
| Hamcrest | 2.2 |
| DBUnit | 2.7.2 |
| H2 Database | 1.4.196 |
| JMockit | 1.49 |
| Embedded Redis | 0.7.3 |
| Curator Test | 5.6.0 |
Controller: EquipmentManageController, SeaEquipmentManageController
核心功能:
getMyEquipments)getMyEquipmentDetail)equipmentCheck)equipmentOta)关键实体:
EquipmentOwnerInfo: 设备所有者信息EquipmentVersion: 设备版本信息EquipmentCheckInfo: 设备检查信息EquipmentConfigInfo: 设备配置信息Controller: ChargeController, SeaChargeController
核心功能:
startCharge)stopCharge)getChargeStatus)getEquipmentChargeOrder)getEquipmentChargeOrderCalc)setBookCharge, getBookCharge)Handler处理:
NotificationStartChargeResultHandler: 启动充电结果处理NotificationStopChargeResultHandler: 停止充电结果处理NotificationChargingStatusHandler: 充电状态通知处理ChargeTimeConfigHandler: 充电时间配置处理Controller: EquipmentOwnerController, SeaEquipmentOwnerController
核心功能:
bindMyEquipment)cancelBindMyEquipment)shareMyEquipment)cancelShareMyEquipment)getMyEquipmentShares)关键实体:
EquipmentOwnerShareInfo: 设备分享信息EquipmentVinInfo: 设备VIN码绑定信息Controller: EquipCommandController, EquipFunctionController, SeaEquipmentOperateController
核心功能:
authEquipment, cancelAuthEquipment)Handler处理:
EquipAuthOpHandler: 鉴权操作EquipKeyCapOpHandler: 按键开盖操作EquipPacOpHandler: PnC操作EquipVinOpHandler: VIN码操作EquipCardOpHandler: 卡片操作EquipColorOpHandler: 颜色设置操作Controller: LoginController, UserController
策略模式实现:
TokenStrategy: 策略上下文TokenService: 策略接口JiliTokenServiceImpl: 吉利品牌Token服务JiheTokenServiceImpl: 几何品牌Token服务LingkeTokenServiceImpl: 领克品牌Token服务YinheTokenService: 银河品牌Token服务ZeekrUserService: 极氪用户服务支持的品牌:
Controller: FaqController, EquipFaqController
核心功能:
关键实体:
BusinessFaqInfo: 业务FAQ信息EquipmentFaq: 设备FAQController: MigrateController, EquipMigrationController
核心功能:
Controller: EquipmentOwnerTaskController, EquipmentOwnerAndSharerCacheTaskController, EquipmentOwnerSharerVinSyncTaskController
核心功能:
根据Mapper文件和实体类推断的主要表结构:
| 表名 | 说明 | 主要字段 |
|---|---|---|
equipment_owner_info | 设备所有者信息 | id, provider_no, equipment_id, equipment_name, user_id, user_name, bind_status, source_type_key, data_source |
equipment_owner_share_info | 设备分享信息 | id, equipment_id, owner_user_id, sharer_user_id, share_status |
equipment_vin_info | 设备VIN绑定信息 | id, equipment_id, vin, vin_type |
equipment_book_charge | 充电预约 | id, equipment_id, user_id, start_time, end_time, fully_charge, status |
equipment_version | 设备版本信息 | id, equipment_id, version_info, ota_status |
equipment_config_info | 设备配置信息 | id, equipment_id, config_type, config_value |
equipment_check_info | 设备检查信息 | id, equipment_id, check_result, check_time |
equipment_fault_info | 设备故障信息 | id, equipment_id, fault_code, fault_status |
equip_function | 设备功能配置 | id, equipment_id, function_id, function_status |
business_faq_info | 业务FAQ | id, source_type_key, scene_code, faq_id, title, content, status |
equipment_faq | 设备FAQ | id, equipment_id, faq_content |
消费的主题:
GEP_DEVICE4H_NOTIFY_CONNECTOR_STATUS: 连接器状态通知GEP_DEVICE4H_NOTIFY_CHARGING_STATUS: 充电状态通知GEP_DEVICE4H_NOTIFY_START_CHARGE_RESULT: 启动充电结果GEP_DEVICE4H_NOTIFY_STOP_CHARGE_RESULT: 停止充电结果GEP_DEVICE4H_NOTIFY_DEVICE_SHADOW: 设备影子通知GEP_DEVICE4H_NOTIFY_ORDINARY_EVENT_RESULT: 普通事件结果GEP_NOTIFY_EVENT_H: 通用事件通知(新集群)GEP_NOTIFY_EVENT: 通用事件通知(旧集群)TOPIC_EQUIPMENT_SYNC_H: 设备同步事件Listener实现:
NotificationConnectorStatusListenerNotificationChargingStatusListenerNotificationStartChargeResult4PushListenerNotificationStopChargeResult4PushListenerNotificationDeviceShadowListenerNotificationOrdinaryEventListenerGepCommonEventHListenerGepCommonEventListenerEquipmentSyncEventListener缓存服务: RedisCacheService, EquipmentCacheService
缓存内容:
EquipAuthenticationOpCacheModel)EquipCommandCacheModel)EquipOtaCacheModel)EquipStartChargeCacheModel)EquipVinOpCacheModel)EquipPncOpCacheModel)EquipKeyOnOpCacheModel)EquipBookChargeOpCacheModel)EquipCardOpCacheModel)EquipmentColorOpCacheModel)ChargeDataModel)Redis锁: RedisLock - 分布式锁实现
CaffeineConfigurationTokenStrategy + TokenService 实现多品牌Token获取策略FacadeService 统一对外提供服务接口EquipmentOwnerInfoRepository, EquipmentBookChargeRepositoryEquipmentOwnerInfoManager, EquipmentBookChargeManagerNotificationConnectorStatusHandler, EquipVinOpHandlersourceTypeKey 区分不同品牌@RefreshScope 支持动态刷新-Xms4g -Xmx4g # 堆内存4GB
-Xss512k # 线程栈512KB
-XX:MetaspaceSize=256m # 元空间初始256MB
-XX:MaxMetaspaceSize=512m # 元空间最大512MB
-XX:+UseConcMarkSweepGC # CMS垃圾收集器
-XX:CMSInitiatingOccupancyFraction=70 # CMS触发阈值70%
-XX:+HeapDumpOnOutOfMemoryError # OOM时生成堆转储
SELECT 'x'equip.info.cache.switch)SamplingService)GbopSignHeaderUtil)bootstrap.yaml: Nacos连接配置application.yaml: 应用配置application-local.yaml: 本地开发配置gep-suez.yaml, gep-suez-business.propertiesnewMqtt.switch: MQTT开关key.management.strategy: IoT设备密钥策略equipment_migration_switch: 设备迁移总开关equipment_force_migration_switch: 强制迁移开关equipment_migration_whitelist_config: 迁移白名单equip.info.cache.switch: 设备信息缓存开关sampling.suez.high_frequency_event.points: 高频事件采样点数GepDeviceClient: 设备服务调用GepNormandyClient: Normandy服务RcHChargeMgmtClient: 充电管理服务RcHChargerIntegrationClient: 充电器集成RcHChargerIntegrationEquipmentClient: 设备集成RcBaseDataClient: 基础数据服务GepOrderSuezClient: 订单服务GEP-SUEZ 是一个成熟的、企业级的家用充电桩管理平台,具有以下特点:
✅ 技术先进: 采用Spring Cloud微服务架构,支持多品牌、多租户 ✅ 架构清晰: DDD领域驱动设计,分层明确,职责清晰 ✅ 高性能: 多级缓存、消息队列异步处理、JVM优化 ✅ 可扩展: 策略模式支持新品牌快速接入,配置外部化 ✅ 可靠性: 分布式锁、消息重试、迁移白名单机制 ✅ 安全性: 多品牌认证、参数校验、数据脱敏
核心业务领域:
这是一个典型的IoT+车联网应用场景,展示了吉利在新能源汽车充电领域的技术实力。