# 统计中心模块 (ruoyi-mall-statistics)

## 模块简介

`ruoyi-mall-statistics` 是商城系统的统计中心模块，提供交易分析、会员分析等数据统计功能。

## 功能特性

### 1. 交易分析 ✅

- ✅ 订单统计（总订单数、已支付订单数）
- ✅ 销售额统计（总销售额、已支付金额、退款金额）
- ✅ 今日统计（今日订单数、今日销售额）
- ✅ 商品销售排行（按销售金额排序）
- ✅ 交易趋势分析（按日期统计）

### 2. 会员分析 ⏳

- ⏳ 会员增长统计（需会员模块支持）
- ⏳ 会员消费统计（需会员模块支持）
- ⏳ 会员活跃度分析（需会员模块支持）

### 3. 商品分析 ⏳

- ⏳ 商品销售统计（可通过交易统计的商品排行实现）
- ⏳ 商品浏览统计（需商品模块支持浏览统计）
- ⏳ 商品转化率分析（需商品模块支持）

### 4. 营销分析 ⏳

- ⏳ 活动效果统计（需营销模块支持）
- ⏳ 优惠券使用统计（需优惠券模块支持）
- ⏳ 营销ROI分析（需营销模块支持）

## 数据库表

统计模块主要基于现有业务表进行数据分析和统计，可根据需要创建统计汇总表。

## 模块结构

```
org.dromara.mall.statistics
├── controller
│   ├── admin          // 管理端API
│   └── app            // 用户端API（可选）
├── domain
│   ├── bo             // 业务对象
│   └── vo             // 视图对象
├── mapper             // MyBatis Mapper
├── service            // 业务逻辑层
│   └── impl
├── enums              // 枚举类
└── config             // 配置类
```

## 依赖模块

- `ruoyi-mall-product` - 商品中心模块
- `ruoyi-mall-trade` - 交易中心模块
- `ruoyi-common-*` - 通用工具模块

## API接口

### 管理端接口

#### 统计数据 (`/mall/statistics`)

- `GET /mall/statistics/transaction` - 获取交易统计数据
  - 支持按日期范围查询（startDate, endDate）
  - 支持设置商品销售排行数量限制（limit，默认10）
  - 返回数据包括：总订单数、总销售额、已支付订单数、已支付金额、退款金额、今日统计、趋势数据、商品销售排行
  
- `GET /mall/statistics/member` - 获取会员统计数据
  - 支持按日期范围查询（startDate, endDate）
  - 返回数据包括：总会员数、今日新增会员数、活跃会员数、增长趋势、消费统计
  - ⚠️ 注意：会员统计功能需要会员模块支持，当前返回基础结构

## 待实现功能

- [x] 交易统计分析 ✅
  - [x] 订单统计 ✅
  - [x] 销售额统计 ✅
  - [x] 商品销售排行 ✅
  - [x] 交易趋势分析 ✅
- [ ] 会员统计分析（需会员模块支持）
- [ ] 商品统计分析（部分功能可通过交易统计实现）
- [ ] 营销效果分析（需营销模块支持）
- [ ] 数据报表导出

## 使用说明

### 交易统计

交易统计基于 `mall_order` 和 `mall_order_item` 表进行数据聚合分析：

1. **订单统计**：统计指定时间范围内的订单总数和总金额
2. **已支付统计**：统计已支付（pay_status=1）的订单数和金额
3. **退款统计**：统计已完成的退款金额（基于 `mall_after_sale` 表，status=5）
4. **今日统计**：当未指定日期范围时，自动计算今日的订单和销售额
5. **趋势数据**：按日期分组统计订单数和销售额
6. **商品销售排行**：按销售金额排序，支持限制返回数量

### 查询参数

- `startDate`: 开始日期（格式：yyyy-MM-dd），可选
- `endDate`: 结束日期（格式：yyyy-MM-dd），可选
- `limit`: 商品销售排行数量限制，默认10，可选

**注意**：如果不指定日期范围，统计的是全部数据；如果指定了日期范围，则只统计该范围内的数据。
