Files
integral-shop/backend/docs/商品寄卖服务系统管理后台接口实现说明.md

521 lines
14 KiB
Markdown
Raw Normal View History

# 商品寄卖服务系统管理后台接口实现说明
## 实现概述
本文档说明了在`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文档的接口规范要求。