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

update[doc]

parent 9de5199c
......@@ -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
......
......@@ -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方案,
> 因此开发者可能需要做一些配置方面的调整,例如三个后台服务地址调整。
\ No newline at end of file
......@@ -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格式的项目包,包含了三个后台服务和静态文件。
......@@ -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 数据库
\ 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