Browse Source

整合文档

wuxw 7 years ago
parent
commit
e0a9d7ba24
44 changed files with 4126 additions and 0 deletions
  1. 18 0
      java110-doc/_Sidebar.md
  2. 143 0
      java110-doc/api/openApi.md
  3. 8 0
      java110-doc/develop.md
  4. 34 0
      java110-doc/dictionary.md
  5. 197 0
      java110-doc/home.md
  6. BIN
      java110-doc/images/all.jpg
  7. BIN
      java110-doc/images/center_01.jpg
  8. BIN
      java110-doc/images/center_02.jpg
  9. BIN
      java110-doc/images/code_01.jpg
  10. BIN
      java110-doc/images/comment_01.jpg
  11. BIN
      java110-doc/images/comment_02.jpg
  12. BIN
      java110-doc/images/console_01.jpg
  13. BIN
      java110-doc/images/docker_all.jpg
  14. BIN
      java110-doc/images/eureka_01.jpg
  15. BIN
      java110-doc/images/eureka_02.jpg
  16. BIN
      java110-doc/images/eureka_03.jpg
  17. BIN
      java110-doc/images/git_code.jpg
  18. BIN
      java110-doc/images/kafka_01.jpg
  19. BIN
      java110-doc/images/mysql_01.jpg
  20. BIN
      java110-doc/images/mysql_02.jpg
  21. BIN
      java110-doc/images/mysql_03.jpg
  22. BIN
      java110-doc/images/mysql_04.jpg
  23. BIN
      java110-doc/images/redis_01.jpg
  24. BIN
      java110-doc/images/redis_02.jpg
  25. BIN
      java110-doc/images/shop_01.jpg
  26. BIN
      java110-doc/images/store_01.jpg
  27. BIN
      java110-doc/images/user_01.jpg
  28. BIN
      java110-doc/images/zookeeper_01.jpg
  29. BIN
      java110-doc/images/zookeeper_02.jpg
  30. 207 0
      java110-doc/install.md
  31. 32 0
      java110-doc/services/code/code.md
  32. 46 0
      java110-doc/services/code/code_test.md
  33. 207 0
      java110-doc/services/comment/comment.md
  34. 174 0
      java110-doc/services/comment/comment_test.md
  35. 423 0
      java110-doc/services/order/order.md
  36. 226 0
      java110-doc/services/order/order_config.md
  37. 683 0
      java110-doc/services/shop/shop.md
  38. 552 0
      java110-doc/services/shop/shop_test.md
  39. 463 0
      java110-doc/services/store/store.md
  40. 279 0
      java110-doc/services/store/store_test.md
  41. 227 0
      java110-doc/services/user/user.md
  42. 99 0
      java110-doc/services/user/user_test.md
  43. 89 0
      java110-doc/日志记录.md
  44. 19 0
      java110-doc/请求信息说明.md

+ 18 - 0
java110-doc/_Sidebar.md

@@ -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)

+ 143 - 0
java110-doc/api/openApi.md

@@ -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"}
+```

+ 8 - 0
java110-doc/develop.md

@@ -0,0 +1,8 @@
+### 变更历史
+版本|变更内容|变更时间|变更人员
+:-: | :-: | :-: | :-:
+v0.01|初稿|2018-07-30|wuxw
+
+### 本页内容
+
+正在编写中。。。

+ 34 - 0
java110-doc/dictionary.md

@@ -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|营业结束时段|营业结束时段

+ 197 - 0
java110-doc/home.md

@@ -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)

BIN
java110-doc/images/all.jpg


BIN
java110-doc/images/center_01.jpg


BIN
java110-doc/images/center_02.jpg


BIN
java110-doc/images/code_01.jpg


BIN
java110-doc/images/comment_01.jpg


BIN
java110-doc/images/comment_02.jpg


BIN
java110-doc/images/console_01.jpg


BIN
java110-doc/images/docker_all.jpg


BIN
java110-doc/images/eureka_01.jpg


BIN
java110-doc/images/eureka_02.jpg


BIN
java110-doc/images/eureka_03.jpg


BIN
java110-doc/images/git_code.jpg


BIN
java110-doc/images/kafka_01.jpg


BIN
java110-doc/images/mysql_01.jpg


BIN
java110-doc/images/mysql_02.jpg


BIN
java110-doc/images/mysql_03.jpg


BIN
java110-doc/images/mysql_04.jpg


BIN
java110-doc/images/redis_01.jpg


BIN
java110-doc/images/redis_02.jpg


BIN
java110-doc/images/shop_01.jpg


BIN
java110-doc/images/store_01.jpg


BIN
java110-doc/images/user_01.jpg


BIN
java110-doc/images/zookeeper_01.jpg


BIN
java110-doc/images/zookeeper_02.jpg


+ 207 - 0
java110-doc/install.md

@@ -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)

+ 32 - 0
java110-doc/services/code/code.md

@@ -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)

+ 46 - 0
java110-doc/services/code/code_test.md

@@ -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)

+ 207 - 0
java110-doc/services/comment/comment.md

@@ -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)

+ 174 - 0
java110-doc/services/comment/comment_test.md

@@ -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)

+ 423 - 0
java110-doc/services/order/order.md

@@ -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)

+ 226 - 0
java110-doc/services/order/order_config.md

@@ -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)

+ 683 - 0
java110-doc/services/shop/shop.md

@@ -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)

+ 552 - 0
java110-doc/services/shop/shop_test.md

@@ -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)

+ 463 - 0
java110-doc/services/store/store.md

@@ -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)

+ 279 - 0
java110-doc/services/store/store_test.md

@@ -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)

+ 227 - 0
java110-doc/services/user/user.md

@@ -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)

+ 99 - 0
java110-doc/services/user/user_test.md

@@ -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)

+ 89 - 0
java110-doc/日志记录.md

@@ -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
+

+ 19 - 0
java110-doc/请求信息说明.md

@@ -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):
+
+请求报文