Commit 2a05ed9e authored by Junling Bu's avatar Junling Bu
Browse files

update[doc]

parent 9de5199c
...@@ -124,7 +124,7 @@ V 2.0.0 完成以下目标: ...@@ -124,7 +124,7 @@ V 2.0.0 完成以下目标:
V 3.0.0 完成以下目标: V 3.0.0 完成以下目标:
1. 管理后台一些辅助功能 1. 管理后台一些辅助功能
2. 后台服务加强安全功能、事务功能 2. 后台服务加强安全功能、配置功能
3. 项目代码重构和清理 3. 项目代码重构和清理
4. 其他配套服务,如代码文档、war部署支持 4. 其他配套服务,如代码文档、war部署支持
...@@ -158,9 +158,20 @@ V 3.0.0 完成以下目标: ...@@ -158,9 +158,20 @@ V 3.0.0 完成以下目标:
* `管理后台`商品详细信息支持tinymce富文本编辑 * `管理后台`商品详细信息支持tinymce富文本编辑
* `管理后台`的后台服务加密管理员密码 * `管理后台`的后台服务加密管理员密码
* `管理后台`完善登录退出逻辑 * `管理后台`完善登录退出逻辑
* `数据库`除regions几个表,其他所有表都添加`add_time``deleted`字段 * `基础系统`数据库中除regions几个表,其他所有表都添加`add_time``deleted`字段
* `业务访问模块`不支持数据物理删除,删除则设置`deleted`,而查询则过滤`deleted` * `基础系统`litemall-db模块不支持数据物理删除,删除则设置`deleted`,而查询则过滤`deleted`
* V 0.4.0, 项目结构调整,增加了两个模块
* `小商场`的后台服务代码添加注释,校验输入参数
* `小商场`商品无货时显示“商品已售空”
* `管理后台`支持管理员同一账户多终端登录,方便演示
* `管理后台`专题内容支持富文本编辑
* `基础系统`litemall-os-api的链接从`storage/index/index`调整至`os/index/index`
* `基础系统`litemall-os-api支持浏览器显示。
* `基础系统`新增litemall-core模块,综合了litemall-os-api、litemall-wx-api
和litemall-admin-api的共性代码,目前主要是配置和util代码
* `基础系统`新增litemall-all模块作为包裹模块,支持三个后台服务和静态文件
打包成一个war项目包
警告 警告
== ==
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
然后测试是否部署成功(xxx.xxx.xxx.xxx是云主机IP): 然后测试是否部署成功(xxx.xxx.xxx.xxx是云主机IP):
``` ```
http://xxx.xxx.xxx.xxx:8081/storage/index/index http://xxx.xxx.xxx.xxx:8081/os/index/index
http://xxx.xxx.xxx.xxx:8082/wx/index/index http://xxx.xxx.xxx.xxx:8082/wx/index/index
http://xxx.xxx.xxx.xxx:8083/admin/index/index http://xxx.xxx.xxx.xxx:8083/admin/index/index
http://xxx.xxx.xxx.xxx:8080/#/login http://xxx.xxx.xxx.xxx:8080/#/login
......
...@@ -165,7 +165,7 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实 ...@@ -165,7 +165,7 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实
7. 编译本项目 7. 编译本项目
8. 运行litemall-os-api, 打开浏览器,输入 8. 运行litemall-os-api, 打开浏览器,输入
``` ```
http://localhost:8081/storage/index/index http://localhost:8081/os/index/index
``` ```
如果出现JSON数据,则Spring Boot开发环境部署成功,litemall-os-api模块运行正常。 如果出现JSON数据,则Spring Boot开发环境部署成功,litemall-os-api模块运行正常。
9. 同上,运行litemall-wx-api, 打开浏览器,输入 9. 同上,运行litemall-wx-api, 打开浏览器,输入
...@@ -272,13 +272,13 @@ mvn package ...@@ -272,13 +272,13 @@ mvn package
最后,本机测试性部署三个Spring Boot应用 最后,本机测试性部署三个Spring Boot应用
``` ```
cd litemall cd litemall
java -jar ./litemall-os-api/target/litemall-os-api-0.1.0.jar & java -jar ./litemall-os-api/target/litemall-os-api-0.1.0-exec.jar &
java -jar ./litemall-wx-api/target/litemall-wx-api-0.1.0.jar & java -jar ./litemall-wx-api/target/litemall-wx-api-0.1.0-exec.jar &
java -jar ./litemall-admin-api/target/litemall-admin-api-0.1.0.jar & java -jar ./litemall-admin-api/target/litemall-admin-api-0.1.0-exec.jar &
``` ```
如果,能够访问以下链接的数据,则表明本地测试部署成功: 如果,能够访问以下链接的数据,则表明本地测试部署成功:
``` ```
http://localhost:8081/storage/index/index http://localhost:8081/os/index/index
http://localhost:8082/wx/index/index http://localhost:8082/wx/index/index
http://localhost:8083/admin/index/index http://localhost:8083/admin/index/index
``` ```
...@@ -474,9 +474,9 @@ cnpm run build:prod ...@@ -474,9 +474,9 @@ cnpm run build:prod
https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#deployment-service https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#deployment-service
1. 项目进一步打包到deploy文件夹中: 1. 项目进一步打包到deploy文件夹中:
* litemall-os-api模块编译得到的litemall-os-api-xxx.jar 保存到deploy的litemall-os-api文件夹中,同时重命名成litemall-os-api.jar * litemall-os-api模块编译得到的litemall-os-api-xxx-exec.jar 保存到deploy的litemall-os-api文件夹中,同时重命名成litemall-os-api.jar
* litemall-wx-api模块编译得到的litemall-wx-api-xxx.jar 保存到deploy的litemall-wx-api文件夹中,同时重命名成litemall-wx-api.jar * litemall-wx-api模块编译得到的litemall-wx-api-xxx-exec.jar 保存到deploy的litemall-wx-api文件夹中,同时重命名成litemall-wx-api.jar
* litemall-admin-api模块编译得到的litemall-admin-api-xxx.jar 保存到deploy的litemall-admin-api文件夹中,同时重命名成litemall-admin-api.jar * litemall-admin-api模块编译得到的litemall-admin-api-xxx-exec.jar 保存到deploy的litemall-admin-api文件夹中,同时重命名成litemall-admin-api.jar
* litemall-admin模块编译以后,把dist文件夹压缩,然后放到deploy的litemall-admin文件夹中。 * litemall-admin模块编译以后,把dist文件夹压缩,然后放到deploy的litemall-admin文件夹中。
2. 使用FileZilla把deploy整个文件夹上传到云主机的/home/ubuntu文件夹中 2. 使用FileZilla把deploy整个文件夹上传到云主机的/home/ubuntu文件夹中
...@@ -509,7 +509,7 @@ https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#dep ...@@ -509,7 +509,7 @@ https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#dep
然后测试是否部署成功(xxx.xxx.xxx.xxx是云主机IP): 然后测试是否部署成功(xxx.xxx.xxx.xxx是云主机IP):
``` ```
http://xxx.xxx.xxx.xxx:8081/storage/index/index http://xxx.xxx.xxx.xxx:8081/os/index/index
http://xxx.xxx.xxx.xxx:8082/wx/index/index http://xxx.xxx.xxx.xxx:8082/wx/index/index
http://xxx.xxx.xxx.xxx:8083/admin/index/index http://xxx.xxx.xxx.xxx:8083/admin/index/index
http://xxx.xxx.xxx.xxx:8080/#/login http://xxx.xxx.xxx.xxx:8080/#/login
...@@ -537,16 +537,38 @@ https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#dep ...@@ -537,16 +537,38 @@ https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#dep
### 1.5.4 分布式云部署方案 ### 1.5.4 分布式云部署方案
目前没有测试过,但是简单的分布式应该是可行的。
由于本项目是面向微小型企业的小商城系统,因此预期的分布式部署方案是 由于本项目是面向微小型企业的小商城系统,因此预期的分布式部署方案是
1. 专门的云数据库部署数据 1. 专门的云数据库部署数据
2. 一台云主机部署管理后台的后台服务 2. 专门的云存储方案
3. 一台云主机部署管理后台静态文件服务 3. 专门的CDN分发管理后台的静态文件
4. 一台云主机部署小商场的后台服务 4. 一台云主机部署管理后台的后台服务
5. 专门的云存储方案 5. 一台云主机部署小商场的后台服务
虽然由于环境原因没有正式测试过,但是这种简单的分布式场景应该是可行的。
在1.5.3节中所演示的四个服务是独立的,因此延伸到这里分布式是非常容易的。
因此,如果需要实现互联网式分布式云部署,目前的项目架构和方案会存在很多问题。 但是,如果需要实现互联网式分布式云部署,目前的项目架构和方案会存在很多问题。
至少每个功能模块应该是独立服务系统。此外,需要引入单点登录系统、集群、缓存 至少每个功能模块应该是独立服务系统。此外,需要引入单点登录系统、集群、缓存
和消息队列等多种技术。 和消息队列等多种技术。因此如果开发者需要这种形式的分布式方案,请参考其他项目。
### 1.5.5 单主机单服务war部署方案
这里介绍另外一种单主机单服务的方案,即四个服务打包成一个war格式的项目部署包。
和1.5.3节相比,采用这样方案的原因是:
1. 安装方便,是传统的web项目安装方式,在tomcat里面部署一个war项目包,即可完成安装;
2. 内存消耗少。在1.5.3节中四个独立的java环境消耗的内存大概1.2G多,而这里部署以后
只需要一个java环境,因此消耗内存只有1.5.3节方案的四分之一,适合1G云主机部署。
3. 只存在一个域名和端口,没有多个服务之间依赖关系。
具体的打包部署方案是;
1. litemall-admin首先需要先编译得到静态文件;
2. 采用`mvn package`命令,litemall-all模块自动生成war格式的安装包,里面
包含了三个后台服务和静态文件;
3. 把这个安装包手动或采用其他方式部署云主机的tomcat服务器。
更多细节阅读2.5节litemall-all模块。
注意:
> 虽然这里介绍了这种方案,但是本项目的开发、测试和部署是基于1.5.3方案,
> 因此开发者可能需要做一些配置方面的调整,例如三个后台服务地址调整。
\ No newline at end of file
...@@ -376,15 +376,21 @@ litemall.sql数据库基于nideshop中的[nideshop.sql](https://github.com/tumob ...@@ -376,15 +376,21 @@ litemall.sql数据库基于nideshop中的[nideshop.sql](https://github.com/tumob
} }
} }
``` ```
## 2.3 litemall-core
## 2.3 litemall-os-api ## 2.4 litemall-os-api
对象存储服务目前的目标是支持图片的上传下载。 对象存储服务目前的目标是支持图片的上传下载。
作为后台模块之一,litemall-os-api并没有对应的前端模块,而只是在litemall-admin模块 作为后台模块之一,litemall-os-api并没有对应的前端模块,而只是在litemall-admin模块
的对象存储页面中允许管理员修改。 的对象存储页面中允许管理员修改。
### 2.3.1 业务 注意:
> 这个模块是可选的,或者说不建议最终部署时所使用。
> 最终部署时建议采用第三方云存储方案。
### 2.4.1 业务
支持服务: 支持服务:
...@@ -396,7 +402,7 @@ litemall.sql数据库基于nideshop中的[nideshop.sql](https://github.com/tumob ...@@ -396,7 +402,7 @@ litemall.sql数据库基于nideshop中的[nideshop.sql](https://github.com/tumob
* 下载,即下载对象数据文件 * 下载,即下载对象数据文件
* 访问,即直接访问对象数据 * 访问,即直接访问对象数据
### 2.3.2 安全 ### 2.4.2 安全
警告 警告
> 目前这里没有任何安全机制,这意味着任何人如果知道对象存储服务的地址,都可以直接存储访问对象数据。 > 目前这里没有任何安全机制,这意味着任何人如果知道对象存储服务的地址,都可以直接存储访问对象数据。
...@@ -404,3 +410,43 @@ litemall.sql数据库基于nideshop中的[nideshop.sql](https://github.com/tumob ...@@ -404,3 +410,43 @@ litemall.sql数据库基于nideshop中的[nideshop.sql](https://github.com/tumob
这样简化的目的是对象存储服务建议最终采用云服务,因此这里仅仅实现一个简单的服务面向测试开发。 这样简化的目的是对象存储服务建议最终采用云服务,因此这里仅仅实现一个简单的服务面向测试开发。
如果用户需要局域网部署,那么这里需要加入一定的安全机制。 如果用户需要局域网部署,那么这里需要加入一定的安全机制。
### 2.4.3 文件Key
每一个上传的文件都会采用一个随机值key,作为当前文件的网络访问链接的一部分。
以后可能需要进一步支持用户自定义Key,例如采用原文件名字作为key。
## 2.5 litemall-all
在章节1.5中讨论的部署方案中设计了一种单主机单服务方案,
也就是说三个后台服务和静态文件都部署在一个Spring Boot应用中。
注意:
> 这个模块也是可选的,或者说不是非常建议的,应该仅用在主机内存资源紧张的情况下。
> 最终部署,仍然建议部署多个服务更为安全和稳定。
查看litemall-all模块,代码仅仅只有一个Application类。
实际的原理是litemall-all模块内的pom.xml文件:
1. 声明打包方式是`war`,因此最后会打包war格式
2. 设置`spring-boot-starter-tomcat`包是`provided`,因此最终不会打包
3. 申明依赖`litemall-os-api``litemall-wx-api``litemall-admin-api`
因此最终会打包;
在Application类里面通过`scanBasePackages`即可把三个后台服务模块
的服务启动。此外在tomcat中启动,需要采用继承`SpringBootServletInitializer`
的Application。
4. 利用maven-resources-plugin插件,将litemall-admin模块下编译得到dist文件下的
静态文件打包到static目录中。
注意,这里只是简单的复制。因此开发者需要保证litemall-all打包前,litemall-admin
模块内dist目录下静态文件已经生成。
最终打包以后则是一个war格式的项目包,包含了三个后台服务和静态文件。
...@@ -145,13 +145,41 @@ ...@@ -145,13 +145,41 @@
或者采用更加符合实际情况的运费计算方式。 或者采用更加符合实际情况的运费计算方式。
#### 3.1.9.2 取消订单 #### 3.1.9.2 取消订单
* 用户手动取消
用户下单以后但是未付款,
* 用户超时取消
这里,订单超时未付款则系统会自动取消订单。
在实现上,则是采用Spring定时功能查询数据库内订单的时间和状态,
如果发现超时了,则自动取消订单,而取消订单的具体操作可以简单
采用“用户手动取消”相同的操作。
目前这里取消状态码是一样的,因此最终可能并不能分别订单取消是因为
何种原因而取消的。
#### 3.1.9.3 取消订单并退款 #### 3.1.9.3 取消订单并退款
用户付款以后再申请取消订单比较复杂,涉及微信退款操作,因此这里并没有
简单作为“取消订单”,而是一种独立的功能。
#### 3.1.9.4 删除订单 #### 3.1.9.4 删除订单
#### 3.1.9.5 订单确认发货 #### 3.1.9.5 订单确认发货
#### 3.1.9.6 订单超时确认收货
用户收到货物以后可能并不会积极地进行“确认收货”操作,因此有必要实现
一定时间以后订单自动确认收货。
“订单超时确认”的起始时间如何来设计
#### 3.1.9.6 可评价订单商品信息 #### 3.1.9.6 可评价订单商品信息
#### 3.1.9.7 订单列表 #### 3.1.9.7 订单列表
#### 3.1.9.8 订单详情 #### 3.1.9.8 订单详情
### 3.1.10 评价服务 ### 3.1.10 评价服务
#### 3.1.10.1 评论列表 #### 3.1.10.1 评论列表
...@@ -379,10 +407,14 @@ var WxApiRoot = 'http://localhost:8082/wx/'; ...@@ -379,10 +407,14 @@ var WxApiRoot = 'http://localhost:8082/wx/';
#### 3.2.5.3 addressId #### 3.2.5.3 addressId
## 3.3 开发 ## 3.3 开发新功能
本章节介绍如何开发新的微信小程序功能。
### 3.3.1 小商场页面开发 ### 3.3.1 小商场页面开发
### 3.3.2 交互服务API设计 ### 3.3.2 交互服务API设计
### 3.3.3 后台服务开发 ### 3.3.3 后台服务开发
### 3.3.4 数据库
\ No newline at end of file
doc/pic/1.png

125 KB | W: | H:

doc/pic/1.png

138 KB | W: | H:

doc/pic/1.png
doc/pic/1.png
doc/pic/1.png
doc/pic/1.png
  • 2-up
  • Swipe
  • Onion skin
doc/pic/2.png

63.6 KB | W: | H:

doc/pic/2.png

73.8 KB | W: | H:

doc/pic/2.png
doc/pic/2.png
doc/pic/2.png
doc/pic/2.png
  • 2-up
  • Swipe
  • Onion skin
doc/pic1/1-1.png

72.1 KB | W: | H:

doc/pic1/1-1.png

77.9 KB | W: | H:

doc/pic1/1-1.png
doc/pic1/1-1.png
doc/pic1/1-1.png
doc/pic1/1-1.png
  • 2-up
  • Swipe
  • Onion skin
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment