wuxw
2019-04-13 e0a9d7ba24929a21fd164dd0dc176a936364e72a
整合文档
44个文件已添加
4126 ■■■■■ 已修改文件
java110-doc/_Sidebar.md 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/api/openApi.md 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/develop.md 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/dictionary.md 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/home.md 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/all.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/center_01.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/center_02.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/code_01.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/comment_01.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/comment_02.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/console_01.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/docker_all.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/eureka_01.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/eureka_02.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/eureka_03.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/git_code.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/kafka_01.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/mysql_01.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/mysql_02.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/mysql_03.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/mysql_04.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/redis_01.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/redis_02.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/shop_01.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/store_01.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/user_01.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/zookeeper_01.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/images/zookeeper_02.jpg 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/install.md 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/services/code/code.md 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/services/code/code_test.md 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/services/comment/comment.md 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/services/comment/comment_test.md 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/services/order/order.md 423 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/services/order/order_config.md 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/services/shop/shop.md 683 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/services/shop/shop_test.md 552 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/services/store/store.md 463 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/services/store/store_test.md 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/services/user/user.md 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/services/user/user_test.md 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/日志记录.md 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/请求信息说明.md 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-doc/_Sidebar.md
New file
@@ -0,0 +1,18 @@
### ç›®å½•
1. [首页](home)
2. [安装部署](install)
3. [字典规格说明](dictionary)
4. [中心服务接口协议](order)
5. [中心服务配置文档](order_config)
6. [用户服务接口协议](user)
7. [用户服务接口测试文档](user_test)
8. [商品服务接口协议](shop)
9. [商品服务接口测试文档](shop_test)
10. [商户服务接口协议](store)
11. [商户服务接口测试文档](store_test)
12. [评论服务接口协议](comment)
13. [评论服务接口测试文档](comment_test)
14. [编码生成服务接口协议](code)
15. [编码生成服务接口测试文档](code_test)
16. [openApi æŽ¥å£æœåŠ¡è§„èŒƒ](openApi)
java110-doc/api/openApi.md
New file
@@ -0,0 +1,143 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-11-24|wuxw
### ç”¨æˆ·æ³¨å†Œ
#### è¯·æ±‚地址
http://localhost:8008/api/user.service.register
#### è¯·æ±‚方式
POST
#### è¯·æ±‚协议(header部分)
参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-:
app_id|1|String|30|应用ID|Api服务分配
transaction_id|1|String|30|请求流水号|不能重复 1000000000+YYYYMMDDhhmmss+6位序列
sign|1|String|-|签名|请参考签名说明
req_time|1|String|-|请求时间|YYYYMMDDhhmmss
#### è¯·æ±‚协议(body部分)
参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-:
name|1|String|50|用户名称|-
email|1|String|30|邮箱地址|邮箱地址1234@xx.com
password|1|String|128|密码|加盐码md5
tel|1|String|11|手机号|11位手机号
sex|?|String|1|性别|0表示男孩 1表示女孩
#### è¿”回协议
当http返回状态不为200 æ—¶è¯·æ±‚处理失败 body内容为失败的原因
当http返回状态为200时请求处理成功,body内容为返回内容,协议如下:
参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-:
userId|1|String|30|用户名称|用户ID
responseTime|?|String|16|时间|请求返回的时间
#### ä¸¾ä¾‹
请求报文:
```
{
     "name": "张三",
     "email": "928255095@qq.com",
     "password": "ERCBHDUYFJDNDHDJDNDJDHDUDHDJDDKDK",
     "sex": "0",
     "tel": "17797173943"
}
```
返回报文:
```
{"responseTime":"20181125230634","userId":"30516389265349820416"}
```
### ç”¨æˆ·ç™»å½•
#### è¯·æ±‚地址
http://api.java110.com:8008/api/user.service.login
#### è¯·æ±‚方式
POST
#### è¯·æ±‚协议(header部分)
请参考用户注册的头信息
#### è¯·æ±‚协议(body部分)
参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-:
username|1|String|50|用户名|-
passwd|1|String|30|密码|-
#### è¿”回协议
当http返回状态不为200 æ—¶è¯·æ±‚处理失败 body内容为失败的原因
当http返回状态为200时请求处理成功,body内容为返回内容,协议如下:
参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-:
userName|1|String|30|用户名称|用户名称
userId|1|String|30|用户ID|用户ID
token|?|String|64|鉴权码|鉴权码
#### ä¸¾ä¾‹
请求报文:
```
{
    "username":"admin",
    "passwd":"d57167e07915c9428b1c3aae57003807"
}
```
返回报文:
```
{"userName":"admin","userId":"10001","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqYXZhMTEwIiwianRpIjoiNmUzZGNjMzM3YmE4NGRmMTgxNzcwNDVjOTIzOTljOTAifQ.oUotKsoy1TXBS37isSvwKTQ9c_tTxZS48TA554QdbEU"}
```
### æ ¡éªŒç™»å½•
#### è¯·æ±‚地址
http://api.java110.com:8008/api/check.service.login
#### è¯·æ±‚方式
POST
#### è¯·æ±‚协议(header部分)
请参考用户注册的头信息
#### è¯·æ±‚协议(body部分)
参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-:
token|1|String|50|鉴权码|-
#### è¿”回协议
当http返回状态不为200 æ—¶è¯·æ±‚处理失败 body内容为失败的原因
当http返回状态为200时请求处理成功,body内容为返回内容,协议如下:
参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-:
userId|1|String|30|用户ID|用户ID
#### ä¸¾ä¾‹
请求报文:
```
{
    "token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqYXZhMTEwIiwianRpIjoiOGU1ZGY4NjBhYTUyNDgyNzk3MjBjZDFjNzg3ZDk4OTkifQ.PGwR_YjIDwn8sQFKr7CDmUk87MYt1lgi1s7a5OrE_Jg"
}
```
返回报文:
```
{"userId":"10001"}
```
java110-doc/develop.md
New file
@@ -0,0 +1,8 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-30|wuxw
### æœ¬é¡µå†…容
正在编写中。。。
java110-doc/dictionary.md
New file
@@ -0,0 +1,34 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-10-21|wuxw
### æœ¬é¡µå†…容
1、字典表spec概述
2、商户字典
## 1、字典表spec概述
模块名|domain|编码开头|举例
:-: | :-: | :-: | :-:
order|ORDERS|10|100001
business|BUSINESS|20|200001
user|USER|30|300001
user属性|USER_ATTR|31|310001
store|STORE|40|400001
store属性|STORE_ATTR|41|410001
shop|SHOP|50|500001
shop属性|SHOP_ATTR|51|510001
comment|COMMENT|60|600001
comment属性|COMMENT_ATTR|61|610001
## å•†æˆ·å­—典(spec domain ä¸º STORE_ATTR)
domain|spec_cd|name|description
:-: | :-: | :-: | :-:
STORE_ATTR|410102100001|品牌名称|品牌名称
STORE_ATTR|410102100002|收款账户|收款账户
STORE_ATTR|410102100003|营业起始日|营业起始日
STORE_ATTR|410102100004|营业结束日|营业结束日
STORE_ATTR|410102100005|营业起始时段|营业起始时段
STORE_ATTR|410102100006|营业结束时段|营业结束时段
java110-doc/home.md
New file
@@ -0,0 +1,197 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-24|wuxw
### æœ¬é¡µå†…容
1. [中心服务sql](#中心服务sql)
2. [用户服务sql](#用户服务sql)
3. [商品服务sql](#商品服务sql)
4. [商户服务sql](#商户服务sql)
5. [评论服务sql](#评论服务sql)
6. [日志相关sql](#日志相关sql)
7. [配置说明](#配置说明)
8. [二次开发](#二次开发)
### ç®€ä»‹
  å¾®å°åŒºæœåŠ¡æ–‡æ¡£ç”±java110团队编写,主要包括:安装教程,接口协议,配置说明和二次开发等
### å®‰è£…文档
  åŒ…括中间件部署,服务打包,数据配置,服务部署
    [安装部署](install)
### ç»´æŠ¤sql
  ##### ä¸­å¿ƒæœåŠ¡sql
  1. è®¢å•相关sql:
  ```
    -- è®¢å•表
    select a.* from c_orders a ;
    -- è®¢å•属性表
    select a.* from c_orders_attrs a;
    -- ä¸šåŠ¡è¡¨
    select a.* from c_business a;
    -- ä¸šåŠ¡å±žæ€§è¡¨
    select a.* from c_business_attrs a;
    -- è®¢å•类型表
    select a.* from c_order_type a;
    -- ä¸šåŠ¡ç±»åž‹è¡¨
    select a.* from c_business_type a;
  ```
  2. æœåŠ¡é…ç½®ç›¸å…³sql:
  ```
  -- å¤–部应用表
  select a.* from c_app a ;
  -- æœåŠ¡æä¾›è¡¨
  select a.* from c_service a;
  -- å¤–部应用 å’Œ æœåŠ¡å…³è”è¡¨
  select a.* from c_route a;
  -- æŸ¥è¯¢ç±» æœåŠ¡å®žçŽ°è¡¨
  select a.* from c_service_sql a;
  ```
  3. å…¬å…±é…ç½®sql:
  ```
    -- æ•°æ®æ˜ å°„表
    select a.* from c_mapping a;
    -- è§„格表
    select a.* from spec a;
    -- çŠ¶æ€è¡¨
    select a.* from c_status a;
  ```
  ##### ç”¨æˆ·æœåŠ¡sql
  ```
    -- ç”¨æˆ·Business表
    select a.* from business_user a;
    -- ç”¨æˆ·Business å±žæ€§è¡¨
    select a.* from business_user_attr a;
    -- ç”¨æˆ·Business物流地址
    select a.* from business_user_address a;
    -- ç”¨æˆ·Business标签
    select a.* from business_user_tag a;
    -- ç”¨æˆ·Business证件 è¡¨
    select a.* from business_user_credentials a;
    -- ç”¨æˆ·è¡¨
    select a.* from u_user a;
    -- ç”¨æˆ·å±žæ€§è¡¨
    select a.* from u_user_attr a;
    -- ç”¨æˆ·ç‰©æµåœ°å€
    select a.* from u_user_address a;
    -- ç”¨æˆ·æ ‡ç­¾
    select a.* from u_user_tag a;
    -- ç”¨æˆ·è¯ä»¶è¡¨
    select a.* from u_user_credentials a;
    -- ç”¨æˆ·ç­‰çº§
    select a.* from user_level a;
    -- ç”¨æˆ·ä½ç½®
    select a.* from u_location a;
    -- ç”¨æˆ·tag字典表
    select a.* from tag a;
    -- ç”¨æˆ·æ ‡ç­¾å­—典表
    select a.* from credentials a;
  ```
  #####  å•†å“æœåŠ¡sql
  ```
    -- å•†å“ Business è¡¨
    select a.* from business_shop a;
    -- å•†å“å±žæ€§ Business è¡¨
    select a.* from business_shop_attr a;
    -- å•†å“ç›®å½• Business è¡¨
    select a.* from business_shop_catalog a;
    -- å•†åº—照片 Business表
    select a.* from business_shop_photo a ;
    -- å•†å“å±žæ€§ ç¦»æ•£å€¼ Business表
    select a.* from business_shop_attr_param a;
    -- å•†å“ä¼˜æƒ  Business表
    select a.* from business_shop_preferential a ;
    -- å•†å“æè¿° Business表
    select a.* from business_shop_desc a ;
    -- å•†å“è¡¨
    select a.* from s_shop a;
    -- å•†å“å±žæ€§è¡¨
    select a.* from s_shop_attr a;
    -- å•†å“å±žæ€§ ç¦»æ•£å€¼è¡¨ï¼Œä¾‹å¦‚ æ‰‹æœºé¢œè‰² é»‘ ç™½ çº¢
    select a.* from s_shop_attr_param a;
    -- å•†å“ä¼˜æƒ è¡¨
    select a.* from s_shop_preferential a;
    -- å•†å“æè¿°
    select a.* from s_shop_desc a;
    -- å•†å“ç…§ç‰‡
    select a.* from s_shop_photo a;
    -- å•†å“ç›®å½•
    select a.* from s_shop_catalog a ;
    -- å•†å“è´­ä¹°è®°å½•
    select a.* from s_buy_shop a ;
    -- å•†å“è´­ä¹°å±žæ€§
    select a.* from s_buy_shop_attr a;
  ```
  ##### å•†æˆ·æœåŠ¡sql
  ```
    -- å•†æˆ· Business è¡¨
    select a.* from business_store a;
    -- å•†æˆ· å±žæ€§ Business è¡¨
    select a.* from business_store_attr a;
    -- å•†æˆ·ç…§ç‰‡ Business表
    select a.* from business_store_photo a ;
    -- å•†æˆ·è¯ä»¶ Business表
    select a.* from business_store_cerdentials a ;
    -- å•†æˆ·è¡¨
    select a.* from s_store a ;
    -- å•†æˆ·å±žæ€§è¡¨
    select a.* from s_store_attr a ;
    -- å•†æˆ·ç…§ç‰‡è¡¨
    select a.* from s_store_photo a ;
    -- å•†æˆ·è¯ä»¶è¡¨
    select a.* from s_store_cerdentials a ;
    -- å•†æˆ·ç§ç±»
    select a.* from store_type a ;
  ```
  ##### è¯„论服务sql
  ```
    -- è¯„论表
    select  a.* from c_comment a;
    -- è¯„论子表
    select a.* from c_sub_comment a;
    -- è¯„论属性表
    select a.* from c_sub_comment_attr a ;
    -- è¯„论照片表
    select  a.* from c_sub_comment_photo a;
    -- è¯„论分数表
    select a.* from c_comment_score a ;
  ```
  ##### æ—¥å¿—相关sql
  ```
  -- äº¤äº’日志记录表
  SELECT * FROM l_transaction_log a ;
  -- äº¤äº’日志报文记录表
  SELECT * FROM l_transaction_log_message a ;
  ```
### é…ç½®è¯´æ˜Ž
   ä¸»è¦è¯´æ˜Ž ä¸­å¿ƒæœåŠ¡é…ç½®
       [配置说明](center_config)
### äºŒæ¬¡å¼€å‘
  åŒ…括新建服务,新增配置,测试方法
      [二次开发](develop)
java110-doc/images/all.jpg
java110-doc/images/center_01.jpg
java110-doc/images/center_02.jpg
java110-doc/images/code_01.jpg
java110-doc/images/comment_01.jpg
java110-doc/images/comment_02.jpg
java110-doc/images/console_01.jpg
java110-doc/images/docker_all.jpg
java110-doc/images/eureka_01.jpg
java110-doc/images/eureka_02.jpg
java110-doc/images/eureka_03.jpg
java110-doc/images/git_code.jpg
java110-doc/images/kafka_01.jpg
java110-doc/images/mysql_01.jpg
java110-doc/images/mysql_02.jpg
java110-doc/images/mysql_03.jpg
java110-doc/images/mysql_04.jpg
java110-doc/images/redis_01.jpg
java110-doc/images/redis_02.jpg
java110-doc/images/shop_01.jpg
java110-doc/images/store_01.jpg
java110-doc/images/user_01.jpg
java110-doc/images/zookeeper_01.jpg
java110-doc/images/zookeeper_02.jpg
java110-doc/install.md
New file
@@ -0,0 +1,207 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-24|wuxw
### æœ¬é¡µå†…容
1. [docker å®‰è£…(推荐)](#docker-安装推荐)
2. [普通安装](#普通安装)
## docker å®‰è£…(推荐)
下载代码
```
  git clone https://github.com/java110/MicroCommunity.git
```
![下载代码](images/git_code.jpg)
1. mysql å®‰è£…
切换目录到
```
cd MicroCommunity/java110-config/docker/mysql
docker build -t java110/docker-mysql .
```
![mysql](images/mysql_01.jpg)
```
  docker run -ti --name mysql_test -e MYSQL_ROOT_PASSWORD=123456 -p3306:3306 -idt java110/docker-mysql:latest
  docker logs -f mysql_test
```
出现如下图安装成功
![mysql安装成功](images/mysql_02.jpg)
用工具登录 å¦‚下图:
![mysql_login](images/mysql_03.jpg)
![mysql_login](images/mysql_04.jpg)
安装完成
2. redis å®‰è£…
```
docker pull redis
docker run -ti --name redis_test -p6379:6379 -idt redis:latest
docker logs -f redis_test
```
![redis download](images/redis_01.jpg)
![redis install complate](images/redis_02.jpg)
3. zookeeper å®‰è£…
```
docker pull zookeeper
docker run -ti --name zookeeper_test -p2181:2181 -idt zookeeper:latest
docker logs -f zookeeper_test
```
![zookeeper_download](images/zookeeper_01.jpg)
![zookeeper install complate](images/zookeeper_02.jpg)
4. kafka å®‰è£…
```
docker pull wurstmeister/kafka
docker run --name kafka_test -e HOST_IP=localhost -e KAFKA_ADVERTISED_PORT=9092 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.31.199:2181 -e KAFKA_ADVERTISED_HOST_NAME=localhost -e ZK=zk -p 9092 --link zookeeper_test:zk -tdi wurstmeister/kafka
docker logs -f kafka_test
```
![kafka install](images/kafka_01.jpg)
注意 KAFKA_ZOOKEEPER_CONNECT=192.168.31.199:2181 æ¢æˆè‡ªå·±ä¸»æœºçš„IP端口
5. ç¼–译代码
配置hosts
dev.java110.com
dev.redis.java110.com
dev.zk.java110.com
dev.db.java110.com
dev.kafka.java110.com
修改 MicroCommunity/XXService/src/main/resources ä¸‹çš„application-dev(开发环境) application-prod(生产环境) application-test(测试环境) ä¸­çš„æ•°æ®åº“地址 kafka地址 zookeeper地址 redis地址等
XXService ä»£è¡¨ CenterService,CodeService,CommentService,ConsoleService,ShopService,StoreService,UserService ç­‰
```
mvn clean install
```
![mvn code](images/code_01.jpg)
第一次编译需要下载jar æ—¶é—´æœ‰ç‚¹é•¿
6. å¯åЍeureka æœåŠ¡
```
  cd MicroCommunity/eureka/docker
  chmod u+x onStart.sh
  sh onStart.sh
```
![eureka å¯åЍ](images/eureka_01.jpg)
![eureka å¯åЍ](images/eureka_02.jpg)
![eureka å¯åЍ](images/eureka_03.jpg)
注意:如果报 Cannot connect to the Docker daemon. Is the docker daemon running on this host?错,执行
下面代码
```
sudo gpasswd -a ${USER} docker
sudo service docker restart
```
退出后重新进入
7. ç¼–码生成服务(CodeService)
```
  cd MicroCommunity/CodeService/docker
  chmod u+x onStart.sh
  sh onStart.sh
```
![code install](images/code_01.jpg)
8. ä¸­å¿ƒæœåŠ¡(CenterService)
```
  cd MicroCommunity/CenterService/docker
  chmod u+x onStart.sh
  sh onStart.sh
```
![中心服务](images/center_01.jpg)
![中心服务](images/center_02.jpg)
9. è¯„论服务(CommentService)
```
  cd MicroCommunity/CommentService/docker
  chmod u+x onStart.sh
  sh onStart.sh
```
![评论服务](images/comment_01.jpg)
![评论服务](images/comment_02.jpg)
10. æŽ§åˆ¶æœåŠ¡(ConsoleService)
```
  cd MicroCommunity/ConsoleService/docker
  chmod u+x onStart.sh
  sh onStart.sh
```
![控制服务](images/console_01.jpg)
11. å•†å“æœåŠ¡(ShopService)
```
  cd MicroCommunity/ShopService/docker
  chmod u+x onStart.sh
  sh onStart.sh
```
![商品服务](images/shop_01.jpg)
12. å•†æˆ·æœåŠ¡(StoreService)
```
  cd MicroCommunity/StoreService/docker
  chmod u+x onStart.sh
  sh onStart.sh
```
![商户服务](images/store_01.jpg)
13. ç”¨æˆ·æœåŠ¡(UserService)
```
  cd MicroCommunity/UserService/docker
  chmod u+x onStart.sh
  sh onStart.sh
```
![用户服务](images/user_01.jpg)
目前为止全部启动完成
![启动完成](images/all.jpg)
![docker](images/docker_all.jpg)
## æ™®é€šå®‰è£…
[>回到首页](home)
java110-doc/services/code/code.md
New file
@@ -0,0 +1,32 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-30|wuxw
### æœ¬é¡µå†…容
1. [生成编码](#生成编码)
2. [生成编码请求协议](#生成编码请求协议)
##### ç”Ÿæˆç¼–码
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 -|transactionId|1|String|30|交互流水|appId+'00'+YYYYMMDD+10位序列
 -|requestTime|1|String|14|请求时间|YYYYMMDDhhmmss
 -|prefix|1|String|2|前缀|如11
 -|name|1|String|50|名称|-
##### ç”Ÿæˆç¼–码请求协议
```
{
    "transactionId": "100000000020180409224736000001",
    "requestTime": "20180409224736",
    "prefix": "71",
    "name": "订单ID生成"
}
```
[>回到首页](home)
java110-doc/services/code/code_test.md
New file
@@ -0,0 +1,46 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-30|wuxw
### æµ‹è¯•说明
测试人员|测试时间|测试结果|联系邮箱
:-:|:-:|:-:|:-:|
wuxw|2018-04-09|通过|928255095@qq.com
### æœ¬é¡µå†…容
1. [生成编码测试](#生成编码测试)
### ç”Ÿæˆç¼–码测试
##### æµ‹è¯•地址:
http://135.192.86.200:8003/codeApi/generate
测试时135.192.86.200替换成自己的ip
##### è¯·æ±‚报文:
```
{
    "transactionId": "100000000020180409224736000001",
    "requestTime": "20180409224736",
    "prefix": "71",
    "name": "订单ID生成"
}
```
##### è¿”回报文:
```
{
    "transactionId": "100000000020180409224736000001",
    "responseTime": "20180409224736",
    "id": "71009183837738",
    "code": "0000",
    "message": "订单ID生成"
}
```
[>回到首页](home)
java110-doc/services/comment/comment.md
New file
@@ -0,0 +1,207 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-30|wuxw
### æœ¬é¡µå†…容
1. [保存评论信息](#保存评论信息)
2. [保存子评论信息](#保存子评论信息)
3. [保存子评论属性信息](#保存子评论属性信息)
4. [保存子评论照片信息](#保存子评论照片信息)
5. [保存评论分数信息](#保存评论分数信息)
6. [评论请求报文格式](#评论请求报文格式)
7. [删除评论信息](#删除评论信息)
8. [删除子评论信息](#删除子评论信息)
9. [删除评论请求报文格式](#删除评论请求报文格式)
### è¯„论协议
orders节点 å’Œ business节点在中心服务(center)中已经介绍,这里不再介绍,查看请点[orders和business介绍](center),这里我们介绍datas节点下内容
##### ä¿å­˜è¯„论信息
serviceCode ä¸º save.comment.info ä¿å­˜è¯„论
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|comment|1|Object|-|评论节点信息|-
 comment|commentId|1|String|30|评论ID|新增时传-1
 comment|userId|1|String|30|用户ID|已有用户ID
 comment|commentTypeCd|1|String|2|评论类型|评论类型 S表示 å•†å“ M表示 å•†æˆ· T ç‰©æµ
 comment|outId|1|String|30|外部ID|如商品ID å•†æˆ·ID等
 è¯¦ç»†æŠ¥æ–‡[协议报文](#评论请求报文格式)
 ##### ä¿å­˜å­è¯„论信息
 serviceCode ä¸º save.comment.info ä¿å­˜è¯„论
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|subComment|1|Object|-|评论节点信息|-
  subComment|subCommentId|1|String|30|子评论ID|新增时传-1
  subComment|commentId|1|String|30|子评论ID|新增时传-1
  subComment|parentSubCommentId|1|String|30|父 å­è¯„论ID|父 å­è¯„论ID å¦‚果不是回复 å†™æˆ-1
  subComment|subCommentTypeCd|1|String|2|评论类型|评论类型 C è¯„论 R å›žå¤ A è¿½åŠ 
  subComment|commentContext|1|String|-|评论内容|评论内容
 è¯¦ç»†æŠ¥æ–‡[协议报文](#评论请求报文格式)
 ##### ä¿å­˜å­è¯„论属性信息
  serviceCode ä¸º save.comment.info ä¿å­˜è¯„论
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|subCommentAttr|1|Object|-|评论节点信息|-
 subCommentAttr|subCommentId|1|String|30|子评论ID|评论新增的情况下传-1
 subCommentAttr|attrId|1|String|30|属性id|新增时传-1
 subCommentAttr|specCd|1|String|12|属性编码|评论服务提供
 subCommentAttr|value|1|String|50|属性值|-
 è¯¦ç»†æŠ¥æ–‡[协议报文](#评论请求报文格式)
 ##### ä¿å­˜å­è¯„论照片信息
  serviceCode ä¸º save.comment.info ä¿å­˜è¯„论
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|subCommentPhoto|1|Object|-|评论照片节点信息|-
  subCommentPhoto|commentPhotoId|1|String|30|评论照片ID|评论照片ID
  subCommentPhoto|subCommentId|1|String|30|子评论ID|评论新增的情况下传-1
  subCommentPhoto|commentPhotoTypeCd|1|String|2|评论照片类型|评论照片类型,S å•†å“ç…§ç‰‡ M å•†æˆ·ID
  subCommentPhoto|photo|1|String|100|照片|照片
  è¯¦ç»†æŠ¥æ–‡[协议报文](#评论请求报文格式)
  ##### ä¿å­˜è¯„论分数信息
   serviceCode ä¸º save.comment.info ä¿å­˜è¯„论分数
  çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
   :-: | :-: | :-: | :-: | :-: | :-: | :-:
   datas|commentScore|1|Object|-|评论分数节点信息|-
   commentScore|commentScoreId|1|String|30|评论分数ID|评论分数ID
   commentScore|commentId|1|String|30|评论ID|评论新增的情况下传-1
   commentScore|scoreTypeCd|1|String|2|打分类别|S å•†å“ç›¸ç¬¦ï¼ŒU å–家打分,T ç‰©æµæ‰“分
   commentScore|value|1|int|-|分数|0-5分
   è¯¦ç»†æŠ¥æ–‡[协议报文](#评论请求报文格式)
 ##### è¯„论请求报文格式
 ```
 {
   "orders": {
     "appId": "外系统ID,分配得到",
     "transactionId": "100000000020180409224736000001",
     "userId": "用户ID",
     "orderTypeCd": "订单类型,查询,受理",
     "requestTime": "20180409224736",
     "remark": "备注",
     "sign": "这个服务是否要求MD5签名",
     "attrs": [{
       "specCd": "配置的字段ID",
       "value": "具体值"
     }]
   },
   "business": [{
     "serviceCode": "save.comment.info",
     "serviceName": "保存评论信息",
     "remark": "备注",
     "datas": {
       "comment": {
         "commentId": "-1",
         "userId": "123",
         "commentTypeCd":"S",
         "outId": "9898989898"
       },
       "subComment": {
         "subCommentId": "-1",
         "commentId":"-1",
         "parentSubCommentId":"-1",
         "subCommentTypeCd":"C",
         "commentContext":"非常好"
       },
       "subCommentAttr": [{
         "subCommentId": "-1",
         "attrId":"-1",
         "specCd":"1001",
         "value":"01"
       }],
       "subCommentPhoto":[{
         "commentPhotoId":"-1",
         "subCommentId":"-1",
         "commentPhotoTypeCd":"L",
         "photo":"123.jpg"
       }],
       "commentScore":[{
         "commentScoreId":"-1",
         "commentId":"-1",
         "scoreTypeCd":"S",
         "value":"5"
       }]
     },
     "attrs": [{
       "specCd": "配置的字段ID",
       "value": "具体值"
     }]
   }]
 }
 ```
 ##### åˆ é™¤è¯„论信息
 serviceCode ä¸º delete.comment.info åˆ é™¤è¯„论
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|comment|1|Object|-|评论节点信息|-
  comment|commentId|1|String|30|评论ID|已有评论ID
  ##### åˆ é™¤å­è¯„论信息
  serviceCode ä¸º save.comment.info åˆ é™¤å­è¯„论信息
  çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
   :-: | :-: | :-: | :-: | :-: | :-: | :-:
   datas|subComment|1|Object|-|评论节点信息|-
   subComment|subCommentId|1|String|30|子评论ID|已有子评论ID
  è¯¦ç»†æŠ¥æ–‡[协议报文](#删除评论请求报文格式)
##### åˆ é™¤è¯„论请求报文格式
  ```
  {
  "orders": {
    "appId": "外系统ID,分配得到",
    "transactionId": "100000000020180409224736000001",
    "userId": "用户ID",
    "orderTypeCd": "订单类型,查询,受理",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "这个服务是否要求MD5签名",
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  },
  "business": [{
    "serviceCode": "delete.comment.info",
    "serviceName": "保存评论信息",
    "remark": "备注",
    "datas": {
      "comment": {
        "commentId": "123"
      },
      "subComment": { //如果有 comment èŠ‚ç‚¹ è¿™ä¸ªèŠ‚ç‚¹ä¸ç”¨å†™
        "subCommentId": "123456"
      }
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
  ```
  [>回到首页](home)
java110-doc/services/comment/comment_test.md
New file
@@ -0,0 +1,174 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-30|wuxw
### æµ‹è¯•说明
测试人员|测试时间|测试结果|联系邮箱
:-:|:-:|:-:|:-:|
wuxw|2018-7-17|通过|928255095@qq.com
### æœ¬é¡µå†…容
1. [保存评论测试](#保存评论测试)
2. [删除评论测试](#删除评论测试)
### ä¿å­˜è¯„论测试
##### æµ‹è¯•地址:
http://135.192.86.200:8001/httpApi/service
测试时135.192.86.200替换成自己的ip
##### è¯·æ±‚报文:
```
{
    "orders": {
        "appId": "8000418001",
        "transactionId": "100000000020180717224736000013",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
    },
    "business": [{
        "serviceCode": "save.comment.info",
        "serviceName": "保存评论信息",
        "remark": "备注",
        "datas": {
            "comment": {
                "commentId": "-1",
                "userId": "123",
                "commentTypeCd": "S",
                "outId": "9898989898"
            },
            "subComment": {
                "subCommentId": "-1",
                "commentId": "-1",
                "parentSubCommentId": "-1",
                "subCommentTypeCd": "C",
                "commentContext": "非常好"
            },
            "subCommentAttr": [{
                "subCommentId": "-1",
                "attrId": "-1",
                "specCd": "1001",
                "value": "01"
            }],
            "subCommentPhoto": [{
                "commentPhotoId": "-1",
                "subCommentId": "-1",
                "commentPhotoTypeCd": "L",
                "photo": "123.jpg"
            }],
            "commentScore": [{
                "commentScoreId": "-1",
                "commentId": "-1",
                "scoreTypeCd": "S",
                "value": "5"
            }]
        },
        "attrs": [{
            "specCd": "配置的字段ID",
            "value": "具体值"
        }]
    }]
}
```
##### è¿”回报文:
```
{
    "business": [{
        "serviceCode": "save.comment.info",
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180717224736000013"
    }
}
```
### åˆ é™¤è¯„论测试
##### æµ‹è¯•地址:
http://135.192.86.200:8001/httpApi/service
测试时135.192.86.200替换成自己的ip
##### è¯·æ±‚报文:
```
{
    "orders": {
        "appId": "8000418001",
        "transactionId": "100000000020180708224736000022",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
    },
    "business": [{
        "serviceCode": "delete.comment.info",
        "serviceName": "保存评论信息",
        "remark": "备注",
        "datas": {
            "comment": {
                "commentId": "60468918071306756096"
            },
            "subComment": {
                "subCommentId": "61468918071457751040"
            }
        },
        "attrs": [{
            "specCd": "配置的字段ID",
            "value": "具体值"
        }]
    }]
}
```
##### è¿”回报文:
```
{
    "business": [{
        "serviceCode": "delete.comment.info",
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180708224736000022"
    }
}
```
[>回到首页](home)
java110-doc/services/order/order.md
New file
@@ -0,0 +1,423 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-24|wuxw
### æœ¬é¡µå†…容
1. [协议说明](#协议说明)
2. [下游系统交互说明](#下游系统交互说明)
3. [订单类型说明](#订单类型说明)
4. [加密说明](#加密说明)
5. [状态说明](#状态说明)
6. [数据格式约定](#数据格式约定)
### åè®®è¯´æ˜Ž
1. åè®®ç»“æž„
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
-|orders|1|Object|-|订单节点|-
-|business|1|Array|-|业务节点|-
2. è®¢å•节点结构
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
-|orders|1|Object|-|订单节点|-
orders|appId|1|String|10|系统ID|由中心服务提供
orders|transactionId|1|String|30|交互流水|appId+'00'+YYYYMMDD+10位序列
orders|userId|1|String|30|用户ID|已有用户ID
orders|orderTypeCd|1|String|4|订单类型|查看订单类型说明
orders|requestTime|1|String|14|请求时间|YYYYMMDDhhmmss
orders|remark|1|String|200|备注|备注
orders|sign|?|String|64|签名|查看加密说明
orders|attrs|?|Array|-|订单属性|-
attrs|specCd|1|String|12|规格编码|由中心服务提供
attrs|value|1|String|50|属性值|
orders|response|1|Object|-|返回结果节点|-
response|code|1|String|4|返回状态|查看状态说明
response|message|1|String|200|返回状态描述|-
3. ä¸šåŠ¡èŠ‚ç‚¹ç»“æž„
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 -|business|?|Array|-|业务节点|-
 business|serviceCode|1|String|50|业务编码|由中心服务提供
 business|serviceName|1|String|50|业务名称|由中心服务提供
 business|remark|1|String|200|备注|
 business|datas|1|Object|-|数据节点|不同的服务下的节点不一样
 business|attrs|?|Array|-|业务属性|-
 attrs|specCd|1|String|12|规格编码|由中心服务提供
 attrs|value|1|String|50|属性值|
 business|response|1|Object|-|返回结果节点|-
 response|code|1|String|4|返回状态|查看状态说明
 response|message|1|String|200|返回状态描述|-
 4. æŠ¥æ–‡æ ·ä¾‹
请求报文:
 ```
 {
   "orders": {
     "appId": "1234567890",
     "transactionId": "123456789000201804090123456789",
     "userId": "1234567890",
     "orderTypeCd": "Q",
     "requestTime": "20180409224736",
     "remark": "备注",
     "sign": "这个服务是否要求MD5签名",
     "attrs": [{
       "specCd": "配置的字段ID",
       "value": "具体值"
     }]
   },
   "business": [{
     "serviceCode": "服务编码",
     "serviceName": "服务编码名称",
     "remark": "备注",
     "datas": {
     },
     "attrs": [{
       "specCd": "配置的字段ID",
       "value": "具体值"
     }]
   }]
 }
 ```
 è¿”回报文:
 ```
 {
   "orders": {
     "transactionId": "123456789000201804090123456789",
     "responseTime": "20180409224736",
     "sign": "这个服务是否要求MD5签名",
     "response": {//这个是centerOrder è¿”回的状态结果
       "code": "1999",
       "message": "具体值"
     }
   },
   "business":[{//这个是相应的业务系统返回的结果,(受理为空,查询时不为空)
     "response": {
       "code": "0000",
       "message": "具体值"
     }
   }]
 }
 ```
### ä¸‹æ¸¸ç³»ç»Ÿäº¤äº’说明
与下游系统交互主要分为三个过程,分别为 Business过程,Instance过程,作废过程
1. Business过程指先将数据存放至中间表中(叫做business表),表明动作 æ˜¯æ–°å¢žï¼ˆADD)还是删除(DEL)。
请求协议为:
```
{
    "orders": {
        "transactionId": "100000000020180409224736000001",
        "requestTime": "20180409224736",
        "orderTypeCd": "订单类型,查询,受理",
        "dataFlowId": "20020180000001",
        "businessType": "Q"
    },
    "business": {
        "bId": "12345678",
        "serviceCode": "querycustinfo",
        "serviceName": "查询客户",
        "remark": "备注",
        "datas": {
            "params": {
            }
        }
    }
}
```
返回协议为:
```
{
    "transactionId": "100000000020180409224736000001",
    "responseTime": "20180409224736",
    "businessType": "B",
    "bId": "12345678",
    "orderTypeCd": "",
    "dataFlowId": "",
    "serviceCode": "",
    "response": {
        "code": "1999",
        "message": "具体值"
    }
}
```
2. Instance过程指将中间表中的数据根据动作分析增加删除或修改业务表中的数据。
请求协议为:
```
{
    "orders": {
        "transactionId": "100000000020180409224736000001",
        "requestTime": "20180409224736",
        "orderTypeCd": "订单类型,查询,受理",
        "dataFlowId": "20020180000001",
        "businessType": "I"
    },
    "business": {
        "bId": "12345678",
        "serviceCode": "save.user.userInfo"
    }
}
```
返回协议为:
```
{
    "transactionId": "100000000020180409224736000001",
    "responseTime": "20180409224736",
    "businessType": "I",
    "bId": "12345678",
    "orderTypeCd": "",
    "dataFlowId": "",
    "serviceCode": "",
    "response": {
        "code": "1999",
        "message": "具体值"
    }
}
```
3. ä½œåºŸè¿‡ç¨‹æŒ‡ å½“某个下游系统失败的情况下,判断是Business过程失败还是Instance过程失败
如果是Business过程失败,则放弃发送Instance过程直接返回,如果Instance过程失败,则发起作废业务数据过程。
请求协议为:
```
{
    "orders": {
        "transactionId": "100000000020180409224736000001",
        "requestTime": "20180409224736",
        "orderTypeCd": "订单类型,查询,受理",
        "dataFlowId": "20020180000001",
        "businessType": "DO"
    },
    "business": {
        "bId": "12345678",
        "serviceCode": "save.user.userInfo"
    }
}
```
返回协议为:
```
{
    "transactionId": "100000000020180409224736000001",
    "responseTime": "20180409224736",
    "businessType": "DO",
    "bId": "12345678",
    "orderTypeCd": "",
    "dataFlowId": "",
    "serviceCode": "",
    "response": {
        "code": "1999",
        "message": "具体值"
    }
}
```
### è®¢å•类型说明
订单类型|说明
:-:|:-:
Q|查询类
### åŠ å¯†è¯´æ˜Ž
1. è¯·æ±‚sign说明
外系统请求centerService æœåŠ¡æ—¶ï¼Œsign çš„生成:
```
inStr = transactionId + appId+business(内容)+security_code(系统分配);
DigestUtils.md5Hex(inStr.getBytes("UTF-8"));
```
2. CenterService服务返回时 sign生成:
```
inStr = transactionId + responseTime+business(内容)+security_code(系统分配);
DigestUtils.md5Hex(inStr.getBytes("UTF-8"));
```
注意:当传入AppId ä¸æ­£ç¡®ï¼Œæˆ–者请求报文解密失败的情况下,返回sign ä¸åšåŠ å¯†å¤„ç†ï¼Œå…¶å€¼ä¸ºç©º
3. è¯·æ±‚报文加密:
如果http post è¯·æ±‚æ—¶header ä¸­æœ‰ ENCRYPT å¹¶ä¸”值为ON,时启用密文传输方式,即请求报文和返回报文都为密文,如果没有 ENCRYPT æˆ– å€¼ä¸ä¸ºON åˆ™æ˜Žæ–‡ä¼ è¾“。
加密代码参考:
```
/**
 * åР坆
 * @param data
 * @param publicKey
 * @param keySize
 * @return
 * @throws Exception
 */
public static byte[] encrypt(byte[] data, PublicKey publicKey, int keySize)
        throws Exception
{
    Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING", "BC");
    cipher.init(Cipher.ENCRYPT_MODE, publicKey);
    int blockSize = (keySize >> 3) - 11;
    int inputLen = data.length;
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    int offSet = 0;
    int i = 0;
    while (inputLen - offSet > 0) {
        byte[] buf;
        if (inputLen - offSet > blockSize) {
            buf = cipher.doFinal(data, offSet, blockSize);
        }else {
            buf = cipher.doFinal(data, offSet, inputLen - offSet);
        }
        out.write(buf, 0, buf.length);
        ++i;
        offSet = i * blockSize;
    }
    byte[] result = out.toByteArray();
    return result;
}
/**
 * åŠ è½½å…¬é’¥
 * @param keyData
 * @return
 * @throws Exception
 */
public static PublicKey loadPubKey(String keyData)
        throws Exception
{
    return loadPemPublicKey(keyData, "RSA");
}
/**
 * åŠ è½½å…¬é’¥
 * @param privateKeyPem
 * @param algorithm
 * @return
 * @throws Exception
 */
public static PrivateKey loadPrivateKeyPkcs8(String privateKeyPem, String algorithm)
        throws Exception
{
    String privateKeyData = privateKeyPem.replace("-----BEGIN PRIVATE KEY-----", "");
    privateKeyData = privateKeyData.replace("-----END PRIVATE KEY-----", "");
    privateKeyData = privateKeyData.replace("\n", "");
    privateKeyData = privateKeyData.replace("\r", "");
    byte[] decoded = Base64.getDecoder().decode(privateKeyData.getBytes());
    PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(decoded);
    KeyFactory keyFactory = KeyFactory.getInstance(algorithm);
    return keyFactory.generatePrivate(pkcs8KeySpec);
}
//加密
reqJson = new String(encrypt(resJson.getBytes("UTF-8"), loadPubKey(“公钥”)
        , 2048)),"UTF-8");
```
其中 keySize å¦‚果设置要重新设置则 http post header ä¸­ä¼ ENCRYPT_KEY_SIZE来设置 ä¸ä¼ åˆ™åŽ»é»˜è®¤å€¼ï¼Œé»˜è®¤å€¼é…ç½®åœ¨æ˜ å°„è¡¨ä¸­ï¼Œkey为 KEY_DEFAULT_DECRYPT_KEY_SIZE
4. è¿”回报文解密
如果http post è¯·æ±‚æ—¶header ä¸­æœ‰ ENCRYPT å¹¶ä¸”值为ON,时启用密文传输方式。
解密代码参考
```
/**
 * è§£å¯†
 * @param data
 * @param privateKey
 * @param keySize
 * @return
 * @throws Exception
 */
public static byte[] decrypt(byte[] data, PrivateKey privateKey, int keySize)
        throws Exception
{
    Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING", "BC");
    cipher.init(Cipher.DECRYPT_MODE, privateKey);
    int blockSize = keySize >> 3;
    ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(data);
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    byte[] buf = new byte[blockSize];
    int len = 0;
    while ((len = byteArrayInputStream.read(buf)) > 0) {
        byteArrayOutputStream.write(cipher.doFinal(buf, 0, len));
    }
    return byteArrayOutputStream.toByteArray();
}
/**
 * åŠ è½½ç§é’¥
 * @param keyData
 * @return
 * @throws Exception
 */
public static PrivateKey loadPrivateKey(String keyData) throws Exception {
    return loadPrivateKeyPkcs8(keyData, "RSA");
}
/**
 * åŠ è½½ç§é’¥
 * @param privateKeyPem
 * @param algorithm
 * @return
 * @throws Exception
 */
public static PrivateKey loadPrivateKeyPkcs8(String privateKeyPem, String algorithm)
        throws Exception
{
    String privateKeyData = privateKeyPem.replace("-----BEGIN PRIVATE KEY-----", "");
    privateKeyData = privateKeyData.replace("-----END PRIVATE KEY-----", "");
    privateKeyData = privateKeyData.replace("\n", "");
    privateKeyData = privateKeyData.replace("\r", "");
    byte[] decoded = Base64.getDecoder().decode(privateKeyData.getBytes());
    PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(decoded);
    KeyFactory keyFactory = KeyFactory.getInstance(algorithm);
    return keyFactory.generatePrivate(pkcs8KeySpec);
}
//解密
resJson = new String(decrypt(reqJson.getBytes("UTF-8"), â€œç§é’¥â€
        , 2048)),"UTF-8");
```
<font color=red size=4 face="黑体">说明:加密和解密的公钥和私钥,由centerService提供。</font>
### çŠ¶æ€è¯´æ˜Ž
状态编码|说明
:-:|:-:
0000|成功
1999|未知失败
1998|系统内部错误
1997|调用下游系统超时
### æ•°æ®æ ¼å¼çº¦å®š
格式符号|说明
:-:|:-:
?|0..1
星 | 0..n
+|1..n
1|1
[>回到首页](home)
java110-doc/services/order/order_config.md
New file
@@ -0,0 +1,226 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-24|wuxw
### æœ¬é¡µå†…容
1. [配置相关表](#配置相关表)
2. [外部应用表(c_app)配置](#外部应用表c_app配置)
3. [服务提供表(c_service)配置](#服务提供表c_service配置)
4. [路由表配置(c_route)](#路由表配置c_route)
5. [查询类服务实现表配置(c_service_sql)](#查询类服务实现表配置c_service_sql)
### é…ç½®ç›¸å…³è¡¨
```
-- å¤–部应用表
select a.* from c_app a ;
-- æœåŠ¡æä¾›è¡¨
select a.* from c_service a;
-- å¤–部应用 å’Œ æœåŠ¡å…³è”è¡¨
select a.* from c_route a;
-- æŸ¥è¯¢ç±» æœåŠ¡å®žçŽ°è¡¨
select a.* from c_service_sql a;
```
### å¤–部应用表(c_app)配置
表字段|类型|约束|长度|可空|配置说明
:-:|:-:|:-:|:-:|:-:|:-:
id|int|1|-|否|自动增长
app_id|String|1|10|否|开始于8000418001,新增加1
name|String|1|50|否|外部应用名称,如 å¾®ä¿¡å°ç¨‹åº
security_code|String|?|64|是|加密掩码,如123456
while_list_ip|String|?|200|是|白名单ip å¤šä¸ªä¹‹é—´ç”¨;隔开
black_list_ip|String|?|200|是|黑名单ip å¤šä¸ªä¹‹é—´ç”¨;隔开
remark|String|?|200|是|备注信息
status_cd|String|1|2|否|数据状态,0在用,1失效
security_code ä¸ä¸ºç©ºåˆ™sign签名校验,为空则不做校验
while_list_ip ä¸ä¸ºç©ºåˆ™åªæœ‰é…ç½®äº†ip才能访问,为空不做校验
black_list_ip ä¸ä¸ºç©ºåˆ™é…ç½®äº†ip不能访问,为空不做校验
相关insert语句,请参考:
```
insert into c_app(app_id,`name`,security_code,remark,status_cd)
values('8000418001','内部测试应用','WEBURFPKIFJUHNCJUEIKMKJUJHULSMNCHDY89KMC','记得删除','0');
```
### æœåŠ¡æä¾›è¡¨ï¼ˆc_service)配置
表字段|类型|约束|长度|可空|配置说明
:-:|:-:|:-:|:-:|:-:|:-:
id|int|1|-|否|自动增长
service_id|String|1|12|否|服务编码ID,开始于1003180001,新增加1
service_code|String|1|50|否|自定义,命名方式查询类query.+目标系统+.+业务名称 ä¿å­˜ç±» save.+目标系统+.+业务名称 ä¿®æ”¹ç±» modify.+目标系统+.+业务名称 åˆ é™¤ç±» remove.+目标系统+.+业务名称 ä¾‹å¦‚:query.user.userinfo save.user.adduserinfo
business_type_cd|String|1|4|否|业务项类型,参考c_business_type表
name|String|1|50|否|服务名称
seq|int|1|-|否|顺序 åªæœ‰åŒæ­¥æ–¹å¼ä¸‹æ ¹æ®seq从小到大调用接口
messageQueueName|String|?|50|是|消息队里名称,只有异步时有用
is_instance|String|1|2|否|是否Instance过程 Y éœ€è¦ï¼ŒN不需要
url|String|?|200|是|目标地址
method|String|?|50|是|方法 ç©º ä¸ºhttp post LOCAL_SERVICE ä¸ºè°ƒç”¨æœ¬åœ°æœåŠ¡ å…¶ä»–为webservice方式调用
timeout|int|?|-|是|超时时间,单位为秒
retry_count|int|?|-|是|重试次数
provide_app_id|String|1|30|否|服务提供appId
status_cd|String|1|2|否|数据状态,0在用,1失效
messageQueueName åœ¨å¼‚步的情况下使用,为落地方系统kafka topic å¦‚ commentServiceTopic
```
/**
 * kafka侦听
 * Created by wuxw on 2018/4/15.
 */
public class CommentServiceKafka extends BaseController {
    @KafkaListener(topics = {"commentServiceTopic"})
    public void listen(ConsumerRecord<?, ?> record) {
    }
}
```
相关insert语句,请参考
```
insert into c_service(service_id,service_code,business_type_cd,`name`,seq,messageQueueName,url,provide_app_id,status_cd)
values('1003180001','query.order.orderInfo','Q','订单信息',1,'','http://center-service/businessApi/query','8000418001','0');
```
### è·¯ç”±è¡¨é…ç½®ï¼ˆc_route)
表字段|类型|约束|长度|可空|配置说明
:-:|:-:|:-:|:-:|:-:|:-:
id|int|1|-|否|自动增长
app_id|String|1|10|否|关联c_app表
service_id|String|1|12|否|关联c_service表
order_type_cd|String|1|4|否|查看订单类型说明
invoke_limit_times|int|?|-|是|调用次数限制
invoke_model|String|1|1|否|调用方式S同步方式,A异步方式
status_cd|String|1|2|否|数据状态,0在用,1失效
invoke_model ä¸ºåŒæ­¥ S时,表c_service è¡¨ä¸­çš„url字段不能为空;为A时 c_service è¡¨ä¸­çš„messageQueueName字段不能为空
相关insert语句,请参考
```
insert into c_route(app_id,service_id,invoke_model,order_type_cd,status_cd) values(
'8000418001','1003180001','S','Q','0'
);
```
### æŸ¥è¯¢ç±»æœåŠ¡å®žçŽ°è¡¨é…ç½®ï¼ˆc_service_sql)
表字段|类型|约束|长度|可空|配置说明
:-:|:-:|:-:|:-:|:-:|:-:
id|int|1|-|否|自动增长
service_code|String|1|50|否|关联c_service表
name|String|1|50|否|名称
params|String|1|500|否|查询参数
query_model|String|1|1|否|查询方式 1、sql,2、存储过程,3、执行java代码
sql|String|?|-|是|在查询方式为1 çš„æƒ…况下 æ‰§è¡Œsql
proc|String|?|200|是|在查询方式为2时执行,存储过程,不推荐
java_script|String|?|-|是|在查询方式为3时执行java脚本代码
template|String|?|-|是|在查询方式为1 æ—¶ï¼Œè¾“出模板
remark|String|?|200|是|描述
status_cd|String|1|2|否|数据状态,0在用,1失效
sql é…ç½®æ–¹å¼ å¦‚下格式:
```
{
    "param1": "SELECT co.app_id appId,co.create_time createTime,co.ext_transaction_id extTransactionId,co.finish_time finishTime,co.order_type_cd orderTypeCd,co.o_id oId,co.remark remark,co.request_time requestTime,co.user_id userId,co.status_cd statusCd FROM c_orders co WHERE co.o_id = #oId# ",
    "param2": "SELECT cb.b_id bId, cb.business_type_cd businessTypeCd,cb.create_time createTime,cb.finish_time finishTime ,cb.o_id oId,cb.remark remark,cb.status_cd statusCd FROM c_business cb WHERE cb.o_id = #oId# "
}
```
template é…ç½®æ ¼å¼å¦‚下:
```
{
    "PARAM": {
        "param1": "$.#order#Object",
        "param2": "$.#business#Array"
    },
    "TEMPLATE": {
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }
}
```
template çš„param1 å’Œ sql çš„param1  å¯¹åº” ï¼Œæ¨¡æ¿æ˜¯TEMPLATE,最后生成的格式为:
```
{
    "response": {
        "code": "0000",
        "message": "成功"
    },
    "order": {
        "appId": "",
        "createTime": "",
        "下面节点对应sql的查询出来字段": ""
    },
    "business": [{
        "bId": "",
        "businessTypeCd": "",
        "下面节点对应sql的查询出来字段": ""
    }]
}
```
请求报文格式为:
```
{
  "orders": {
    "transactionId": "100000000020180409224736000001",
    "requestTime": "20180409224736",
    "orderTypeCd":"订单类型,查询,受理",
    "dataFlowId":"20020180000001",
    "businessType":"Q"//B business è¿‡ç¨‹ I Instance过程
  },
  "business": {
    "bId":"12345678",
    "serviceCode": "querycustinfo",
    "serviceName": "查询客户",
    "remark": "备注",
    "datas": {
      "params": {
        //这个做查询时的参数
      }
    }
  }
}
```
相关insert è¯­å¥ï¼Œè¯·å‚考:
```
INSERT INTO c_service_sql(service_code,`name`,params,query_model,`sql`,proc,template,remark,status_cd)
VALUES('query.order.orderInfo','订单信息','oId','1','{
                                                     "param1":"SELECT co.app_id appId,co.create_time createTime,co.ext_transaction_id extTransactionId,co.finish_time finishTime
                                                 ,co.order_type_cd orderTypeCd,co.o_id oId ,co.remark remark ,co.request_time requestTime ,co.user_id userId,co.status_cd statusCd
                                                  FROM c_orders co WHERE co.o_id = #oId#",
                                                  "param2":"SELECT cb.b_id bId, cb.business_type_cd businessTypeCd,cb.create_time createTime,cb.finish_time finishTime ,cb.o_id oId,
                                                 cb.remark remark,cb.status_cd statusCd FROM c_business cb WHERE cb.o_id = #oId#"
                                                 }','','{"PARAM":{
                                                            "param1": "$.#order#Object",
                                                            "param2": "$.#business#Array"
                                                            },"TEMPLATE":{
                                                         "response": {
                                                           "code": "0000",
                                                           "message": "成功"
                                                         }
                                                       }}','','0');
```
[>回到首页](home)
java110-doc/services/shop/shop.md
New file
@@ -0,0 +1,683 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-24|wuxw
### æœ¬é¡µå†…容
1. [保存商品信息](#保存商品信息)
2. [保存商品属性信息](#保存商品属性信息)
3. [保存商品照片](#保存商品照片)
4. [保存商品属性离散值](#保存商品属性离散值)
5. [保存商品优惠](#保存商品优惠)
6. [保存商品描述](#保存商品描述)
7. [保存商品信息请求报文格式](#保存商品信息请求报文格式)
8. [保存商品目录](#保存商品目录)
9. [保存商品目录请求报文格式](#保存商品目录请求报文格式)
10. [修改商品目录](#修改商品目录)
11. [修改商品目录协议](#修改商品目录协议)
12. [删除商品目录](#删除商品目录)
13. [删除商品目录协议](#删除商品目录协议)
14. [购买商品](#购买商品)
15. [购买商品请求报文格式](#购买商品请求报文格式)
16. [修改商品信息](#修改商品信息)
17. [修改商品属性信息](#修改商品属性信息)
18. [修改商品照片](#修改商品照片)
19. [修改商品属性离散值](#修改商品属性离散值)
20. [修改商品优惠](#修改商品优惠)
21. [修改商品描述](#修改商品描述)
22. [修改商品信息请求报文格式](#修改商品信息请求报文格式)
23. [删除商品信息](#删除商品信息)
24. [删除商品属性信息](#删除商品属性信息)
25. [删除商品照片](#删除商品照片)
26. [删除商品属性离散值](#删除商品属性离散值)
27. [删除商品优惠](#删除商品优惠)
28. [删除商品描述](#删除商品描述)
29. [删除商品信息请求报文格式](#删除商品信息请求报文格式)
### æ“ä½œè¯´æ˜Ž
新建客户 â€”—————>新建商户———————>新建商品目录————————>新建商品———————>购买商品
### å•†å“åè®®
orders节点 å’Œ business节点在中心服务(center)中已经介绍,这里不再介绍,查看请点[orders和business介绍](center),这里我们介绍datas节点下内容
##### ä¿å­˜å•†å“ä¿¡æ¯
serviceCode ä¸º save.shop.info ä¿å­˜å•†å“
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShop|1|Object|-|用户节点信息|-
businessShop|shopId|1|String|30|商品ID|新增时,传-1
businessShop|storeId|1|String|30|商户ID|填写商户ID
businessShop|catalogId|1|String|30|商品目录ID|-
businessShop|name|1|String|100|商品名称|-
businessShop|hotBuy|1|String|2|是否热卖商品|是否热卖 Y是 N否
businessShop|salePrice|1|String|10.2|商品售价|商品销售价,再没有打折情况下显示,例如12.00
businessShop|openShopCount|1|String|2|是否显示库存|是否开启库存管理,默认N Y开启,N关闭,开启后界面显示数量,如果为0 åˆ™ä¸‹æž¶
businessShop|shopCount|1|int|-|商品库存数量|-
businessShop|startDate|1|String|-|开始时间|格式为YYYY-MM-DD hh:mm:ss ä¾‹å¦‚:2018-07-07 11:04:00
businessShop|endDate|1|String|-|结束时间|格式为YYYY-MM-DD hh:mm:ss ä¾‹å¦‚:2018-07-07 11:04:00
详细报文[协议报文](#保存商品信息请求报文格式)
##### ä¿å­˜å•†å“å±žæ€§ä¿¡æ¯
serviceCode ä¸º save.shop.info ä¿å­˜å•†å“å±žæ€§
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShopAttr|1|Object|-|用户节点信息|-
businessShopAttr|shopId|1|String|30|商品ID|商品也新增的情况下传-1
businessShopAttr|attrId|1|String|30|属性id|新增时传-1
businessShopAttr|specCd|1|String|12|属性编码|商品服务提供
businessShopAttr|value|1|String|50|属性值|-
详细报文[协议报文](#保存商品信息请求报文格式)
##### ä¿å­˜å•†å“ç…§ç‰‡
serviceCode ä¸º save.shop.info ä¿å­˜å•†å“ç…§ç‰‡
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShopPhoto|1|Object|-|商品照片节点信息|-
businessShopPhoto|shopId|1|String|30|商品ID|商品也新增的情况下传-1
businessShopPhoto|shopPhotoId|1|String|30|商品照片ID|新增时传-1
businessShopPhoto|shopPhotoTypeCd|1|String|商品照片类型|商品照片类型,L logo O å…¶ä»–照片
businessShopPhoto|photo|1|String|照片|照片路径,或照片名称
详细报文[协议报文](#保存商品信息请求报文格式)
##### ä¿å­˜å•†å“å±žæ€§ç¦»æ•£å€¼
serviceCode ä¸º save.shop.info ä¿å­˜å•†å“å±žæ€§ç¦»æ•£å€¼
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShopAttrParam|1|Object|-|商品属性离散值|-
businessShopAttrParam|shopId|1|String|30|商品ID|商品也新增的情况下传-1
businessShopAttrParam|attrParamId|1|String|30|离散值ID|新增时传-1
businessShopAttrParam|specCd|1|String|12|编码|-
businessShopAttrParam|param|1|String|50|参数值|-
详细报文[协议报文](#保存商品信息请求报文格式)
##### ä¿å­˜å•†å“ä¼˜æƒ 
serviceCode ä¸º save.shop.info ä¿å­˜å•†å“ä¼˜æƒ 
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShopPreferential|1|Object|-|商品优惠|-
businessShopPreferential|shopId|1|String|30|商品ID|商品也新增的情况下传-1
businessShopPreferential|shopPreferentialId|1|String|30|优惠ID|新增时传-1
businessShopPreferential|originalPrice|1|String|10,2|商品销售价|商品销售价,再没有优惠的情况下和售价是一致的,例如:12.00
businessShopPreferential|discountRate|1|String|3,2|商品打折率|例如 0.90 æ‰“9折
businessShopPreferential|showOriginalPrice|1|String|2|是否显示原价|是否显示原价,Y显示,N ä¸æ˜¾ç¤º
businessShopPreferential|preferentialStartDate|1|String|-|优惠开始时间|格式为YYYY-MM-DD hh:mm:ss ä¾‹å¦‚:2018-07-07 11:04:00
businessShopPreferential|preferentialEndDate|1|String|-|优惠结束时间|格式为YYYY-MM-DD hh:mm:ss ä¾‹å¦‚:2018-07-07 11:04:00
详细报文[协议报文](#保存商品信息请求报文格式)
##### ä¿å­˜å•†å“æè¿°
serviceCode ä¸º save.shop.info ä¿å­˜å•†å“æè¿°
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShopDesc|1|Object|-|商品描述|-
businessShopDesc|shopId|1|String|30|商品ID|商品也新增的情况下传-1
businessShopDesc|shopDescId|1|String|30|商品描述ID|新增时传-1
businessShopDesc|shopDescribe|1|String|-|商品描述|-
###### ä¿å­˜å•†å“ä¿¡æ¯è¯·æ±‚报文格式:
 ```
 {
   "orders": {
     "appId": "外系统ID,分配得到",
     "transactionId": "100000000020180409224736000001",
     "userId": "用户ID",
     "orderTypeCd": "订单类型,查询,受理",
     "requestTime": "20180409224736",
     "remark": "备注",
     "sign": "这个服务是否要求MD5签名",
     "attrs": [{
       "specCd": "配置的字段ID",
       "value": "具体值"
     }]
   },
   "business": [{
     "serviceCode": "save.shop.info",
     "serviceName": "保存商品信息",
     "remark": "备注",
     "datas": {
       "businessShop": {
         "shopId": "-1",
         "storeId": "123",
         "catalogId":"-1",
         "name": "西红柿鸡蛋盖浇饭",
         "hotBuy": "Y",
         "salePrice": "12.00",
         "openShopCount": "N",
         "shopCount": "1",
         "startDate": "2018-07-07 11:04:00",
         "endDate": "2019-07-07 11:04:00"
       },
       "businessShopAttr": [{
         "shopId": "-1",
         "attrId":"-1",
         "specCd":"1001",
         "value":"01"
       }],
       "businessShopPhoto":[{
         "shopPhotoId":"-1",
         "shopId":"-1",
         "shopPhotoTypeCd":"L",
         "photo":"123.jpg"
       }],
       "businessShopAttrParam":[{
         "attrParamId":"-1",
         "shopId":"-1",
         "specCd":"123",
         "param":"加米"
       }],
       "businessShopPreferential":{
         "shopPreferentialId":"-1",
         "shopId":"-1",
         "originalPrice":"12.00",
         "discountRate":"1.00",
         "showOriginalPrice":"N",
         "preferentialStartDate":"2018-07-07 12:17:00",
         "preferentialEndDate":"2018-07-08 12:17:00"
       },
       "businessShopDesc":{
         "shopDescId":"-1",
         "shopId":"-1",
         "shopDescribe":""
       }
     },
     "attrs": [{
       "specCd": "配置的字段ID",
       "value": "具体值"
     }]
   }]
 }
 ```
 ##### ä¿å­˜å•†å“ç›®å½•
 serviceCode ä¸º save.shop.catalog ä¿å­˜å•†å“ç›®å½•
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessShopCatalog|1|Object|-|商品目录|-
businessShopCatalog|catalogId|1|String|30|目录ID|新增时传-1
businessShopCatalog|storeId|1|String|30|商户ID|对应商户ID
businessShopCatalog|name|1|String|100|目录名称|-
businessShopCatalog|level|1|String|2|目录级别|-
businessShopCatalog|parentCatalogId|1|String|30|父目录ID|如果一级目录传-1
###### ä¿å­˜å•†å“ç›®å½•请求报文格式:
 ```
 {
   "orders": {
     "appId": "外系统ID,分配得到",
     "transactionId": "100000000020180409224736000001",
     "userId": "用户ID",
     "orderTypeCd": "订单类型,查询,受理",
     "requestTime": "20180409224736",
     "remark": "备注",
     "sign": "这个服务是否要求MD5签名",
     "attrs": [{
       "specCd": "配置的字段ID",
       "value": "具体值"
     }]
   },
   "business": [{
     "serviceCode": "save.shop.catalog",
     "serviceName": "保存商品目录",
     "remark": "备注",
     "datas": {
       "businessShopCatalog":{
         "catalogId":"-1",
         "storeId":"123",
         "name":"盖浇饭",
         "level":"1",
         "parentCatalogId":"-1"
       }
     },
     "attrs": [{
       "specCd": "配置的字段ID",
       "value": "具体值"
     }]
   }]
 }
 ```
 ##### ä¿®æ”¹å•†å“ç›®å½•
 serviceCode ä¸º update.shop.catalog ä¿®æ”¹å•†å“ç›®å½•
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessShopCatalog|1|Object|-|商品目录|-
businessShopCatalog|catalogId|1|String|30|目录ID|已有目录ID
businessShopCatalog|storeId|1|String|30|商户ID|对应商户ID
businessShopCatalog|name|1|String|100|目录名称|-
businessShopCatalog|level|1|String|2|目录级别|-
businessShopCatalog|parentCatalogId|1|String|30|父目录ID|如果一级目录传-1
##### ä¿®æ”¹å•†å“ç›®å½•协议
 ```
 {
     "orders": {
         "appId": "8000418001",
         "transactionId": "100000000020180708224736000012",
         "userId": "1000123",
         "orderTypeCd": "D",
         "requestTime": "20180409224736",
         "remark": "备注",
         "sign": "",
         "attrs": [{
             "specCd": "100001",
             "value": "测试单"
         }]
     },
     "business": [{
         "serviceCode": "update.shop.catalog",
         "serviceName": "保存商品目录",
         "remark": "备注",
         "datas": {
             "businessShopCatalog": {
                 "catalogId": "56465664285847068672",
                 "storeId": "40464215326209351680",
                 "name": "盖浇饭123",
                 "level": "1",
                 "parentCatalogId": "-1"
             }
         },
         "attrs": [{
             "specCd": "配置的字段ID",
             "value": "具体值"
         }]
     }]
 }
 ```
##### åˆ é™¤å•†å“ç›®å½•
serviceCode ä¸º delete.shop.catalog åˆ é™¤å•†å“ç›®å½•
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShopCatalog|1|Object|-|商品目录|-
businessShopCatalog|catalogId|1|String|30|目录ID|已有目录ID
businessShopCatalog|storeId|1|String|30|商户ID|对应商户ID
##### åˆ é™¤å•†å“ç›®å½•协议
```
{
    "orders": {
        "appId": "8000418001",
        "transactionId": "100000000020180708224736000013",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
    },
    "business": [{
        "serviceCode": "delete.shop.catalog",
        "serviceName": "保存商品目录",
        "remark": "备注",
        "datas": {
            "businessShopCatalog": {
                "catalogId": "56465664285847068672",
                "storeId": "40464215326209351680"
            }
        },
        "attrs": [{
            "specCd": "配置的字段ID",
            "value": "具体值"
        }]
    }]
}
```
 ##### è´­ä¹°å•†å“
 serviceCode ä¸º buy.shop.info è´­ä¹°å•†å“ä¿¡æ¯
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessBuyShop|1|Object|-|购买商品|-
businessBuyShop|shopId|1|String|30|商品ID|填写已有商品ID
businessBuyShop|buyId|1|String|30|è´­ä¹°ID|ä¼ -1
businessBuyShop|buyCount|1|int|-|商品数量|-
datas|businessBuyShopAttr|?|Object|-|购买商品属性|-
businessBuyShopAttr|buyId|1|String|30|è´­ä¹°ID|ä¼ -1
businessBuyShopAttr|attrId|1|String|30|属性id|新增时传-1
businessBuyShopAttr|specCd|1|String|12|属性编码|商品服务提供
businessBuyShopAttr|value|1|String|50|属性值|-
###### è´­ä¹°å•†å“è¯·æ±‚报文格式:
 ```
 {
   "orders": {
     "appId": "外系统ID,分配得到",
     "transactionId": "100000000020180409224736000001",
     "userId": "用户ID",
     "orderTypeCd": "订单类型,查询,受理",
     "requestTime": "20180409224736",
     "remark": "备注",
     "sign": "这个服务是否要求MD5签名",
     "attrs": [{
       "specCd": "配置的字段ID",
       "value": "具体值"
     }]
   },
   "business": [{
     "serviceCode": "buy.shop.info",
     "serviceName": "è´­ä¹°",
     "remark": "备注",
     "datas": {
       "businessBuyShop": {
         "shopId": "123",
         "buyId": "-1",
         "buyCount":"10"
       },
       "businessBuyShopAttr": [{
         "buyId": "-1",
         "attrId":"-1",
         "specCd":"1001",
         "value":"01"
       }]
     },
     "attrs": [{
       "specCd": "配置的字段ID",
       "value": "具体值"
     }]
   }]
 }
 ```
 ##### ä¿®æ”¹å•†å“ä¿¡æ¯
 serviceCode ä¸º update.shop.info ä¿®æ”¹å•†å“
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessShop|1|Object|-|用户节点信息|-
 businessShop|shopId|1|String|30|商品ID|传已有商品ID
 businessShop|storeId|1|String|30|商户ID|填写商户ID
 businessShop|catalogId|1|String|30|商品目录ID|-
 businessShop|name|1|String|100|商品名称|-
 businessShop|hotBuy|1|String|2|是否热卖商品|是否热卖 Y是 N否
 businessShop|salePrice|1|String|10.2|商品售价|商品销售价,再没有打折情况下显示,例如12.00
 businessShop|openShopCount|1|String|2|是否显示库存|是否开启库存管理,默认N Y开启,N关闭,开启后界面显示数量,如果为0 åˆ™ä¸‹æž¶
 businessShop|shopCount|1|int|-|商品库存数量|-
 businessShop|startDate|1|String|-|开始时间|格式为YYYY-MM-DD hh:mm:ss ä¾‹å¦‚:2018-07-07 11:04:00
 businessShop|endDate|1|String|-|结束时间|格式为YYYY-MM-DD hh:mm:ss ä¾‹å¦‚:2018-07-07 11:04:00
 è¯¦ç»†æŠ¥æ–‡[协议报文](#修改商品信息请求报文格式)
 ##### ä¿®æ”¹å•†å“å±žæ€§ä¿¡æ¯
 serviceCode ä¸º update.shop.info ä¿®æ”¹å•†å“å±žæ€§
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessShopAttr|1|Object|-|用户节点信息|-
 businessShopAttr|shopId|1|String|30|商品ID|传已有商品ID
 businessShopAttr|attrId|1|String|30|属性id|已有属性ID
 businessShopAttr|specCd|1|String|12|属性编码|商品服务提供
 businessShopAttr|value|1|String|50|属性值|-
 è¯¦ç»†æŠ¥æ–‡[协议报文](#修改商品信息请求报文格式)
 ##### ä¿®æ”¹å•†å“ç…§ç‰‡
 serviceCode ä¸º update.shop.info ä¿®æ”¹å•†å“ç…§ç‰‡
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessShopPhoto|1|Object|-|商品照片节点信息|-
 businessShopPhoto|shopId|1|String|30|商品ID|已有商品ID
 businessShopPhoto|shopPhotoId|1|String|30|商品照片ID|已有商品照片ID
 businessShopPhoto|shopPhotoTypeCd|1|String|商品照片类型|商品照片类型,L logo O å…¶ä»–照片
 businessShopPhoto|photo|1|String|照片|照片路径,或照片名称
 è¯¦ç»†æŠ¥æ–‡[协议报文](#修改商品信息请求报文格式)
 ##### ä¿®æ”¹å•†å“å±žæ€§ç¦»æ•£å€¼
 serviceCode ä¸º update.shop.info ä¿®æ”¹å•†å“å±žæ€§ç¦»æ•£å€¼
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessShopAttrParam|1|Object|-|商品属性离散值|-
 businessShopAttrParam|shopId|1|String|30|商品ID|已有商品ID
 businessShopAttrParam|attrParamId|1|String|30|离散值ID|已有离散值ID
 businessShopAttrParam|specCd|1|String|12|编码|-
 businessShopAttrParam|param|1|String|50|参数值|-
 è¯¦ç»†æŠ¥æ–‡[协议报文](#修改商品信息请求报文格式)
 ##### ä¿®æ”¹å•†å“ä¼˜æƒ 
 serviceCode ä¸º update.shop.info ä¿®æ”¹å•†å“ä¼˜æƒ 
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessShopPreferential|1|Object|-|商品优惠|-
 businessShopPreferential|shopId|1|String|30|商品ID|已有商品ID
 businessShopPreferential|shopPreferentialId|1|String|30|优惠ID|已有商品优惠ID
 businessShopPreferential|originalPrice|1|String|10,2|商品销售价|商品销售价,再没有优惠的情况下和售价是一致的,例如:12.00
 businessShopPreferential|discountRate|1|String|3,2|商品打折率|例如 0.90 æ‰“9折
 businessShopPreferential|showOriginalPrice|1|String|2|是否显示原价|是否显示原价,Y显示,N ä¸æ˜¾ç¤º
 businessShopPreferential|preferentialStartDate|1|String|-|优惠开始时间|格式为YYYY-MM-DD hh:mm:ss ä¾‹å¦‚:2018-07-07 11:04:00
 businessShopPreferential|preferentialEndDate|1|String|-|优惠结束时间|格式为YYYY-MM-DD hh:mm:ss ä¾‹å¦‚:2018-07-07 11:04:00
 è¯¦ç»†æŠ¥æ–‡[协议报文](#修改商品信息请求报文格式)
 ##### ä¿®æ”¹å•†å“æè¿°
 serviceCode ä¸º update.shop.info ä¿®æ”¹å•†å“æè¿°
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessShopDesc|1|Object|-|商品描述|-
 businessShopDesc|shopId|1|String|30|商品ID|已有商品ID
 businessShopDesc|shopDescId|1|String|30|商品描述ID|已有商品描述ID
 businessShopDesc|shopDescribe|1|String|-|商品描述|-
##### ä¿®æ”¹å•†å“ä¿¡æ¯è¯·æ±‚报文格式
```
 {
  "orders": {
    "appId": "外系统ID,分配得到",
    "transactionId": "100000000020180409224736000001",
    "userId": "用户ID",
    "orderTypeCd": "订单类型,查询,受理",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "这个服务是否要求MD5签名",
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  },
  "business": [{
    "serviceCode": "update.shop.info",
    "serviceName": "修改商品信息",
    "remark": "备注",
    "datas": {
      "businessShop": {
        "shopId": "123456",
        "storeId": "123",
        "catalogId":"-1",
        "name": "西红柿鸡蛋盖浇饭",
        "hotBuy": "Y",
        "salePrice": "12.00",
        "openShopCount": "N",
        "shopCount": "1",
        "startDate": "2018-07-07 11:04:00",
        "endDate": "2019-07-07 11:04:00"
      },
      "businessShopAttr": [{
        "shopId": "123456",
        "attrId":"123123",
        "specCd":"1001",
        "value":"01"
      }],
      "businessShopPhoto":[{
        "shopPhotoId":"123123",
        "shopId":"123456",
        "shopPhotoTypeCd":"L",
        "photo":"123.jpg"
      }],
      "businessShopAttrParam":[{
        "attrParamId":"123123",
        "shopId":"123456",
        "specCd":"123",
        "param":"加米"
      }],
      "businessShopPreferential":{
        "shopPreferentialId":"23213",
        "shopId":"123456",
        "originalPrice":"12.00",
        "discountRate":"1.00",
        "showOriginalPrice":"N",
        "preferentialStartDate":"2018-07-07 12:17:00",
        "preferentialEndDate":"2018-07-08 12:17:00"
      },
      "businessShopDesc":{
        "shopDescId":"343434",
        "shopId":"123456",
        "shopDescribe":""
      }
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
##### åˆ é™¤å•†å“ä¿¡æ¯
serviceCode ä¸º delete.shop.info åˆ é™¤å•†å“
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShop|1|Object|-|用户节点信息|-
businessShop|shopId|1|String|30|商品ID|传已有商品ID
详细报文[协议报文](#删除商品信息请求报文格式)
##### åˆ é™¤å•†å“å±žæ€§ä¿¡æ¯
serviceCode ä¸º delete.shop.info åˆ é™¤å•†å“å±žæ€§
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShopAttr|1|Object|-|用户节点信息|-
businessShopAttr|shopId|1|String|30|商品ID|传已有商品ID
businessShopAttr|attrId|1|String|30|属性id|已有属性ID
详细报文[协议报文](#删除商品信息请求报文格式)
##### åˆ é™¤å•†å“ç…§ç‰‡
serviceCode ä¸º delete.shop.info åˆ é™¤å•†å“ç…§ç‰‡
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShopPhoto|1|Object|-|商品照片节点信息|-
businessShopPhoto|shopId|1|String|30|商品ID|已有商品ID
businessShopPhoto|shopPhotoId|1|String|30|商品照片ID|已有商品照片ID
详细报文[协议报文](#删除商品信息请求报文格式)
##### åˆ é™¤å•†å“å±žæ€§ç¦»æ•£å€¼
serviceCode ä¸º delete.shop.info åˆ é™¤å•†å“å±žæ€§ç¦»æ•£å€¼
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShopAttrParam|1|Object|-|商品属性离散值|-
businessShopAttrParam|shopId|1|String|30|商品ID|已有商品ID
businessShopAttrParam|attrParamId|1|String|30|离散值ID|已有离散值ID
详细报文[协议报文](#删除商品信息请求报文格式)
##### åˆ é™¤å•†å“ä¼˜æƒ 
serviceCode ä¸º delete.shop.info åˆ é™¤å•†å“ä¼˜æƒ 
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShopPreferential|1|Object|-|商品优惠|-
businessShopPreferential|shopId|1|String|30|商品ID|已有商品ID
businessShopPreferential|shopPreferentialId|1|String|30|优惠ID|已有商品优惠ID
详细报文[协议报文](#删除商品信息请求报文格式)
##### åˆ é™¤å•†å“æè¿°
serviceCode ä¸º delete.shop.info åˆ é™¤å•†å“æè¿°
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessShopDesc|1|Object|-|商品描述|-
businessShopDesc|shopId|1|String|30|商品ID|已有商品ID
businessShopDesc|shopDescId|1|String|30|商品描述ID|已有商品描述ID
##### åˆ é™¤å•†å“ä¿¡æ¯è¯·æ±‚报文格式
```
{
  "orders": {
    "appId": "外系统ID,分配得到",
    "transactionId": "100000000020180409224736000001",
    "userId": "用户ID",
    "orderTypeCd": "订单类型,查询,受理",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "这个服务是否要求MD5签名",
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  },
  "business": [{
    "serviceCode": "delete.shop.info",
    "serviceName": "删除商品信息",
    "remark": "备注",
    "datas": {
      "businessShop": {
        "shopId": "123456"
      },
      "businessShopAttr": [{
        "shopId": "123456",
        "attrId":"123123"
      }],
      "businessShopPhoto":[{
        "shopPhotoId":"123123",
        "shopId":"123456"
      }],
      "businessShopAttrParam":[{
        "attrParamId":"123123",
        "shopId":"123456"
      }],
      "businessShopPreferential":{
        "shopPreferentialId":"23213",
        "shopId":"123456"
      },
      "businessShopDesc":{
        "shopDescId":"343434",
        "shopId":"123456"
      }
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
[>回到首页](home)
java110-doc/services/shop/shop_test.md
New file
@@ -0,0 +1,552 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-24|wuxw
### æµ‹è¯•说明
测试人员|测试时间|测试结果|联系邮箱
:-:|:-:|:-:|:-:|
wuxw|2018-5-25|通过|928255095@qq.com
### æœ¬é¡µå†…容
1. [保存商品测试](#保存商品测试)
2. [保存商品目录](#保存商品目录)
3. [修改商品信息](#修改商品信息)
4. [删除商品信息](#删除商品信息)
5. [修改商品目录](#修改商品目录)
6. [删除商品目录](#删除商品目录)
7. [购买商品](#购买商品)
### ä¿å­˜å•†å“æµ‹è¯•
##### æµ‹è¯•地址:
http://135.192.86.200:8001/httpApi/service
测试时135.192.86.200替换成自己的ip
##### è¯·æ±‚报文:
```
{
  "orders": {
    "appId": "8000418001",
        "transactionId": "100000000020180708224736000018",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
  },
  "business": [{
    "serviceCode": "save.shop.info",
    "serviceName": "保存商品信息",
    "remark": "备注",
    "datas": {
      "businessShop": {
        "shopId": "-1",
        "storeId": "40464215326209351680",
        "catalogId":"56465664285847068672",
        "name": "西红柿鸡蛋盖浇饭",
        "hotBuy": "Y",
        "salePrice": "12.00",
        "openShopCount": "N",
        "shopCount": "1",
        "startDate": "2018-07-07 11:04:00",
        "endDate": "2019-07-07 11:04:00"
      },
      "businessShopAttr": [{
        "shopId": "-1",
        "attrId":"-1",
        "specCd":"1001",
        "value":"01"
      }],
      "businessShopPhoto":[{
        "shopPhotoId":"-1",
        "shopId":"-1",
        "shopPhotoTypeCd":"L",
        "photo":"123.jpg"
      }],
      "businessShopAttrParam":[{
        "attrParamId":"-1",
        "shopId":"-1",
        "specCd":"123",
        "param":"加米"
      }],
      "businessShopPreferential":{
        "shopPreferentialId":"-1",
        "shopId":"-1",
        "originalPrice":"12.00",
        "discountRate":"1.00",
        "showOriginalPrice":"N",
        "preferentialStartDate":"2018-07-07 12:17:00",
        "preferentialEndDate":"2018-07-08 12:17:00"
      },
      "businessShopDesc":{
        "shopDescId":"-1",
        "shopId":"-1",
        "shopDescribe":""
      }
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
##### è¿”回报文:
```
{
    "business": [{
        "serviceCode": "save.shop.info",
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180409224736000001"
    }
}
```
### ä¿å­˜å•†å“ç›®å½•
##### è¯·æ±‚报文:
```
{
    "orders": {
        "appId": "8000418001",
        "transactionId": "100000000020180708224736000011",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
    },
    "business": [{
        "serviceCode": "save.shop.catalog",
        "serviceName": "保存商品目录",
        "remark": "备注",
        "datas": {
            "businessShopCatalog": {
                "catalogId": "-1",
                "storeId": "40464215326209351680",
                "name": "盖浇饭",
                "level": "1",
                "parentCatalogId": "-1"
            }
        },
        "attrs": [{
            "specCd": "配置的字段ID",
            "value": "具体值"
        }]
    }]
}
```
##### è¿”回报文:
```
{
    "business": [{
        "serviceCode": "save.shop.catalog",
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180409224736000001"
    }
}
```
### ä¿®æ”¹å•†å“ä¿¡æ¯
##### è¯·æ±‚报文
```
{
  "orders": {
    "appId": "8000418001",
        "transactionId": "100000000020180708224736000020",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
  },
  "business": [{
    "serviceCode": "update.shop.info",
    "serviceName": "保存商品信息",
    "remark": "备注",
    "datas": {
      "businessShop": {
        "shopId": "50465675955524870144",
        "storeId": "40464215326209351680",
        "catalogId":"56465664285847068672",
        "name": "西红柿鸡蛋盖浇饭123",
        "hotBuy": "N",
        "salePrice": "12.01",
        "openShopCount": "Y",
        "shopCount": "10",
        "startDate": "2018-07-08 11:04:00",
        "endDate": "2019-07-08 11:04:00"
      },
      "businessShopAttr": [{
        "shopId": "50465675955524870144",
        "attrId":"51465675955604561920",
        "specCd":"1001",
        "value":"01123"
      }],
      "businessShopPhoto":[{
        "shopPhotoId":"52465675955638116352",
        "shopId":"50465675955524870144",
        "shopPhotoTypeCd":"O",
        "photo":"123234.jpg"
      }],
      "businessShopAttrParam":[{
        "attrParamId":"53465675955654893568",
        "shopId":"50465675955524870144",
        "specCd":"123",
        "param":"加米123"
      }],
      "businessShopPreferential":{
        "shopPreferentialId":"51231232334",
        "shopId":"50465675955524870144",
        "originalPrice":"12.03",
        "discountRate":"0.70",
        "showOriginalPrice":"Y",
        "preferentialStartDate":"2018-08-07 12:17:00",
        "preferentialEndDate":"2018-08-08 12:17:00"
      },
      "businessShopDesc":{
        "shopDescId":"55465675955675865088",
        "shopId":"50465675955524870144",
        "shopDescribe":"你好"
      }
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
##### è¿”回报文:
```
{
    "business": [{
        "serviceCode": "update.shop.info",
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180409224736000001"
    }
}
```
### åˆ é™¤å•†å“ä¿¡æ¯
##### è¯·æ±‚报文:
```
{
  "orders": {
    "appId": "8000418001",
        "transactionId": "100000000020180708224736000023",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
  },
  "business": [{
    "serviceCode": "delete.shop.info",
    "serviceName": "删除商品信息",
    "remark": "备注",
    "datas": {
      "businessShop": {
        "shopId": "50465681433294282752"
      },
      "businessShopAttr": [{
        "shopId": "50465681433294282752",
        "attrId":"51465681433361391616"
      }],
      "businessShopPhoto":[{
        "shopPhotoId":"52465681433394946048",
        "shopId":"50465681433294282752"
      }],
      "businessShopAttrParam":[{
        "attrParamId":"53465681433420111872",
        "shopId":"50465681433294282752"
      }],
      "businessShopPreferential":{
        "shopPreferentialId":"54465681433436889088",
        "shopId":"50465681433294282752"
      },
      "businessShopDesc":{
        "shopDescId":"55465681433453666304",
        "shopId":"50465681433294282752"
      }
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
##### è¿”回报文:
```
{
    "business": [{
        "serviceCode": "delete.shop.info",
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180409224736000001"
    }
}
```
### ä¿®æ”¹å•†å“ç›®å½•
##### è¯·æ±‚报文
```
{
    "orders": {
        "appId": "8000418001",
        "transactionId": "100000000020180708224736000012",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
    },
    "business": [{
        "serviceCode": "update.shop.catalog",
        "serviceName": "保存商品目录",
        "remark": "备注",
        "datas": {
            "businessShopCatalog": {
                "catalogId": "56465664285847068672",
                "storeId": "40464215326209351680",
                "name": "盖浇饭123",
                "level": "1",
                "parentCatalogId": "-1"
            }
        },
        "attrs": [{
            "specCd": "配置的字段ID",
            "value": "具体值"
        }]
    }]
}
```
##### è¿”回报文:
```
{
    "business": [{
        "serviceCode": "update.shop.info",
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180409224736000001"
    }
}
```
### åˆ é™¤å•†å“ç›®å½•
##### è¯·æ±‚报文
```
{
    "orders": {
        "appId": "8000418001",
        "transactionId": "100000000020180708224736000013",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
    },
    "business": [{
        "serviceCode": "delete.shop.catalog",
        "serviceName": "保存商品目录",
        "remark": "备注",
        "datas": {
            "businessShopCatalog": {
                "catalogId": "56465664285847068672",
                "storeId": "40464215326209351680"
            }
        },
        "attrs": [{
            "specCd": "配置的字段ID",
            "value": "具体值"
        }]
    }]
}
```
#####  è¿”回报文
```
{
    "business": [{
        "serviceCode": "delete.shop.catalog",
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180708224736000013"
    }
}
```
### è´­ä¹°å•†å“
##### è¯·æ±‚报文:
```
{
  "orders": {
    "appId": "8000418001",
        "transactionId": "100000000020180708224736000021",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
  },
  "business": [{
    "serviceCode": "buy.shop.info",
    "serviceName": "è´­ä¹°",
    "remark": "备注",
    "datas": {
      "businessBuyShop": {
        "shopId": "50465681433294282752",
        "buyId": "-1",
        "buyCount":"10"
      },
      "businessBuyShopAttr": [{
        "buyId": "-1",
        "attrId":"-1",
        "specCd":"1001",
        "value":"01"
      }]
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
##### è¿”回报文
```
{
    "business": [{
        "serviceCode": "buy.shop.info",
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180708224736000013"
    }
}
```
[>回到首页](home)
java110-doc/services/store/store.md
New file
@@ -0,0 +1,463 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-29|wuxw
### æœ¬é¡µå†…容
1. [保存商户信息](#保存商户信息)
2. [保存商户属性信息](#保存商户属性信息)
3. [保存商户照片信息](#保存商户照片信息)
4. [保存商户证件信息](#保存商户证件信息)
5. [保存商户信息请求报文格式](#保存商户信息请求报文格式)
6. [修改商户信息](#修改商户信息)
7. [修改商户属性信息](#修改商户属性信息)
8. [修改商户照片信息](#修改商户照片信息)
9. [修改商户证件信息](#修改商户证件信息)
10. [修改商户信息请求报文格式](#修改商户信息请求报文格式)
11. [删除商户信息](#删除商户信息)
12. [删除商户属性信息](#删除商户属性信息)
13. [删除商户照片信息](#删除商户照片信息)
14. [删除商户证件信息](#删除商户证件信息)
15. [删除商户信息请求报文格式](#删除商户信息请求报文格式)
16. [商户成员加入](#商户成员加入)
17. [商户成员加入请求报文格式](#商户成员加入请求报文格式)
18. [商户成员退出](#商户成员退出)
19. [商户成员退出请求报文格式](#商户成员退出请求报文格式)
### å•†æˆ·åè®®
orders节点 å’Œ business节点在中心服务(center)中已经介绍,这里不再介绍,查看请点[orders和business介绍](center),这里我们介绍datas节点下内容
##### ä¿å­˜å•†æˆ·ä¿¡æ¯
serviceCode ä¸º save.store.info ä¿å­˜å•†æˆ·å±žæ€§
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessStore|1|Object|-|商户节点信息|-
 businessStore|storeId|1|String|30|商户ID|新增时传-1
 businessStore|userId|1|String|30|用户ID|传已有用户ID
 businessStore|name|1|String|100|商户名称|商户或店铺名称
 businessStore|address|1|String|200|商户地址|-
 businessStore|tel|1|String|11|联系电话|-
 businessStore|storeTypeCd|1|String|10|店铺种类|详见表store_type定义
 businessStore|nearbyLandmarks|1|String|200|地标|地标,如王府井北60ç±³
 businessStore|mapX|1|String|20|地区 x坐标|-
 businessStore|mapY|1|String|20|地区 y坐标|-
详细报文[协议报文](#保存商户信息请求报文格式)
##### ä¿å­˜å•†æˆ·å±žæ€§ä¿¡æ¯
serviceCode ä¸º save.store.info ä¿å­˜å•†æˆ·å±žæ€§
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessStoreAttr|1|Object|-|商户节点信息|-
businessStoreAttr|storeId|1|String|30|商户ID|商户新增的情况下传-1
businessStoreAttr|attrId|1|String|30|属性id|新增时传-1
businessStoreAttr|specCd|1|String|12|属性编码|商户服务提供
businessStoreAttr|value|1|String|50|属性值|-
详细报文[协议报文](#保存商户信息请求报文格式)
##### ä¿å­˜å•†æˆ·ç…§ç‰‡ä¿¡æ¯
serviceCode ä¸º save.store.info ä¿å­˜å•†æˆ·ç…§ç‰‡
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessStorePhoto|1|Object|-|商户照片节点信息|-
 businessStorePhoto|storePhotoId|1|String|30|商户照片ID|新增时传-1
 businessStorePhoto|storeId|1|String|30|商户ID|商户新增时传-1
 businessStorePhoto|storePhotoTypeCd|1|String|12|商户照片类型|商户照片类型,T é—¨å¤´ç…§ I å†…景照
 businessStorePhoto|photo|1|String|100|照片|照片
详细报文[协议报文](#保存商户信息请求报文格式)
##### ä¿å­˜å•†æˆ·è¯ä»¶ä¿¡æ¯
serviceCode ä¸º save.store.info ä¿å­˜å•†æˆ·è¯ä»¶
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessStoreCerdentials|1|Object|-|商户证件节点信息|-
 businessStoreCerdentials|storeCerdentialsId|1|String|30|商户证件ID|新增时传-1
businessStoreCerdentials|storeId|1|String|30|商户ID|商户新增时传-1
businessStoreCerdentials|credentialsCd|1|String|12|证件类型|对应于 credentials表
businessStoreCerdentials|value|1|String|50|证件号码|-
businessStoreCerdentials|validityPeriod|1|String|-|有效期|格式为YYYY-MM-DD hh:mm:ss ä¾‹å¦‚:2018-07-07 11:04:00 å¦‚果是长期有效 å†™æˆ 3000-01-01 00:00:00
businessStoreCerdentials|positivePhoto|1|String|100|正面照片|照片存储大数据中路径
businessStoreCerdentials|negativePhoto|1|String|100|反面照片|照片存储大数据中路径
详细报文[协议报文](#保存商户信息请求报文格式)
##### ä¿å­˜å•†æˆ·ä¿¡æ¯è¯·æ±‚报文格式
```
{
  "orders": {
    "appId": "外系统ID,分配得到",
    "transactionId": "100000000020180409224736000001",
    "userId": "用户ID",
    "orderTypeCd": "订单类型,查询,受理",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "这个服务是否要求MD5签名",
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  },
  "business": [{
    "serviceCode": "save.store.info",
    "serviceName": "保存商户信息",
    "remark": "备注",
    "datas": {
      "businessStore": {
        "storeId": "-1",
        "userId": "用户ID",
        "name": "齐天超时(王府井店)",
        "address": "青海省西宁市城中区129号",
        "password": "ERCBHDUYFJDNDHDJDNDJDHDUDHDJDDKDK",
        "tel": "15897089471",
        "storeTypeCd": "M",
        "nearbyLandmarks": "王府井内",
        "mapX": "101.801909",
        "mapY": "36.597263"
      },
      "businessStoreAttr": [{
        "storeId": "-1",
        "attrId":"-1",
        "specCd":"1001",
        "value":"01"
      }],
      "businessStorePhoto":[{
        "storePhotoId":"-1",
        "storeId":"-1",
        "storePhotoTypeCd":"T",
        "photo":"12345678.jpg"
      }],
      "businessStoreCerdentials":[{
        "storeCerdentialsId":"-1",
        "storeId":"-1",
        "credentialsCd":"1",
        "value":"632126XXXXXXXX2011",
        "validityPeriod":"有效期,长期有效请写3000/01/01",
        "positivePhoto":"正面照片地址,1234567.jpg",
        "negativePhoto":"反面照片地址,没有不填写"
      }]
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
##### ä¿®æ”¹å•†æˆ·ä¿¡æ¯
serviceCode ä¸º update.store.info ä¿®æ”¹å•†æˆ·ä¿¡æ¯
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessStore|1|Object|-|商户节点信息|-
 businessStore|storeId|1|String|30|商户ID|传需要修改的商户ID
 businessStore|userId|1|String|30|用户ID|传已有用户ID
 businessStore|name|1|String|100|商户名称|商户或店铺名称
 businessStore|address|1|String|200|商户地址|-
 businessStore|tel|1|String|11|联系电话|-
 businessStore|storeTypeCd|1|String|10|店铺种类|详见表store_type定义
 businessStore|nearbyLandmarks|1|String|200|地标|地标,如王府井北60ç±³
 businessStore|mapX|1|String|20|地区 x坐标|-
 businessStore|mapY|1|String|20|地区 y坐标|-
 è¯¦ç»†æŠ¥æ–‡[协议报文](#修改商户信息请求报文格式)
 ##### ä¿®æ”¹å•†æˆ·å±žæ€§ä¿¡æ¯
 serviceCode ä¸º update.store.info ä¿®æ”¹å•†æˆ·å±žæ€§
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessStoreAttr|1|Object|-|商户节点信息|-
 businessStoreAttr|storeId|1|String|30|商户ID|已有商户ID
 businessStoreAttr|attrId|1|String|30|属性id|已有属性ID
 businessStoreAttr|specCd|1|String|12|属性编码|商户服务提供
 businessStoreAttr|value|1|String|50|属性值|-
 è¯¦ç»†æŠ¥æ–‡[协议报文](#修改商户信息请求报文格式)
 ##### ä¿®æ”¹å•†æˆ·ç…§ç‰‡ä¿¡æ¯
 serviceCode ä¸º update.store.info ä¿®æ”¹å•†æˆ·ç…§ç‰‡
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessStorePhoto|1|Object|-|商户照片节点信息|-
  businessStorePhoto|storePhotoId|1|String|30|商户照片ID|已有商户照片ID
  businessStorePhoto|storeId|1|String|30|商户ID|已有商户ID
  businessStorePhoto|storePhotoTypeCd|1|String|12|商户照片类型|商户照片类型,T é—¨å¤´ç…§ I å†…景照
  businessStorePhoto|photo|1|String|100|照片|照片
 è¯¦ç»†æŠ¥æ–‡[协议报文](#修改商户信息请求报文格式)
 ##### ä¿®æ”¹å•†æˆ·è¯ä»¶ä¿¡æ¯
 serviceCode ä¸º update.store.info ä¿®æ”¹å•†æˆ·è¯ä»¶
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessStoreCerdentials|1|Object|-|商户证件节点信息|-
  businessStoreCerdentials|storeCerdentialsId|1|String|30|商户证件ID|已有证件ID
 businessStoreCerdentials|storeId|1|String|30|商户ID|已有商户ID
 businessStoreCerdentials|credentialsCd|1|String|12|证件类型|对应于 credentials表
 businessStoreCerdentials|value|1|String|50|证件号码|-
 businessStoreCerdentials|validityPeriod|1|String|-|有效期|格式为YYYY-MM-DD hh:mm:ss ä¾‹å¦‚:2018-07-07 11:04:00 å¦‚果是长期有效 å†™æˆ 3000-01-01 00:00:00
 businessStoreCerdentials|positivePhoto|1|String|100|正面照片|照片存储大数据中路径
 businessStoreCerdentials|negativePhoto|1|String|100|反面照片|照片存储大数据中路径
 è¯¦ç»†æŠ¥æ–‡[协议报文](#修改商户信息请求报文格式)
##### ä¿®æ”¹å•†æˆ·ä¿¡æ¯è¯·æ±‚报文格式
```
{
  "orders": {
    "appId": "外系统ID,分配得到",
    "transactionId": "100000000020180409224736000001",
    "userId": "用户ID",
    "orderTypeCd": "订单类型,查询,受理",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "这个服务是否要求MD5签名",
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  },
  "business": [{
    "serviceCode": "update.store.info",
    "serviceName": "修改商户信息",
    "remark": "备注",
    "datas": {
      "businessStore": {
        "storeId": "123456",
        "userId": "用户ID",
        "name": "齐天超时(王府井店)",
        "address": "青海省西宁市城中区129号",
        "password": "ERCBHDUYFJDNDHDJDNDJDHDUDHDJDDKDK",
        "tel": "15897089471",
        "storeTypeCd": "M",
        "nearbyLandmarks": "王府井内",
        "mapX": "101.801909",
        "mapY": "36.597263"
      },
      "businessStoreAttr": [{
        "storeId": "123456",
        "attrId":"1234546",
        "specCd":"1001",
        "value":"01"
      }],
      "businessStorePhoto":[{
        "storePhotoId":"12321",
        "storeId": "123456",
        "storePhotoTypeCd":"T",
        "photo":"12345678.jpg"
      }],
      "businessStoreCerdentials":[{
        "storeCerdentialsId":"123123",
        "storeId": "123456",
        "credentialsCd":"1",
        "value":"632126XXXXXXXX2011",
        "validityPeriod":"有效期,长期有效请写3000/01/01",
        "positivePhoto":"正面照片地址,1234567.jpg",
        "negativePhoto":"反面照片地址,没有不填写"
      }]
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
##### åˆ é™¤å•†æˆ·ä¿¡æ¯
serviceCode ä¸º delete.store.info åˆ é™¤å•†æˆ·ä¿¡æ¯
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessStore|1|Object|-|商户节点信息|-
 businessStore|storeId|1|String|30|商户ID|传需要删除的商户ID
 è¯¦ç»†æŠ¥æ–‡[协议报文](#删除商户信息请求报文格式)
 ##### åˆ é™¤å•†æˆ·å±žæ€§ä¿¡æ¯
 serviceCode ä¸º delete.store.info åˆ é™¤å•†æˆ·å±žæ€§
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessStoreAttr|1|Object|-|商户节点信息|-
 businessStoreAttr|storeId|1|String|30|商户ID|已有商户ID
 businessStoreAttr|attrId|1|String|30|属性id|已有属性ID
 è¯¦ç»†æŠ¥æ–‡[协议报文](#删除商户信息请求报文格式)
 ##### åˆ é™¤å•†æˆ·ç…§ç‰‡ä¿¡æ¯
 serviceCode ä¸º delete.store.info ä¿®æ”¹å•†æˆ·ç…§ç‰‡
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessStorePhoto|1|Object|-|商户照片节点信息|-
  businessStorePhoto|storePhotoId|1|String|30|商户照片ID|已有商户照片ID
  businessStorePhoto|storeId|1|String|30|商户ID|已有商户ID
 è¯¦ç»†æŠ¥æ–‡[协议报文](#删除商户信息请求报文格式)
 ##### åˆ é™¤å•†æˆ·è¯ä»¶ä¿¡æ¯
 serviceCode ä¸º delete.store.info åˆ é™¤å•†æˆ·è¯ä»¶
 çˆ¶å…ƒç´ åç§°|参数名称|约束|类型|长度|描述|取值说明
  :-: | :-: | :-: | :-: | :-: | :-: | :-:
  datas|businessStoreCerdentials|1|Object|-|商户证件节点信息|-
  businessStoreCerdentials|storeCerdentialsId|1|String|30|商户证件ID|已有证件ID
 businessStoreCerdentials|storeId|1|String|30|商户ID|已有商户ID
 è¯¦ç»†æŠ¥æ–‡[协议报文](#删除商户信息请求报文格式)
##### åˆ é™¤å•†æˆ·ä¿¡æ¯è¯·æ±‚报文格式
```
{
  "orders": {
    "appId": "外系统ID,分配得到",
    "transactionId": "100000000020180409224736000001",
    "userId": "用户ID",
    "orderTypeCd": "订单类型,查询,受理",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "这个服务是否要求MD5签名",
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  },
  "business": [{
    "serviceCode": "delete.store.info",
    "serviceName": "修改商户信息",
    "remark": "备注",
    "datas": {
      "businessStore": {
        "storeId": "123456"
      },
      "businessStoreAttr": [{
        "storeId": "123456",
        "attrId":"1234546"
      }],
      "businessStorePhoto":[{
        "storePhotoId":"12321",
        "storeId": "123456"
      }],
      "businessStoreCerdentials":[{
        "storeCerdentialsId":"123123",
        "storeId": "123456"
      }]
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
#### å•†æˆ·æˆå‘˜åŠ å…¥
serviceCode ä¸º member.joined.store æˆå‘˜åŠ å…¥
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessMemberStore|1|Object|-|成员加入节点信息|-
 businessMemberStore|memberStoreId|1|String|30|id|ä¼ -1
businessMemberStore|storeId|1|String|30|商户ID|已有商户ID
businessMemberStore|memberId|1|String|30|成员商户ID|已有商户ID
#####  å•†æˆ·æˆå‘˜åŠ å…¥è¯·æ±‚æŠ¥æ–‡æ ¼å¼
```
{
  "orders": {
    "appId": "外系统ID,分配得到",
    "transactionId": "100000000020180409224736000001",
    "userId": "用户ID",
    "orderTypeCd": "订单类型,查询,受理",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "这个服务是否要求MD5签名",
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  },
  "business": [{
    "serviceCode": "member.joined.store",
    "serviceName": "商户成员加入",
    "remark": "备注",
    "datas": {
      "businessMemberStore": {
        "memberStoreId": "-1",
        "storeId": "1234",
        "memberId": "45677",
      }
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
#### å•†æˆ·æˆå‘˜é€€å‡º
serviceCode ä¸º member.quit.store æˆå‘˜åŠ å…¥
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessMemberStore|1|Object|-|成员加入节点信息|-
 businessMemberStore|memberStoreId|1|String|30|id|已有成员关系ID
#####  å•†æˆ·æˆå‘˜é€€å‡ºè¯·æ±‚报文格式
```
{
  "orders": {
    "appId": "外系统ID,分配得到",
    "transactionId": "100000000020180409224736000001",
    "userId": "用户ID",
    "orderTypeCd": "订单类型,查询,受理",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "这个服务是否要求MD5签名",
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  },
  "business": [{
    "serviceCode": "member.quit.store",
    "serviceName": "商户成员加入",
    "remark": "备注",
    "datas": {
      "businessMemberStore": {
        "memberStoreId": "123"
      }
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
[>回到首页](home)
java110-doc/services/store/store_test.md
New file
@@ -0,0 +1,279 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-29|wuxw
### æµ‹è¯•说明
测试人员|测试时间|测试结果|联系邮箱
:-:|:-:|:-:|:-:|
wuxw|2018-5-25|通过|928255095@qq.com
### æœ¬é¡µå†…容
1. [保存商户测试](#保存商户测试)
2. [修改商户测试](#修改商户测试)
3. [删除商户测试](#删除商户测试)
### ä¿å­˜å•†æˆ·æµ‹è¯•
##### æµ‹è¯•地址:
http://135.192.86.200:8001/httpApi/service
测试时135.192.86.200替换成自己的ip
##### è¯·æ±‚报文:
```
{
    "orders": {
        "appId": "8000418001",
        "transactionId": "100000000020180704224736000014",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
    },
    "business": [{
        "serviceCode": "save.store.info",
        "serviceName": "保存商户信息",
        "remark": "备注",
        "datas": {
            "businessStore": {
                "storeId": "-1",
                "userId": "用户ID",
                "name": "齐天超时(王府井店)",
                "address": "青海省西宁市城中区129号",
                "tel": "15897089471",
                "storeTypeCd": "M",
                "nearbyLandmarks": "王府井内",
                "mapX": "101.801909",
                "mapY": "36.597263"
            },
            "businessStoreAttr": [{
                "storeId": "-1",
                "attrId": "-1",
                "specCd": "1001",
                "value": "01"
            }],
            "businessStorePhoto": [{
                "storePhotoId": "-1",
                "storeId": "-1",
                "storePhotoTypeCd": "T",
                "photo": "12345678.jpg"
            }],
            "businessStoreCerdentials": [{
                "storeCerdentialsId": "-1",
                "storeId": "-1",
                "credentialsCd": "1",
                "value": "632126XXXXXXXX2011",
                "validityPeriod": "",
                "positivePhoto": "1234567.jpg",
                "negativePhoto": ""
            }]
        },
        "attrs": [{
            "specCd": "配置的字段ID",
            "value": "具体值"
        }]
    }]
}
```
##### è¿”回报文:
```
{
    "business": [{
        "serviceCode": "save.store.info",
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180704224736000014"
    }
}
```
### ä¿®æ”¹å•†æˆ·æµ‹è¯•
##### æµ‹è¯•地址:
http://135.192.86.200:8001/httpApi/service
测试时135.192.86.200替换成自己的ip
##### è¯·æ±‚报文:
```
{
    "orders": {
        "appId": "8000418001",
        "transactionId": "100000000020180704224736000022",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
    },
    "business": [{
        "serviceCode": "update.store.info",
        "serviceName": "修改商户信息",
        "remark": "备注",
        "datas": {
            "businessStore": {
                "storeId": "40464215326209351680",
                "userId": "用户ID123",
                "name": "齐天超时(王府井店)123",
                "address": "青海省西宁市城中区129号123",
                "tel": "15897089471",
                "storeTypeCd": "M",
                "nearbyLandmarks": "王府井内123",
                "mapX": "101.801909",
                "mapY": "36.597263"
            },
            "businessStoreAttr": [{
                "storeId": "40464215326209351680",
                "attrId": "11464215326758805504",
                "specCd": "1001",
                "value": "01123"
            }],
            "businessStorePhoto": [{
                "storePhotoId": "41464215326792359936",
                "storeId": "40464215326209351680",
                "storePhotoTypeCd": "T",
                "photo": "12345678123.jpg"
            }],
            "businessStoreCerdentials": [{
                "storeCerdentialsId": "42464215326817525760",
                "storeId": "40464215326209351680",
                "credentialsCd": "1",
                "value": "632126XXXXXXXX2012",
                "validityPeriod": "3000-01-01",
                "positivePhoto": "1234567123.jpg",
                "negativePhoto": ""
            }]
        },
        "attrs": [{
            "specCd": "配置的字段ID",
            "value": "具体值"
        }]
    }]
}
```
##### è¿”回报文:
```
{
    "business": [{
        "serviceCode": "update.store.info",
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180704224736000022"
    }
}
```
### åˆ é™¤å•†æˆ·æµ‹è¯•
##### æµ‹è¯•地址:
http://135.192.86.200:8001/httpApi/service
测试时135.192.86.200替换成自己的ip
##### è¯·æ±‚报文:
```
{
    "orders": {
        "appId": "8000418001",
        "transactionId": "100000000020180704224736000025",
        "userId": "1000123",
        "orderTypeCd": "D",
        "requestTime": "20180409224736",
        "remark": "备注",
        "sign": "",
        "attrs": [{
            "specCd": "100001",
            "value": "测试单"
        }]
    },
    "business": [{
        "serviceCode": "delete.store.info",
        "serviceName": "删除商户信息",
        "remark": "备注",
        "datas": {
            "businessStore": {
                "storeId": "40464215326209351680"
            },
            "businessStoreAttr": [{
                "storeId": "40464215326209351680",
                "attrId": "11464215326758805504"
            }],
            "businessStorePhoto": [{
                "storePhotoId": "41464215326792359936",
                "storeId": "40464215326209351680"
            }],
            "businessStoreCerdentials": [{
                "storeCerdentialsId": "42464215326817525760",
                "storeId": "40464215326209351680"
            }]
        },
        "attrs": [{
            "specCd": "配置的字段ID",
            "value": "具体值"
        }]
    }]
}
```
##### è¿”回报文:
```
{
    "business": [{
        "serviceCode": "delete.store.info",
        "response": {
            "code": "0000",
            "message": "成功"
        }
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180704224736000025"
    }
}
```
[>回到首页](home)
java110-doc/services/user/user.md
New file
@@ -0,0 +1,227 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-24|wuxw
### æœ¬é¡µå†…容
1. [保存用户信息](#保存用户信息)
2. [保存用户证件信息](#保存用户证件信息)
3. [用户打标](#用户打标)
4. [用户地址信息保存](#用户地址信息保存)
### ç”¨æˆ·åè®®
orders节点 å’Œ business节点在中心服务(center)中已经介绍,这里不再介绍,查看请点[orders和business介绍](center),这里我们介绍datas节点下内容
##### ä¿å­˜ç”¨æˆ·ä¿¡æ¯
serviceCode ä¸º save.user.info ä¿å­˜ç”¨æˆ·
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessUser|1|Object|-|用户节点信息|-
 businessUser|userId|1|String|30|用户ID|新增时,写-1,其他时写存在userId
 businessUser|name|1|String|50|用户名称|-
 businessUser|email|?|String|30|邮箱|请填写XX@YY.ZZ格式的邮箱地址
 businessUser|address|?|String|200|现居住地址|XX市XX区XXè·¯
 businessUser|password|?|String|128|加密后的用户密码|请用MD5加密
 businessUser|locationCd|?|String|8|用户地区|详见u_location
 businessUser|age|?|int|-|用户年龄|-
 businessUser|sex|?|String|1|用户性别|0表示男孩,1表示女孩
 businessUser|tel|?|String|11|用户手机号|-
 businessUser|level_cd|1|String|2|用户级别|关联user_level
 businessUser|businessUserAttr|?|Array|-|用户属性|-
 businessUserAttr|attrId|1|String|30|属性ID|新增时,写-1,其他时写存在attrId
 businessUserAttr|specCd|1|String|12|规格编码|由用户服务提供
 businessUserAttr|value|1|String|50|属性值|
请求报文格式:
```
{
  "orders": {
    "appId": "外系统ID,分配得到",
    "transactionId": "100000000020180409224736000001",
    "userId": "用户ID",
    "orderTypeCd": "订单类型,查询,受理",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "这个服务是否要求MD5签名",
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  },
  "business": [{
    "serviceCode": "save.user.info",
    "serviceName": "保存用户信息",
    "remark": "备注",
    "datas": {
      "businessUser": {
        "userId": "-1",
        "name": "张三",
        "email": "928255095@qq.com",
        "address": "青海省西宁市城中区129号",
        "password": "ERCBHDUYFJDNDHDJDNDJDHDUDHDJDDKDK",
        "locationCd": "001",
        "age": 19,
        "sex": "0",
        "tel": "17797173943",
        "level_cd": "1",
        "businessUserAttr": [{
          "attrId":"-1",
          "specCd":"1001",
          "value":"01"
        }]
      }
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
##### ä¿å­˜ç”¨æˆ·è¯ä»¶ä¿¡æ¯
serviceCode ä¸º save.user.credentials ä¿å­˜ç”¨æˆ·è¯ä»¶ä¿¡æ¯
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
datas|businessUserCredentials|1|Object|-|用户证件节点信息|-
businessUserCredentials|userId|1|String|30|用户ID|已有userId
businessUserCredentials|credentialsId|1|String|30|证件ID|新增写-1
businessUserCredentials|credentialsCd|1|String|12|证件类型|证件字典表
businessUserCredentials|value|1|String|50|证件号码|证件号码
```
{
  "orders": {
    "appId": "外系统ID,分配得到",
    "transactionId": "100000000020180409224736000001",
    "userId": "用户ID",
    "orderTypeCd": "订单类型,查询,受理",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "这个服务是否要求MD5签名",
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  },
  "business": [{
    "serviceCode": "save.user.credentials",
    "serviceName": "用户打标保存",
    "remark": "备注",
    "datas": {
      "businessUserCredentials": {
        "userId": "1019181771",
        "credentialsId": "-1",
        "credentialsCd": "1",
        "value":"632126XXXXXXXX2011"
      }
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
##### ç”¨æˆ·æ‰“æ ‡
serviceCode ä¸º save.user.tag ç”¨æˆ·æ‰“æ ‡
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
datas|businessUserTag|1|Object|-|用户证件节点信息|-
businessUserTag|userId|1|String|30|用户ID|已有userId
businessUserTag|tagId|1|String|30|tagId|新增写-1
businessUserTag|tagCd|1|String|12|标签编码|-
businessUserTag|remark|1|String|200|备注|备注
```
{
  "orders": {
    "appId": "外系统ID,分配得到",
    "transactionId": "100000000020180409224736000001",
    "userId": "用户ID",
    "orderTypeCd": "订单类型,查询,受理",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "这个服务是否要求MD5签名",
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  },
  "business": [{
    "serviceCode": "save.user.tag",
    "serviceName": "用户打标保存",
    "remark": "备注",
    "datas": {
      "businessUserTag": {
        "userId": "1019181771",
        "tagId": "-1",
        "tagCd": "1019191",
        "remark": "青海省西宁市城中区129号"
      }
    },
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  }]
}
```
##### ç”¨æˆ·åœ°å€ä¿¡æ¯ä¿å­˜
serviceCode ä¸º save.user.address ç”¨æˆ·åœ°å€ä¿¡æ¯ä¿å­˜
父元素名称|参数名称|约束|类型|长度|描述|取值说明
 :-: | :-: | :-: | :-: | :-: | :-: | :-:
 datas|businessUserAddress|1|Object|-|用户证件节点信息|-
 businessUserAddress|userId|1|String|30|用户ID|已有userId
 businessUserAddress|addressId|1|String|30|addressId|新增写-1
 businessUserAddress|tel|11|String|30|电话|-
 businessUserAddress|address|200|String|30|地址|-
 businessUserAddress|postalCode|1|String|10|邮政编码|-
 businessUserAddress|isDefault|1|String|1|是否为默认地址|1,表示默认地址 0 ä¸ºç©ºä¸æ˜¯é»˜è®¤åœ°å€
```
{
  "orders": {
    "appId": "外系统ID,分配得到",
    "transactionId": "100000000020180409224736000001",
    "userId": "用户ID",
    "orderTypeCd": "订单类型,查询,受理",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "这个服务是否要求MD5签名",
    "attrs": [{
      "specCd": "配置的字段ID",
      "value": "具体值"
    }]
  },
  "business": [{
    "serviceCode": "save.user.address",
    "serviceName": "用户地址信息保存",
    "remark": "备注",
    "datas": {
      "businessUserAddress": {
        "userId": "123123",
        "addressId": "-1",
        "tel": "17797173943",
        "address": "青海省西宁市城中区129号",
        "postalCode": "810504",
        "isDefault": "0"
      }
    }
  }]
}
```
[>回到首页](home)
java110-doc/services/user/user_test.md
New file
@@ -0,0 +1,99 @@
### å˜æ›´åŽ†å²
版本|变更内容|变更时间|变更人员
:-: | :-: | :-: | :-:
v0.01|初稿|2018-07-24|wuxw
### æµ‹è¯•说明
测试人员|测试时间|测试结果|联系邮箱
:-:|:-:|:-:|:-:|
wuxw|2018-5-25|通过|928255095@qq.com
### æœ¬é¡µå†…容
1. [保存用户测试](#保存用户测试)
### ä¿å­˜ç”¨æˆ·æµ‹è¯•
##### æµ‹è¯•地址:
http://135.192.86.200:8001/httpApi/service
测试时135.192.86.200替换成自己的ip
##### è¯·æ±‚报文:
```
{
"orders": {
    "appId": "8000418001",
    "transactionId": "100000000020180409224736000001",
    "userId": "1000123",
    "orderTypeCd": "D",
    "requestTime": "20180409224736",
    "remark": "备注",
    "sign": "",
    "attrs": [{
        "specCd": "100001",
        "value": "测试单"
    }]
},
"business": [{
    "serviceCode": "save.user.info",
    "serviceName": "保存用户信息",
    "remark": "备注",
    "datas": {
        "businessUser": {
            "userId": "-1",
            "name": "张三",
            "email": "928255095@qq.com",
            "address": "青海省西宁市城中区129号",
            "password": "ERCBHDUYFJDNDHDJDNDJDHDUDHDJDDKDK",
            "locationCd": "001",
            "age": 19,
            "sex": "0",
            "tel": "17797173943",
            "levelCd": "1",
            "businessUserAttr": [{
                "attrId": "-1",
                "specCd": "1001",
                "value": "01"
            }]
        }
    },
    "attrs": [{
        "specCd": "200001",
        "value": "1000123"
    }]
}]
}
```
##### è¿”回报文:
```
{
    "business": [{
        "serviceCode": "save.user.info",
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "bId": "202018052400000046",
        "businessType": "B",
        "userId": "300000000001",
        "transactionId": "100000120180524000048",
        "dataFlowId": "20002018052400000043"
    }],
    "orders": {
        "response": {
            "code": "0000",
            "message": "成功"
        },
        "responseTime": "20180524011054",
        "sign": "",
        "transactionId": "100000000020180409224736000001"
    }
}
```
[>回到首页](home)
java110-doc/ÈÕÖ¾¼Ç¼.md
New file
@@ -0,0 +1,89 @@
A————————————————>B
        B--------------->C------------------>F
        B--------------->D
        B----------------E
A : id 1
    parentId:
    contextId:123456789
-- æŽ¥å—到
B : id 2
    parentId:1
    contextId:123456789
-- è°ƒç”¨ B------------>C
    id 3
    paraentId:1
    contextId:123456789
 -- è°ƒç”¨ B------------>D
    id 4
    paraentId:1
    contextId:123456789
 -- è°ƒç”¨ B------------>E
    id 5
    paraentId:1
    contextId:123456789
-- æŽ¥å—到
C:  id:6
    parentId:3
    contextId:123456789
-- è°ƒç”¨
    id:7
    parentId:3
-- æŽ¥å—到
D:  id:8
    parentId:4
    contextId:123456789
-- æŽ¥å—到
E:  id:9
    parentId:5
    contextId:123456789
-- è¿”回E--------------->B
E:  id:10
    parentId:5
    contextId:123456789
java110-doc/ÇëÇóÐÅϢ˵Ã÷.md
New file
@@ -0,0 +1,19 @@
url:/api/method?param=test
header:
ENCRYPT ON åР坆 OFF æ˜Žæ–‡
TRANSACTION_ID 100210210102000191001
APP_ID 123456
REQ_TIME 20181113225612
SIGN aabdncdhdbd878sbdudn898
SIGN ç”Ÿæˆæ–¹å¼ TRANSACTION_ID+REQ_TIME+APP_ID+param(Get Delete æ—¶URL,put å’Œ post æ—¶ è¯·æ±‚内容)+SecurityCode
body(post,put):
请求报文