前端学习(1857)vue之电商管理系统电商系统之配置api接口服务器并用postman调试接口

# 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. 通用返回状态说明| *状态码* | *含义*                | *说明*                                              |
| -------- | --------------------- | --------------------------------------------------- |
| 200      | OK                    | 请求成功                                            |
| 201      | CREATED               | 创建成功                                            |
| 204      | DELETED               | 删除成功                                            |
| 400      | BAD REQUEST           | 请求的地址不存在或者包含不支持的参数                |
| 401      | UNAUTHORIZED          | 未授权                                              |
| 403      | FORBIDDEN             | 被禁止访问                                          |
| 404      | NOT FOUND             | 请求的资源不存在                                    |
| 422      | Unprocesable entity   | [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误 |
| 500      | INTERNAL SERVER ERROR | 内部错误                                            |
|          |                       |                                                     |------## 1.2. 登录### 1.2.1. 登录验证接口- 请求路径:login
- 请求方法:post
- 请求参数| 参数名   | 参数说明 | 备注     |
| -------- | -------- | -------- |
| username | 用户名   | 不能为空 |
| password | 密码     | 不能为空 |- 响应参数| 参数名   | 参数说明    | 备注            |
| -------- | ----------- | --------------- |
| id       | 用户 ID     |                 |
| rid      | 用户角色 ID |                 |
| username | 用户名      |                 |
| mobile   | 手机号      |                 |
| email    | 邮箱        |                 |
| token    | 令牌        | 基于 jwt 的令牌 |- 响应数据```json
{"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     | 用户数据集合 |      |- 响应数据```json
{"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       | 用户 ID     |      |
| rid      | 用户角色 ID |      |
| username | 用户名      |      |
| mobile   | 手机号      |      |
| email    | 邮箱        |      |- 响应数据```json
{"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 |- 响应数据```json
{"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      | 用户 ID  |      |
| role_id | 角色 ID  |      |
| mobile  | 手机号   |      |
| email   | 邮箱     |      |- 响应数据```json
{"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参数:id` |
| email  | 邮箱     | 可以为空                    |
| mobile | 手机号   | 可以为空                    |- 响应参数| 参数名  | 参数说明 | 备注 |
| ------- | -------- | ---- |
| id      | 用户 ID  |      |
| role_id | 角色 ID  |      |
| mobile  | 手机号   |      |
| email   | 邮箱     |      |- 响应数据```json
/* 200表示成功,500表示失败 */
{"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` |- 响应参数
- 响应数据```json
{"data": null,"meta": {"msg": "删除成功","status": 200}
}
```### 1.3.7. 分配用户角色- 请求路径:users/:id/role
- 请求方法:put
- 请求参数| 参数名 | 参数说明 | 备注                       |
| ------ | -------- | -------------------------- |
| id     | 用户 ID  | 不能为空`参数是url参数:id` |
| rid    | 角色 id  | 不能为空`参数body参数`     |- 响应参数| 参数名  | 参数说明 | 备注 |
| ------- | -------- | ---- |
| id      | 用户 ID  |      |
| role_id | 角色 ID  |      |
| mobile  | 手机号   |      |
| email   | 邮箱     |      |- 响应数据```json
{"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       | 权限 ID      |      |
| authName | 权限说明     |      |
| level    | 权限层级     |      |
| pid      | 权限父 ID    |      |
| path     | 对应访问路径 |      |- 响应数据 type=list```json{"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```json{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
- 响应数据```json
{"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` 属性- 响应数据```json
{"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   | 角色 ID  |      |
| roleName | 角色名称 |      |
| roleDesc | 角色描述 |      |- 响应数据```json
{"data": {"roleId": 40,"roleName": "admin2","roleDesc": "admin2Desc"},"meta": {"msg": "创建成功","status": 201}
}
```### 1.5.3. 根据 ID 查询角色- 请求路径:roles/:id
- 请求方法:get
- 请求参数| 参数名 | 参数说明 | 备注                  |
| ------ | -------- | --------------------- |
| :id    | 角色 ID  | 不能为空`携带在url中` |- 响应参数| 参数名   | 参数说明 | 备注 |
| -------- | -------- | ---- |
| roleId   | 角色 ID  |      |
| roleName | 角色名称 |      |
| roleDesc | 角色描述 |      |- 响应数据```json
{"data": {"roleId": 31,"roleName": "测试角色","roleDesc": "测试负责人"},"meta": {"msg": "获取成功","status": 200}
}
```### 1.5.4. 编辑提交角色- 请求路径:roles/:id
- 请求方法:put
- 请求参数| 参数名   | 参数说明 | 备注                  |
| -------- | -------- | --------------------- |
| :id      | 角色 ID  | 不能为空`携带在url中` |
| roleName | 角色名称 | 不能为空              |
| roleDesc | 角色描述 | 可以为空              |- 响应数据```json
{"data": {"roleId": 31,"roleName": "测试角色","roleDesc": "测试角色描述"},"meta": {"msg": "获取成功","status": 200}
}
```### 1.5.5. 删除角色- 请求路径:roles/:id
- 请求方法:delete
- 请求参数| 参数名 | 参数说明 | 备注                  |
| ------ | -------- | --------------------- |
| :id    | 角色 ID  | 不能为空`携带在url中` |- 响应数据```json
{"data": null,"meta": {"msg": "删除成功","status": 200}
}
```### 1.5.6. 角色授权- 请求路径:roles/:roleId/rights
- 请求方法:post
- 请求参数:通过 `请求体` 发送给后端| 参数名  | 参数说明               | 备注                                                         |
| ------- | ---------------------- | ------------------------------------------------------------ |
| :roleId | 角色 ID                | 不能为空`携带在url中`                                        |
| rids    | 权限 ID 列表(字符串) | 以 `,` 分割的权限 ID 列表(获取所有被选中、叶子节点的key和半选中节点的key, 包括 1,2,3级节点) |- 响应数据```json
{"data": null,"meta": {"msg": "更新成功","status": 200}
}
```### 1.5.7. 删除角色指定权限- 请求路径:roles/:roleId/rights/:rightId- 请求方法:delete- 请求参数| 参数名   | 参数说明 | 备注                  || -------- | -------- | --------------------- || :roleId  | 角色 ID  | 不能为空`携带在url中` || :rightId | 权限 ID  | 不能为空`携带在url中` |- 响应数据说明 - 返回的data, 是当前角色下最新的权限数据- 响应数据```json{"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 分别表示显示一层二层三层分类列表<br />【可选参数】如果不传递,则默认获取所有级别的分类 |
| pagenum  | 当前页码值         | 【可选参数】如果不传递,则默认获取所有分类                   |
| pagesize | 每页显示多少条数据 | 【可选参数】如果不传递,则默认获取所有分类                   |- 响应参数| 参数名    | 参数说明     | 备注 |
| --------- | ------------ | ---- |
| cat_id    | 分类 ID      |      |
| cat_name  | 分类名称     |      |
| cat_pid   | 分类父 ID    |      |
| cat_level | 分类当前层级 |      |- 响应数据```json
{"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应该设置为  `0`      |
| cat_name  | 分类名称  | 不能为空                                                    |
| cat_level | 分类层级  | 不能为空,`0`表示一级分类;`1`表示二级分类;`2`表示三级分类 |- 响应数据```json
{"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    | 分类参数 ID                                    |      |
| attr_name  | 分类参数名称                                   |      |
| cat_id     | 分类参数所属分类                               |      |
| attr_sel   | only:输入框(唯一) many:后台下拉列表/前台单选框 |      |
| attr_write | manual:手工录入 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     | 商品 ID      |                                        |
| goods_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           | 商品的参数(数组),包含 `动态参数` 和 `静态属性` | 可以为空 |- 请求数据```json
{"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     | 商品 ID                    |                                                              |
| goods_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:手动输入,还是单选, |- 响应数据```json
{"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     | 商品 ID                    |                                                              |
| 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,"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     | 商品 ID                    |                                                              |
| 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,"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 [点击下载](https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick-binaries/1.3.27/GraphicsMagick-1.3.27-Q8-win64-dll.exe/download)## 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. 修改地址1. [省市区/县联动效果 - 结合ElementUI的 el-cascader 组件](https://github.com/iceyangcc/provinces-china)### 1.10.5. 查看物流信息+ 请求路径:/kuaidi/:id+ 请求方法:get+ 供测试的物流单号:1106975712662+ 响应数据:```json{"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- 响应数据- 需要合并的选项```jsoptions: {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'}]}```

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418712.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[原]Jenkins(十二)---jenkins管理员用户无法登陆解决办法Access Denied

/** * lihaibo * 文章内容都是根据自己工作情况实践得出。 *如有错误&#xff0c;请指正 * 版权声明&#xff1a;本博客欢迎转发&#xff0c;但请保留原作者信息! http://www.cnblogs.com/horizonli/p/5337295.html */ 一、问题出现的原因&#xff1a; 如下图&#xff0c;在…

quartz定时任务时间设置

https://www.cnblogs.com/a8457013/p/8515939.html

复利计算--结对1.0,做汉堡,结对2.0

一、项目需求: 12. 即要追求利益&#xff0c;又要面对不可预知的金融投资风险&#xff0c; “不能把鸡蛋放在同一个篮子里”&#xff0c;所以有必要进行组合投资。 通过上述计算与对比&#xff0c;可以帮助客户进行投资决策。 客户&#xff1a;那么能否帮我记录下一笔一笔不同…

Java抓取淘宝/天猫商品详情

https://segmentfault.com/a/1190000008313617

Python列表和元组

Python是没有数组的概念&#xff0c;但是和数组比较相近的概念是列表和元素。 下面两个例子展示列表和元组。 # codingutf-8 # 元组 students (小明, 小黄, 小李, 小郑) print students[2] # codingutf-8 # 列表 students [小明, 小黄, 小张, 小花] print students[1] 元组和…

js 生成二维码

https://www.jianshu.com/p/b53eae520de4 https://www.runoob.com/w3cnote/javascript-qrcodejs-library.html

前端学习(1859)vue之电商管理系统电商系统之梳理项目结构

vue ui打开 app.vue <template><div id"app">app根组件</div> </template><script>export default {name: app,} </script><style> #app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: a…

使用ArrayList时设置初始容量的重要性

https://blog.csdn.net/hyxhbj1/article/details/80937673 https://blog.csdn.net/tb9125256/article/details/80920997

木棒,POJ(1011)

题目链接&#xff1a;http://poj.org/problem?id1011 解题报告&#xff1a; #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm>using namespace std;const int maxn 70;int n,sum,aim,num,a[maxn];bool used[maxn];bool…

前端学习(1860)vue之电商管理系统电商系统之渲染login组件并且实现路由重定向

vue ui打开 app.vue <template><div id"app"><router-view></router-view></div> </template><script>export default {name: app,} </script><style> #app {font-family: Avenir, Helvetica, Arial, sans-s…

CAEmitterLayer实现粒子效果

在iOS 5中&#xff0c;苹果引入了一个新的CALayer子类叫做CAEmitterLayer。CAEmitterLayer是一个高性能的粒子引擎&#xff0c;被用来创建实时例子动画如&#xff1a;烟雾&#xff0c;火&#xff0c;雨等等这些效果。 CAEmitterLayer看上去像是许多CAEmitterCell的容器&#xf…

前端学习(1861)vue之电商管理系统电商系统之设置背景色并在中央绘制登录盒子

1安装less_loader依赖 2安装less 3目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vueVue.use(Router)export default new Router({routes:[{path:/,redirect:/login},{path:/login,component:Login}] }) logi…

Cocoa编程学习笔记一

Cocoa编程学习笔记一 一、Cocoa的起源 Mac OS X的窗口服务器与UNIX中的X窗口服务器具有相同的功能&#xff1a;从用户那里接受事件&#xff0c;并将时间转发给应用程序&#xff0c;将应用程序发过来的数据显示在屏幕上。NeXTSTEP内置了一套库和工具&#xff0c;让开发人员以一种…

beetl 时间输出格式化

https://www.oschina.net/question/204344_2218080

前端学习(1862)vue之电商管理系统电商系统之绘制默认头像

修改头像位置 3目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vueVue.use(Router)export default new Router({routes:[{path:/,redirect:/login},{path:/login,component:Login}] }) login.vue <templat…

万事开头难,用HTML写的第一个界面,收获颇多

很开心跟了叶老师学习和做项目&#xff0c;基础不好&#xff0c;前期他会帮你安排好学习路线和计划。前期没有项目做&#xff0c;叶老师先让我先学习jQuery&#xff0c;给我推荐了一些网站&#xff0c;叫我一边学习&#xff0c;一边写博客。其实很早就有想写博客的想法&#xf…

前端学习(1863)vue之电商管理系统电商系统之绘制登录表单区域

修改头像位置 3目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vueVue.use(Router)export default new Router({routes:[{path:/,redirect:/login},{path:/login,component:Login}] }) login.vue <templat…