Commit 0f2caa4a authored by Junling Bu's avatar Junling Bu
Browse files

[release]: v1.7.0

parent 6d35c40e
# 更新日志 # 更新日志
## V 1.7.0
*2020-02-15* 支持docker部署、售后管理、通知管理、数据库七天备份。
#### Bug 修复
* `小商城`后端接口部分存在水平越权漏洞
* `小商城`验证码未超时仍会发送验证码
* `小商城`显示管理员评论回复(#340 by sunyinggang)
* `管理后台`管理员评论回复(#340 by sunyinggang)
* `轻商城`添加收货地址返回不正确(#320 by kevinleeex)
#### 优化
* `管理后台`专题支持排序、批量删除
* `基础系统`数据库四个表索引(#328 #330 #332 #334 by wtune)
#### 新特性
* `基础系统`支持docker部署(参考实现 #321 by yuana1)
* `基础系统`自动备份7天数据到backup文件夹
* `管理后台`通知中心和通知管理
* `管理后台`登录页面增加版权内容
* `管理后台`售后管理
* `小商城`订单售后列表、售后详情、申请售后
* `轻商城`实现账号注册功能(#324 by yelongbao)
## V 1.6.1 ## V 1.6.1
*2019-01-01* *2020-01-01*
#### Bug 修复 #### Bug 修复
......
...@@ -76,7 +76,7 @@ litemall = Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 ...@@ -76,7 +76,7 @@ litemall = Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端
* 商品详情、商品评价、商品分享 * 商品详情、商品评价、商品分享
* 购物车 * 购物车
* 下单 * 下单
* 订单列表、订单详情 * 订单列表、订单详情、订单售后
* 地址、收藏、足迹、意见反馈 * 地址、收藏、足迹、意见反馈
* 客服 * 客服
...@@ -154,7 +154,7 @@ litemall = Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 ...@@ -154,7 +154,7 @@ litemall = Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端
## 开发计划 ## 开发计划
当前版本[v1.6.1](https://linlinjava.gitbook.io/litemall/changelog) 当前版本[v1.7.0](https://linlinjava.gitbook.io/litemall/changelog)
目前项目开发中,存在诸多不足,以下是目前规划的开发计划。 目前项目开发中,存在诸多不足,以下是目前规划的开发计划。
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* vue-router * vue-router
* axios * axios
* element * element
* vue-element-admin 3.9.3 * vue-element-admin 4.2.1
* 其他,见package.json * 其他,见package.json
* 管理后台后端, 即litemall-admin-api模块 * 管理后台后端, 即litemall-admin-api模块
* Spring Boot 2.x * Spring Boot 2.x
...@@ -21,8 +21,6 @@ ...@@ -21,8 +21,6 @@
* `改善`管理员登录页面打开慢,优化速度 * `改善`管理员登录页面打开慢,优化速度
* `改善`地址优化,目前每一次点击都会请求后台,应该缓存已有的数据 * `改善`地址优化,目前每一次点击都会请求后台,应该缓存已有的数据
* `改善`vue和vue-element-admin等及时更新 * `改善`vue和vue-element-admin等及时更新
* `功能`系统数据字典功能
* `功能`支持数据库备份
## 4.1 litemall-admin-api ## 4.1 litemall-admin-api
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
本项目前后端接口规范和接口文档。 本项目前后端接口规范和接口文档。
本项目没有采用Swagger技术,开发者可以自行集成。
注意: 注意:
> 1. 以下API部分基于nideshop开源项目的API设计; > 1. 以下API部分基于nideshop开源项目的API设计;
> 2. 以下API是参考API,可能不是很合理,欢迎开发者交流。 > 2. 以下API是参考API,可能不是很合理,欢迎开发者交流。
...@@ -417,9 +415,9 @@ API应该存在版本控制,以保证兼容性。 ...@@ -417,9 +415,9 @@ API应该存在版本控制,以保证兼容性。
* 团购API完善 * 团购API完善
### 1.11 NO Swagger ### 1.11 Not Like Swagger
暂不支持Swagger,基于以下考虑: 本项目不是很接受Swagger,基于以下考虑:
* 前后端中立 * 前后端中立
...@@ -440,7 +438,11 @@ API应该存在版本控制,以保证兼容性。 ...@@ -440,7 +438,11 @@ API应该存在版本控制,以保证兼容性。
如果使用Swagger,为了得到完整的文档,需要在每一个方法前面加上多个文档注解,文档越是详尽,则注解越多, 如果使用Swagger,为了得到完整的文档,需要在每一个方法前面加上多个文档注解,文档越是详尽,则注解越多,
造成代码不是很简洁。特别是具备代码属性的注解和Swagger文档注解混杂在一起,可能不是很好。 造成代码不是很简洁。特别是具备代码属性的注解和Swagger文档注解混杂在一起,可能不是很好。
如果开发者需要Swagger,可以自行接入。 当然,本项目也简单地配置了Swagger(见`WxSwagger2Configuration``AdminSwagger2Configuration`),
在线Swagger文档链接:http://122.51.199.160:8080/swagger-ui.html
当然正如上文讨论,本项目不是很接受Swagger的理念,所以后端没有使用Swagger的相关文档注解,
这也导致了Swagger接口文档的不具可读性。如果开发者需要,可以自行在后端补充Swagger注解。
## 2 商城API服务 ## 2 商城API服务
......
...@@ -363,15 +363,48 @@ litemall_region表保存了行政区域信息,包括省级、市级、县级 ...@@ -363,15 +363,48 @@ litemall_region表保存了行政区域信息,包括省级、市级、县级
* 401 * 401
用户可以`删除``去评价``再次购买` 用户可以`删除``去评价``申请售后``再次购买`
* 402 * 402
用户可以`删除``去评价``再次购买` 用户可以`删除``去评价``申请售后``再次购买`
#### 2.1.4.3 售后处理 #### 2.1.4.3 申请售后
目前不支持退货售后相关业务。 当用户确认收货或者系统自动确认收货以后,订单可以申请售后。
目前仅支持订单整体售后,而不支持订单商品独立售后。
这是因为:订单存在商品售价、优惠券减免、团购减免以及物流运费属性,
如果要支持单个商品退款,那么存在一个需要解决的问题就是单个商品的
退款金额如何计算。如果开发者这里考虑清楚,也可以参考当前代码实现
订单商品独立售后
litemall_order表中存在`aftersale_status`字段,记录订单售后状态。
而具体的售后记录则是litemall_aftersale表记录。
这里`type`字段表示当前售后类型,目前存在三种类型:
* 如果type=0,即“未收货退款”,通常是系统超时自动确认收货,而实际上用户没有收货,因此可以选择这个;
* 如果type=1,即“无需退货退款”,通常是用户确认收货后申请售后,而管理员同意可以不需要退货,直接退款给用户;
* 如果type=2,即“退货退款”,通常是用户确认收货后申请售后,管理员同意用户退货,当管理员收到货以后再退款给用户。
需要注意的是:当前实现中,如果是“退货退款”类型,那么管理员在进行退款以后,系统会自动恢复货品数量。
这是因为管理员完成“退货退款”售后,说明管理员已经收到用户的退货。
开发者可以改变这里的实现逻辑,例如采用独立的退货入库流程。
`status`字段表示当前售后状态,分别是:
* 如果status=0,未申请售后;
* 如果status=1,用户申请售后,等待管理员审核;
* 如果status=2,管理员审核通过,等待管理员退款;
* 如果status=3,管理员已退款,售后完成;
* 如果status=4,管理员审核不通过,售后完成;
* 如果status=5,用户已取消售后,当用户在申请售后以后可以在管理员审核前申请取消。
这里需要补充的是:订单litemall_order表的`aftersale_status`字段,和订单售后litemall_aftersale
表的`status`字段是完全一致的,方便前端分别查询订单状态和订单售后状态。
`amount`字段表示当前售后退款金额,正如前面所述当前仅支持订单整体售后,因此目前设计的退款金额是
订单实际付款-订单运费。
#### 2.1.4.4 商品评价 #### 2.1.4.4 商品评价
...@@ -386,11 +419,12 @@ litemall_region表保存了行政区域信息,包括省级、市级、县级 ...@@ -386,11 +419,12 @@ litemall_region表保存了行政区域信息,包括省级、市级、县级
评论表litemall_comment保存评论相关的信息,其中最关键的是`type`字段和`value_id`字段。 评论表litemall_comment保存评论相关的信息,其中最关键的是`type`字段和`value_id`字段。
这里`type`字段表示当前评论类型,目前存在种类型: 这里`type`字段表示当前评论类型,目前存在种类型:
* 如果type=0,则当前评论是订单商品评论,value_id是订单商品ID; * 如果type=0,则当前评论是订单商品评论,value_id是订单商品ID;
* 如果type=1,则当前评论是专题评论,value_id是专题ID; * 如果type=1,则当前评论是专题评论,value_id是专题ID;
* 如果type=2,则当前评论是订单商品评论的回复,value_id是订单商品的评论ID。
`admin_content`字段则拥有记录管理后台管理员对用户评论的回复。
### 2.1.6 团购设计 ### 2.1.6 团购设计
......
...@@ -87,7 +87,7 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实 ...@@ -87,7 +87,7 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实
* 购物车 * 购物车
* 下单 * 下单
* 个人 * 个人
* 订单列表、订单详情 * 订单列表、订单详情、订单售后
* 地址列表、地址添加、地址删除 * 地址列表、地址添加、地址删除
* 收藏、足迹、关于 * 收藏、足迹、关于
...@@ -142,6 +142,7 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实 ...@@ -142,6 +142,7 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实
* 团购活动 * 团购活动
* 系统管理 * 系统管理
* 管理员 * 管理员
* 通知管理
* 对象存储 * 对象存储
* 权限管理 * 权限管理
* 定时任务(待定) * 定时任务(待定)
...@@ -155,6 +156,9 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实 ...@@ -155,6 +156,9 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实
* 用户统计 * 用户统计
* 订单统计 * 订单统计
* 商品统计 * 商品统计
* 个人
* 通知中心
* 密码修改
## 1.3 项目技术 ## 1.3 项目技术
...@@ -303,11 +307,11 @@ Spring Boot技术栈参考以下文档或者项目: ...@@ -303,11 +307,11 @@ Spring Boot技术栈参考以下文档或者项目:
如果开发者运行litemall_schema.sql失败,可以打开该文件: 如果开发者运行litemall_schema.sql失败,可以打开该文件:
``` ```
drop database if exists litemall; drop database if exists litemall;
drop user if exists 'litemall'@'localhost'; drop user if exists 'litemall'@'%';
create database litemall default character set utf8mb4 collate utf8mb4_unicode_ci; create database litemall default character set utf8mb4 collate utf8mb4_unicode_ci;
use litemall; use litemall;
create user 'litemall'@'localhost' identified by 'litemall123456'; create user 'litemall'@'%' identified by 'litemall123456';
grant all privileges on litemall.* to 'litemall'@'localhost'; grant all privileges on litemall.* to 'litemall'@'%';
flush privilege flush privilege
``` ```
可以看到几个命令,用于创建数据库、用户和访问权限,因此开发者可以利用 可以看到几个命令,用于创建数据库、用户和访问权限,因此开发者可以利用
...@@ -315,7 +319,7 @@ flush privilege ...@@ -315,7 +319,7 @@ flush privilege
### 1.4.2 Spring Boot开发环境 ### 1.4.2 Spring Boot开发环境
1. 安装JDK8 1. 安装JDK8(可以是Oracle JDK或者OpenJDK)
2. 安装Maven 2. 安装Maven
3. 安装Git(可选) 3. 安装Git(可选)
4. 安装IDEA Community,建议安装Maven插件和Git插件。 4. 安装IDEA Community,建议安装Maven插件和Git插件。
...@@ -955,7 +959,7 @@ sudo mysql_secure_installation ...@@ -955,7 +959,7 @@ sudo mysql_secure_installation
> 这里很可能是开发者litemall-admin模块的`config/dep.env.js`或者`condig/prod.env.js` > 这里很可能是开发者litemall-admin模块的`config/dep.env.js`或者`condig/prod.env.js`
> 没有设置正确的管理后台后端地址,例如这里的`http://xxx.xxx.xxx.xxx:8080/admin` > 没有设置正确的管理后台后端地址,例如这里的`http://xxx.xxx.xxx.xxx:8080/admin`
#### 1.5.1.6 项目辅助脚本 #### 1.5.1.6 deploy部署脚本
在前面的项目打包和项目部署中都是采用手动命令来部署。 在前面的项目打包和项目部署中都是采用手动命令来部署。
这里可以写一些脚本简化: 这里可以写一些脚本简化:
...@@ -992,6 +996,10 @@ cd litemall ...@@ -992,6 +996,10 @@ cd litemall
不过由于需要设置的信息会包含敏感安全信息,强烈建议开发者参考这里的deploy文件夹, 不过由于需要设置的信息会包含敏感安全信息,强烈建议开发者参考这里的deploy文件夹,
然后实现自己的deploy文件夹,妥善处置外部配置文件和脚本中的敏感安全信息!!! 然后实现自己的deploy文件夹,妥善处置外部配置文件和脚本中的敏感安全信息!!!
#### 1.5.1.7 docker部署脚本
本项目也简单实现了docker部署方案,具体可以看docker文件夹。
### 1.5.2 单机多服务部署方案 ### 1.5.2 单机多服务部署方案
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
目前发现存在的一些问题: 目前发现存在的一些问题:
* `缺失`商品评价中管理员回复功能,进一步地用户之间相互评价回复
* `缺失`后台服务返回的token存在有效期,小商场应该自动刷新 * `缺失`后台服务返回的token存在有效期,小商场应该自动刷新
* `缺失`账号多次登录失败,应该小商城出现图片验证码限制,或者后台账号锁定 * `缺失`账号多次登录失败,应该小商城出现图片验证码限制,或者后台账号锁定
* `改善`商品搜索中采用更好的搜索机制 * `改善`商品搜索中采用更好的搜索机制
...@@ -24,8 +23,6 @@ ...@@ -24,8 +23,6 @@
* `改善`商品好评计算与显示,例如90%好评 * `改善`商品好评计算与显示,例如90%好评
* `改善`商品的评论列表中显示评价的评论分数、商品规格 * `改善`商品的评论列表中显示评价的评论分数、商品规格
* `改善`商品的评论列表中的图片点击可放大,同时用户评价的多个图片可以选择左右滑动查看。 * `改善`商品的评论列表中的图片点击可放大,同时用户评价的多个图片可以选择左右滑动查看。
* `改善`当一些页面查询数据没有更新时,底部显示相应的提醒,例如“没有更多数据”。
* `改善`个人页面中实现订单部件,显示用户订单数量,同时点击以后跳转到订单的相应页面。
* `改善`商品的订单中支持订单号搜索功能 * `改善`商品的订单中支持订单号搜索功能
* `改善`在一些内容比较多的页面中支持“顶部”功能 * `改善`在一些内容比较多的页面中支持“顶部”功能
......
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