Files
2026-02-03 14:20:30 +08:00

185 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[根目录](../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 定义
```