Files
integral-shop/backend/docs/商品寄卖服务系统管理后台接口实现说明.md
2026-03-08 18:35:11 +08:00

521 lines
14 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.
# 商品寄卖服务系统管理后台接口实现说明
## 实现概述
本文档说明了在`crmeb-admin`模块中完成的商品寄卖服务系统管理后台API接口的实现情况。
**实现时间**2025-11-14
**实现模块**crmeb-admin
**API路径前缀**`/app/admin`
---
## 一、已创建文件清单
### 1.1 Request类请求对象
位置:`crmeb-common/src/main/java/com/zbkj/common/request/`
| 文件名 | 说明 | 用途 |
|--------|------|------|
| WaMerchandiseSearchRequest.java | 寄售商品查询请求 | 寄售商品列表查询 |
| WaMerchandiseUpdateRequest.java | 寄售商品更新请求 | 更新寄售商品信息 |
| WaOrderSearchRequest.java | 订单查询请求 | 订单列表查询 |
| WaOrderUpdateRequest.java | 订单更新请求 | 更新订单信息 |
| WaWithdrawSearchRequest.java | 提现查询请求 | 提现列表查询 |
| WaWithdrawAuditRequest.java | 提现审核请求 | 审核提现申请 |
| WaFinanceLogSearchRequest.java | 财务日志查询请求 | 财务日志查询 |
### 1.2 Response类响应对象
位置:`crmeb-common/src/main/java/com/zbkj/common/response/`
| 文件名 | 说明 | 用途 |
|--------|------|------|
| WaMerchandiseResponse.java | 寄售商品响应 | 返回寄售商品信息 |
| WaOrderResponse.java | 订单响应 | 返回订单信息 |
| WaWithdrawResponse.java | 提现响应 | 返回提现信息 |
| WaFinanceLogResponse.java | 财务日志响应 | 返回财务日志信息 |
### 1.3 Service接口
位置:`crmeb-service/src/main/java/com/zbkj/service/service/`
| 文件名 | 说明 | 方法数 |
|--------|------|--------|
| WaMerchandiseService.java | 寄售商品服务接口 | 3个 |
| WaOrderAdminService.java | 订单管理服务接口 | 3个 |
| WaWithdrawService.java | 提现服务接口 | 3个 |
| WaFinanceLogService.java | 财务日志服务接口 | 3个 |
### 1.4 Service实现类
位置:`crmeb-service/src/main/java/com/zbkj/service/service/impl/`
| 文件名 | 说明 |
|--------|------|
| WaMerchandiseServiceImpl.java | 寄售商品服务实现 |
| WaOrderAdminServiceImpl.java | 订单管理服务实现 |
| WaWithdrawServiceImpl.java | 提现服务实现 |
| WaFinanceLogServiceImpl.java | 财务日志服务实现 |
### 1.5 Controller类控制器
位置:`crmeb-admin/src/main/java/com/zbkj/admin/controller/`
| 文件名 | 说明 | 路由前缀 | 接口数 |
|--------|------|----------|--------|
| WaMerchandiseController.java | 寄售商品管理控制器 | /app/admin/merchandise | 2个 |
| WaOrderAdminController.java | 订单管理控制器 | /app/admin/order | 2个 |
| WaWithdrawController.java | 提现管理控制器 | /app/admin/withdraw | 2个 |
| WaFinanceLogController.java | 财务日志管理控制器 | /app/admin/*-log | 3个 |
---
## 二、API接口详细列表
### 2.1 寄售商品管理接口2个
| 接口 | 路径 | 方法 | 说明 | 权限 |
|------|------|------|------|------|
| 寄售商品查询 | /app/admin/merchandise/select | GET | 查询寄售商品(列表/详情) | admin:merchandise:select |
| 更新寄售商品 | /app/admin/merchandise/update | POST | 更新寄售商品信息(审核、上下架) | admin:merchandise:update |
**查询条件支持**
- 商品ID精确查询传入id参数时返回详情
- 卖家用户ID
- 商品标题(模糊查询)
- 状态0=已售1=未售)
- 是否显示0=隐藏1=显示)
- 时间范围查询
**说明**:列表和详情共用同一个`/select`接口,通过是否传入`id`参数区分。
### 2.2 订单管理接口2个
| 接口 | 路径 | 方法 | 说明 | 权限 |
|------|------|------|------|------|
| 订单查询 | /app/admin/order/select | GET | 查询订单(列表/详情) | admin:order:select |
| 更新订单 | /app/admin/order/update | POST | 更新订单状态 | admin:order:update |
**查询条件支持**
- 订单ID精确查询传入id参数时返回详情
- 订单号(模糊查询)
- 卖家ID
- 买家ID
- 订单状态0=待付款1=已支付2=已完成)
- 是否转拍0=否1=是)
- 是否取消0=否1=是)
- 是否显示0=隐藏1=显示)
- 购买时间范围
- 确认时间范围
**说明**:列表和详情共用同一个`/select`接口,通过是否传入`id`参数区分。
### 2.3 提现管理接口2个
| 接口 | 路径 | 方法 | 说明 | 权限 |
|------|------|------|------|------|
| 提现查询 | /app/admin/withdraw/select | GET | 查询提现申请(列表/详情) | admin:withdraw:select |
| 审核提现 | /app/admin/withdraw/update | POST | 审核提现申请(通过/驳回) | admin:withdraw:update |
**查询条件支持**
- 提现记录ID精确查询传入id参数时返回详情
- 提现编号(模糊查询)
- 用户ID
- 提现类型2=优惠券4=推广奖金)
- 账号类型1=银行卡2=支付宝)
- 状态0=待审核1=通过2=驳回)
- 申请时间范围
- 处理时间范围
**说明**:列表和详情共用同一个`/select`接口,通过是否传入`id`参数区分。
**审核功能**
- 驳回时自动返还金额到用户对应账户
- 记录审核备注
### 2.4 财务日志管理接口3个
| 接口 | 路径 | 方法 | 说明 | 权限 |
|------|------|------|------|------|
| 优惠券日志查询 | /app/admin/coupon-log/select | GET | 查询优惠券变动日志 | admin:coupon-log:select |
| 个人奖金日志查询 | /app/admin/selfbonus-log/select | GET | 查询个人奖金变动日志 | admin:selfbonus-log:select |
| 推广奖金日志查询 | /app/admin/sharebonus-log/select | GET | 查询推广奖金变动日志 | admin:sharebonus-log:select |
**查询条件支持**
- 用户ID
- 类型1=收入2=支出3=提现驳回)
- 备注内容(模糊查询)
- 时间范围查询
---
## 三、核心业务逻辑说明
### 3.1 寄售商品管理
**业务流程**
1. 用户在前端提交寄售商品申请
2. 管理员在后台查看寄售商品列表
3. 管理员审核商品(设置`is_show=1`显示,或`is_show=0`隐藏)
4. 审核通过后商品上架展示
5. 管理员可随时上下架商品
**关键字段**
- `is_show`: 是否显示0=隐藏1=显示)
- `status`: 状态0=已售1=未售)
- `price`: 寄售价格
### 3.2 订单管理
**业务流程**
1. 买家下单抢购商品
2. 买家支付订单
3. 卖家发货
4. 买家确认收货
5. 订单完成
**管理功能**
- 查看所有订单(自营+寄售)
- 查看订单详情
- 修改订单状态
- 隐藏/显示订单
### 3.3 提现审核
**审核流程**
1. 用户提交提现申请(系统自动扣除相应账户余额)
2. 管理员审核提现申请
3. 审核通过标记状态为1资金打款到用户账户
4. 审核驳回标记状态为2系统自动返还金额到用户对应账户
**驳回逻辑**
- 提现类型为2优惠券返还到`coupon`账户
- 提现类型为4推广奖金返还到`share_bonus`账户
- 记录财务日志type=3提现驳回
### 3.4 财务日志查询
**日志类型**
- **优惠券日志**wa_coupon_log记录优惠券的发放、使用、退回
- **个人奖金日志**wa_selfbonus_log记录个人交易奖励
- **推广奖金日志**wa_sharebonus_log记录推广返佣
**日志字段**
- `type`: 1=收入2=支出3=提现驳回
- `money`: 变更金额
- `before`: 变更前余额
- `after`: 变更后余额
- `memo`: 备注说明
---
## 四、技术实现说明
### 4.1 技术栈
- **框架**Spring Boot
- **ORM**MyBatis Plus
- **分页**PageHelper
- **安全**Spring Security
- **API文档**Swagger
- **数据验证**Hibernate Validator
### 4.2 设计模式
- 标准三层架构Controller -> Service -> Dao
- RESTful API规范
- 统一响应格式:`CommonResult<T>`
- 权限注解:`@PreAuthorize`
- 参数校验:`@Validated`
### 4.3 分页查询
使用`PageHelper`插件实现分页:
```java
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
List<Entity> list = dao.selectList(wrapper);
return CommonPage.restPage(new PageInfo<>(list));
```
### 4.4 数据关联
**用户信息关联**
- 寄售商品关联卖家用户信息(`username`
- 订单关联买家和卖家信息(`buyer_name`, `seller_name`
- 提现记录关联用户信息(`username`, `mobile`
- 财务日志关联用户信息(`username`, `mobile`
**实现方式**
- 查询列表时通过`WaUsersDao`关联查询用户信息
- 使用Stream API转换为Response对象
---
## 五、接口调用示例
### 5.1 查询寄售商品列表
**请求**
```http
GET /app/admin/merchandise/select?page=1&limit=10&status=1&is_show=1
```
**响应**
```json
{
"code": 0,
"msg": "ok",
"data": {
"list": [
{
"id": 144753,
"userId": 92166,
"username": "用户昵称",
"title": "商品标题",
"image": "[\"url1\",\"url2\"]",
"price": 1000.00,
"isShow": 1,
"status": 1,
"createdAt": "2025-11-13 10:00:00",
"updatedAt": "2025-11-13 10:00:00"
}
],
"total": 50,
"pageNum": 1,
"pageSize": 10
}
}
```
### 5.2 查询寄售商品详情
**请求**
```http
GET /app/admin/merchandise/select?id=144753
```
**响应**
```json
{
"code": 0,
"msg": "ok",
"data": {
"id": 144753,
"userId": 92166,
"username": "用户昵称",
"title": "商品标题",
"image": "[\"url1\",\"url2\"]",
"price": 1000.00,
"isShow": 1,
"status": 1,
"createdAt": "2025-11-13 10:00:00",
"updatedAt": "2025-11-13 10:00:00"
}
}
```
### 5.3 更新寄售商品(审核通过)
**请求**
```http
POST /app/admin/merchandise/update
Content-Type: application/json
{
"id": 144753,
"is_show": 1
}
```
**响应**
```json
{
"code": 0,
"msg": "ok",
"data": null
}
```
### 5.4 审核提现申请
**请求(通过)**
```http
POST /app/admin/withdraw/update
Content-Type: application/json
{
"id": 4457,
"status": 1,
"remark": ""
}
```
**请求(驳回)**
```http
POST /app/admin/withdraw/update
Content-Type: application/json
{
"id": 4457,
"status": 2,
"remark": ""
}
```
**响应**
```json
{
"code": 0,
"msg": "审核成功",
"data": null
}
```
### 5.5 查询财务日志
**请求**
```http
GET /app/admin/coupon-log/select?page=1&limit=10&user_id=92697&type=1
```
**响应**
```json
{
"code": 0,
"msg": "ok",
"data": {
"list": [
{
"id": 1,
"userId": 92697,
"username": "张三",
"mobile": "13800138000",
"type": 1,
"money": 10.000,
"before": 0.000,
"after": 10.000,
"memo": "系统发放",
"createdAt": "2025-11-13 10:00:00"
}
],
"total": 100,
"pageNum": 1,
"pageSize": 10
}
}
```
---
## 六、权限配置
所有管理后台接口都需要管理员权限,权限标识如下:
### 6.1 寄售商品管理权限
- `admin:merchandise:select` - 查询寄售商品(列表/详情)
- `admin:merchandise:update` - 更新寄售商品
### 6.2 订单管理权限
- `admin:order:select` - 查询订单(列表/详情)
- `admin:order:update` - 更新订单
### 6.3 提现管理权限
- `admin:withdraw:select` - 查询提现(列表/详情)
- `admin:withdraw:update` - 审核提现
### 6.4 财务日志权限
- `admin:coupon-log:select` - 查询优惠券日志
- `admin:selfbonus-log:select` - 查询个人奖金日志
- `admin:sharebonus-log:select` - 查询推广奖金日志
**权限配置位置**:需要在系统权限管理中添加以上权限标识,并分配给相应角色。
---
## 七、数据统计
- **Request类**7个
- **Response类**4个
- **Service接口**4个
- **Service实现类**4个
- **Controller类**4个
- **API接口总数**9个列表和详情共用接口
---
## 八、待完善功能
### 8.1 提现审核优化
- [ ] 接入第三方支付API实现自动打款
- [ ] 增加批量审核功能
- [ ] 增加审核工作流
### 8.2 财务管理增强
- [ ] 完善财务日志记录(所有金额变动都记录)
- [ ] 增加财务报表统计
- [ ] 增加对账功能
### 8.3 商品管理优化
- [ ] 批量审核寄售商品
- [ ] 商品质量评分系统
- [ ] 违规商品自动下架
### 8.4 订单管理增强
- [ ] 订单导出功能
- [ ] 订单统计分析
- [ ] 异常订单预警
---
## 九、注意事项
### 9.1 安全性
1. 所有接口都需要管理员身份验证
2. 敏感操作(提现审核)需要二次确认
3. 重要操作记录日志
### 9.2 数据一致性
1. 提现驳回时务必返还金额到正确账户
2. 订单状态变更需要同步更新相关数据
3. 使用事务保证数据一致性
### 9.3 性能优化
1. 分页查询避免一次性加载大量数据
2. 关联查询使用批量查询优化
3. 合理使用缓存
### 9.4 代码规范
1. 遵循统一的代码风格
2. 添加完善的注释
3. 合理处理异常
---
## 十、文档更新日志
| 日期 | 版本 | 更新内容 | 更新人 |
|------|------|----------|--------|
| 2025-11-14 | V1.0 | 初始创建完成管理后台API接口封装 | AI Assistant |
---
**维护人**AI Assistant
**最后更新**2025-11-14
**文档状态**:已完成接口封装,可进行测试
---
## 附录A与PRD文档的对应关系
| PRD章节 | 实现内容 | 对应Controller |
|---------|----------|---------------|
| 3.2 商品管理模块 | 寄售商品管理 | WaMerchandiseController |
| 3.3 订单管理模块 | 订单管理 | WaOrderAdminController |
| 3.4 提现管理模块 | 提现审核 | WaWithdrawController |
| 3.5 财务日志管理模块 | 财务日志查询 | WaFinanceLogController |
本实现完全符合PRD文档的接口规范要求。