[根目录](../CLAUDE.md) > **jsowell-common**

# jsowell-common 模块

通用工具模块，提供工具类、常量、异常、注解等基础组件。

---

## 变更记录 (Changelog)

### 2026-02-03 11:32:30
- 初始化模块文档
- 识别 60 个枚举类
- 统计 100+ 工具类和数据结构

---

## 模块职责

- **工具类**: 字符串、日期、文件、HTTP 等工具
- **常量定义**: 系统常量、RabbitMQ 常量
- **枚举类**: 订单状态、支付方式、设备状态等
- **注解定义**: 日志、权限、数据源等注解
- **基础实体**: BaseEntity、AjaxResult、R
- **协议数据**: 云快充协议、电动自行车协议数据结构
- **MQ 配置**: RabbitMQ 队列、交换机配置

---

## 入口与启动

本模块为基础工具模块，无独立启动入口。

---

## 对外接口

### 核心类

| 类 | 说明 |
|-----|------|
| `AjaxResult` | 统一返回结果 |
| `R` | 泛型返回结果 |
| `BaseEntity` | 基础实体类 |
| `BaseController` | 基础控制器 |
| `LoginUser` | 登录用户信息 |

### 注解

| 注解 | 说明 |
|------|------|
| `@Log` | 操作日志 |
| `@DataScope` | 数据权限 |
| `@DataSource` | 数据源切换 |
| `@RateLimiter` | 接口限流 |
| `@RepeatSubmit` | 防重复提交 |
| `@Anonymous` | 匿名访问 |
| `@CostTime` | 耗时统计 |

### 枚举类（60+）

**订单相关**:
- `OrderStatusEnum` - 订单状态
- `OrderPayStatusEnum` - 支付状态
- `OrderPayModeEnum` - 支付方式
- `OrderTypeEnum` - 订单类型

**支付相关**:
- `PayModeEnum` - 支付方式
- `PaymentInstitutionsEnum` - 支付机构
- `AdapayStatusEnum` - 汇付状态
- `AdapayPayChannelEnum` - 汇付渠道

**设备相关**:
- `PileStatusEnum` - 充电桩状态
- `PileConnectorStatusEnum` - 充电枪状态
- `StartModeEnum` - 启动方式

**第三方平台**:
- `ThirdPlatformTypeEnum` - 平台类型
- `ThirdPartyApiEnum` - API 类型
- `ThirdPartyReturnCodeEnum` - 返回码

---

## 关键依赖与配置

### RabbitMQ 配置

```java
// RabbitConfig.java - 主配置
// PointsRabbitConfig.java - 积分队列配置
// DirectRabbitConfig.java - 直连交换机配置
// TopicRabbitConfig.java - 主题交换机配置
```

### 常量定义

```java
// RabbitConstants.java
public class RabbitConstants {
    public static final String ORDER_QUEUE = "order.queue";
    public static final String POINTS_QUEUE = "points.queue";
    // ...
}
```

---

## 数据模型

### 云快充协议数据

| 类 | 说明 |
|-----|------|
| `YKCDataProtocol` | 协议数据 |
| `YKCBaseMessage` | 基础消息 |
| `LoginRequestData` | 登录数据 |
| `RealTimeMonitorData` | 实时监控数据 |
| `TransactionRecordsData` | 交易记录 |

### 设备到平台数据（0x01-0xF1）

位于 `com.jsowell.common.core.domain.ykc.device2platform/`

### 平台到设备数据（0x02-0x56）

位于 `com.jsowell.common.core.domain.ykc.platform2device/`

---

## 常见问题 (FAQ)

### Q: 如何添加新的枚举？
在 `com.jsowell.common.enums` 包下创建，参考现有枚举实现

### Q: 如何添加新的 RabbitMQ 队列？
在 `RabbitConfig` 或新建配置类中定义 Queue、Exchange、Binding

---

## 相关文件清单

```
jsowell-common/
├── src/main/java/com/jsowell/common/
│   ├── annotation/                # 注解定义
│   ├── config/                    # 配置类
│   │   └── mq/                   # RabbitMQ 配置
│   ├── constant/                  # 常量定义
│   ├── core/
│   │   ├── controller/           # BaseController
│   │   └── domain/               # 基础实体
│   │       ├── entity/           # 系统实体
│   │       ├── model/            # 登录模型
│   │       ├── ykc/              # 云快充协议
│   │       └── ebike/            # 电动自行车协议
│   ├── enums/                     # 枚举类 (60+)
│   │   ├── adapay/
│   │   ├── ebike/
│   │   ├── lianlian/
│   │   ├── parkplatform/
│   │   ├── sim/
│   │   ├── thirdparty/
│   │   ├── uniapp/
│   │   └── ykc/
│   ├── exception/                 # 异常类
│   ├── filter/                    # 过滤器
│   └── utils/                     # 工具类
└── pom.xml
```
