电商管理后台 API 接口文档
1. 电商管理后台 API 接口文档1.1. API V1 接口说明1.1.1. 支持的请求方法1.1.2. 通用返回状态说明
1.2. 登录1.2.1. 登录验证接口
1.3. 用户管理1.3.1. 用户数据列表1.3.2. 添加用户1.3.3. 修改用户状态1.3.4. 根据 ID 查询用户信息1.3.5. 编辑用户提交1.3.6. 删除单个用户1.3.7. 分配用户角色
1.4. 权限管理1.4.1. 所有权限列表1.4.2. 左侧菜单权限
1.5. 角色管理1.5.1. 角色列表1.5.2. 添加角色1.5.3. 根据 ID 查询角色1.5.4. 编辑提交角色1.5.5. 删除角色1.5.6. 角色授权1.5.7. 删除角色指定权限
1.6. 商品分类管理1.6.1. 商品分类数据列表1.6.2. 添加分类1.6.3. 根据 id 查询分类1.6.4. 编辑提交分类1.6.5. 删除分类
1.7. 分类参数管理1.7.1. 参数列表1.7.2. 添加动态参数或者静态属性1.7.3. 删除参数1.7.4. 根据 ID 查询参数1.7.5. 编辑提交参数
1.8. 商品管理1.8.1. 商品列表数据1.8.2. 添加商品1.8.3. 根据 ID 查询商品1.8.4. 编辑提交商品1.8.5. 删除商品
1.9. 图片上传1.10. 订单管理1.10.1. 订单数据列表1.10.2. 修改订单状态1.10.3. 查看订单详情1.10.4. 修改地址1.10.5. 查看物流信息
1.11. 数据统计1.11.1. 基于时间统计的折线图
1. 电商管理后台 API 接口文档
1.1. API V1 接口说明
接口基准地址:http://127.0.0.1:8888/api/private/v1/服务端已开启 CORS 跨域支持API V1 认证统一使用 Token 认证需要授权的 API ,必须在请求头中使用 Authorization 字段提供 token 令牌使用 HTTP Status Code 标识状态数据返回格式统一使用 JSON
1.1.1. 支持的请求方法
GET(SELECT):从服务器取出资源(一项或多项)。POST(CREATE):在服务器新建一个资源。PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。DELETE(DELETE):从服务器删除资源。HEAD:获取资源的元数据。OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。
1.1.2. 通用返回状态说明
状态码含义说明
200OK请求成功201CREATED创建成功204DELETED删除成功400BAD REQUEST请求的地址不存在或者包含不支持的参数401UNAUTHORIZED未授权403FORBIDDEN被禁止访问404NOT FOUND请求的资源不存在422Unprocesable entity[POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误500INTERNAL SERVER ERROR内部错误
1.2. 登录
1.2.1. 登录验证接口
请求路径:login请求方法:post请求参数
参数名参数说明备注
username用户名不能为空password密码不能为空
响应参数
参数名参数说明备注
id用户 IDrid用户角色 IDusername用户名mobile手机号email邮箱token令牌基于 jwt 的令牌
响应数据
{
"data": {
"id": 500,
"rid": 0,
"username": "admin",
"mobile": "123",
"email": "123@qq.com",
"token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE1MTI1NDQyOTksImV4cCI6MTUxMjYzMDY5OX0.eGrsrvwHm-tPsO9r_pxHIQ5i5L1kX9RX444uwnRGaIM"
},
"meta": {
"msg": "登录成功",
"status": 200
}
}
1.3. 用户管理
1.3.1. 用户数据列表
请求路径:users请求方法:get请求参数
参数名参数说明备注
query查询参数可以为空pagenum当前页码不能为空pagesize每页显示条数不能为空
响应参数
参数名参数说明备注
totalpage总记录数pagenum当前页码users用户数据集合
响应数据
{
"data": {
"totalpage": 5,
"pagenum": 4,
"users": [
{
"id": 25,
"username": "tige117",
"mobile": "18616358651",
"type": 1,
"email": "tige112@163.com",
"create_time": "2017-11-09T20:36:26.000Z",
"mg_state": true,
"role_name": "炒鸡管理员"
}
]
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
1.3.2. 添加用户
请求路径:users请求方法:post请求参数
参数名参数说明备注
username用户名称不能为空password用户密码不能为空email邮箱可以为空mobile手机号可以为空
响应参数
参数名参数说明备注
id用户 IDrid用户角色 IDusername用户名mobile手机号email邮箱
响应数据
{
"data": {
"id": 28,
"username": "tige1200",
"mobile": "test",
"type": 1,
"openid": "",
"email": "test@test.com",
"create_time": "2017-11-10T03:47:13.533Z",
"modify_time": null,
"is_delete": false,
"is_active": false
},
"meta": {
"msg": "用户创建成功",
"status": 201
}
}
1.3.3. 修改用户状态
请求路径:users/:uId/state/:type请求方法:put请求参数
参数名参数说明备注
uId用户 ID不能为空携带在url中type用户状态不能为空携带在url中,值为 true 或者 false
响应数据
{
"data": {
"id": 566,
"rid": 30,
"username": "admin",
"mobile": "123456",
"email": "bb@itcast.com",
"mg_state": 0
},
"meta": {
"msg": "设置状态成功",
"status": 200
}
}
1.3.4. 根据 ID 查询用户信息
请求路径:users/:id请求方法:get请求参数
参数名参数说明备注
id用户 ID不能为空携带在url中
响应参数
参数名参数说明备注
id用户 IDrole_id角色 IDmobile手机号email邮箱
响应数据
{
"data": {
"id": 503,
"username": "admin3",
"role_id": 0,
"mobile": "00000",
"email": "new@new.com"
},
"meta": {
"msg": "查询成功",
"status": 200
}
}
1.3.5. 编辑用户提交
请求路径:users/:id请求方法:put请求参数
参数名参数说明备注
id用户 id不能为空 参数是url参数:idemail邮箱可以为空mobile手机号可以为空
响应参数
参数名参数说明备注
id用户 IDrole_id角色 IDmobile手机号email邮箱
响应数据
{
"data": {
"id": 503,
"username": "admin3",
"role_id": 0,
"mobile": "111",
"email": "123@123.com"
},
"meta": {
"msg": "更新成功",
"status": 200
}
}
1.3.6. 删除单个用户
请求路径:users/:id请求方法:delete请求参数
参数名参数说明备注
id用户 id不能为空参数是url参数:id
响应参数响应数据
{
"data": null,
"meta": {
"msg": "删除成功",
"status": 200
}
}
1.3.7. 分配用户角色
请求路径:users/:id/role请求方法:put请求参数
参数名参数说明备注
id用户 ID不能为空参数是url参数:idrid角色 id不能为空参数body参数
响应参数
参数名参数说明备注
id用户 IDrole_id角色 IDmobile手机号email邮箱
响应数据
{
"data": {
"id": 508,
"rid": "30",
"username": "asdf1",
"mobile": "123123",
"email": "adfsa@qq.com"
},
"meta": {
"msg": "设置角色成功",
"status": 200
}
}
1.4. 权限管理
1.4.1. 所有权限列表
请求路径:rights/:type请求方法:get请求参数
参数名参数说明备注
type类型值 list 或 tree , list 列表显示权限, tree 树状显示权限,参数是url参数:type
响应参数
参数名参数说明备注
id权限 IDauthName权限说明level权限层级pid权限父 IDpath对应访问路径
响应数据 type=list
{
"data": [
{
"id": 101,
"authName": "商品管理",
"level": "0",
"pid": 0,
"path": null
},
{
"id": 102,
"authName": "订单管理",
"level": "0",
"pid": 0,
"path": null
}
],
"meta": {
"msg": "获取权限列表成功",
"status": 200
}
}
type=tree
{
data
: [
{
id
: 101,
authName
: '商品管理',
path
: null,
pid
: 0,
children
: [
{
id
: 104,
authName
: '商品列表',
path
: null,
pid
: 101,
children
: [
{
id
: 105,
authName
: '添加商品',
path
: null,
pid
: '104,101'
}
]
}
]
}
],
meta
: {
msg
: '获取权限列表成功',
status
: 200
}
}
1.4.2. 左侧菜单权限
请求路径:menus请求方法:get响应数据
{
"data":
{
"id": 101,
"authName": "商品管理",
"path": null,
"children": [
{
"id": 104,
"authName": "商品列表",
"path": null,
"children": []
}
]
}
"meta": {
"msg": "获取菜单列表成功",
"status": 200
}
}
1.5. 角色管理
1.5.1. 角色列表
请求路径:roles
请求方法:get
响应数据说明
第一层为角色信息
第二层开始为权限说明,权限一共有 3 层权限最后一层权限,不包含 children 属性
响应数据
{
"data": [
{
"id": 30,
"roleName": "主管",
"roleDesc": "技术负责人",
"children": [
{
"id": 101,
"authName": "商品管理",
"path": null,
"children": [
{
"id": 104,
"authName": "商品列表",
"path": null,
"children": [
{
"id": 105,
"authName": "添加商品",
"path": null
}
]
}
]
}
]
}
],
"meta": {
"msg": "获取成功",
"status": 200
}
}
1.5.2. 添加角色
请求路径:roles请求方法:post请求参数
参数名参数说明备注
roleName角色名称不能为空roleDesc角色描述可以为空
响应参数
参数名参数说明备注
roleId角色 IDroleName角色名称roleDesc角色描述
响应数据
{
"data": {
"roleId": 40,
"roleName": "admin2",
"roleDesc": "admin2Desc"
},
"meta": {
"msg": "创建成功",
"status": 201
}
}
1.5.3. 根据 ID 查询角色
请求路径:roles/:id请求方法:get请求参数
参数名参数说明备注
:id角色 ID不能为空携带在url中
响应参数
参数名参数说明备注
roleId角色 IDroleName角色名称roleDesc角色描述
响应数据
{
"data": {
"roleId": 31,
"roleName": "测试角色",
"roleDesc": "测试负责人"
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
1.5.4. 编辑提交角色
请求路径:roles/:id请求方法:put请求参数
参数名参数说明备注
:id角色 ID不能为空携带在url中roleName角色名称不能为空roleDesc角色描述可以为空
响应数据
{
"data": {
"roleId": 31,
"roleName": "测试角色",
"roleDesc": "测试角色描述"
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
1.5.5. 删除角色
请求路径:roles/:id请求方法:delete请求参数
参数名参数说明备注
:id角色 ID不能为空携带在url中
响应数据
{
"data": null,
"meta": {
"msg": "删除成功",
"status": 200
}
}
1.5.6. 角色授权
请求路径:roles/:roleId/rights请求方法:post请求参数:通过 请求体 发送给后端
参数名参数说明备注
:roleId角色 ID不能为空携带在url中rids权限 ID 列表(字符串)以 , 分割的权限 ID 列表(获取所有被选中、叶子节点的key和半选中节点的key, 包括 1,2,3级节点)
响应数据
{
"data": null,
"meta": {
"msg": "更新成功",
"status": 200
}
}
1.5.7. 删除角色指定权限
请求路径:roles/:roleId/rights/:rightId
请求方法:delete
请求参数
参数名参数说明备注
:roleId角色 ID不能为空携带在url中:rightId权限 ID不能为空携带在url中 响应数据说明
返回的data, 是当前角色下最新的权限数据
响应数据
{
"data": [
{
"id": 101,
"authName": "商品管理",
"path": null,
"children": [
{
"id": 104,
"authName": "商品列表",
"path": null,
"children": [
{
"id": 105,
"authName": "添加商品",
"path": null
},
{
"id": 116,
"authName": "修改",
"path": null
}
]
}
]
}
],
"meta": {
"msg": "取消权限成功",
"status": 200
}
}
1.6. 商品分类管理
1.6.1. 商品分类数据列表
请求路径:categories请求方法:get请求参数
参数名参数说明备注
type[1,2,3]值:1,2,3 分别表示显示一层二层三层分类列表【可选参数】如果不传递,则默认获取所有级别的分类pagenum当前页码值【可选参数】如果不传递,则默认获取所有分类pagesize每页显示多少条数据【可选参数】如果不传递,则默认获取所有分类
响应参数
参数名参数说明备注
cat_id分类 IDcat_name分类名称cat_pid分类父 IDcat_level分类当前层级
响应数据
{
"data": [
{
"cat_id": 1,
"cat_name": "大家电",
"cat_pid": 0,
"cat_level": 0,
"cat_deleted": false,
"children": [
{
"cat_id": 3,
"cat_name": "电视",
"cat_pid": 1,
"cat_level": 1,
"cat_deleted": false,
"children": [
{
"cat_id": 6,
"cat_name": "曲面电视",
"cat_pid": 3,
"cat_level": 2,
"cat_deleted": false
},
{
"cat_id": 7,
"cat_name": "海信",
"cat_pid": 3,
"cat_level": 2,
"cat_deleted": false
}
]
}
]
}
],
"meta": {
"msg": "获取成功",
"status": 200
}
}
1.6.2. 添加分类
请求路径:categories请求方法:post请求参数
参数名参数说明备注
cat_pid分类父 ID不能为空,如果要添加1级分类,则父分类Id应该设置为 0cat_name分类名称不能为空cat_level分类层级不能为空,0表示一级分类;1表示二级分类;2表示三级分类
响应数据
{
"data": {
"cat_id": 62,
"cat_name": "相框",
"cat_pid": "1",
"cat_level": "1"
},
"meta": {
"msg": "创建成功",
"status": 201
}
}
1.6.3. 根据 id 查询分类
请求路径:categories/:id请求方法:get请求参数
参数名参数说明备注
:id分类 ID不能为空携带在url中
响应数据
{
"data": {
"cat_id": 3,
"cat_name": "厨卫电器",
"cat_pid": 0,
"cat_level": 0
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
1.6.4. 编辑提交分类
请求路径:categories/:id请求方法:put请求参数
参数名参数说明备注
:id分类 ID不能为空携带在url中cat_name分类名称不能为空【此参数,放到请求体中】
响应数据
{
"data": {
"cat_id": 22,
"cat_name": "自拍杆",
"cat_pid": 7,
"cat_level": 2
},
"meta": {
"msg": "更新成功",
"status": 200
}
}
1.6.5. 删除分类
请求路径:categories/:id请求方法:delete请求参数
参数名参数说明备注
:id分类 ID不能为空携带在url中
响应数据
{
"data": null,
"meta": {
"msg": "删除成功",
"status": 200
}
}
1.7. 分类参数管理
1.7.1. 参数列表
请求路径:categories/:id/attributes请求方法:get请求参数
参数名参数说明备注
:id分类 ID不能为空携带在url中sel[only,many]不能为空,通过 only 或 many 来获取分类静态参数还是动态参数
响应参数
参数名参数说明备注
attr_id分类参数 IDattr_name分类参数名称cat_id分类参数所属分类attr_selonly:输入框(唯一) many:后台下拉列表/前台单选框attr_writemanual:手工录入 list:从列表选择attr_vals如果 attr_write:list,那么有值,该值以逗号分隔
响应数据
{
"data": [
{
"attr_id": 1,
"attr_name": "cpu",
"cat_id": 22,
"attr_sel": "only",
"attr_write": "manual",
"attr_vals": "ffff"
}
],
"meta": {
"msg": "获取成功",
"status": 200
}
}
1.7.2. 添加动态参数或者静态属性
请求路径:categories/:id/attributes请求方法:post请求参数
参数名参数说明备注
:id分类 ID不能为空携带在url中attr_name参数名称不能为空attr_sel[only,many]不能为空attr_vals如果是 many 就需要填写值的选项,以逗号分隔【可选参数】
响应数据
{
"data": {
"attr_id": 44,
"attr_name": "测试参数",
"cat_id": "1",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": "a,b,c"
},
"meta": {
"msg": "创建成功",
"status": 201
}
}
1.7.3. 删除参数
请求路径: categories/:id/attributes/:attrid请求方法:delete请求参数
参数名参数说明备注
:id分类 ID不能为空携带在url中:attrid参数 ID不能为空携带在url中
响应数据
{
"data": null,
"meta": {
"msg": "删除成功",
"status": 200
}
}
1.7.4. 根据 ID 查询参数
请求路径:categories/:id/attributes/:attrId请求方法:get请求参数
参数名参数说明备注
:id分类 ID不能为空携带在url中:attrId属性 ID不能为空携带在url中attr_sel[only,many]不能为空attr_vals如果是 many 就需要填写值的选项,以逗号分隔
响应数据
{
"data": {
"attr_id": 1,
"attr_name": "cpu",
"cat_id": 22,
"attr_sel": "only",
"attr_write": "manual",
"attr_vals": "ffff"
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
1.7.5. 编辑提交参数
请求路径:categories/:id/attributes/:attrId请求方法:put请求参数
参数名参数说明备注
:id分类 ID不能为空携带在url中:attrId属性 ID不能为空携带在url中attr_name新属性的名字不能为空,携带在请求体中attr_sel属性的类型[many或only]不能为空,携带在请求体中attr_vals参数的属性值可选参数,携带在请求体中
响应数据
{
"data": {
"attr_id": 9,
"attr_name": "测试更新",
"cat_id": "43",
"attr_sel": "only",
"attr_write": "manual",
"attr_vals": "abc"
},
"meta": {
"msg": "更新成功",
"status": 200
}
}
1.8. 商品管理
1.8.1. 商品列表数据
请求路径:goods请求方法:get请求参数
参数名参数说明备注
query查询参数可以为空pagenum当前页码不能为空pagesize每页显示条数不能为空
响应参数
参数名参数说明备注
total总共商品条数pagenum当前商品页数goods_id商品 IDgoods_name商品名称goods_price价格goods_number数量goods_weight重量不能为空goods_state商品状态商品状态 0: 未通过 1: 审核中 2: 已审核add_time添加时间upd_time更新时间hot_mumber热销品数量is_promote是否是热销品
响应数据
{
"data": {
"total": 50,
"pagenum": "1",
"goods": [
{
"goods_id": 144,
"goods_name": "asfdsd",
"goods_price": 1,
"goods_number": 1,
"goods_weight": 1,
"goods_state": null,
"add_time": 1512954923,
"upd_time": 1512954923,
"hot_mumber": 0,
"is_promote": false
}
]
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
1.8.2. 添加商品
请求路径:goods请求方法:post请求参数
参数名参数说明备注
goods_name商品名称不能为空goods_cat以为’,'分割的分类列表不能为空goods_price价格不能为空goods_number数量不能为空goods_weight重量不能为空goods_introduce介绍可以为空pics上传的图片临时路径(对象)可以为空attrs商品的参数(数组),包含 动态参数 和 静态属性可以为空
请求数据
{
"goods_name":"test_goods_name2",
"goods_cat": "1,2,3",
"goods_price":20,
"goods_number":30,
"goods_weight":40,
"goods_introduce":"abc",
"pics":[
{"pic":"/tmp_uploads/30f08d52c551ecb447277eae232304b8"}
],
"attrs":[
{
"attr_id":15,
"attr_value":"ddd"
},
{
"attr_id":15,
"attr_value":"eee"
}
]
}
响应参数
参数名参数说明备注
total总共商品条数pagenum当前商品页数goods_id商品 IDgoods_cat以为’,'分割的分类列表goods_name商品名称goods_price价格goods_number数量goods_weight重量不能为空goods_state商品状态商品状态 0: 未通过 1: 审核中 2: 已审核add_time添加时间upd_time更新时间hot_mumber热销品数量is_promote是否是热销品pics上传的图片临时路径(对象)pics_id:图片 ID,goods_id:商品 ID,pics_big:大图,pics_mid:中图,pics_sma:小图attrs商品的参数(数组)goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:手动输入,还是单选,
响应数据
{
"data": {
"goods_id": 145,
"goods_name": "test_goods_name2",
"goods_price": 20,
"cat_id": 1,
"goods_number": 30,
"goods_weight": 40,
"goods_introduce": "abc",
"goods_big_logo": "",
"goods_small_logo": "",
"goods_state": 1,
"add_time": 1512962370,
"upd_time": 1512962370,
"hot_mumber": 0,
"is_promote": false,
"pics": [
{
"pics_id": 397,
"goods_id": 145,
"pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8",
"pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8",
"pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8"
}
],
"attrs": [
{
"goods_id": 145,
"attr_id": 15,
"attr_value": "ddd",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
},
{
"goods_id": 145,
"attr_id": 15,
"attr_value": "eee",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
}
]
},
"meta": {
"msg": "创建商品成功",
"status": 201
}
}
1.8.3. 根据 ID 查询商品
请求路径:goods/:id请求方法:get请求参数
参数名参数说明备注
id商品 ID不能为空携带在url中
响应参数
参数名参数说明备注
total总共商品条数pagenum当前商品页数goods_id商品 IDgoods_name商品名称goods_price价格goods_number数量goods_weight重量不能为空goods_state商品状态商品状态 0: 未通过 1: 审核中 2: 已审核add_time添加时间upd_time更新时间hot_mumber热销品数量is_promote是否是热销品pics上传的图片临时路径(对象)pics_id:图片 ID,goods_id:商品 ID,pics_big:大图,pics_mid:中图,pics_sma:小图attrs商品的参数(数组)goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:手动输入,还是单选,
响应数据
{
"data": {
"goods_id": 145,
"goods_name": "test_goods_name2",
"goods_price": 20,
"goods_number": 30,
"goods_weight": 40,
"goods_introduce": "abc",
"goods_big_logo": "",
"goods_small_logo": "",
"goods_state": 1,
"add_time": 1512962370,
"upd_time": 1512962370,
"hot_mumber": 0,
"is_promote": false,
"pics": [
{
"pics_id": 397,
"goods_id": 145,
"pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8",
"pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8",
"pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8"
}
],
"attrs": [
{
"goods_id": 145,
"attr_id": 15,
"attr_value": "ddd",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
},
{
"goods_id": 145,
"attr_id": 15,
"attr_value": "eee",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
}
]
},
"meta": {
"msg": "创建商品成功",
"status": 201
}
}
1.8.4. 编辑提交商品
请求路径:goods/:id请求方法:put请求参数
参数名参数说明备注
id商品 ID不能为空携带在url中goods_name商品名称不能为空goods_price价格不能为空goods_number数量不能为空goods_weight重量不能为空goods_introduce介绍可以为空pics上传的图片临时路径(对象)可以为空attrs商品的参数(数组)可以为空
请求数据
{
"goods_name":"test_goods_name2",
"goods_price":20,
"goods_number":30,
"goods_weight":40,
"goods_introduce":"abc",
"pics":[
{"pic":"/tmp_uploads/30f08d52c551ecb447277eae232304b8"}
],
"attrs":[
{
"attr_id":15,
"attr_value":"ddd"
},
{
"attr_id":15,
"attr_value":"eee"
}
]
}
响应参数
参数名参数说明备注
total总共商品条数pagenum当前商品页数goods_id商品 IDgoods_name商品名称goods_price价格goods_number数量goods_weight重量不能为空goods_state商品状态商品状态 0: 未通过 1: 审核中 2: 已审核add_time添加时间upd_time更新时间hot_mumber热销品数量is_promote是否是热销品pics上传的图片临时路径(对象)pics_id:图片 ID,goods_id:商品 ID,pics_big:大图,pics_mid:中图,pics_sma:小图attrs商品的参数(数组)goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:手动输入,还是单选,
响应数据
{
"data": {
"goods_id": 145,
"goods_name": "test_goods_name2",
"goods_price": 20,
"goods_number": 30,
"goods_weight": 40,
"goods_introduce": "abc",
"goods_big_logo": "",
"goods_small_logo": "",
"goods_state": 1,
"add_time": 1512962370,
"upd_time": 1512962370,
"hot_mumber": 0,
"is_promote": false,
"pics": [
{
"pics_id": 397,
"goods_id": 145,
"pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8",
"pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8",
"pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8"
}
],
"attrs": [
{
"goods_id": 145,
"attr_id": 15,
"attr_value": "ddd",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
},
{
"goods_id": 145,
"attr_id": 15,
"attr_value": "eee",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
}
]
},
"meta": {
"msg": "创建商品成功",
"status": 201
}
}
1.8.5. 删除商品
请求路径:goods/:id请求方法:delete请求参数
参数名参数说明备注
id商品 ID不能为空携带在url中
响应数据
{
"data": null,
"meta": {
"msg": "删除成功",
"status": 200
}
}
###同步商品图片
请求路径:goods/:id/pics请求方法:put请求参数
参数名参数说明备注
id商品 ID不能为空携带在url中pics商品图片集合如果有 pics_id 字段会保留该图片,如果没有 pics_id 但是有 pic 字段就会新生成图片数据
请求数据
;[
{ pic: 'tmp_uploads/db28f6316835836e97653b5c75e418be.png' },
{
pics_id: 397,
goods_id: 145,
pics_big: 'uploads/goodspics/big_30f08d52c551ecb447277eae232304b8',
pics_mid: 'uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8',
pics_sma: 'uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8'
}
]
响应数据
{
"data": {
"goods_id": 96,
"goods_name": "iphoneXX",
"goods_price": 2,
"goods_number": 22,
"goods_weight": 22,
"goods_introduce": null,
"goods_big_logo": "./uploads/goods/20171113/483a3b8e99e534ec3e4312dbbaee7c9d.jpg",
"goods_small_logo": "./uploads/goods/20171113/small_483a3b8e99e534ec3e4312dbbaee7c9d.jpg",
"goods_state": 0,
"is_del": "1",
"add_time": 1510045904,
"upd_time": 1512635159,
"delete_time": 1512635159,
"hot_mumber": 0,
"is_promote": false,
"pics": [
{
"pics_id": 383,
"goods_id": 96,
"pics_big": "uploads/goodspics/big_6f5750132abd3f5b2b93dd722fcde653.jpg",
"pics_mid": "uploads/goodspics/mid_6f5750132abd3f5b2b93dd722fcde653.jpg",
"pics_sma": "uploads/goodspics/sma_6f5750132abd3f5b2b93dd722fcde653.jpg"
}
],
"attrs": [
{
"goods_id": 96,
"attr_id": 15,
"attr_value": "eee",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
},
{
"goods_id": 96,
"attr_id": 15,
"attr_value": "ddd",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
}
]
},
"meta": {
"msg": "更新成功",
"status": 200
}
}
###同步商品属性
请求路径:goods/:id/attributes请求方法:put请求参数
参数名参数说明备注
id商品 ID不能为空携带在url中
请求数据
;[
{
attr_id: 15,
attr_value: 'ddd'
},
{
attr_id: 15,
attr_value: 'eee'
}
]
响应数据
{
"data": {
"goods_id": 96,
"goods_name": "iphoneXX",
"goods_price": 2,
"goods_number": 22,
"goods_weight": 22,
"goods_introduce": null,
"goods_big_logo": "./uploads/goods/20171113/483a3b8e99e534ec3e4312dbbaee7c9d.jpg",
"goods_small_logo": "./uploads/goods/20171113/small_483a3b8e99e534ec3e4312dbbaee7c9d.jpg",
"goods_state": 0,
"is_del": "1",
"add_time": 1510045904,
"upd_time": 1512635159,
"delete_time": 1512635159,
"hot_mumber": 0,
"is_promote": false,
"pics": [
{
"pics_id": 383,
"goods_id": 96,
"pics_big": "uploads/goodspics/big_6f5750132abd3f5b2b93dd722fcde653.jpg",
"pics_mid": "uploads/goodspics/mid_6f5750132abd3f5b2b93dd722fcde653.jpg",
"pics_sma": "uploads/goodspics/sma_6f5750132abd3f5b2b93dd722fcde653.jpg"
}
],
"attrs": [
{
"goods_id": 96,
"attr_id": 15,
"attr_value": "eee",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
},
{
"goods_id": 96,
"attr_id": 15,
"attr_value": "ddd",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
}
]
},
"meta": {
"msg": "更新成功",
"status": 200
}
}
###商品图片处理必须安装 GraphicsMagick
linux
apt-get install GraphicsMagick
Mac OS X
brew install GraphicsMagick
Windows 点击下载
1.9. 图片上传
请求路径:upload请求方法:post请求参数
参数名参数说明备注
file上传文件
响应数据
{
"data": {
"tmp_path": "tmp_uploads/ccfc5179a914e94506bcbb7377e8985f.png",
"url": "http://127.0.0.1:8888tmp_uploads/ccfc5179a914e94506bcbb7377e8985f.png"
},
"meta": {
"msg": "上传成功",
"status": 200
}
}
1.10. 订单管理
1.10.1. 订单数据列表
请求路径:orders请求方法:get请求参数
参数名参数说明备注
query查询参数可以为空pagenum当前页码不能为空pagesize每页显示条数不能为空user_id用户 ID可以为空pay_status支付状态可以为空is_send是否发货可以为空order_fapiao_title[‘个人’,‘公司’]可以为空order_fapiao_company公司名称可以为空order_fapiao_content发票内容可以为空consignee_addr发货地址可以为空
响应数据
{
"data": {
"total": 1,
"pagenum": "1",
"goods": [
{
"order_id": 47,
"user_id": 133,
"order_number": "itcast-59e7502d7993d",
"order_price": 322,
"order_pay": "1",
"is_send": "是",
"trade_no": "",
"order_fapiao_title": "个人",
"order_fapiao_company": "",
"order_fapiao_content": "办公用品",
"consignee_addr": "a:7:{s:6:\"cgn_id\";i:1;s:7:\"user_id\";i:133;s:8:\"cgn_name\";s:9:\"王二柱\";s:11:\"cgn_address\";s:51:\"北京市海淀区苏州街长远天地大厦305室\";s:7:\"cgn_tel\";s:11:\"13566771298\";s:8:\"cgn_code\";s:6:\"306810\";s:11:\"delete_time\";N;}",
"pay_status": "1",
"create_time": 1508331565,
"update_time": 1508331565
}
]
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
1.10.2. 修改订单状态
请求路径:orders/:id请求方法:put请求参数
参数名参数说明备注
id订单 ID不能为空携带在url中is_send订单是否发货1:已经发货,0:未发货order_pay订单支付支付方式 0 未支付 1 支付宝 2 微信 3 银行卡order_price订单价格order_number订单数量pay_status支付状态订单状态: 0 未付款、1 已付款
请求数据说明
所有请求数据都是增量更新,如果参数不填写,就不会更新该字段 响应数据
{
"data": {
"order_id": 67,
"user_id": 1,
"order_number": "itcast-g7kmck71vjaujfgoi",
"order_price": 20,
"order_pay": "0",
"is_send": "否",
"trade_no": "",
"order_fapiao_title": "个人",
"order_fapiao_company": "",
"order_fapiao_content": "",
"consignee_addr": "",
"pay_status": "0",
"create_time": 1512533560,
"update_time": 1512533560,
"goods": [
{
"id": 82,
"order_id": 67,
"goods_id": 96,
"goods_price": 333,
"goods_number": 2,
"goods_total_price": 999
},
{
"id": 83,
"order_id": 67,
"goods_id": 95,
"goods_price": 666,
"goods_number": 5,
"goods_total_price": 999
}
]
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
1.10.3. 查看订单详情
请求路径:orders/:id请求方法:get请求参数
参数名参数说明备注
id订单 ID不能为空携带在url中
响应数据
{
"data": {
"order_id": 67,
"user_id": 1,
"order_number": "itcast-g7kmck71vjaujfgoi",
"order_price": 20,
"order_pay": "0",
"is_send": "否",
"trade_no": "",
"order_fapiao_title": "个人",
"order_fapiao_company": "",
"order_fapiao_content": "",
"consignee_addr": "",
"pay_status": "0",
"create_time": 1512533560,
"update_time": 1512533560,
"goods": [
{
"id": 82,
"order_id": 67,
"goods_id": 96,
"goods_price": 333,
"goods_number": 2,
"goods_total_price": 999
},
{
"id": 83,
"order_id": 67,
"goods_id": 95,
"goods_price": 666,
"goods_number": 5,
"goods_total_price": 999
}
]
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
1.10.4. 修改地址
省市区/县联动效果 - 结合ElementUI的 el-cascader 组件
1.10.5. 查看物流信息
请求路径:/kuaidi/:id
请求方法:get
供测试的物流单号:1106975712662
响应数据:
{
"data": [
{
"time": "2018-05-10 09:39:00",
"ftime": "2018-05-10 09:39:00",
"context": "已签收,感谢使用顺丰,期待再次为您服务",
"location": ""
},
{
"time": "2018-05-10 08:23:00",
"ftime": "2018-05-10 08:23:00",
"context": "[北京市]北京海淀育新小区营业点派件员 顺丰速运 95338正在为您派件",
"location": ""
},
{
"time": "2018-05-10 07:32:00",
"ftime": "2018-05-10 07:32:00",
"context": "快件到达 [北京海淀育新小区营业点]",
"location": ""
},
{
"time": "2018-05-10 02:03:00",
"ftime": "2018-05-10 02:03:00",
"context": "快件在[北京顺义集散中心]已装车,准备发往 [北京海淀育新小区营业点]",
"location": ""
},
{
"time": "2018-05-09 23:05:00",
"ftime": "2018-05-09 23:05:00",
"context": "快件到达 [北京顺义集散中心]",
"location": ""
},
{
"time": "2018-05-09 21:21:00",
"ftime": "2018-05-09 21:21:00",
"context": "快件在[北京宝胜营业点]已装车,准备发往 [北京顺义集散中心]",
"location": ""
},
{
"time": "2018-05-09 13:07:00",
"ftime": "2018-05-09 13:07:00",
"context": "顺丰速运 已收取快件",
"location": ""
},
{
"time": "2018-05-09 12:25:03",
"ftime": "2018-05-09 12:25:03",
"context": "卖家发货",
"location": ""
},
{
"time": "2018-05-09 12:22:24",
"ftime": "2018-05-09 12:22:24",
"context": "您的订单将由HLA(北京海淀区清河中街店)门店安排发货。",
"location": ""
},
{
"time": "2018-05-08 21:36:04",
"ftime": "2018-05-08 21:36:04",
"context": "商品已经下单",
"location": ""
}
],
"meta": { "status": 200, "message": "获取物流信息成功!" }
}
1.11. 数据统计
1.11.1. 基于时间统计的折线图
请求路径:reports/type/1
请求方法:get
响应数据
需要合并的选项
options
: {
title
: {
text
: '用户来源'
},
tooltip
: {
trigger
: 'axis',
axisPointer
: {
type
: 'cross',
label
: {
backgroundColor
: '#E9EEF3'
}
}
},
grid
: {
left
: '3%',
right
: '4%',
bottom
: '3%',
containLabel
: true
},
xAxis
: [
{
boundaryGap
: false
}
],
yAxis
: [
{
type
: 'value'
}
]
}