update[doc]
This commit is contained in:
19
README.md
19
README.md
@@ -124,7 +124,7 @@ V 2.0.0 完成以下目标:
|
||||
|
||||
V 3.0.0 完成以下目标:
|
||||
1. 管理后台一些辅助功能
|
||||
2. 后台服务加强安全功能、事务功能
|
||||
2. 后台服务加强安全功能、配置功能
|
||||
3. 项目代码重构和清理
|
||||
4. 其他配套服务,如代码文档、war部署支持
|
||||
|
||||
@@ -158,9 +158,20 @@ V 3.0.0 完成以下目标:
|
||||
* `管理后台`商品详细信息支持tinymce富文本编辑
|
||||
* `管理后台`的后台服务加密管理员密码
|
||||
* `管理后台`完善登录退出逻辑
|
||||
* `数据库`除regions几个表,其他所有表都添加`add_time`和`deleted`字段
|
||||
* `业务访问模块`不支持数据物理删除,删除则设置`deleted`,而查询则过滤`deleted`
|
||||
|
||||
* `基础系统`数据库中除regions几个表,其他所有表都添加`add_time`和`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 @@
|
||||
然后测试是否部署成功(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:8083/admin/index/index
|
||||
http://xxx.xxx.xxx.xxx:8080/#/login
|
||||
|
||||
56
doc/1.md
56
doc/1.md
@@ -165,7 +165,7 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实
|
||||
7. 编译本项目
|
||||
8. 运行litemall-os-api, 打开浏览器,输入
|
||||
```
|
||||
http://localhost:8081/storage/index/index
|
||||
http://localhost:8081/os/index/index
|
||||
```
|
||||
如果出现JSON数据,则Spring Boot开发环境部署成功,litemall-os-api模块运行正常。
|
||||
9. 同上,运行litemall-wx-api, 打开浏览器,输入
|
||||
@@ -272,13 +272,13 @@ mvn package
|
||||
最后,本机测试性部署三个Spring Boot应用
|
||||
```
|
||||
cd litemall
|
||||
java -jar ./litemall-os-api/target/litemall-os-api-0.1.0.jar &
|
||||
java -jar ./litemall-wx-api/target/litemall-wx-api-0.1.0.jar &
|
||||
java -jar ./litemall-admin-api/target/litemall-admin-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-exec.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:8083/admin/index/index
|
||||
```
|
||||
@@ -474,9 +474,9 @@ cnpm run build:prod
|
||||
https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#deployment-service
|
||||
|
||||
1. 项目进一步打包到deploy文件夹中:
|
||||
* litemall-os-api模块编译得到的litemall-os-api-xxx.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-admin-api模块编译得到的litemall-admin-api-xxx.jar 保存到deploy的litemall-admin-api文件夹中,同时重命名成litemall-admin-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-exec.jar 保存到deploy的litemall-wx-api文件夹中,同时重命名成litemall-wx-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文件夹中。
|
||||
|
||||
2. 使用FileZilla把deploy整个文件夹上传到云主机的/home/ubuntu文件夹中
|
||||
@@ -509,7 +509,7 @@ https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#dep
|
||||
然后测试是否部署成功(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:8083/admin/index/index
|
||||
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
|
||||
|
||||
### 1.5.4 分布式云部署方案
|
||||
|
||||
目前没有测试过,但是简单的分布式应该是可行的。
|
||||
|
||||
由于本项目是面向微小型企业的小商城系统,因此预期的分布式部署方案是
|
||||
1. 专门的云数据库部署数据
|
||||
2. 一台云主机部署管理后台的后台服务
|
||||
3. 一台云主机部署管理后台静态文件服务
|
||||
4. 一台云主机部署小商场的后台服务
|
||||
5. 专门的云存储方案
|
||||
2. 专门的云存储方案
|
||||
3. 专门的CDN分发管理后台的静态文件
|
||||
4. 一台云主机部署管理后台的后台服务
|
||||
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方案,
|
||||
> 因此开发者可能需要做一些配置方面的调整,例如三个后台服务地址调整。
|
||||
52
doc/2.md
52
doc/2.md
@@ -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模块
|
||||
的对象存储页面中允许管理员修改。
|
||||
|
||||
### 2.3.1 业务
|
||||
注意:
|
||||
> 这个模块是可选的,或者说不建议最终部署时所使用。
|
||||
> 最终部署时建议采用第三方云存储方案。
|
||||
|
||||
### 2.4.1 业务
|
||||
|
||||
支持服务:
|
||||
|
||||
@@ -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
|
||||
这样简化的目的是对象存储服务建议最终采用云服务,因此这里仅仅实现一个简单的服务面向测试开发。
|
||||
|
||||
如果用户需要局域网部署,那么这里需要加入一定的安全机制。
|
||||
|
||||
### 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格式的项目包,包含了三个后台服务和静态文件。
|
||||
|
||||
|
||||
34
doc/3.md
34
doc/3.md
@@ -145,13 +145,41 @@
|
||||
或者采用更加符合实际情况的运费计算方式。
|
||||
|
||||
#### 3.1.9.2 取消订单
|
||||
|
||||
* 用户手动取消
|
||||
|
||||
用户下单以后但是未付款,
|
||||
|
||||
* 用户超时取消
|
||||
|
||||
这里,订单超时未付款则系统会自动取消订单。
|
||||
|
||||
在实现上,则是采用Spring定时功能查询数据库内订单的时间和状态,
|
||||
如果发现超时了,则自动取消订单,而取消订单的具体操作可以简单
|
||||
采用“用户手动取消”相同的操作。
|
||||
|
||||
目前这里取消状态码是一样的,因此最终可能并不能分别订单取消是因为
|
||||
何种原因而取消的。
|
||||
|
||||
#### 3.1.9.3 取消订单并退款
|
||||
|
||||
用户付款以后再申请取消订单比较复杂,涉及微信退款操作,因此这里并没有
|
||||
简单作为“取消订单”,而是一种独立的功能。
|
||||
|
||||
#### 3.1.9.4 删除订单
|
||||
#### 3.1.9.5 订单确认发货
|
||||
#### 3.1.9.6 订单超时确认收货
|
||||
|
||||
用户收到货物以后可能并不会积极地进行“确认收货”操作,因此有必要实现
|
||||
一定时间以后订单自动确认收货。
|
||||
|
||||
“订单超时确认”的起始时间如何来设计
|
||||
|
||||
#### 3.1.9.6 可评价订单商品信息
|
||||
#### 3.1.9.7 订单列表
|
||||
#### 3.1.9.8 订单详情
|
||||
|
||||
|
||||
### 3.1.10 评价服务
|
||||
|
||||
#### 3.1.10.1 评论列表
|
||||
@@ -379,10 +407,14 @@ var WxApiRoot = 'http://localhost:8082/wx/';
|
||||
|
||||
#### 3.2.5.3 addressId
|
||||
|
||||
## 3.3 开发
|
||||
## 3.3 开发新功能
|
||||
|
||||
本章节介绍如何开发新的微信小程序功能。
|
||||
|
||||
### 3.3.1 小商场页面开发
|
||||
|
||||
### 3.3.2 交互服务API设计
|
||||
|
||||
### 3.3.3 后台服务开发
|
||||
|
||||
### 3.3.4 数据库
|
||||
BIN
doc/pic/1.png
BIN
doc/pic/1.png
Binary file not shown.
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 138 KiB |
BIN
doc/pic/2.png
BIN
doc/pic/2.png
Binary file not shown.
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 74 KiB |
BIN
doc/pic1/1-1.png
BIN
doc/pic1/1-1.png
Binary file not shown.
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 78 KiB |
Reference in New Issue
Block a user