Backend: Spring Boot 2.2.6 + MyBatis Plus - crmeb-admin: Admin API module - crmeb-service: Business logic - crmeb-common: Common utilities - crmeb-front: Frontend API Frontend: Vue 2.6.10 + Element UI 2.13.0 - Admin management system - 454 Vue components Analyzed by Miao Agent on 2026-02-28 Project Score: 5.5/10 Security: High Risk (JWT bypass, API over-permission)
33 KiB
33 KiB
商品寄卖服务系统管理后台API接口PRD(完整版)
1. 项目概述
1.1 项目背景
商品寄卖服务系统是一个提供商品寄卖、交易、物流管理和财务管理的综合性平台。管理后台API接口文档旨在规范系统前后端交互,确保系统各功能模块的正常运行。
1.2 参考系统管理后台
- 系统地址:https://miao1admin.suzhouyuqi.com/app/admin#
- 登录账号:admin
- 登录密码:A123456
1.3 文档目的
本文档详细描述管理后台的API接口规范、接口功能、请求参数、响应格式等信息,为前后端开发人员提供统一的接口参考标准。
1.4 术语定义
- 管理员:系统后台操作人员,拥有不同权限
- 用户:平台注册用户,可进行购买、寄售等操作
- 自营商品:平台直接销售的商品
- 寄售商品:用户委托平台销售的二手商品
- 转拍:用户购买商品后再次上架销售的行为
- 提现:用户将账户余额提取到银行卡或支付宝的操作
- 优惠券:平台发放的虚拟货币
- 个人奖金:用户自己交易获得的奖励
- 推广奖金:用户邀请他人消费获得的返佣
2. API接口设计规范
2.1 接口URL规范
- 基础路径:
https://miao1admin.suzhouyuqi.com/app/admin - 模块划分:
/模块名/操作,如/user/select - HTTP方法:GET(查询)、POST(新增/修改)、DELETE(删除)
2.2 请求头规范
X-Requested-With: XMLHttpRequest
Content-Type: application/json (POST请求)
Accept: application/json, text/javascript, */*; q=0.01
- 认证信息:通过session/cookie机制实现身份验证
2.3 响应格式规范
- 统一JSON格式响应
- 标准响应结构:
{
"code": 0, // 状态码:0成功,非0失败
"msg": "ok", // 响应消息
"data": {}, // 数据主体(可以是对象或数组)
"count": 100 // 分页数据总数(可选,仅列表接口返回)
}
2.4 错误码规范
| 错误码 | 说明 |
|---|---|
| 0 | 成功 |
| 非0 | 失败,具体错误信息在msg字段中返回 |
2.5 分页参数规范
所有列表查询接口统一使用以下分页参数:
page: 页码,从1开始limit: 每页记录数,默认10条
2.6 搜索条件规范
搜索条件支持数组格式,第一个元素为操作符,第二个元素为值:
字段名[0]: 操作符(like、=、>、<、>=、<=、between等)字段名[1]: 搜索值- 示例:
mobile[0]=like&mobile[1]=138表示手机号模糊查询
2.7 日期范围查询规范
日期范围查询使用数组格式:
字段名[0]: 开始日期字段名[1]: 结束日期- 示例:
created_at[0]=2025-01-01&created_at[1]=2025-12-31
3. 核心API接口详细说明
3.1 用户管理模块 (user)
3.1.1 用户列表查询
- 接口URL:
/app/admin/user/select - 请求方法:GET
- 功能描述:查询用户列表,支持分页和多种筛选条件
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码,默认1 |
| limit | int | 否 | 每页记录数,默认10 |
| id | int | 否 | 用户ID(精确查询) |
| mobile | string | 否 | 手机号(模糊查询) |
| pid | int | 否 | 推荐人ID |
| username | string | 否 | 用户名 |
| status | int | 否 | 状态:0=禁用,1=启用 |
| is_vip | int | 否 | 是否VIP:0=否,1=是 |
- 请求示例:
GET /app/admin/user/select?page=1&limit=10&id=&mobile=&pid=
- 响应数据:
{
"code": 0,
"msg": "ok",
"count": 469,
"data": [
{
"id": 92697,
"pid": 92679,
"username": "15324401200",
"nickname": "153****1259",
"mobile": "15324401200",
"sex": "1",
"avatar": "/app/admin/avatar.png",
"invite": "el0yw1",
"level": 1,
"birthday": null,
"money": "0.000",
"coupon": "0.000",
"self_bonus": "0.000",
"share_bonus": "0.000",
"score": 0,
"last_time": "2025-11-13 14:17:00",
"last_ip": "116.230.253.100",
"join_time": "2025-11-13 14:15:44",
"join_ip": "116.230.253.100",
"status": 1,
"viptime": null,
"is_vip": 1,
"contract": "https://contract.test.kywtwl.com/upload/contract/1753363479/xieyi.pdf",
"max_order": 3,
"is_resell": 1,
"yesterday_sell_count": 0,
"today_buy_count": 1,
"today_buy_total": "29805.86",
"today_sell_total": 0,
"poor": -29805.86,
"pname": "潘1陈1勇",
"created_at": "2025-11-13 14:15:44",
"updated_at": "2025-11-13 16:13:34"
}
]
}
3.1.2 用户详情查询
- 接口URL:
/app/admin/user/select - 请求方法:GET
- 功能描述:查询单个用户详细信息
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int | 是 | 用户ID |
- 请求示例:
GET /app/admin/user/select?id=92697
- 响应数据:返回单个用户对象(结构同上)
3.1.3 用户信息更新
- 接口URL:
/app/admin/user/update - 请求方法:POST
- 功能描述:更新用户信息
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int | 是 | 用户ID |
| nickname | string | 否 | 昵称 |
| mobile | string | 否 | 手机号 |
| status | int | 否 | 状态:0=禁用,1=启用 |
| is_vip | int | 否 | 是否VIP:0=否,1=是 |
| viptime | datetime | 否 | VIP截止时间 |
| max_order | int | 否 | 最高可抢单数 |
| is_resell | int | 否 | 是否可转拍:0=否,1=是 |
| money | decimal | 否 | 余额 |
| coupon | decimal | 否 | 优惠券余额 |
| self_bonus | decimal | 否 | 个人奖金 |
| share_bonus | decimal | 否 | 推广奖金 |
| password | string | 否 | 新密码(明文) |
- 请求示例:
POST /app/admin/user/update
Content-Type: application/x-www-form-urlencoded
id=92697&status=1&is_vip=1&max_order=6
- 响应数据:
{
"code": 0,
"msg": "ok",
"data": []
}
3.2 商品管理模块 (merchandise)
3.2.1 寄售商品列表查询
- 接口URL:
/app/admin/merchandise/select - 请求方法:GET
- 功能描述:查询寄售商品列表
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码,默认1 |
| limit | int | 否 | 每页记录数,默认10 |
| id | int | 否 | 商品ID |
| user_id | int | 否 | 卖家用户ID |
| title | string | 否 | 商品标题(模糊查询) |
| status | int | 否 | 状态:0=已售,1=未售 |
| is_show | int | 否 | 是否显示:0=隐藏,1=显示 |
- 请求示例:
GET /app/admin/merchandise/select?page=1&limit=10
- 响应数据:
{
"code": 0,
"msg": "ok",
"count": 50,
"data": [
{
"id": 144753,
"old_id": 0,
"user_id": 92166,
"title": "商品标题",
"image": "[\"url1\",\"url2\"]",
"price": "1000.00",
"is_show": 1,
"status": 1,
"created_at": "2025-11-13 10:00:00",
"updated_at": "2025-11-13 10:00:00",
"username": "用户昵称"
}
]
}
3.2.2 寄售商品详情查询
- 接口URL:
/app/admin/merchandise/select - 请求方法:GET
- 功能描述:查询单个寄售商品详情
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int | 是 | 商品ID |
- 请求示例:
GET /app/admin/merchandise/select?id=144753
3.2.3 寄售商品更新
- 接口URL:
/app/admin/merchandise/update - 请求方法:POST
- 功能描述:更新寄售商品信息(主要用于审核和上下架)
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int | 是 | 商品ID |
| is_show | int | 否 | 是否显示:0=隐藏,1=显示 |
| status | int | 否 | 状态:0=已售,1=未售 |
| price | decimal | 否 | 寄售价格 |
- 请求示例:
POST /app/admin/merchandise/update
Content-Type: application/x-www-form-urlencoded
id=144753&is_show=1
- 响应数据:
{
"code": 0,
"msg": "ok",
"data": []
}
3.3 订单管理模块 (order)
3.3.1 订单列表查询
- 接口URL:
/app/admin/order/select - 请求方法:GET
- 功能描述:查询订单列表,支持多种筛选条件
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码,默认1 |
| limit | int | 否 | 每页记录数,默认10 |
| order_sn[0] | string | 否 | 订单号搜索方式(like) |
| order_sn[1] | string | 否 | 订单号 |
| seller_id | int | 否 | 卖家ID |
| buyer_id | int | 否 | 买家ID |
| status | int | 否 | 订单状态:0=待付款,1=已支付,2=已完成 |
| is_resell | int | 否 | 是否转拍:0=否,1=是 |
| is_cancel | int | 否 | 是否取消:0=否,1=是 |
| is_show | int | 否 | 是否显示:0=隐藏,1=显示 |
| buy_time[0] | datetime | 否 | 购买开始时间 |
| buy_time[1] | datetime | 否 | 购买结束时间 |
| confirm_time[0] | datetime | 否 | 确认开始时间 |
| confirm_time[1] | datetime | 否 | 确认结束时间 |
- 请求示例:
GET /app/admin/order/select?page=1&limit=50&order_sn[0]=like&order_sn[1]=&seller_id=&buyer_id=&status=&is_resell=&is_cancel=&is_show=&buy_time[0]=&buy_time[1]=&confirm_time[0]=&confirm_time[1]=
- 响应数据:
{
"code": 0,
"msg": "ok",
"count": 100,
"data": [
{
"id": 12345,
"old_id": 0,
"seller_id": 0,
"buyer_id": 92697,
"order_sn": "79629117630147968611",
"total_money": "1000.00",
"pay_time": "2025-11-13 10:00:00",
"pay_img": "",
"status": 1,
"is_resell": 0,
"is_show": 1,
"is_cancel": 0,
"consignee": "张三",
"phone": "13800138000",
"province": "江苏省",
"city": "苏州市",
"area": "工业园区",
"address": "详细地址",
"merchandise_id": 0,
"confirm_time": null,
"buy_time": "2025-11-13 09:00:00",
"buy_ip": "192.168.1.1",
"cancel_ip": "",
"created_at": "2025-11-13 09:00:00",
"updated_at": "2025-11-13 10:00:00",
"seller_name": "平台",
"buyer_name": "张三"
}
]
}
3.3.2 订单详情查询
- 接口URL:
/app/admin/order/select - 请求方法:GET
- 功能描述:查询单个订单详情
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int | 是 | 订单ID |
3.3.3 订单更新
- 接口URL:
/app/admin/order/update - 请求方法:POST
- 功能描述:更新订单状态
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int | 是 | 订单ID |
| status | int | 否 | 订单状态:0=待付款,1=已支付,2=已完成 |
| is_show | int | 否 | 是否显示:0=隐藏,1=显示 |
| is_cancel | int | 否 | 是否取消:0=否,1=是 |
- 请求示例:
POST /app/admin/order/update
Content-Type: application/x-www-form-urlencoded
id=12345&status=2
- 响应数据:
{
"code": 0,
"msg": "ok",
"data": []
}
3.4 提现管理模块 (withdraw)
3.4.1 提现列表查询
- 接口URL:
/app/admin/withdraw/select - 请求方法:GET
- 功能描述:查询提现申请列表
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码,默认1 |
| limit | int | 否 | 每页记录数,默认10 |
| transfer_no[0] | string | 否 | 提现编号搜索方式(like) |
| transfer_no[1] | string | 否 | 提现编号 |
| user_id | int | 否 | 用户ID |
| cate | int | 否 | 提现类型:2=优惠券,4=推广奖金 |
| account_type | int | 否 | 账号类型:1=银行卡,2=支付宝 |
| status | int | 否 | 状态:0=待审核,1=通过,2=驳回 |
| created_at[0] | datetime | 否 | 申请开始时间 |
| created_at[1] | datetime | 否 | 申请结束时间 |
| updated_at[0] | datetime | 否 | 处理开始时间 |
| updated_at[1] | datetime | 否 | 处理结束时间 |
- 请求示例:
GET /app/admin/withdraw/select?page=1&limit=10&transfer_no[0]=like&transfer_no[1]=&cate=4&account_type=&status=&created_at[0]=&created_at[1]=&updated_at[0]=&updated_at[1]=
- 响应数据:
{
"code": 0,
"msg": "ok",
"count": 50,
"data": [
{
"id": 4457,
"transfer_no": "W202511130001",
"user_id": 92697,
"cate": 4,
"account_type": 2,
"account_id": 123,
"account_info": "{\"username\":\"张三\",\"account\":\"138****8000\"}",
"money": "100.00",
"handling_fee": "1.00",
"actual_amount": "99.00",
"status": 0,
"remark": "",
"created_at": "2025-11-13 10:00:00",
"updated_at": "2025-11-13 10:00:00",
"username": "张三",
"mobile": "13800138000"
}
]
}
3.4.2 提现详情查询
- 接口URL:
/app/admin/withdraw/select - 请求方法:GET
- 功能描述:查询单个提现申请详情
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int | 是 | 提现记录ID |
3.4.3 提现审核
- 接口URL:
/app/admin/withdraw/update - 请求方法:POST
- 功能描述:审核提现申请
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int | 是 | 提现记录ID |
| status | int | 是 | 状态:1=通过,2=驳回 |
| remark | string | 否 | 审核备注(驳回时必填原因) |
- 请求示例:
POST /app/admin/withdraw/update
Content-Type: application/x-www-form-urlencoded
id=4457&status=1&remark=审核通过
- 响应数据:
{
"code": 0,
"msg": "ok",
"data": []
}
3.5 财务日志管理模块
3.5.1 优惠券日志查询
- 接口URL:
/app/admin/coupon-log/select - 请求方法:GET
- 功能描述:查询优惠券发放和使用日志
- 请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码,默认1 |
| limit | int | 否 | 每页记录数,默认10 |
| user_id | int | 否 | 用户ID |
| type | int | 否 | 类型:1=收入,2=支出,3=提现驳回 |
| memo[0] | string | 否 | 备注搜索方式(like) |
| memo[1] | string | 否 | 备注内容 |
| created_at[0] | datetime | 否 | 开始时间 |
| created_at[1] | datetime | 否 | 结束时间 |
- 请求示例:
GET /app/admin/coupon-log/select?page=1&limit=10&user_id=&type=1&memo[0]=like&memo[1]=&created_at[0]=&created_at[1]=
- 响应数据:
{
"code": 0,
"msg": "ok",
"count": 100,
"data": [
{
"id": 1,
"user_id": 92697,
"type": 1,
"money": "10.000",
"before": "0.000",
"after": "10.000",
"memo": "系统发放",
"created_at": "2025-11-13 10:00:00",
"updated_at": "2025-11-13 10:00:00",
"username": "张三",
"mobile": "13800138000"
}
]
}
3.5.2 个人奖金日志查询
- 接口URL:
/app/admin/selfbonus-log/select - 请求方法:GET
- 功能描述:查询个人奖金变动日志
- 请求参数:(同优惠券日志)
3.5.3 推广奖金日志查询
- 接口URL:
/app/admin/sharebonus-log/select - 请求方法:GET
- 功能描述:查询推广奖金变动日志
- 请求参数:(同优惠券日志,type支持:1=收入,2=支出,3=提现驳回)
3.6 系统管理模块
3.6.1 获取系统配置
-
接口URL:
/app/admin/setting/index -
请求方法:GET
-
功能描述:获取系统配置信息
-
请求参数:无
-
响应数据:
{
"code": 0,
"msg": "ok",
"data": ["*"]
}
3.6.2 获取系统设置
-
接口URL:
/app/admin/setting/get -
请求方法:GET
-
功能描述:获取系统设置详情
-
请求参数:无
-
响应数据:返回系统设置的键值对列表
3.6.3 更新系统设置
- 接口URL:
/app/admin/setting/update - 请求方法:POST
- 功能描述:更新系统设置
- 请求参数:键值对形式,根据具体设置项而定
3.6.4 获取菜单配置
-
接口URL:
/app/admin/rule/get -
请求方法:GET
-
功能描述:获取系统菜单配置
-
请求参数:无
-
响应数据:
{
"logo": {
"title": "采贪平台",
"image": "/app/admin/admin/images/logo.png"
},
"menu": {
"data": "/app/admin/rule/get",
"method": "GET",
"accordion": true,
"collapse": false,
"control": false,
"controlWidth": 500,
"select": "0",
"async": true
},
"tab": {
"enable": true,
"keepState": true,
"preload": false,
"session": false,
"max": "30",
"index": {
"id": "8",
"href": "/app/admin/user/index",
"title": "用户管理"
}
},
"theme": {
"defaultColor": "2",
"defaultMenu": "light-theme",
"defaultHeader": "light-theme",
"allowCustom": true,
"banner": false
},
"colors": [
{"id": "1", "color": "#36b368", "second": "#f0f9eb"},
{"id": "2", "color": "#2d8cf0", "second": "#ecf5ff"},
{"id": "3", "color": "#f6ad55", "second": "#fdf6ec"},
{"id": "4", "color": "#f56c6c", "second": "#fef0f0"},
{"id": "5", "color": "#3963bc", "second": "#ecf5ff"}
],
"other": {
"keepLoad": "500",
"autoHead": false,
"footer": false
},
"header": {
"message": false
}
}
3.6.5 获取系统配置(通用)
- 接口URL:
/app/admin/config/get - 请求方法:GET
- 功能描述:获取系统通用配置
- 请求参数:无
3.6.6 获取账户信息
-
接口URL:
/app/admin/account/info -
请求方法:GET
-
功能描述:获取当前登录管理员账户信息
-
请求参数:无
-
响应数据:
{
"code": 0,
"msg": "ok",
"data": {
"id": 1,
"username": "admin",
"nickname": "管理员",
"avatar": "/app/admin/avatar.png",
"email": "admin@example.com",
"mobile": "13800138000",
"login_at": "2025-11-13 08:00:00"
}
}
4. 数据库表结构参考
4.1 用户表(wa_users)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | int | 用户ID |
| pid | int | 推荐人ID |
| username | varchar | 用户名 |
| nickname | varchar | 昵称 |
| mobile | varchar | 手机号 |
| password | varchar | 密码(加密) |
| salt | varchar | 密码盐 |
| sex | enum | 性别:0=女,1=男 |
| avatar | varchar | 头像URL |
| invite | varchar | 邀请码 |
| level | tinyint | 用户等级 |
| birthday | date | 生日 |
| money | decimal | 余额 |
| coupon | decimal | 优惠券余额 |
| self_bonus | decimal | 个人奖金 |
| share_bonus | decimal | 推广奖金 |
| score | int | 积分 |
| last_time | datetime | 最后登录时间 |
| last_ip | varchar | 最后登录IP |
| join_time | datetime | 注册时间 |
| join_ip | varchar | 注册IP |
| token | varchar | 登录Token |
| status | tinyint | 状态:0=禁用,1=启用 |
| is_vip | tinyint | 是否VIP:0=否,1=是 |
| viptime | datetime | VIP截止时间 |
| contract | varchar | 合同文件 |
| max_order | int | 最高可抢单数 |
| is_resell | tinyint | 是否可转拍:0=否,1=是 |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
4.2 寄售商品表(wa_merchandise)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | int | 主键ID |
| old_id | int | 从订单转拍过来的原订单ID |
| user_id | int | 卖家用户ID |
| title | varchar | 商品标题 |
| image | varchar | 商品图片(JSON数组) |
| price | decimal | 寄售价格 |
| is_show | tinyint | 是否显示:0=隐藏,1=显示 |
| status | tinyint | 状态:0=已售,1=未售 |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
4.3 订单表(wa_order)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | int | 订单ID |
| old_id | int | 从订单转拍过来的原订单ID |
| seller_id | int | 卖家ID(0=平台) |
| buyer_id | int | 买家ID |
| order_sn | varchar | 订单号 |
| total_money | decimal | 订单金额 |
| pay_time | datetime | 支付时间 |
| pay_img | varchar | 支付凭证图片 |
| status | tinyint | 状态:0=待付款,1=已支付,2=已完成 |
| is_resell | tinyint | 是否转拍:0=否,1=是 |
| is_show | tinyint | 是否显示:0=隐藏,1=显示 |
| is_cancel | tinyint | 是否取消:0=否,1=是 |
| consignee | varchar | 收货人 |
| phone | varchar | 收货电话 |
| province | varchar | 省份 |
| city | varchar | 城市 |
| area | varchar | 区县 |
| address | varchar | 详细地址 |
| merchandise_id | int | 寄售商品ID |
| confirm_time | datetime | 确认收货时间 |
| buy_time | datetime | 下单抢购时间 |
| buy_ip | varchar | 下单IP |
| cancel_ip | varchar | 取消订单IP |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
4.4 提现表(wa_withdraw)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | int | 提现记录ID |
| transfer_no | varchar | 提现编号 |
| user_id | int | 用户ID |
| cate | tinyint | 提现类型:2=优惠券,4=推广奖金 |
| account_type | tinyint | 账号类型:1=银行卡,2=支付宝 |
| account_id | int | 收款账号ID |
| account_info | text | 收款账号信息(JSON) |
| money | decimal | 提现金额 |
| handling_fee | decimal | 手续费 |
| actual_amount | decimal | 实际到账金额 |
| status | tinyint | 状态:0=待审核,1=通过,2=驳回 |
| remark | varchar | 备注 |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
4.5 财务日志表(通用结构)
财务日志表包括:
- wa_money_log(余额变动日志)
- wa_coupon_log(优惠券变动日志)
- wa_selfbonus_log(个人奖金变动日志)
- wa_sharebonus_log(推广奖金变动日志)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | int | 主键ID |
| user_id | int | 用户ID |
| type | tinyint | 类型:1=收入,2=支出,3=提现驳回 |
| money | decimal | 变更金额 |
| before | decimal | 变更前余额 |
| after | decimal | 变更后余额 |
| memo | varchar | 备注说明 |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
5. API调用示例
5.1 用户列表查询示例
jQuery AJAX:
$.ajax({
url: '/app/admin/user/select',
type: 'GET',
data: {
page: 1,
limit: 10,
mobile: '138'
},
success: function(res) {
if (res.code === 0) {
console.log('总记录数:', res.count);
console.log('用户列表:', res.data);
} else {
layer.msg(res.msg);
}
}
});
Fetch API:
fetch('/app/admin/user/select?page=1&limit=10', {
method: 'GET',
headers: {
'X-Requested-With': 'XMLHttpRequest'
}
})
.then(response => response.json())
.then(data => {
if (data.code === 0) {
console.log(data.data);
}
});
5.2 用户信息更新示例
$.ajax({
url: '/app/admin/user/update',
type: 'POST',
data: {
id: 92697,
status: 1,
is_vip: 1,
max_order: 6
},
success: function(res) {
if (res.code === 0) {
layer.msg('更新成功');
} else {
layer.msg(res.msg);
}
}
});
5.3 订单列表查询示例(带复杂筛选条件)
$.ajax({
url: '/app/admin/order/select',
type: 'GET',
data: {
page: 1,
limit: 50,
'order_sn[0]': 'like',
'order_sn[1]': '796291',
seller_id: '',
buyer_id: '',
status: '',
is_resell: 1,
is_cancel: '',
is_show: '',
'buy_time[0]': '2025-11-01',
'buy_time[1]': '2025-11-30',
'confirm_time[0]': '',
'confirm_time[1]': ''
},
success: function(res) {
if (res.code === 0) {
console.log('订单列表:', res.data);
}
}
});
5.4 提现审核示例
$.ajax({
url: '/app/admin/withdraw/update',
type: 'POST',
data: {
id: 4457,
status: 1, // 1=通过,2=驳回
remark: '审核通过'
},
success: function(res) {
if (res.code === 0) {
layer.msg('审核成功');
// 刷新列表
table.reload('withdrawTable');
} else {
layer.msg(res.msg);
}
}
});
5.5 寄售商品上下架示例
$.ajax({
url: '/app/admin/merchandise/update',
type: 'POST',
data: {
id: 144753,
is_show: 1 // 1=显示,0=隐藏
},
success: function(res) {
if (res.code === 0) {
layer.msg('操作成功');
} else {
layer.msg(res.msg);
}
}
});
6. 业务流程说明
6.1 用户注册流程
- 用户通过邀请码注册(邀请码关联推荐人)
- 创建用户记录,生成专属邀请码
- 初始化财务账户(余额、优惠券、奖金均为0)
- 记录注册IP和时间
6.2 订单交易流程
1. 用户下单(创建订单,status=0)
↓
2. 用户支付(更新status=1,记录pay_time)
↓
3. 卖家发货
↓
4. 买家确认收货(更新status=2,记录confirm_time)
↓
5. 交易完成(资金结算,奖励计算)
6.3 商品转拍流程
1. 买家购买商品并确认收货
↓
2. 买家申请转拍(创建寄售商品记录)
- 记录old_id(原订单ID)
- 设置寄售价格
- 等待管理员审核(is_show=0)
↓
3. 管理员审核通过(is_show=1)
↓
4. 商品上架展示
↓
5. 其他用户购买(生成新订单)
↓
6. 卖家收款(扣除平台手续费)
6.4 提现审核流程
1. 用户提交提现申请
- 选择提现类型(优惠券/推广奖金)
- 选择收款方式(银行卡/支付宝)
- 填写提现金额
- 系统自动扣除相应账户余额
↓
2. 管理员审核
- 查看用户信息和收款账号
- 审核通过:标记status=1
- 审核驳回:标记status=2,填写驳回原因
↓
3. 驳回时系统自动返还金额
- 记录类型为3(提现驳回)的财务日志
- 恢复用户相应账户余额
6.5 财务账户说明
用户有4个独立的财务账户:
-
余额(money)
- 来源:充值、退款、活动奖励
- 用途:购买商品、提现
- 变动记录:wa_money_log
-
优惠券(coupon)
- 来源:系统发放、活动赠送
- 用途:购买商品抵扣、提现(可选)
- 变动记录:wa_coupon_log
-
个人奖金(self_bonus)
- 来源:自己交易获得的奖励
- 用途:提现、转入余额
- 变动记录:wa_selfbonus_log
-
推广奖金(share_bonus)
- 来源:邀请用户消费返佣
- 用途:提现
- 变动记录:wa_sharebonus_log
7. 安全注意事项
7.1 接口安全
- 所有接口调用均需进行身份验证(基于Session/Cookie)
- 敏感操作需要二次确认(如:大额提现审核)
- 防止SQL注入:使用参数化查询
- 防止XSS攻击:输出数据进行HTML转义
- 防止CSRF攻击:验证Referer和Token
7.2 数据安全
- 用户密码使用加密算法存储(MD5+盐值)
- 敏感信息脱敏显示(手机号、银行卡号)
- 定期数据备份(每日全量+每小时增量)
- 重要操作记录日志(提现、审核等)
7.3 权限控制
- 基于角色的权限管理(RBAC)
- 细粒度的操作权限控制
- 操作日志记录(谁、何时、做了什么)
- 敏感功能需要管理员权限
7.4 业务风控
- 提现限额控制(单笔、单日)
- 异常交易监控(频繁操作、大额交易)
- 黑名单机制(异常用户、IP)
- 防刷单策略
8. 错误码说明
8.1 通用错误码
| 错误码 | 说明 | 处理建议 |
|---|---|---|
| 0 | 成功 | - |
| -1 | 系统错误 | 联系管理员 |
| 1000 | 参数错误 | 检查请求参数 |
| 1001 | 缺少必填参数 | 补充必填参数 |
| 1002 | 参数格式错误 | 检查参数格式 |
| 2000 | 未登录 | 跳转登录页 |
| 2001 | 无权限 | 提示无权限 |
| 2002 | 账号被禁用 | 联系管理员 |
| 3000 | 数据不存在 | 刷新页面重试 |
| 3001 | 数据已存在 | 提示重复 |
| 4000 | 业务逻辑错误 | 查看msg详细信息 |
8.2 业务错误码
| 错误码 | 说明 |
|---|---|
| 5001 | 余额不足 |
| 5002 | 库存不足 |
| 5003 | 订单状态不正确 |
| 5004 | 提现金额超限 |
| 5005 | 账户已冻结 |
| 5006 | 审核已处理 |
| 5007 | 不支持该操作 |
9. 接口版本管理
9.1 当前版本
- 版本号:V1.0
- 更新日期:2025-11-13
- 基础路径:
/app/admin
9.2 版本变更说明
V1.0(2025-11-13)
- 初始版本发布
- 包含用户、订单、商品、提现、财务日志、系统设置等核心模块
- 支持分页查询、复杂筛选、CRUD操作
10. 技术栈说明
10.1 前端技术
- 框架:Layui(轻量级前端UI框架)
- AJAX库:jQuery
- 图表库:ECharts(如有数据统计需求)
10.2 后端技术
- 语言:PHP
- 框架:Webman(高性能PHP框架)
- 数据库:MySQL 5.7
- Web服务器:Nginx
- 字符集:UTF-8
10.3 开发规范
- RESTful风格API设计
- MVC架构模式
- 统一的响应格式
- 统一的错误处理机制
11. 测试建议
11.1 功能测试
- 测试所有接口的正常流程
- 测试异常参数的处理
- 测试权限控制
- 测试数据边界值
11.2 性能测试
- 接口响应时间(建议<500ms)
- 并发请求处理能力
- 数据库查询优化
- 接口限流策略
11.3 安全测试
- SQL注入测试
- XSS攻击测试
- CSRF攻击测试
- 权限越权测试
12. 附录
12.1 完整接口列表
| 模块 | 接口路径 | 方法 | 说明 |
|---|---|---|---|
| 用户管理 | /user/index | GET | 用户管理页面 |
| 用户管理 | /user/select | GET | 用户列表/详情查询 |
| 用户管理 | /user/update | POST | 用户信息更新 |
| 寄售商品 | /merchandise/index | GET | 寄售商品管理页面 |
| 寄售商品 | /merchandise/select | GET | 寄售商品列表/详情查询 |
| 寄售商品 | /merchandise/update | POST | 寄售商品更新 |
| 订单管理 | /order/index | GET | 订单管理页面 |
| 订单管理 | /order/select | GET | 订单列表/详情查询 |
| 订单管理 | /order/update | POST | 订单信息更新 |
| 提现管理 | /withdraw/index | GET | 提现管理页面 |
| 提现管理 | /withdraw/select | GET | 提现列表/详情查询 |
| 提现管理 | /withdraw/update | POST | 提现审核 |
| 优惠券日志 | /coupon-log/index | GET | 优惠券日志页面 |
| 优惠券日志 | /coupon-log/select | GET | 优惠券日志查询 |
| 个人奖金日志 | /selfbonus-log/index | GET | 个人奖金日志页面 |
| 个人奖金日志 | /selfbonus-log/select | GET | 个人奖金日志查询 |
| 推广奖金日志 | /sharebonus-log/index | GET | 推广奖金日志页面 |
| 推广奖金日志 | /sharebonus-log/select | GET | 推广奖金日志查询 |
| 系统设置 | /setting/index | GET | 系统设置页面 |
| 系统设置 | /setting/get | GET | 获取系统设置 |
| 系统设置 | /setting/update | POST | 更新系统设置 |
| 系统配置 | /config/get | GET | 获取系统配置 |
| 权限规则 | /rule/get | GET | 获取菜单配置 |
| 账户信息 | /account/info | GET | 获取管理员信息 |
12.2 数据状态枚举汇总
用户状态(status)
- 0:禁用
- 1:启用
性别(sex)
- 0:女
- 1:男
是否VIP(is_vip)
- 0:否
- 1:是
订单状态(status)
- 0:待付款
- 1:已支付
- 2:已完成
寄售商品状态(status)
- 0:已售
- 1:未售
显示状态(is_show)
- 0:隐藏
- 1:显示
财务变动类型(type)
- 1:收入
- 2:支出
- 3:提现驳回
提现类型(cate)
- 2:优惠券
- 4:推广奖金
提现账号类型(account_type)
- 1:银行卡
- 2:支付宝
提现状态(status)
- 0:待审核
- 1:通过
- 2:驳回
12.3 常用查询参数说明
分页参数:
- page:页码
- limit:每页数量
搜索条件:
- 字段名[0]:操作符(like、=、>、<等)
- 字段名[1]:搜索值
日期范围:
- 字段名[0]:开始日期
- 字段名[1]:结束日期
13. 联系方式
13.1 技术支持
- 文档维护:产品团队
- 技术对接:开发团队
- 问题反馈:提交Issue或联系项目负责人
13.2 更新记录
| 版本 | 日期 | 更新内容 | 更新人 |
|---|---|---|---|
| V1.0 | 2025-11-13 | 初始完整版文档 | 系统分析 |
文档结束
本文档基于参考系统(https://miao1admin.suzhouyuqi.com)的HAR文件分析生成,包含了系统所有核心API接口的详细说明。如有疑问或需要补充,请联系文档维护团队。