Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
ae37e045
"src/main/vscode:/vscode.git/clone" did not exist on "7161b213a560237be29c687a2feec0311807f8c5"
Commit
ae37e045
authored
Mar 30, 2018
by
Junling Bu
Browse files
文档中的登陆同一调整成登录。
parent
ca188343
Changes
11
Show whitespace changes
Inline
Side-by-side
README.md
View file @
ae37e045
...
@@ -88,7 +88,7 @@ litemall
...
@@ -88,7 +88,7 @@ litemall
1.
微信开发工具导入litemall-wx项目;
1.
微信开发工具导入litemall-wx项目;
2.
项目配置,启用“不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书”
2.
项目配置,启用“不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书”
3.
点击“编译”,即可在微信开发工具预览效果;
3.
点击“编译”,即可在微信开发工具预览效果;
4.
也可以点击“预览”,然后手机扫描登
陆
。
4.
也可以点击“预览”,然后手机扫描登
录
。


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