Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yubinCloud
fairy-wiki
提交
b3c20a44
F
fairy-wiki
项目概览
yubinCloud
/
fairy-wiki
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
fairy-wiki
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b3c20a44
编写于
4月 25, 2021
作者:
yubinCloud
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
9-8 后端增加登录接口
上级
12c87209
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
73 addition
and
4 deletion
+73
-4
src/main/java/io/github/yubincloud/fairywiki/controller/UserController.java
...ithub/yubincloud/fairywiki/controller/UserController.java
+16
-4
src/main/java/io/github/yubincloud/fairywiki/dto/req/UserLoginReqDto.java
.../github/yubincloud/fairywiki/dto/req/UserLoginReqDto.java
+17
-0
src/main/java/io/github/yubincloud/fairywiki/dto/resp/UserLoginRespDto.java
...ithub/yubincloud/fairywiki/dto/resp/UserLoginRespDto.java
+13
-0
src/main/java/io/github/yubincloud/fairywiki/exception/BusinessExceptionCode.java
...yubincloud/fairywiki/exception/BusinessExceptionCode.java
+1
-0
src/main/java/io/github/yubincloud/fairywiki/service/UserService.java
...a/io/github/yubincloud/fairywiki/service/UserService.java
+26
-0
未找到文件。
src/main/java/io/github/yubincloud/fairywiki/controller/UserController.java
浏览文件 @
b3c20a44
package
io.github.yubincloud.fairywiki.controller
;
import
io.github.yubincloud.fairywiki.dto.req.UserLoginReqDto
;
import
io.github.yubincloud.fairywiki.dto.req.UserQueryReqDto
;
import
io.github.yubincloud.fairywiki.dto.req.UserResetPwdReqDto
;
import
io.github.yubincloud.fairywiki.dto.req.UserSaveReqDto
;
import
io.github.yubincloud.fairywiki.dto.resp.ErrorCode
;
import
io.github.yubincloud.fairywiki.dto.resp.PageRespDto
;
import
io.github.yubincloud.fairywiki.dto.resp.RestfulModel
;
import
io.github.yubincloud.fairywiki.dto.resp.UserQueryRespDto
;
import
io.github.yubincloud.fairywiki.dto.resp.*
;
import
io.github.yubincloud.fairywiki.service.UserService
;
import
org.springframework.util.DigestUtils
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -47,4 +45,18 @@ public class UserController {
userService
.
resetPwd
(
userResetPwdReqDto
);
return
new
RestfulModel
<>(
ErrorCode
.
SUCCESS
,
""
,
0
);
}
/**
* 用户登录接口
* @param userLoginReqDto 用户的用户名及密码
* @return 登录成功则返回该用户的信息,失败则返回登录失败提示
*/
@PostMapping
(
"/login"
)
public
RestfulModel
<
UserLoginRespDto
>
login
(
@RequestBody
@Valid
UserLoginReqDto
userLoginReqDto
)
{
userLoginReqDto
.
setPassword
(
DigestUtils
.
md5DigestAsHex
(
userLoginReqDto
.
getPassword
().
getBytes
())
);
UserLoginRespDto
userLoginRespDto
=
userService
.
login
(
userLoginReqDto
);
return
new
RestfulModel
<>(
ErrorCode
.
SUCCESS
,
""
,
userLoginRespDto
);
}
}
src/main/java/io/github/yubincloud/fairywiki/dto/req/UserLoginReqDto.java
0 → 100644
浏览文件 @
b3c20a44
package
io.github.yubincloud.fairywiki.dto.req
;
import
lombok.Data
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.Pattern
;
@Data
public
class
UserLoginReqDto
{
@NotEmpty
(
message
=
"【用户名】不能为空"
)
private
String
loginName
;
@NotEmpty
(
message
=
"【密码】不能为空"
)
@Pattern
(
regexp
=
"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,32}$"
,
message
=
"【密码】规则不正确"
)
private
String
password
;
}
src/main/java/io/github/yubincloud/fairywiki/dto/resp/UserLoginRespDto.java
0 → 100644
浏览文件 @
b3c20a44
package
io.github.yubincloud.fairywiki.dto.resp
;
import
lombok.Data
;
@Data
public
class
UserLoginRespDto
{
private
Long
id
;
private
String
loginName
;
private
String
name
;
}
src/main/java/io/github/yubincloud/fairywiki/exception/BusinessExceptionCode.java
浏览文件 @
b3c20a44
...
...
@@ -6,6 +6,7 @@ package io.github.yubincloud.fairywiki.exception;
public
enum
BusinessExceptionCode
{
USER_LOGIN_NAME_EXIST
(
"登录名已存在"
),
LOGIN_USER_ERROR
(
"用户名不存在或密码错误"
),
;
private
String
desc
;
...
...
src/main/java/io/github/yubincloud/fairywiki/service/UserService.java
浏览文件 @
b3c20a44
...
...
@@ -4,9 +4,11 @@ import com.github.pagehelper.PageHelper;
import
com.github.pagehelper.PageInfo
;
import
io.github.yubincloud.fairywiki.domain.User
;
import
io.github.yubincloud.fairywiki.domain.UserExample
;
import
io.github.yubincloud.fairywiki.dto.req.UserLoginReqDto
;
import
io.github.yubincloud.fairywiki.dto.req.UserResetPwdReqDto
;
import
io.github.yubincloud.fairywiki.dto.resp.PageRespDto
;
import
io.github.yubincloud.fairywiki.dto.resp.RestfulModel
;
import
io.github.yubincloud.fairywiki.dto.resp.UserLoginRespDto
;
import
io.github.yubincloud.fairywiki.exception.BusinessException
;
import
io.github.yubincloud.fairywiki.exception.BusinessExceptionCode
;
import
io.github.yubincloud.fairywiki.mapper.UserMapper
;
...
...
@@ -106,4 +108,28 @@ public class UserService {
User
user
=
CopyUtil
.
copy
(
reqDto
,
User
.
class
);
userMapper
.
updateByPrimaryKeySelective
(
user
);
}
/**
* 对用户登录进行校验
* @param reqDto 用户登录请求的信息
* @return 若登录成功,则返回该用户的信息;失败则抛出 BusinessException
*/
public
UserLoginRespDto
login
(
UserLoginReqDto
reqDto
)
{
User
userInDb
=
selectByLoginName
(
reqDto
.
getLoginName
());
if
(
ObjectUtils
.
isEmpty
(
userInDb
))
{
// 用户名不存在
LOG
.
info
(
"用户名不存在,{}"
,
reqDto
.
getLoginName
());
throw
new
BusinessException
(
BusinessExceptionCode
.
LOGIN_USER_ERROR
);
}
else
{
if
(
userInDb
.
getPassword
().
equals
(
reqDto
.
getPassword
()))
{
// 登录成功
UserLoginRespDto
userLoginDto
=
CopyUtil
.
copy
(
userInDb
,
UserLoginRespDto
.
class
);
return
userLoginDto
;
}
else
{
// 密码不对
LOG
.
info
(
"密码不对,输入密码:{}, 数据库密码:{}"
,
reqDto
.
getPassword
(),
userInDb
.
getPassword
());
throw
new
BusinessException
(
BusinessExceptionCode
.
LOGIN_USER_ERROR
);
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录