Authored by xuhongyun

将文档独立出来

*.iml
.idea/
.ipr
.iws
*~
~*
*.diff
*.patch
*.bak
.DS_Store
Thumbs.db
.project
.*proj
.svn/
*.swp
*.swo
*.pyc
*.pyo
.build
node_modules
_site
sea-modules
spm_modules
.cache
dist
coverage
.sass-cache
public/css/
... ...
关于接口定义规约
-----------------------
## 通用规则
* 所有的服务接口都用POST方法请求
* 提交参数采用RAW的JSON文本,
* 返回数据也是JSON
* 字段命名采用驼峰的方式分隔多个单词
## 关于服务接口命名
> 模块名+/+方法名称
例如:`auth/getAccoutList` 账户权限模块的获取账号列表
## 关于请求参数
入参采用RAW的JSON文本
还是以获取账号列表的接口定义为例
范例:
```json
{
"account":"test",//用户名
"truename":"张三",//姓名
"email":"hb@126.com",//邮件
"phone":"1850021224",//电话
"identity":"32054778955412"//身份
}
```
## 关于返回
* 要有返回码
* 返回数据是json
范例:
```json
{
"code":200,
"data":{
"list":[
{
"username":"xxx",
"truename":"xxx",
"email":"xxx@126.com",
"phone":"18602554147",
"identity_cn":"sdasd",
"status":"0",
"pid":123,
"create_time":1423234344
},...
],
"offset":0,
"limit":50,
"total":1000
},
"message":""
}
```
\ No newline at end of file
... ...
##权限和账户接口定义
### 登陆
> 接口名: `portal.auth.login`
#### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|user|string|admin|用户名|
|password|string|123456|密码|
#### 返回
``` json
{
"code":200
"data":{
auth:{
pid:1,
name:'admin'
},
menu:[{
title: '优惠码管理',
parent: 'menu-template',
menu: [{
title: '优惠码列表',
href: '/coupon/list'
}]
}, {
title: '供应商管理',
parent: 'menu-template',
menu: [{
title:'创建供应商',
href:'/supplier/index'
}]
}, {
title:'品牌管理',
parent:'menu-template',
menu: [{
title:'品牌管理',
href:'/brand/index'
}]
}]
}
}
```
### 获取账户列表
> 接口名: `portal.acct.list`
### 添加账号
### 根据PID分配权限
### 根据PID分配角色
### 根据PID修改信息
### 查询部门结构信息
### 修改部门信息
### 添加部门信息
... ...
品牌管理接口服务定义
---------------------
## 品牌列表查询
> 接口名: 'brand/getBrandList'
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|brandId|Number|43|品牌id|
|status|Number|0|状态|
|brandLevel|string|A|品牌级别|
|startTime|String|2016-01-12|开始时间|
|endTime|String|2016-01-13|结束时间|
|page|Number|2|第几页|
|size|Number|50|每页条数|
---------------------
### 返回
``` json
{
"code":200,
"message":"请求成功",
"data": {
"list": [
{
"id": "",
"brandIco": "", //logo图片地址
"brandNameCn": "", //品牌中文名字
"brandNameEn": "", //品牌英文名字
"brandLevel": "", //级别
"brandTonality": "", //调性分
"createTime": "", //创建时间
"status": 1 //1为开启状态,0为关闭状态
}
],
"offset": 0,
"limit": 50,
"total": 1000
}
}
```
## 添加品牌接口
> 接口名: 'brand/addBrand'
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|status|String|add|状态|
|brandName|string|nike|品牌名称|
|brandNameEn|string|aaaa|英文名称|
|brandDomain|string|yoho|二级域名|
|brandIco|string|http://static.yohobuy.com/newheader/img/logo_e.png|品牌logo|
|brandLevel|string|KA|品牌级别|
|promotionLevel|int|2|品牌推广星级|
|mainCategory|int|2|主营类目|
|brandHeadstream|int|2|发源地|
|brandTypes|int|2|品牌类型|
|brandUrl|string|www.baidu.com|品牌网址|
|brandIntro|string|xxxxxx|品牌介绍|
|brandOutline|string|xxxxxx|品牌简述|
|brandFounder|string|jay|品牌主理人|
|brandStyle|string|街头|品牌风格|
|brandNature|int|4|品牌性质|
|brandTonality|string|xxxx|调性指数|
---------------------
### 返回
``` json
{
"code":200,
"message":"请求成功"
}
```
## 编辑/开启/关闭品牌接口
> 接口名: 'brand/editBrand'
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|brandId|Number|43|品牌id|
|status|String|edit|状态,关闭传0,开启传1|
|brandName|string|nike|品牌名称|
|brandNameEn|string|aaaa|英文名称|
|brandDomain|string|yoho|二级域名|
|brandIco|string|http://static.yohobuy.com/newheader/img/logo_e.png|品牌logo|
|brandLevel|string|KA|品牌级别|
|promotionLevel|int|2|品牌推广星级|
|mainCategory|int|2|主营类目|
|brandHeadstream|int|2|发源地|
|brandTypes|int|2|品牌类型|
|brandUrl|string|www.baidu.com|品牌网址|
|brandIntro|string|xxxxxx|品牌介绍|
|brandOutline|string|xxxxxx|品牌简述|
|brandFounder|string|jay|品牌主理人|
|brandStyle|string|街头|品牌风格|
|brandNature|int|4|品牌性质|
|brandTonality|string|xxxx|调性指数|
---------------------
### 返回
``` json
{
"code":200,
"message":"请求成功"
}
```
## 编辑时品牌详情接口
> 接口名: 'brand/getBrandDetail'
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|brandId|Number|43|品牌id|
---------------------
### 返回
``` json
{
"code":200,
"message":"请求成功",
"data": {
"brandName": "",
"brandNameEn": "",
"brandDomain": "",
"brandIco": "",
"brandLevel": "",
"promotionLevel": "",
"mainCategory": "",
"brandHeadstream": "",
"brandTypes": "",
"brandUrl": "",
"brandIntro": "",
"brandOutline": "",
"brandFounder": "",
"brandStyle": "",
"brandNature": "",
"brandTonality": ""
}
}
```
## 品牌获取选择选项的枚举接口
> 接口名: 'brand/getSelectItems'
### 返回
``` json
{
"code":200,
"message":"请求成功",
"data": {
"brandLevelItems": [{ //品牌级别
"id": "",
"name": ""
}],
"mainCategoryItems": [{ //主营类目
"id": "",
"name": ""
}],
"brandHeadstreamItems": [{ //发源地
"id": "",
"name": ""
}],
"brandTypesItems": [{ //品牌类型
"id": "",
"name": ""
}],
"brandStyleItems": [{ //品牌风格
"id": "",
"name": ""
}],
"brandNatureItems": [{ //品牌性质
"id": "",
"name": ""
}],
}
}
```
## 获取品牌列表接口
> 接口名: 'brand/getBrandName'
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|idOrName|Number|43|品牌id或者名称|
---------------------
### 返回
``` json
{
"code":200,
"message":"请求成功",
"data": {
"list": [
{
"id": "",
“name”:""
}
]
}
}
```
\ No newline at end of file
... ...
## CMS接口定义
\ No newline at end of file
... ...
## 资源位接口定义
### 查询资源
> GET `/resources/query`
#### 入参
-----------------------------------------------------------
|参数名 |必填 |类型 |示例值 |描述 |
|------ |---- |---- |------ |---- |
|name |否 |string |男首页 |资源名称 |
|sort_id |否 |int |2 |分类编号 |
|platform_id|否 |int |1 |平台编号 |
|page |否 |int |1 |页数 |
#### 返回
``` json
{
"code":200
"data":{
"number":1,
"size":10,
"totalPages":28,
"totalElements":275,
"content":[
{
"id":8,
"name":"男首页",
"sort_id":2,
"sort_name":"男首",
"platform_id":1,
"platform_name":"yohoApp",
"code":"201504091403001",
"match_code":"",
"create_time":1430378310,
"sort_list":[
{
"sort_id":2,
"sort_name":"男首",
"platform_id":"1",
"create_time":1430304722,
"status":1
}
],
"plat_list":[
{
"platform_id":1,
"platform_name":"yohoApp",
"platform_flag":"iphone",
"create_time":1430300615,
"status":1
}
]
}
]
}
}
```
-----------------------------
|参数名 |描述 |
|------ |---- |
|number |页数 |
|size |每页个数 |
|totalPages |总页数 |
|totalElements |总个数 |
|content |内容 |
|id |资源编号 |
|name |资源名称 |
|sort_id |分类编号 |
|sort_name |分类名称 |
|platform_id|平台编号 |
|platform_name|平台名称 |
|code |资源码 |
|match_code |配对码 |
|create_time|创建时间 |
|sort_list |分类列表 |
|plat_list |平台列表 |
\ No newline at end of file
... ...
优惠码接口服务定义
---------------------
## 查询优惠码列表接口
> 接口名: `portal.couponCode.getList`
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|id|int|123|优惠码标示|
|name|string|50元优惠码|优惠码名称|
|req_department|string|零售部/运营部|申请部门|
|state|int|1|状态|
|limit|int|20|分页|
|offset|int|0|第几个|
---------------------
### 返回
``` json
{
"code":200
"list":
[
{
"id":123,
"name":"50元优惠券",
"limit_times":10,
"req_department":"零售部/运营部",
"limit_date_from":"2016-01-16 00:00:00",
"limit_date_to":"2016-01-20 00:00:00",
"describe":"xxxxxxx",
"staff":"李四",
"state":0
}
],
"total":100,
"limit":20,
"offset:0
}
```
## 查询优惠码详情接口
> 接口名: `portal.couponCode.detail`
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|id|int|123|优惠码标示|
---------------------------
### 返回
```json
{
"code":200
"info":
{
"id":123,
"name":"50元优惠券",
"limit_times":10,
"code":"sdads123123,dasd",
"req_department":"零售部/运营部",
"limit_date_from":"2016-01-16 00:00:00",
"limit_date_to":"2016-01-20 00:00:00",
"promotion_info":
{
"type": "discount_market_price",
"condition": {
"amount_at_least": 100,
"count_at_least": 1
},
"action": {
"discount": 0.88,
"discount_at_most": 100
}
},
"user_use_limit":10,
"user_source_limit":"iSO",
"user_type_limit":"new_reg",//no_buy:未购买,new_reg:新注册
"describe":"xxxxxxx",
"staff":"李四",
"state":0
}
}
```
> 促销信息详细参考[优惠码表设计](http://git.dev.yoho.cn/yoho30/yohobuy-order/blob/master/promotion_code.md)
## 新增优惠码接口(修改)
> 接口名: `portal.couponCode.add`
> 接口名: `portal.couponCode.update`
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|id|int|123|优惠码标示(修改的时候需要提交)|
|name|string|50元优惠码|优惠码名称|
|code|string|VA32434|码值|
|req_department|string|零售部/运营部|申请部门|
|limit_date_from|string|2016-01-16 00:00:00|优惠开始时间|
|limit_date_to|string|2016-01-16 00:00:00|优惠结束时间|
|promotion_info|string|参见如下json|促销信息|
|user_use_limit|int|10|使用限制次数|
|user_source_limit|string|iOS|用户来源|
|user_type_limit|string|no_buy|用户类型(未购买,新注册)|
|describe|string|xxxx|描述|
|staff|string|李四|员工|
----------------------------
```json
{
"type": "discount_market_price",
"condition": {
"amount_at_least": 100,
"count_at_least": 1
},
"action": {
"discount": 0.88,
"discount_at_most": 100
}
}
```
### 返回
```json
{
"code":20001,
"message":"保存成功!"
}
//or
{
"code":5001,
"message":"保存失败"
}
```
## 审核优惠码接口(通过,驳回,作废)
> 接口名:`portal.couponCode.setState`
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|id|int|123|优惠码标示(修改的时候需要提交)|
|state|int|1|状态|
-------------------
### 返回
```json
{
"code":20001,
"message":"设置成功!"
}
//or
{
"code":50002,
"message":"设置失败"
}
```
---------------------------
其他接口,可以暂时写死的方式
## 登陆
> 接口名: portal.system.login
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|user|string|admin|用户名|
|password|string|123321|密码|
-----------------------------
### 返回
```json
{
"code":20003
"data":
{
"auth":123123
}
}
//or
{
"code":50003
"message": "登录失败!"
}
```
## 获取权限菜单
> 接口名: portal.system.menu
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|auth|int|123123|后台用户ID|
-----------------------------
### 返回
```json
{
list:[
{
title:'首页',
href:'/',
icon:'home'
},
{
title:'页面模板',
parent:true,
list:[
{
title:'个人资料',
href:'/chart02',
icon:'check'
},
{
title:'帮助页',
href:'/test',
icon:'puzzle-piece'
},
{
title:'404',
href:'/404',
icon:'bug'
}
]
}
]
}
```
## 获取部门信息
```json
var department =
{
list:[
{
"name":"零售部",
"id":1,
"sub":[
{
"name":"商品部",
"id":11
}
]
}
]
}
```
\ No newline at end of file
... ...
## 1.数据库
### 1.1 优惠码详情(yhb_promotion.promotion_code)
#### sql 脚本
```sql
CREATE TABLE `promotion_code` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(225) NOT NULL,
`limit_times` int(11) NOT NULL DEFAULT '0',
`code` varchar(255) NOT NULL,
`req_department` varchar(255) DEFAULT NULL,
`limit_date_from` varchar(255) NOT NULL,
`limit_date_to` varchar(255) NOT NULL,
`describe` varchar(255) DEFAULT '',
`promotion_info` text NOT NULL,
`user_use_limit` int(11) DEFAULT '1',
`user_source_limit` varchar(255) DEFAULT NULL,
`user_type_limit` varchar(255) DEFAULT NULL,
`creator_id` int(11) DEFAULT NULL,
`create_time` varchar(255) DEFAULT NULL,
`status` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `code_index` (`code`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
```
#### 说明
| 列名 | 说明 | 可用范围 |
| -------- | -------- |-------- |
|name| 名称| |
|limit_times| 本优惠码使用次数限制|默认0,表示无限制|
| code | 码值 | 用`,`分割|
| req_department | 请求部门 | |
| limit_date_from | 使用期限,从xxx | 格式如下: 2015-12-31 12:23:12|
| limit_date_to | 使用期限,到xxx | 格式如下: 2015-12-31 12:23:12|
| describe | 描述信息 | |
| user_use_limit|用户使用本优惠码次数限制|默认1,只能使用1次|
| user_source_limit | 用户来源 | IOS, Android|
| user_type_limit | 会员身份 | 1(新注册),2(注册未购买)|
| creator_id | 创建者 | |
| create_time | 创建时间 | 格式如下: 2015-12-31 12:23:12 |
| promotion_info | 优惠信息 | JSON格式|
| status| 优惠码状态|0: 正常 1:失效|
其中,表中`promotion_info`优惠信息是json格式,如下:
```javascript
{
"type": "discount_market_price",
"condition": {
"amount_at_least": 100,
"count_at_least": 1
},
"action": {
"discount": 0.88,
"discount_at_most": 100
}
}
```
`type` 对应下面3种:
- discount_market_price: 吊牌价折扣
- discount_sale_price: 销售价折扣
- discount_total: 满减
`condition` 是优惠码使用条件,总金额最少和购买件数最少
`action` 是具体优惠多少钱:
- discount: 如果是折扣类型,`discount`表示多少折;如果是满减类型,则表示减少多少钱。
- discount_at_most: 最多优惠多少钱
### 1.2 优惠码使用记录(yhb_promotion.user_promotion_code_history)
#### SQL 脚本
```sql
CREATE TABLE `user_promotion_code_history` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`promotion_code` varchar(255) NOT NULL,
`used_time` varchar(255) DEFAULT NULL,
`order_code` varchar(255) DEFAULT NULL,
`is_use` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
#### 说明
| 列名 | 说明 |
| -------- | -------- |
|uid| 用户ID| |
|promotion_code| 码值|
| used_time | 使用时间 | 格式如下: 2015-12-31 12:23:12|
| describe | 描述信息 |
| order_code|订单号|
| is_use| 是否使用 | 0 未使用,1 已经使用|
## 2. 流程
![alt text](flow.png "flow")
## 3. 接口
### 3.1 Gateway接口
#### 3.1.1 查询优惠码详情
请求:
- POST URL: `api.yoho.cn`
- content-type: `'x-www-form-urlencoded'`
- body: `uid=123456&code=dx12999&method=app.promotion_code.get`
响应:
```javascript
{
"is_availble": true,
"code_info" : {
"id": 12,
"name": "8折",
"limit_times": 0,
"describe": "this is describe",
"discount_type": "discount_market_price",
"amount_at_least": 200,
"count_at_least": 1,
"discount": 0.8,
"discount_at_most": 100
"status": 0
}
}
```
| json | 说明 |
| -------- | -------- |
| is_availble | 用户对优惠码是否可用 |
| code_info | 优惠码信息 |
### 3.2 服务接口
#### 3.2.1 Promotion 查询优惠码详情
入参: `uid, promotion_code`
响应:同上面的gateway接口
判断用户对某个优惠码是否可用的逻辑:
1.判断Promotion Code本身是否有效:
- 根据promotion_code,获取promotion_code详情
- 是否在有效期内
- 状态是否启用
- 全局使用次数是否达到限制(当前不做)
2.判断用户对promotion_code是否可用:
- 判断用户来源是否匹配(IOS,Android)
- 判断用户类型是否匹配(当前只匹配新注册,注册未下单)
- 判断用户对优惠码使用限制(需要从user_promotion_code_history表中找出记录, 当前只要有记录,则认为已经使用,后续考虑退货、订单取消的情况)
#### 3.2.2 Promotion 添加用户使用优惠码记录
... ...
供应商接口服务定义
---------------------
## 供应商信息查询接口
> 接口名: `/interface/supplier/info`
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|id|int|123|供应商信息查询|
---------------------
### 返回
``` json
{
//公司名称
"supplier_name":"南京新与力广告传媒",
// 营业执照号
"supplier_code":"1234567890",
// 成立日期
"found_time":"2015-1-1",
// 营业期限-start
"start_time":"2015-1-1",
// 营业期限-end
"end_time":"2020-1-1",
// 注册所在地
"registered_address":"中华民国",
// 法人代表姓名
"contact_person":"XXX",
// 法人身份证电子版
"selectIdImage":"https://www.baidu.com/img/baidu_jgylogo3.gif",
// 注册资本
"registered_capital":"1W",
// 营业执照电子版
"selectCodeImage":"https://www.baidu.com/img/baidu_jgylogo3.gif",
// 经营许可证
"selectLicImage":"https://www.baidu.com/img/baidu_jgylogo3.gif",
// 税务登记证
"selecttaxImage":"https://www.baidu.com/img/baidu_jgylogo3.gif",
// 经营范围
"business_range":"小吃",
// 公司联系电话
"contact_phone":"00100100",
// 公司联系地址
"contact_address":"XX省XX市XXX街道10号",
// 联系人
"linkman":"XXX",
// 联系电话
"phone":"001001001001",
// 传真
"fax":"00100100",
// 邮件地址
"email":"XXX@qq.com",
// 网址
"email":"www.google.cn",
// 开户行
"bank_name":"ICBC",
// 开户账号
"bank_account":"001010001001"
}
```
\ No newline at end of file
... ...
合同管理接口定义
---------------------
### 筛选数据及分页
``` json
{
brandName: [{ //供应商名称
value: '', //value值
name: '' //显示的文字
}],
supplierName: [{ //品牌名称
value: '', //value值
name: '' //显示的文字
}],
pagination: 143 //总页数
}
```
### 合同创建 -> 列表数据
``` json
{
data: [{
name: '', //合同名称
number: '', //合同编号
supplier: '', //供应商名称
brand: ['PUCCA', '111', '333'], //包含品牌(格式:数组)
pattern: '代销入库', //经营模式
attr: '主合同', //合同属性
timeFrom: '2015-12-31', //有效期开始
timeTo: '2016-12-30', //有效期结束
recentOperation: '创建', //最近操作
status: 0 //状态(0:审核中, 2:审核驳回, 3:暂存)
}, {
...
}]
}
```
### 合同创建 -> 添加合同 -> 列表数据
``` json
{
data: [{
name: '', //供应商
pattern: '代销入库', //经营模式
operate: true //操作(true: 可添加主合同, false: 可添加补充合同)
}, {
...
}]
}
```
### 合同管理 -> 列表数据
``` json
{
data: [{
name: '', //合同名称
number: '16YH33', //合同编号
supplier: '', //供应商名称
brand: ['PUCCA'], //包含品牌(格式:数组)
pattern: '代销入库', //经营模式
attr: '主合同', //合同属性
timeFrom: '2015-12-31', //有效期开始
timeTo: '2016-12-30', //有效期结束
operate: 1 (0: 解约, 1: 生效中, 2: 合同过期) //操作状态
}, {
...
}]
}
```
### 合同审核 -> 列表数据
``` json
{
data: [{
name: '', //合同名称
number: '16YH33', //合同编号
supplier: '', //供应商名称
brand: ['PUCCA'], //包含品牌(格式:数组)
pattern: '代销入库', //经营模式
attr: '主合同', //合同属性
time: '2016-01-13', //创建时间
timeFrom: '2015-12-31', //有效期开始
timeTo: '2016-12-30' //有效期结束
}, {
...
}]
}
```
## 添加品牌接口
> 接口名: `/interface/brand/add`
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|contractsdatas|string|JSON|合同名称|
|agreement_end_time|string|2016-01-05|有效期开始时间|
|agreement_start_time|string|2016-01-05|有效期结束时间|
|agreement_name|string|xxxx|合同名称|
|agreement_code|string|xxxx|合同编号|
|settlement_period|string|1|结算周期|
|invoice_type|string|1|发票类型|
|selectImage|string|http://img01.yohoboys.com/o_1a9mt81m1to11hg0d5t13de1idj7.png|纸质合同|
|id|int|1|品牌ID|
---------------------
``` json
[
{"operation_service":{"type":"1","name":"代运营-YOHO运营","value":"0.00"},
"photographic_service":{"type":"1","name":"使用摄影服务","value":"0.00"},
"size_service":{"type":"1","name":"使用尺码测量","value":"0.00"},
"storage_service_koudian":"0.00",
"ruledatas":[
{
"maxSort":{"name":"所有一级目录","value":"0"},
"middleSort":{"name":"所有二级目录","value":"0"},
"smallSort":{"name":"所有三级目录","value":"0"},
"sort":{"name":"所有四级目录","value":"0"},
"commissions":[{"zhe":"0","kou":"0.00"}],
"discount":"0",
"key":"0-0-0-0"
}
],
"supplier_name":{"name":"上海热力贸易有限公司","value":"1120"}
}
]
```
### 返回
``` json
{
"code":200,
"message":"添加成功!"
}
```
## 修改品牌接口
> 接口名: `/interface/brand/update`
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|contractsdatas|string|JSON|合同名称|
|agreement_end_time|string|2016-01-05|有效期开始时间|
|agreement_start_time|string|2016-01-05|有效期结束时间|
|agreement_name|string|xxxx|合同名称|
|agreement_code|string|xxxx|合同编号|
|settlement_period|string|1|结算周期|
|invoice_type|string|1|发票类型|
|selectImage|string|http://img01.yohoboys.com/o_1a9mt81m1to11hg0d5t13de1idj7.png|纸质合同|
|id|int|1|品牌ID|
---------------------
``` json
[
{"operation_service":{"type":"1","name":"代运营-YOHO运营","value":"0.00"},
"photographic_service":{"type":"1","name":"使用摄影服务","value":"0.00"},
"size_service":{"type":"1","name":"使用尺码测量","value":"0.00"},
"storage_service_koudian":"0.00",
"ruledatas":[
{
"maxSort":{"name":"所有一级目录","value":"0"},
"middleSort":{"name":"所有二级目录","value":"0"},
"smallSort":{"name":"所有三级目录","value":"0"},
"sort":{"name":"所有四级目录","value":"0"},
"commissions":[{"zhe":"0","kou":"0.00"}],
"discount":"0",
"key":"0-0-0-0"
}
],
"supplier_name":{"name":"上海热力贸易有限公司","value":"1120"}
}
]
```
### 返回
``` json
{
"code":200,
"message":"添加成功!"
}
```
... ...
# 产品管理接口服务定义
---------------------
# 添加(更新)品类接口
> 接口名: `/product/update`
### 入参
-------------------------
|属性名称|类型|例子|说明|是否必填|
|--------|----|----|----|--------|
|categoryName|string|nike|品类名称|是|
|categoryAbbr|string|n|品类缩写|是|
|firstCategory|string|根目录|一级分类|否|
|secondCategory|string|根目录|二级分类|否|
|thirdCategory|string|根目录|三级分类|否|
|categorySort|number|0|排序|否|
|categoryStatus|boolean|true|状态|否|
|id|int|1|品类ID|
---------------------
### 返回
``` json
{
"code":200,
"message":"添加成功!"
}
```
# 获取品类列表
> 接口名: `/product/getClassList`
### 入参
-------------------------
|属性名称|类型|例子|说明|是否必填|
|-------|----|----|----|-------|
--------------------------------
### 返回
``` json
{
code:200,
message:"",
data: {
list: [{
categoryName: '', //品类名称
categoryAbbr: '', //品类缩写
firstCategory: '', //一级分类
secondCategory: '', //二级分类
thirdCategory: '', //三级分类
categorySort: '', //排序
categoryStatus: '',//状态,
id: '', //品类ID
}]
page: '', //当前第几页
size: '', //每页多少条
}
}
```
# 添加(更新)产品属性接口
> 接口名: `/product/updateAttr`
### 入参
-------------------------
|属性名称|类型|例子|说明|是否必填|
|--------|----|----|----|--------|
|attrName|string|衣长|属性名称|未知|
|saleType|string|非销售属性|销售类型|未知|
|inputType|string|单选按钮|输入类型|未知|
|enableSearch|boolean|true|启用搜索|未知|
|maxVal|number|50|最大输入值|未知|
|hasAlias|boolean|true|是否允许别名|未知|
|attrSort|number|0|排序|未知|
|attrAttr|string|abc|属性值|未知|
|attrComment|string|abc|备注|否|
|id|int|1|商品属性ID|
---------------------
### 返回
``` json
{
"code":200,
"message":"添加成功!"
}
```
# 获取产品属性列表接口
> 接口名: `/product/getAttr`
### 入参
-------------------------
|属性名称|类型|例子|说明|是否必填|
|--------|----|----|----|--------|
|id|int|1|商品属性ID|
---------------------
### 返回
``` json
{
code:200,
message:"",
data: {
list: [{
attrName: '', //属性名称
saleType: '', //销售类型
inputType: '', //输入类型
enableSearch: '', //启用搜索
id: '', //品类ID
}]
page: '', //当前第几页
size: '', //每页多少条
}
}
```
# 获取产品列表
> 接口名: `/product/getList`
-------------------------
|属性名称|类型|例子|说明|是否必填|
|--------|----|----|----|--------|
| | | | | |
---------------------
### 返回
``` json
{
code:200,
message:"",
data: {
list: [{
//...
}]
page: '', //当前第几页
size: '', //每页多少条
}
}
```
\ No newline at end of file
... ...
# 店铺接口服务定义
---------------------
## 创建店铺
> 接口名:`/shops/createShop`
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|shop_name|String|得宝旗舰店|店铺名称|
|shop_nature|int|1|店铺性质(1 旗舰店 2 专卖店)|
|shop_domain|String|debao|店铺域名|
|create_pid|int|1|创建人ID|
|shop_logo|String|http://img11.static.yhbimg.com/yhb-img01/2015/09/11/02/01f42dff5d5bd383af1025eea1218cbccc.jpg?imageView/{mode}/w/{width}/h/{height}|店铺logo|
|shop_intro|String|秉承以设计为核心的创新理念,用专业的思维方式将自然与科技、传统与革新、技艺与时尚三者良好融合,着重面料材质与软式廓型的品质互动,更好的诠释“less is more”的设计理念。|店铺简介|
|shop_admin|JSON数组|||
|shop_relation|JSON数组|||
|website_url|JSON数组|["www.paperworks.com.cn"]||
|other_url|JSON数组|["www.paperworks.com.cn","https:\/\/jnby.tmall.com\/"]||
|shop_address|JSON数组|||
---------------------
### 返回
``` json
{
"code":200
"message":"创建成功"
"shop_id":12
}
```
## 获取店铺列表
> 接口名: `/shops/getShopList`
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|page|int|2|第几页|
|size|int|50|每页条数|
|shops_id|int|15|店铺ID|
|shop_name|String|得宝旗舰店|店铺名称|
|shop_nature|int|1|店铺性质(1 旗舰店 2 专卖店)|
|status|int|1|状态(1开启 0 关闭)|
|check_status|int|300|审核状态(100 暂存 200 待审核 300 审核通过 900 驳回)|
|supplier_id|int|950|供应商ID|
|brand_id|int|928|品牌ID|
---------------------------
### 返回
```json
{
"code":200
"info":
{
"id":123,
"name":"50元优惠券",
"limit_times":10,
"code":"sdads123123,dasd",
"req_department":"零售部/运营部",
"limit_date_from":"2016-01-16 00:00:00",
"limit_date_to":"2016-01-20 00:00:00",
"promotion_info":
{
"type": "discount_market_price",
"condition": {
"amount_at_least": 100,
"count_at_least": 1
},
"action": {
"discount": 0.88,
"discount_at_most": 100
}
},
"user_use_limit":10,
"user_source_limit":"iSO",
"user_type_limit":"new_reg",//no_buy:未购买,new_reg:新注册
"describe":"xxxxxxx",
"staff":"李四",
"state":0
}
}
```
## 店铺同步
> 接口名: `/shops/saveOrUpdateShop`
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|shop_name|String|得宝旗舰店|店铺名称|
|shop_nature|int|1|店铺性质(1 旗舰店 2 专卖店)|
|shop_domain|String|debao|店铺域名|
|create_pid|int|1|创建人ID|
shop_logo|String|http://img11.static.yhbimg.com/yhb-img01/2015/09/11/02/01f42dff5d5bd383af1025eea1218cbccc.jpg?imageView/{mode}/w/{width}/h/{height}|店铺logo|
|shop_intro|String|秉承以设计为核心的创新理念,用专业的思维方式将自然与科技、传统与革新、技艺与时尚三者良好融合,着重面料材质与软式廓型的品质互动,更好的诠释“less is more”的设计理念。|店铺简介|
|shop_admin|JSON数组|||
|shop_relation|JSON数组|||
|website_url|JSON数组|["www.paperworks.com.cn"]||
|other_url|JSON数组|["www.paperworks.com.cn","https:\/\/jnby.tmall.com\/"]||
|shop_address|JSON数组|||
---------------------------
### 返回
```json
{
"code":200
"message":"修改成功"
}
```
## 根据店铺名查看是否存在
> 接口名:`/shops/checkByShopName`
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|shop_name|String|得宝旗舰店|店铺名称|
|shops_id|int|15|店铺ID|
-------------------
### 返回
```json
{
"code":20001,
"message":"设置成功!"
}
//or
{
"code":50002,
"message":"设置失败"
}
```
## 根据店铺域名查看是否存在
> 接口名: `/shops/checkByShopDomain`
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|shop_domain|String|debao|店铺域名|
|shops_id|int|15|店铺ID|
-----------------------------
### 返回
```json
{
"code":20003
"data":
{
"auth":123123
}
}
//or
{
"code":50003
"message": "登录失败!"
}
```
## 获取店铺详情
> 接口名: `/shops/getDetailByShopId`
### 入参
-------------------------
|属性名称|类型|例子|说明|
|--------|----|----|----|
|shops_id|int|15|店铺ID|
-----------------------------
### 返回
```json
{
list:[
{
title:'首页',
href:'/',
icon:'home'
},
{
title:'页面模板',
parent:true,
list:[
{
title:'个人资料',
href:'/chart02',
icon:'check'
},
{
title:'帮助页',
href:'/test',
icon:'puzzle-piece'
},
{
title:'404',
href:'/404',
icon:'bug'
}
]
}
]
}
```
... ...
供应商接口服务定义
---------------------
#### 创建供应商页接口
> 接口名: ''
##### 入参
|属性名称|类型|例子|说明|
|--------|----|----|----|
|id|int|10|id|
|status|int|100|供应商状态(100:暂存,200:审核中,300:通过, 900: 驳回)|
|timeSort|string|asc,desc|排序(asc:正序, desc:倒序)|
#### 返回
``` json
{
"code": 200,
"message": "请求成功",
"dade":[{
//id
"id":10,
//供应商名称
"supplierName":"南京新与力广告传媒",
// 更新时间
"updateTime":"2016-01-14 16:30:23",
// 供应商状态
"status":100,
// 是否冻结
"isFreeze":"Y",
// 最近操作
"operations":"1"
}]
}
```
#### 供应商列表页接口
> 接口名: ''
##### 入参
|属性名称|类型|例子|说明|
|--------|----|----|----|
|supplierId|int|10|供应商名称|
|status|int|100|供应商状态(100:暂存,200:审核中,300:通过, 900: 驳回)|
|isFreeze|string|Y,N|生效状态(Y:已冻结, N:生效中)|
##### 返回
> 同创建供应商页接口
#### 供应商审核列表页接口
> 接口名: ''
##### 入参
|属性名称|类型|例子|说明|
|--------|----|----|----|
|supplierId|int|100|供应商名称|
##### 返回
> 同创建供应商页接口
#### 供应商新增编辑接口
> 接口名: ''
##### 入参
|属性名称|类型|例子|说明|
|--------|----|----|----|
|status|int|100|供应商状态(100:暂存,200:提交审核)|
|supplierName|String|nike|供应商名称|
|supplierCode|String|123456|营业执照号|
|foundTime|Date|2012-12-12|成立日期|
|beginOperateTime|Date|2012-12-12|经营开始时间|
|endOperateTime|Date|2012-12-12|经营结束时间|
|registeredAddress|string|澳门|公司注册地址|
|legalPerson|string|张三|法人代表姓名|
|registeredCapital|string|nike|注册资本|
|contactPhone|string|nike|公司联系电话|
|contactAddress|string|xx省xx市|公司联系地址|
||||必填项,选填项不在其中|
##### 返回
``` json
{
"code": 200,
"message": "保存成功",
}
```
#### 供应商审核接口
> 接口名: ''
##### 入参
|属性名称|类型|例子|说明|
|--------|----|----|----|
|supplierId|int|10|供应商名称|
|status|int|100|供应商状态(100:暂存,200:审核中,300:通过, 900: 驳回)|
##### 返回
``` json
{
"code": 200,
"message": "提交成功",
}
```
#### 供应商冻结解冻接口
> 接口名: ''
##### 入参
|属性名称|类型|例子|说明|
|--------|----|----|----|
|supplierId|int|10|供应商名称|
|isFreeze|string|Y,N|生效状态(Y:已冻结, N:生效中)|
##### 返回
``` json
{
"code": 200,
"message": "修改成功",
}
```
##### 查看供应商接口
> 接口名: ''
##### 入参
|属性名称|类型|例子|说明|
|--------|----|----|----|
|id|int|123|供应商信息查询|
##### 返回
``` json
{
//公司名称
"supplierName":"南京新与力广告传媒",
// 营业执照号
"supplierCode":"1234567890",
// 成立日期
"foundTime":"2015-1-1",
// 营业期限-start
"beginOperateTime":"2015-1-1",
// 营业期限-end
"endOperateTime":"2020-1-1",
// 注册所在地
"registeredAddress":"中华民国",
// 法人代表姓名
"legalPerson":"XXX",
// 法人身份证电子版
"legalIdentityCard":"https://www.baidu.com/img/baidu_jgylogo3.gif",
// 注册资本
"registeredCapital":"1W",
// 营业执照电子版
"":"https://www.baidu.com/img/baidu_jgylogo3.gif",
// 经营许可证
"":"https://www.baidu.com/img/baidu_jgylogo3.gif",
// 税务登记证
"":"https://www.baidu.com/img/baidu_jgylogo3.gif",
// 经营范围
"businessRange":"小吃",
// 公司联系电话
"contactPhone":"00100100",
// 公司联系地址
"contactAddress":"XX省XX市XXX街道10号",
// 联系人
"linkman":"XXX",
// 联系电话
"phone":"001001001001",
// 传真
"fax":"00100100",
// 邮件地址
"email":"XXX@qq.com",
// 网址
"url":"www.google.cn",
// 开户行
"bankName":"ICBC",
// 开户账号
"bankAccount":"001010001001"
}
```
\ No newline at end of file
... ...
# 供应商列表接口定义
### 筛选数据及分页
``` json
{
supplierName: [{ //供应商名称
value: '', //value值
name: '' //显示的文字
}],
pagination: 143 //总页数
}
```
### 创建供应商 -> 列表数据
``` json
{
data: [{
name: '', //供应商名字
updateTime: '', //更新时间
status: 2 //状态值 (0:审核中, 2:审核驳回)
}, {
...
}]
}
```
### 供应商列表 -> 列表数据
``` json
{
data: [{
name: '心飞扬有限公司', //供应商名字
updateTime: '', //更新时间
recentOperation: '编辑', //最近操作
status: 2, //状态值 (0:审核中, 1:审核成功)
valid: 1 //是否有效 (0:冻结, 1:生效)
}, {
...
}]
}
```
### 供应商审核 -> 列表数据
``` json
{
data: [{
name: '', //供应商名字
updateTime: '', //更新时间
recentOperation: '' //最近操作
}, {
...
}]
}
```
# 品牌管理列表接口定义
### 筛选数据及分页
``` json
{
brandName: [{ //品牌名称
value: '', //value值
name: '' //显示的文字
}],
brandLevel: [{ //品牌级别
name: '' //显示的文字
}],
pagination: 143 //总页数
}
```
### 品牌管理 -> 列表数据
``` json
{
data: [{
logo: '', //logo图片地址
nameCn: '心飞扬', //品牌中文名字
nameEn: 'xinfeiyang', //品牌英文名字
level: 'KA', //级别
score: '0', //调性分
time: '2016-01-18 11:18:20', //创建时间
operate: 1 //1为开启状态,0为关闭状态
}, {
...
}]
}
```
# 合同管理列表接口定义
### 筛选数据及分页
``` json
{
brandName: [{ //供应商名称
value: '', //value值
name: '' //显示的文字
}],
supplierName: [{ //品牌名称
value: '', //value值
name: '' //显示的文字
}],
pagination: 143 //总页数
}
```
### 合同创建 -> 列表数据
``` json
{
data: [{
name: '', //合同名称
number: '', //合同编号
supplier: '', //供应商名称
brand: ['PUCCA', '111', '333'], //包含品牌(格式:数组)
pattern: '代销入库', //经营模式
attr: '主合同', //合同属性
timeFrom: '2015-12-31', //有效期开始
timeTo: '2016-12-30', //有效期结束
recentOperation: '创建', //最近操作
status: 0 //状态(0:审核中, 2:审核驳回, 3:暂存)
}, {
...
}]
}
```
### 合同创建 -> 添加合同 -> 列表数据
``` json
{
data: [{
name: '', //供应商
pattern: '代销入库', //经营模式
operate: true //操作(true: 可添加主合同, false: 可添加补充合同)
}, {
...
}]
}
```
### 合同管理 -> 列表数据
``` json
{
data: [{
name: '', //合同名称
number: '16YH33', //合同编号
supplier: '', //供应商名称
brand: ['PUCCA'], //包含品牌(格式:数组)
pattern: '代销入库', //经营模式
attr: '主合同', //合同属性
timeFrom: '2015-12-31', //有效期开始
timeTo: '2016-12-30', //有效期结束
operate: 1 (0: 解约, 1: 生效中, 2: 合同过期) //操作状态
}, {
...
}]
}
```
### 合同审核 -> 列表数据
``` json
{
data: [{
name: '', //合同名称
number: '16YH33', //合同编号
supplier: '', //供应商名称
brand: ['PUCCA'], //包含品牌(格式:数组)
pattern: '代销入库', //经营模式
attr: '主合同', //合同属性
time: '2016-01-13', //创建时间
timeFrom: '2015-12-31', //有效期开始
timeTo: '2016-12-30' //有效期结束
}, {
...
}]
}
```
\ No newline at end of file
... ...