# 全部门店开单记录汇总导出接口
## 接口地址
```
GET /api/Extend/lqkdkdjlb/billing-record-summary-export-all-stores
```
## 接口说明
按照Excel格式导出全部门店的开单记录汇总,每个品项每个健康师一行。如果某个品项有多个健康师,会展开为多行数据。
## 请求参数
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| StartTime | DateTime | 是 | 开始时间(格式:yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss) |
| EndTime | DateTime | 是 | 结束时间(格式:yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss) |
| MemberId | string | 否 | 客户ID(会员ID),筛选指定客户 |
| ItemCategory | string | 否 | 品项分类,筛选指定分类 |
| ItemId | string | 否 | 品项ID,筛选指定品项 |
| HealthCoachId | string | 否 | 健康师ID,筛选指定健康师 |
## 请求示例
### 基础请求(仅时间范围)
```javascript
// Axios 示例
axios.get('/api/Extend/lqkdkdjlb/billing-record-summary-export-all-stores', {
params: {
StartTime: '2026-01-01',
EndTime: '2026-01-31'
},
headers: {
'Authorization': 'Bearer ' + token
},
responseType: 'blob' // 重要:设置为 blob 以接收文件
}).then(response => {
// 创建下载链接
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', '开单记录汇总.xls');
document.body.appendChild(link);
link.click();
link.remove();
});
```
### 完整请求(包含筛选条件)
```javascript
axios.get('/api/Extend/lqkdkdjlb/billing-record-summary-export-all-stores', {
params: {
StartTime: '2026-01-01',
EndTime: '2026-01-31',
MemberId: '123456789', // 可选
ItemCategory: '分类名称', // 可选
ItemId: '987654321', // 可选
HealthCoachId: '111222333' // 可选
},
headers: {
'Authorization': 'Bearer ' + token
},
responseType: 'blob'
}).then(response => {
// 处理文件下载
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', '开单记录汇总.xls');
document.body.appendChild(link);
link.click();
link.remove();
});
```
## 响应格式
### 成功响应(200)
```json
{
"code": 200,
"msg": "操作成功",
"data": {
"name": "开单记录汇总_2026-01-22_152816.xls",
"url": "/api/File/Download?encryption=..."
}
}
```
### 错误响应(400/500)
```json
{
"code": 400,
"msg": "开始时间和结束时间不能为空"
}
```
## Excel 列说明
导出的Excel文件包含以下列(按顺序):
1. **开单日期** - 开单记录的日期
2. **单据门店** - 开单门店的中文名称
3. **客户姓名** - 客户姓名
4. **客户电话** - 客户电话
5. **金三角** - 金三角信息
6. **客户类型** - 客户类型
7. **健康师** - 健康师姓名
8. **业绩金额** - 健康师业绩金额(格式:¥0.00)
9. **相关品项** - 品项名称
10. **分类** - 品项分类
11. **类型** - 品项类型(购买/体验/赠送等)
12. **单价** - 品项单价(格式:¥0.00)
13. **次数** - 项目次数
14. **品项金额** - 品项总金额(格式:¥0.00)
15. **已付金额** - 已付金额(格式:¥0.00)
16. **欠款金额** - 欠款金额(格式:¥0.00)
17. **总金额** - 总金额(格式:¥0.00)
18. **支付方式** - 支付方式
19. **合作机构** - 合作机构名称
20. **结算机构** - 结算机构名称
21. **活动名称** - 活动名称
22. **备注** - 备注信息
23. **开单时间** - 开单时间(格式:yyyy/MM/dd HH:mm:ss)
## 数据展开规则
- 如果一个开单记录有多个品项,每个品项一行
- 如果一个品项有多个健康师,每个健康师一行
- 如果一个品项没有健康师,健康师相关字段显示"无",业绩金额显示"¥0.00"
## 注意事项
1. **时间格式**:建议使用 `yyyy-MM-dd` 格式,系统会自动处理时间范围
2. **文件下载**:前端需要设置 `responseType: 'blob'` 来接收文件
3. **文件格式**:导出文件为 `.xls` 格式(Excel 97-2003)
4. **数据量**:如果数据量很大,导出可能需要较长时间,建议前端显示加载提示
5. **权限**:需要登录并携带有效的 Authorization token
## Vue 2 + Element UI 完整示例
```vue
导出全部门店开单记录汇总
```
## API 封装示例(api/billing.js)
```javascript
import request from '@/utils/request'
/**
* 导出全部门店开单记录汇总
* @param {Object} params 查询参数
* @param {string} params.StartTime 开始时间
* @param {string} params.EndTime 结束时间
* @param {string} [params.MemberId] 客户ID
* @param {string} [params.ItemCategory] 品项分类
* @param {string} [params.ItemId] 品项ID
* @param {string} [params.HealthCoachId] 健康师ID
* @returns {Promise}
*/
export function exportBillingRecordSummaryAllStores(params) {
return request({
url: '/api/Extend/lqkdkdjlb/billing-record-summary-export-all-stores',
method: 'get',
params: params
})
}
```