Commit ae37e045 authored by Junling Bu's avatar Junling Bu
Browse files

文档中的登陆同一调整成登录。

parent ca188343
......@@ -88,7 +88,7 @@ litemall
1. 微信开发工具导入litemall-wx项目;
2. 项目配置,启用“不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书”
3. 点击“编译”,即可在微信开发工具预览效果;
4. 也可以点击“预览”,然后手机扫描登
4. 也可以点击“预览”,然后手机扫描登
![](doc/pic/5.gif)
......@@ -107,7 +107,38 @@ litemall
5. [商场子系统](doc/5.md)
6. [下一步计划](doc/6.md)
更新
开发计划
====
目前项目开发中,存在诸多不足,以下是目前规划的开发计划。
V 1.0.0 完成以下目标:
1. 除了部分功能(如支付和优惠券等),小商城的优化和改进基本结束;
2. 管理后台基本实现所有表的CRUD操作;
3. 后台服务能够对参数进行检验。
V 2.0.0 完成以下目标:
1. 小商城能够完成基本的业务功能;
2. 管理后台实现较好的业务操作和交互效果,而不是简单的CRUD;
3. 管理后台实现统计功能、日志功能
V 3.0.0 完成以下目标:
1. 管理后台一些辅助功能
2. 后台服务加强安全功能、事务功能
3. 项目代码重构和清理
4. 其他配套服务,如代码文档、war部署支持
项目结束,已经是一个真正可工作的项目,此时进入维护阶段。
如果真的坚持到维护阶段,那么存在三种可能性:
1. 或者开发 V 4.0.0,实现web商场子系统;
2. 或者重新开发一个新的独立项目,引入企业级功能,如缓存、权限、对象存储云服务等;
3. 或者结束,不再开发,仅仅维护。
警告:
> ** 以上仅仅是个人规划的开发计划,实际可能出现任何情况,例如能力有限而放弃开发。**
开发进度更新
==
* V 0.1.0,项目架构基本完成。
......@@ -151,4 +182,6 @@ litemall
* Issue里面对业务或技术的讨论
* Pull Request
* 对文档的意见或补充
* 其他任何有意义本项目的行为
\ No newline at end of file
* 其他任何有意义本项目的行为
个人能力有限,欢迎一起开发。
......@@ -7,7 +7,7 @@
2. 使用FileZilla把deploy整个文件夹上传到云主机的/home/ubuntu文件夹中
3. 使用PuTTY登云主机
3. 使用PuTTY登云主机
4. 运行脚本部署运行
......
......@@ -205,8 +205,8 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实
cnpm run dev
```
然后,打开浏览器,输入`http://localhost:9527`
如果出现管理后台登页面,则表明管理后台的前端运行正常;
6. 请确定litemall-admin-api模块已经运行,然后点击`登`,如果能够成功登,则表明管理后台的前端和后端对接成功,运行正常。
如果出现管理后台登页面,则表明管理后台的前端运行正常;
6. 请确定litemall-admin-api模块已经运行,然后点击`登`,如果能够成功登,则表明管理后台的前端和后端对接成功,运行正常。
## 1.5 部署方案
......@@ -300,11 +300,11 @@ http://localhost:8083/admin/index/index
4. 设置SSH密钥(可选)
建议用户设置SSH密钥,可以免密码登云主机,以及用于脚本自动上传应用。
建议用户设置SSH密钥,可以免密码登云主机,以及用于脚本自动上传应用。
5. 使用PuTTY远程登云主机
5. 使用PuTTY远程登云主机
如果用户设置SSH密钥,可以采用免密码登;否则采用账号和密码登
如果用户设置SSH密钥,可以采用免密码登;否则采用账号和密码登
#### 1.5.3.2 JDK8
......@@ -350,7 +350,7 @@ sudo apt-get install mysql-client
FLUSH PRIVILEGES;
quit;
```
3.腾讯云,设置云主机的`安全组`,允许`3306`端口访问,然后重启云主机,使得这些配置生效。
3.腾讯云,设置云主机的`安全组`,允许`3306`端口访问,然后重启云主机,使得这些配置生效。
警告
> 1. 因为安全的原因,MySQL不应该设置远程访问,
......@@ -365,7 +365,7 @@ sudo apt-get install mysql-client
* 命令行导入
1. 采用FileZilla把本项目的litemall.sql上传到云主机
2. 使用PuTTY登云主机
2. 使用PuTTY登云主机
3. 进入MySQL,输入上节所设置的MySQL的root密码
4. 创建数据库、 创建用户并分配访问权限
5. 导入数据
......@@ -456,7 +456,7 @@ https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#dep
2. 使用FileZilla把deploy整个文件夹上传到云主机的/home/ubuntu文件夹中
3. 使用PuTTY登云主机
3. 使用PuTTY登云主机
4. 运行脚本部署运行
......
......@@ -95,7 +95,7 @@ litemall数据库基于nideshop中的[nideshop.sql](https://github.com/tumobi/ni
### 2.1.2 用户和微信用户设计
目前准备支持用户普通账号登和微信登两种方式,两种登方式仅仅采用一个litemall-user表可能不是很合适。此外,如果进一步支持其他多种第三方登,那么这里需要重新设计。
目前准备支持用户普通账号登和微信登两种方式,两种登方式仅仅采用一个litemall-user表可能不是很合适。此外,如果进一步支持其他多种第三方登,那么这里需要重新设计。
### 2.1.3 行政区域设计
......
......@@ -19,7 +19,7 @@
* 进一步区分商品和货品的关系
* 地址优化,目前每一次点击都会请求后台,应该缓存已有的数据
* 商品数量和规格中,如果货品数量不足,则显示不能点击的效果
*逻辑重新设计,如果用户没有登,则相关页面显示登的效果
*逻辑重新设计,如果用户没有登,则相关页面显示登的效果
## 3.1 litemall-wx-api
......@@ -71,25 +71,25 @@ var WxApiRoot = 'http://localhost:8082/wx/';
因此,开发阶段用户可以按照具体情况切换1,2或3的选项。
### 3.2.2 登
### 3.2.2 登
按照官方文档,开发者采用`wx.login`方法即可实现登操作;
然而,由于`wx.login`只能返回临时登凭证`code`,从服务器也只能返回对应的sessionId,
因此虽然已经可以视作登,但是在小程序中不能显示有意义的登状态,
按照官方文档,开发者采用`wx.login`方法即可实现登操作;
然而,由于`wx.login`只能返回临时登凭证`code`,从服务器也只能返回对应的sessionId,
因此虽然已经可以视作登,但是在小程序中不能显示有意义的登状态,
因此实际很多小程序是继续采用`wx.getUserInfo`来进一步请求用户信息。
因此本模块中,用户的登状态也是由`wx.login``wx.getUserInfo`组成。
因此本模块中,用户的登状态也是由`wx.login``wx.getUserInfo`组成。
#### 3.2.2.1 登检测
#### 3.2.2.1 登检测
用户可以采用`user.checkLogin`来检查是否`已登`,而其检测逻辑是:
用户可以采用`user.checkLogin`来检查是否`已登`,而其检测逻辑是:
1. 可以从storage获取`userInfo``token`
2. 同时`wx.checkSession`也成功。
#### 3.2.2.2 登时机
#### 3.2.2.2 登时机
请求用户信息的时机存在两种设计:
请求用户信息的时机存在两种设计:
1. 一种是小程序加载时,即申请用户信息,这种实现较简单;
2. 另外一种是小程序加载时不需要,但是小程序用户需要真正用户信息时才申请用户信息,
......@@ -97,30 +97,30 @@ var WxApiRoot = 'http://localhost:8082/wx/';
目前采用第二张实现,可以分成两种情况:
* 用户主动登
* 用户主动登
用户主动登,指的是`我的`页面中用户没有登显示`点击登`的效果。
用户主动登,指的是`我的`页面中用户没有登显示`点击登`的效果。
* 用户被动登
* 用户被动登
用户被动登,指的是用户想购买商品或者需要用户登才能操作的行为,
用户被动登,指的是用户想购买商品或者需要用户登才能操作的行为,
此时因为向服务器请求时token没有设置,因此服务器拒绝用户的请求,同时返回`401`业务代码。
目前需要检测用户登的页面有:
目前需要检测用户登的页面有:
* 购物车
* 我的主页
讨论:
> 对于第二张情况,原nideshop-mini-program项目是采取一种自动登的方式。
> 对于第二张情况,原nideshop-mini-program项目是采取一种自动登的方式。
> 这里则采用跳转登录页面的方式。
#### 3.2.2.3 登操作
#### 3.2.2.3 登操作
如前面讨论,这里的登操作实际包含两个操作`wx.login``wx.getUserInfo`
用户可以采用`user.loginByWeixin`来进行登操作。
如前面讨论,这里的登操作实际包含两个操作`wx.login``wx.getUserInfo`
用户可以采用`user.loginByWeixin`来进行登操作。
按照官网文档,用户登前应该检测以下,来避免频繁无意义的登操作,
按照官网文档,用户登前应该检测以下,来避免频繁无意义的登操作,
因此较合适的做法如下所示:
```
......@@ -131,18 +131,18 @@ var WxApiRoot = 'http://localhost:8082/wx/';
userInfo: res.data.userInfo,
});
}).catch((err) => {
util.showErrorToast('登失败');
util.showErrorToast('登失败');
});
});
```
#### 3.2.2.4 登拒绝授权
#### 3.2.2.4 登拒绝授权
还存在一个问题,当用户登时,会出现"微信授权"的对话框。
如果用户选择”拒绝“,那么之后用户的登操作总是失败的。
还存在一个问题,当用户登时,会出现"微信授权"的对话框。
如果用户选择”拒绝“,那么之后用户的登操作总是失败的。
目前的做法是,用户拒绝授权后,如果用户登失败,则返回信息框,
目前的做法是,用户拒绝授权后,如果用户登失败,则返回信息框,
提醒用户“请退出,左滑删除小程序,然后重新进入进行授权”。
### 3.2.3 立即购买和放入购物车
......
......@@ -36,9 +36,9 @@ public class Application {
目前没有事务管理,因此如果直接把项目用于正式运行中,可能会存在数据不一致等问题。
### 6.1.6 小程序登设计
### 6.1.6 小程序登设计
个人觉得目前nideshop-mini-program里的登设计内部实现不是很合理。
个人觉得目前nideshop-mini-program里的登设计内部实现不是很合理。
### 6.1.n 代码重构
......
......@@ -42,7 +42,7 @@ public class ResponseUtil {
}
public static final Object fail401() {
return fail(401, "请登");
return fail(401, "请登");
}
public static final Object unlogin(){
......
......@@ -41,7 +41,7 @@ public class WxCartController {
@RequestMapping("index")
public Object index(@LoginUser Integer userId) {
if(userId == null){
return ResponseUtil.fail(401, "请登");
return ResponseUtil.fail(401, "请登");
}
List<LitemallCart> cartList = cartService.queryByUid(userId);
......@@ -312,7 +312,7 @@ public class WxCartController {
/*
* 获取购物车商品的总件件数
* 用户也是可选登,如果没有登,则返回空数据
* 用户也是可选登,如果没有登,则返回空数据
*/
@RequestMapping("goodscount")
public Object goodscount(@LoginUser Integer userId) {
......
......@@ -55,7 +55,7 @@ public class WxGoodsController {
/**
* 商品详情页数据
* 用户也是可选登,如果登了,则查询是否收藏,以及记录用户的足迹
* 用户也是可选登,如果登了,则查询是否收藏,以及记录用户的足迹
*/
@RequestMapping("detail")
public Object detail(@LoginUser Integer userId, Integer id) {
......@@ -160,7 +160,7 @@ public class WxGoodsController {
/**
*   获取商品列表
* 1. 这里的前五个参数都是可选的,甚至都是空
* 2. 用户也是可选登,如果登了,则记录用户的搜索关键字
* 2. 用户也是可选登,如果登了,则记录用户的搜索关键字
*
*/
@RequestMapping("list")
......
......@@ -24,7 +24,7 @@ public class WxSearchController {
/**
*   index
* 用户登是可选的,如果用户登,则记录用户的搜索数据
* 用户登是可选的,如果用户登,则记录用户的搜索数据
*/
@RequestMapping("index")
public Object index(@LoginUser Integer userId) {
......
......@@ -194,7 +194,7 @@
},
{
"id": -1,
"name": "登",
"name": "登",
"pathName": "pages/auth/login/login",
"query": ""
},
......
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