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

# jsowell-pile 模块

充电桩业务核心模块，包含订单、会员、计费、支付等核心业务逻辑。

---

## 变更记录 (Changelog)

### 2026-02-03 11:32:30
- 初始化模块文档
- 识别 80 个 Service 实现类
- 统计 60+ Mapper XML 文件

---

## 模块职责

- **订单管理**: 充电订单创建、结算、分账、退款
- **会员服务**: 会员注册、钱包管理、积分系统
- **计费管理**: 计费模板、时段电价、服务费
- **支付集成**: 微信支付、支付宝、汇付支付（Adapay）
- **设备管理**: 充电桩、充电枪、站点信息
- **商户管理**: 商户信息、分账配置、清算账单

---

## 入口与启动

本模块为业务模块，无独立启动入口，由 `jsowell-admin` 模块引用。

### 核心 Service

| Service | 说明 |
|---------|------|
| `OrderBasicInfoServiceImpl` | 订单核心服务（创建、结算、分账） |
| `MemberBasicInfoServiceImpl` | 会员服务 |
| `MemberWalletInfoServiceImpl` | 钱包服务 |
| `MemberPointsInfoServiceImpl` | 积分服务 |
| `PileStationInfoServiceImpl` | 站点服务 |
| `PileBasicInfoServiceImpl` | 充电桩服务 |
| `PileConnectorInfoServiceImpl` | 充电枪服务 |
| `PileBillingTemplateServiceImpl` | 计费模板服务 |
| `WechatPayServiceImpl` | 微信支付服务 |
| `AdapayService` | 汇付支付服务 |

---

## 对外接口

### RPC 服务

```java
// WccServiceImpl.java - Dubbo RPC 服务
@DubboService
public class WccServiceImpl implements WccService {
    // 提供给其他服务调用的接口
}
```

### RabbitMQ 消费者

```java
// OrderRabbitListener.java
@RabbitListener(queues = RabbitConstants.ORDER_QUEUE)
public void handleOrderMessage(Message message) {
    // 处理订单消息
}
```

---

## 关键依赖与配置

### Maven 依赖

```xml
<dependencies>
    <dependency>
        <groupId>com.jsowell</groupId>
        <artifactId>jsowell-framework</artifactId>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.0</version>
    </dependency>
    <dependency>
        <groupId>com.huifu.adapay</groupId>
        <artifactId>adapay-java-sdk</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alipay.sdk</groupId>
        <artifactId>alipay-sdk-java</artifactId>
    </dependency>
</dependencies>
```

---

## 数据模型

### 核心实体

| 实体类 | 数据库表 | 说明 |
|--------|---------|------|
| `OrderBasicInfo` | `order_basic_info` | 充电订单 |
| `OrderPayRecord` | `order_pay_record` | 支付记录 |
| `OrderSplitRecord` | `order_split_record` | 分账记录 |
| `MemberBasicInfo` | `member_basic_info` | 会员信息 |
| `MemberWalletInfo` | `member_wallet_info` | 会员钱包 |
| `MemberPointsInfo` | `member_points_info` | 会员积分 |
| `PileStationInfo` | `pile_station_info` | 充电站 |
| `PileBasicInfo` | `pile_basic_info` | 充电桩 |
| `PileConnectorInfo` | `pile_connector_info` | 充电枪 |
| `PileBillingTemplate` | `pile_billing_template` | 计费模板 |
| `PileMerchantInfo` | `pile_merchant_info` | 商户信息 |
| `ClearingBillInfo` | `clearing_bill_info` | 清算账单 |

### Mapper XML 文件

位置：`src/main/resources/mapper/pile/`

主要文件：
- `OrderBasicInfoMapper.xml` (3620 行)
- `PileMerchantInfoMapper.xml` (1304 行)
- `PersonalChargingRecordMapper.xml` (1413 行)
- `OrderDetailMapper.xml` (1306 行)
- `OrderPileOccupyMapper.xml` (1043 行)

---

## 测试与质量

### 单元测试

测试位于 `jsowell-admin/src/test/java/`，涉及本模块的测试：
- `OrderServiceWhitelistCompletionTest`
- `WhitelistOrderCompletionDefaultsTest`

---

## 常见问题 (FAQ)

### Q: 订单分账失败如何处理？
检查 `OrderBasicInfoServiceImpl.realTimeOrderSplit()` 方法，查看分账配置和汇付账户状态

### Q: 积分发放延迟？
积分通过 RabbitMQ 异步发放，检查 `PointsRabbitConfig` 配置和消息队列状态

### Q: 支付回调未收到？
检查支付平台回调地址配置，查看 `WxpayCallbackRecord` 或 `AdapayCallbackRecord` 表

---

## 相关文件清单

```
jsowell-pile/
├── src/main/java/com/jsowell/
│   ├── adapay/                    # 汇付支付
│   │   ├── config/               # 支付配置
│   │   ├── dto/                  # 数据传输对象
│   │   ├── service/              # 支付服务
│   │   └── vo/                   # 视图对象
│   ├── alipay/                   # 支付宝
│   ├── wxpay/                    # 微信支付
│   ├── mq/                       # RabbitMQ 消费者
│   ├── pile/
│   │   ├── domain/               # 实体类
│   │   ├── dto/                  # DTO
│   │   ├── mapper/               # Mapper 接口
│   │   ├── service/              # Service 接口
│   │   │   └── impl/            # Service 实现
│   │   ├── vo/                   # VO
│   │   ├── jcpp/                 # JCPP 协议
│   │   ├── rpc/                  # RPC 服务
│   │   └── transaction/          # 事务服务
│   └── thirdparty/               # 第三方服务
├── src/main/resources/
│   └── mapper/pile/              # Mapper XML (60+ 文件)
└── src/main/proto/               # Protobuf 定义
```
