1. 程式人生 > 實用技巧 >電商管理後臺 API 介面文件

電商管理後臺 API 介面文件

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 的令牌
  • 響應資料
{
    "data": {
        "id": 500,
        "rid": 0,
        "username": "admin",
        "mobile": "123",
        "email": "[email protected]",
        "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": "[email protected]",
                "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 郵箱
  • 響應資料
{
    "data": {
        "id": 28,
        "username": "tige1200",
        "mobile": "test",
        "type": 1,
        "openid": "",
        "email": "[email protected]",
        "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": "[email protected]",
    "mg_state": 0
  },
  "meta": {
    "msg": "設定狀態成功",
    "status": 200
  }
}

1.3.4. 根據 ID 查詢使用者資訊

  • 請求路徑:users/:id
  • 請求方法:get
  • 請求引數
引數名 引數說明 備註
id 使用者 ID 不能為空攜帶在url中
  • 響應引數
引數名 引數說明 備註
id 使用者 ID
role_id 角色 ID
mobile 手機號
email 郵箱
  • 響應資料
{
    "data": {
        "id": 503,
        "username": "admin3",
        "role_id": 0,
        "mobile": "00000",
        "email": "[email protected]"
    },
    "meta": {
        "msg": "查詢成功",
        "status": 200
    }
}

1.3.5. 編輯使用者提交

  • 請求路徑:users/:id
  • 請求方法:put
  • 請求引數
引數名 引數說明 備註
id 使用者 id 不能為空 引數是url引數:id
email 郵箱 可以為空
mobile 手機號 可以為空
  • 響應引數
引數名 引數說明 備註
id 使用者 ID
role_id 角色 ID
mobile 手機號
email 郵箱
  • 響應資料
/* 200表示成功,500表示失敗 */
{
    "data": {
        "id": 503,
        "username": "admin3",
        "role_id": 0,
        "mobile": "111",
        "email": "[email protected]"
    },
    "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引數:id
rid 角色 id 不能為空引數body引數
  • 響應引數
引數名 引數說明 備註
id 使用者 ID
role_id 角色 ID
mobile 手機號
email 郵箱
  • 響應資料
{
    "data": {
        "id": 508,
        "rid": "30",
        "username": "asdf1",
        "mobile": "123123",
        "email": "[email protected]"
    },
    "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
  {
    "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 角色 ID
roleName 角色名稱
roleDesc 角色描述
  • 響應資料
{
    "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 角色描述
  • 響應資料
{
    "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 分類 ID
cat_name 分類名稱
cat_pid 分類父 ID
cat_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應該設定為 0
cat_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 分類引數 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 商品的引數(陣列),包含 動態引數靜態屬性 可以為空
  • 請求資料
{
  "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:手動輸入,還是單選,
  • 響應資料
{
    "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

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 元件

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'
              }
            ]
          }