Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
kt-keystone
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
kt-keystone
Commits
d9f50912
提交
d9f50912
authored
6月 22, 2022
作者:
黄承天
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(user): 完成了User和Project的基本增删改API
上级
ee4b3292
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
270 行增加
和
79 行删除
+270
-79
UserProject.java
...in/java/org/matrix/local/entity/relation/UserProject.java
+3
-1
Authority.java
kt-user/src/main/java/org/matrix/local/enums/Authority.java
+27
-0
Role.java
kt-user/src/main/java/org/matrix/local/enums/Role.java
+31
-0
ProjectService.java
...in/java/org/matrix/local/service/impl/ProjectService.java
+77
-0
UserService.java
.../main/java/org/matrix/local/service/impl/UserService.java
+83
-12
TransHelper.java
.../src/main/java/org/matrix/remote/service/TransHelper.java
+2
-1
ProjectController.java
...ava/org/matrix/autotest/controller/ProjectController.java
+18
-53
UserConfigController.java
.../org/matrix/autotest/controller/UserConfigController.java
+1
-2
UserController.java
...n/java/org/matrix/autotest/controller/UserController.java
+28
-10
没有找到文件。
kt-user/src/main/java/org/matrix/local/entity/relation/UserProject.java
浏览文件 @
d9f50912
...
@@ -21,7 +21,7 @@ import lombok.experimental.Accessors;
...
@@ -21,7 +21,7 @@ import lombok.experimental.Accessors;
@Data
@Data
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
@ApiModel
(
value
=
"UserProject对象"
,
description
=
"用户项目关系"
)
@ApiModel
(
value
=
"UserProject对象"
,
description
=
"用户项目
角色
关系"
)
@TableName
(
value
=
"kt_user_project"
)
@TableName
(
value
=
"kt_user_project"
)
public
class
UserProject
{
public
class
UserProject
{
...
@@ -36,4 +36,6 @@ public class UserProject {
...
@@ -36,4 +36,6 @@ public class UserProject {
private
Long
projectId
;
private
Long
projectId
;
private
String
role
;
}
}
kt-user/src/main/java/org/matrix/local/enums/Authority.java
0 → 100644
浏览文件 @
d9f50912
package
org
.
matrix
.
local
.
enums
;
import
io.swagger.annotations.ApiModel
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @author C
* 权限枚举
*/
@AllArgsConstructor
@Getter
@ApiModel
(
"角色权限"
)
public
enum
Authority
{
READ
(
"read"
,
"查看数据以及配置"
),
EXECUTE
(
"execute"
,
"执行测试"
),
EDIT
(
"edit"
,
"编辑数据以及配置"
),
MANAGE
(
"manage"
,
"管理用户项目角色"
);
private
final
String
name
;
private
final
String
description
;
}
kt-user/src/main/java/org/matrix/local/enums/Role.java
0 → 100644
浏览文件 @
d9f50912
package
org
.
matrix
.
local
.
enums
;
import
com.google.common.collect.Lists
;
import
io.swagger.annotations.ApiModel
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.List
;
import
static
org
.
matrix
.
local
.
enums
.
Authority
.*;
/**
* @author C
* 角色枚举常量
*/
@AllArgsConstructor
@Getter
@ApiModel
(
"用户角色"
)
public
enum
Role
{
NORMAL
(
"normal"
,
"普通用户"
,
Lists
.
newArrayList
(
READ
,
EXECUTE
)),
SENIOR
(
"senior"
,
"高级用户"
,
Lists
.
newArrayList
(
READ
,
EXECUTE
,
EDIT
)),
ADMIN
(
"admin"
,
"管理员"
,
Lists
.
newArrayList
(
READ
,
EXECUTE
,
EDIT
,
MANAGE
));
private
final
String
name
;
private
final
String
description
;
private
final
List
<
Authority
>
authorities
;
}
kt-user/src/main/java/org/matrix/local/service/impl/ProjectService.java
浏览文件 @
d9f50912
package
org
.
matrix
.
local
.
service
.
impl
;
package
org
.
matrix
.
local
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
org.matrix.local.entity.Project
;
import
org.matrix.local.entity.Project
;
import
org.matrix.local.mapper.ProjectMapper
;
import
org.matrix.local.mapper.ProjectMapper
;
import
org.matrix.local.mapper.UserMapper
;
import
org.matrix.local.service.IProjectService
;
import
org.matrix.local.service.IProjectService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Optional
;
import
static
java
.
lang
.
String
.
format
;
/**
/**
* 项目相关Service
* 项目相关Service
*/
*/
@Slf4j
@Service
@Service
public
class
ProjectService
extends
ServiceImpl
<
ProjectMapper
,
Project
>
implements
IProjectService
{
public
class
ProjectService
extends
ServiceImpl
<
ProjectMapper
,
Project
>
implements
IProjectService
{
@Autowired
private
UserMapper
userMapper
;
@Autowired
private
ProjectMapper
projectMapper
;
/**
* 新增项目
* 新增数据不可附带id
* 项目名唯一 不可重复
*
* @param project 项目信息对象
*/
public
void
create
(
Project
project
)
{
//检查是否附带了id
Optional
.
of
(
project
).
map
(
Project:
:
getId
)
.
ifPresent
(
id
->
{
throw
new
RuntimeException
(
"新增数据不可附带id"
);
});
//检查同名项目是否已存在
Optional
.
of
(
projectMapper
.
selectOne
(
Wrappers
.<
Project
>
lambdaQuery
().
eq
(
Project:
:
getName
,
project
.
getName
())))
.
ifPresent
(
id
->
{
throw
new
RuntimeException
(
format
(
"该项目名已存在 : %s"
,
project
.
getName
()));
});
//保存
projectMapper
.
insert
(
project
);
log
.
info
(
"[项目] 新增项目 : {}"
,
project
.
getName
());
}
/**
* 修改项目
* 根据id修改项目
* 修改数据必须附带id且指定id的原数据必须存在
* 项目名唯一 不可重复
*
* @param project 项目信息对象
*/
public
void
update
(
Project
project
)
{
//检查id
Long
id
=
Optional
.
of
(
project
).
map
(
Project:
:
getId
)
.
orElseThrow
(()
->
new
RuntimeException
(
"修改数据必须指定id"
));
//检查原数据是否存在
Project
before
=
Optional
.
of
(
projectMapper
.
selectById
(
id
))
.
orElseThrow
(()
->
new
RuntimeException
(
format
(
"id为 %s 的项目数据不存在"
,
id
)));
//检查同名项目是否已存在
Optional
.
of
(
projectMapper
.
selectOne
(
Wrappers
.<
Project
>
lambdaQuery
().
eq
(
Project:
:
getName
,
project
.
getName
())))
.
ifPresent
(
aId
->
{
throw
new
RuntimeException
(
format
(
"该项目名已存在 : %s"
,
project
.
getName
()));
});
//保存
projectMapper
.
updateById
(
project
);
log
.
info
(
"[项目] 更新项目 : {} ——> {}"
,
before
.
getName
(),
project
.
getName
());
}
/**
* 根据id删除项目
*
* @param id 指定id
*/
public
void
delete
(
Long
id
)
{
//检查项目是否存在
Project
project
=
Optional
.
of
(
projectMapper
.
selectById
(
id
))
.
orElseThrow
(()
->
new
RuntimeException
(
format
(
"id为 %s 的项目数据不存在"
,
id
)));
//保存
userMapper
.
deleteById
(
id
);
log
.
info
(
"[项目] 删除项目 : {}"
,
project
.
getName
());
}
}
}
kt-user/src/main/java/org/matrix/local/service/impl/UserService.java
浏览文件 @
d9f50912
...
@@ -27,12 +27,10 @@ import org.springframework.web.context.request.RequestContextHolder;
...
@@ -27,12 +27,10 @@ import org.springframework.web.context.request.RequestContextHolder;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Field
;
import
java.util.HashMap
;
import
java.util.*
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
static
java
.
lang
.
String
.
format
;
import
static
java
.
util
.
Objects
.
nonNull
;
import
static
java
.
util
.
Objects
.
nonNull
;
/**
/**
...
@@ -53,6 +51,65 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
...
@@ -53,6 +51,65 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
private
MongoTemplate
mongoTemplate
;
private
MongoTemplate
mongoTemplate
;
/**
* 新增用户
* 新增数据不可附带id
* 账号名为唯一值 不可出现重复
*
* @param user 用户信息对象
*/
public
void
create
(
User
user
)
{
//检查是否附带了id
Optional
.
of
(
user
).
map
(
User:
:
getId
)
.
ifPresent
(
id
->
{
throw
new
RuntimeException
(
"新增数据不可附带id"
);
});
//检查该账号是否已存在
Optional
.
of
(
userMapper
.
selectOne
(
Wrappers
.<
User
>
lambdaQuery
().
eq
(
User:
:
getAccount
,
user
.
getAccount
())))
.
ifPresent
(
id
->
{
throw
new
RuntimeException
(
format
(
"该账号已存在 : %s"
,
user
.
getAccount
()));
});
//保存
userMapper
.
insert
(
user
);
log
.
info
(
"[用户] 新增用户 : {}"
,
user
.
getAccount
());
}
/**
* 修改用户
* 根据id修改用户
* 修改数据必须附带id且指定id的原数据必须存在
* 只能修改名称和密码
* 不可修改账号和id
*
* @param user 用户信息对象
*/
public
void
update
(
User
user
)
{
//检查id
Long
id
=
Optional
.
of
(
user
).
map
(
User:
:
getId
)
.
orElseThrow
(()
->
new
RuntimeException
(
"修改数据必须指定id"
));
//检查原数据是否存在
User
before
=
Optional
.
of
(
userMapper
.
selectById
(
id
))
.
orElseThrow
(()
->
new
RuntimeException
(
format
(
"id为 %s 的用户数据不存在"
,
id
)));
//保存
String
account
=
before
.
getAccount
();
userMapper
.
updateById
(
user
.
setAccount
(
account
));
log
.
info
(
"[用户] 更新用户 : {}"
,
account
);
}
/**
* 根据id删除用户
*
* @param id 指定id
*/
public
void
delete
(
Long
id
)
{
//检查账号是否存在
User
user
=
Optional
.
of
(
userMapper
.
selectById
(
id
))
.
orElseThrow
(()
->
new
RuntimeException
(
format
(
"id为 %s 的用户数据不存在"
,
id
)));
//保存
userMapper
.
deleteById
(
id
);
log
.
info
(
"[用户] 删除用户 : {}"
,
user
.
getAccount
());
}
/**
/**
* 如果是用户的第一次配置,即库里没有配置项,则全部保存
* 如果是用户的第一次配置,即库里没有配置项,则全部保存
* ● 如果已有配置项,分为部分更新和全部更新
* ● 如果已有配置项,分为部分更新和全部更新
...
@@ -68,7 +125,7 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
...
@@ -68,7 +125,7 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
// 首先查询该用户是否存在,不存在就抛出异常
// 首先查询该用户是否存在,不存在就抛出异常
User
dbUser
=
userMapper
.
selectById
(
userId
);
User
dbUser
=
userMapper
.
selectById
(
userId
);
if
(
Objects
.
isNull
(
dbUser
))
{
if
(
Objects
.
isNull
(
dbUser
))
{
throw
new
RuntimeException
(
String
.
format
(
"保存用户配置 -- 数据库里没有用户id = %d 的用户!"
,
userId
));
throw
new
RuntimeException
(
format
(
"保存用户配置 -- 数据库里没有用户id = %d 的用户!"
,
userId
));
}
}
// 如果是用户的第一次配置,即配置库里没有配置项,则全部保存
// 如果是用户的第一次配置,即配置库里没有配置项,则全部保存
...
@@ -109,6 +166,7 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
...
@@ -109,6 +166,7 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
*/
*/
private
Map
<
String
,
Long
>
sessionMap
=
new
HashMap
<>();
private
Map
<
String
,
Long
>
sessionMap
=
new
HashMap
<>();
/**
/**
* 用户登录
* 用户登录
* 用户登录成功后 缓存其对应的sessionId到Map中
* 用户登录成功后 缓存其对应的sessionId到Map中
...
@@ -133,15 +191,16 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
...
@@ -133,15 +191,16 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
}
}
/**
/**
*
查询当前登录的用户
*
用户登录
*
根据sessionId查出其当前登录的user的信息
*
用户登录成功后 缓存其对应的sessionId到Map中
* sessionId从上下文中取 无
数
输入
* sessionId从上下文中取 无
需
输入
*
*
* @return 当前登录的user的信息
* @param loginInfo 用户的账号、密码
* @return 登录是否成功
*/
*/
public
UserInfo
findNow
(
)
{
public
boolean
login
(
LoginInfo
loginInfo
)
{
String
sessionId
=
RequestContextHolder
.
currentRequestAttributes
().
getSessionId
();
String
sessionId
=
RequestContextHolder
.
currentRequestAttributes
().
getSessionId
();
return
findNow
(
sessionId
);
return
login
(
loginInfo
,
sessionId
);
}
}
/**
/**
...
@@ -159,13 +218,25 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
...
@@ -159,13 +218,25 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
if
(
nonNull
(
user
))
{
if
(
nonNull
(
user
))
{
return
userInfo
(
user
);
return
userInfo
(
user
);
}
else
{
}
else
{
throw
new
RuntimeException
(
String
.
format
(
"未找到id为%s的用户"
,
userId
));
throw
new
RuntimeException
(
format
(
"未找到id为%s的用户"
,
userId
));
}
}
}
else
{
}
else
{
throw
new
RuntimeException
(
"当前没有已登录的用户"
);
throw
new
RuntimeException
(
"当前没有已登录的用户"
);
}
}
}
}
/**
* 查询当前登录的用户
* 根据sessionId查出其当前登录的user的信息
* sessionId从上下文中取 无需输入
*
* @return 当前登录的user的信息
*/
public
UserInfo
findNow
()
{
String
sessionId
=
RequestContextHolder
.
currentRequestAttributes
().
getSessionId
();
return
findNow
(
sessionId
);
}
/**
/**
* 登出用户
* 登出用户
* 输入sessionId 清除其在Map中的信息
* 输入sessionId 清除其在Map中的信息
...
...
kt-user/src/main/java/org/matrix/remote/service/TransHelper.java
浏览文件 @
d9f50912
...
@@ -5,6 +5,7 @@ import org.matrix.actuators.datasource.IDataSourceService;
...
@@ -5,6 +5,7 @@ import org.matrix.actuators.datasource.IDataSourceService;
import
org.matrix.local.entity.Project
;
import
org.matrix.local.entity.Project
;
import
org.matrix.local.entity.User
;
import
org.matrix.local.entity.User
;
import
org.matrix.local.entity.relation.UserProject
;
import
org.matrix.local.entity.relation.UserProject
;
import
org.matrix.local.enums.Role
;
import
org.matrix.local.mapper.UserMapper
;
import
org.matrix.local.mapper.UserMapper
;
import
org.matrix.remote.entity.ZtProject
;
import
org.matrix.remote.entity.ZtProject
;
import
org.matrix.remote.entity.ZtUser
;
import
org.matrix.remote.entity.ZtUser
;
...
@@ -53,7 +54,7 @@ public class TransHelper {
...
@@ -53,7 +54,7 @@ public class TransHelper {
.
map
(
id
->
ztProjectMapper
.
selectById
(
id
))
.
map
(
id
->
ztProjectMapper
.
selectById
(
id
))
.
filter
(
ztProject
->
Objects
.
equals
(
"0"
,
ztProject
.
getDeleted
()))
.
filter
(
ztProject
->
Objects
.
equals
(
"0"
,
ztProject
.
getDeleted
()))
.
map
(
this
::
findProjectId
)
.
map
(
this
::
findProjectId
)
.
map
(
projectId
->
new
UserProject
(
null
,
userId
,
projectId
))
.
map
(
projectId
->
new
UserProject
(
null
,
userId
,
projectId
,
Role
.
SENIOR
.
getName
()
))
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
}
else
{
}
else
{
return
new
ArrayList
<>();
return
new
ArrayList
<>();
...
...
kt-web/src/main/java/org/matrix/autotest/controller/ProjectController.java
浏览文件 @
d9f50912
package
org
.
matrix
.
autotest
.
controller
;
package
org
.
matrix
.
autotest
.
controller
;
import
com.google.common.collect.ImmutableMap
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.matrix.local.entity.Project
;
import
org.matrix.local.entity.Project
;
import
org.matrix.local.service.IProjectService
;
import
org.matrix.local.service.impl.ProjectService
;
import
org.matrix.database.vo.CommonResult
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.matrix.database.vo.CommonResultObj
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.Map
;
import
java.util.List
;
import
java.util.Optional
;
/**
/**
* <p>
* <p>
...
@@ -27,61 +25,28 @@ import java.util.Optional;
...
@@ -27,61 +25,28 @@ import java.util.Optional;
@Api
(
tags
=
"对项目project的基本操作"
)
@Api
(
tags
=
"对项目project的基本操作"
)
public
class
ProjectController
{
public
class
ProjectController
{
private
final
IProjectService
projectService
;
@Autowired
private
ProjectService
projectService
;
public
ProjectController
(
IProjectService
projectService
)
{
@ApiOperation
(
value
=
"新增项目"
,
notes
=
"新增数据不可附带id;账号名为唯一值不可出现重复;"
)
this
.
projectService
=
projectService
;
}
/**
* 查询所有项目
*
* @return 查询到的所有项目, 以及是否查询成功的提示信息
*/
@ApiOperation
(
value
=
"查询所有项目"
)
@GetMapping
public
ResponseEntity
<
CommonResultObj
<
List
<
Project
>>>
findAllProjects
()
{
List
<
Project
>
results
=
Optional
.
ofNullable
(
projectService
.
list
()).
orElse
(
new
ArrayList
<>());
return
CommonResult
.
success
(
results
,
"查询成功"
);
}
/**
* 添加项目
*
* @param project 项目对象
* @return 添加的项目, 以及是否添加成功的提示信息
*/
@ApiOperation
(
value
=
"添加项目"
)
@PostMapping
@PostMapping
public
ResponseEntity
<
CommonResultObj
<
Project
>>
insertProject
(
@RequestBody
Project
project
)
{
public
ResponseEntity
<
Map
<
String
,
String
>>
create
(
@RequestBody
Project
project
)
{
return
CommonResult
.
pred
(
projectService:
:
save
,
project
projectService
.
create
(
project
);
,
"添加成功"
,
"添加失败或已存在同名项目"
);
return
ResponseEntity
.
ok
(
ImmutableMap
.
of
(
"message"
,
"操作成功"
)
);
}
}
/**
@ApiOperation
(
value
=
"修改项目"
,
notes
=
"根据id修改项目;修改数据必须附带id且指定id的原数据必须存在;项目名为唯一值不可出现重复;"
)
* 修改项目
*
* @param project 项目对象
* @return 修改后的项目, 以及是否修改成功的提示信息
*/
@ApiOperation
(
value
=
"修改项目"
)
@PutMapping
@PutMapping
public
ResponseEntity
<
CommonResultObj
<
Project
>>
updateProject
(
@RequestBody
Project
project
)
{
public
ResponseEntity
<
Map
<
String
,
String
>>
update
(
@RequestBody
Project
project
)
{
return
CommonResult
.
pred
(
projectService:
:
updateById
,
project
projectService
.
update
(
project
);
,
"修改成功"
,
"修改失败"
);
return
ResponseEntity
.
ok
(
ImmutableMap
.
of
(
"message"
,
"操作成功"
)
);
}
}
/**
@ApiOperation
(
value
=
"删除项目"
,
notes
=
"根据id删除项目"
)
* 删除项目
*
* @param id 项目id
* @return 删除的项目id, 以及是否删除成功的提示信息
*/
@ApiOperation
(
value
=
"根据主键id删除项目"
)
@DeleteMapping
(
"/{id}"
)
@DeleteMapping
(
"/{id}"
)
public
ResponseEntity
<
CommonResultObj
<
Long
>>
deleteProject
(
@PathVariable
Long
id
)
{
public
ResponseEntity
<
Map
<
String
,
String
>>
delete
(
@PathVariable
Long
id
)
{
return
CommonResult
.
pred
(
projectService:
:
removeById
,
id
projectService
.
delete
(
id
);
,
"删除成功"
,
"删除失败或id不存在"
);
return
ResponseEntity
.
ok
(
ImmutableMap
.
of
(
"message"
,
"操作成功"
)
);
}
}
}
}
kt-web/src/main/java/org/matrix/autotest/controller/UserConfigController.java
浏览文件 @
d9f50912
...
@@ -9,11 +9,10 @@ import org.matrix.local.entity.config.BookmarkConfig;
...
@@ -9,11 +9,10 @@ import org.matrix.local.entity.config.BookmarkConfig;
import
org.matrix.local.entity.config.UserConfig
;
import
org.matrix.local.entity.config.UserConfig
;
import
org.matrix.local.entity.vo.UserInfo
;
import
org.matrix.local.entity.vo.UserInfo
;
import
org.matrix.local.enums.ConfigType
;
import
org.matrix.local.enums.ConfigType
;
import
org.matrix.local.service.UserService
;
import
org.matrix.local.service.
impl.
UserService
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
static
org
.
matrix
.
database
.
vo
.
CommonResult
.
failed
;
import
static
org
.
matrix
.
database
.
vo
.
CommonResult
.
failed
;
import
static
org
.
matrix
.
database
.
vo
.
CommonResult
.
success
;
import
static
org
.
matrix
.
database
.
vo
.
CommonResult
.
success
;
...
...
kt-web/src/main/java/org/matrix/autotest/controller/UserController.java
浏览文件 @
d9f50912
...
@@ -3,6 +3,7 @@ package org.matrix.autotest.controller;
...
@@ -3,6 +3,7 @@ package org.matrix.autotest.controller;
import
com.google.common.collect.ImmutableMap
;
import
com.google.common.collect.ImmutableMap
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.matrix.local.entity.User
;
import
org.matrix.local.entity.vo.LoginInfo
;
import
org.matrix.local.entity.vo.LoginInfo
;
import
org.matrix.local.entity.vo.UserInfo
;
import
org.matrix.local.entity.vo.UserInfo
;
import
org.matrix.local.service.impl.UserService
;
import
org.matrix.local.service.impl.UserService
;
...
@@ -10,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -10,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Map
;
import
java.util.Map
;
@Api
(
tags
=
"用户相关API"
)
@Api
(
tags
=
"用户相关API"
)
...
@@ -21,11 +21,31 @@ public class UserController {
...
@@ -21,11 +21,31 @@ public class UserController {
@Autowired
@Autowired
private
UserService
userService
;
private
UserService
userService
;
@ApiOperation
(
value
=
"新增用户"
,
notes
=
"新增数据不可附带id;账号名为唯一值不可出现重复;"
)
@PostMapping
public
ResponseEntity
<
Map
<
String
,
String
>>
create
(
@RequestBody
User
user
)
{
userService
.
create
(
user
);
return
ResponseEntity
.
ok
(
ImmutableMap
.
of
(
"message"
,
"操作成功"
));
}
@ApiOperation
(
value
=
"修改用户"
,
notes
=
"根据id修改用户;修改数据必须附带id且指定id的原数据必须存在;账号名为唯一值不可出现重复;只能修改名称和密码而账号名不可修改;"
)
@PutMapping
public
ResponseEntity
<
Map
<
String
,
String
>>
update
(
@RequestBody
User
user
)
{
userService
.
update
(
user
);
return
ResponseEntity
.
ok
(
ImmutableMap
.
of
(
"message"
,
"操作成功"
));
}
@ApiOperation
(
value
=
"删除用户"
,
notes
=
"根据id删除用户"
)
@DeleteMapping
(
"/{id}"
)
public
ResponseEntity
<
Map
<
String
,
String
>>
delete
(
@PathVariable
Long
id
)
{
userService
.
delete
(
id
);
return
ResponseEntity
.
ok
(
ImmutableMap
.
of
(
"message"
,
"操作成功"
));
}
@ApiOperation
(
"用户登录"
)
@ApiOperation
(
"用户登录"
)
@PostMapping
(
"/login"
)
@PostMapping
(
"/login"
)
public
ResponseEntity
<
Map
<
String
,
String
>>
login
(
HttpServletRequest
request
,
@RequestBody
LoginInfo
loginInfo
)
{
public
ResponseEntity
<
Map
<
String
,
String
>>
login
(
@RequestBody
LoginInfo
loginInfo
)
{
String
sessionId
=
request
.
getSession
().
getId
();
boolean
success
=
userService
.
login
(
loginInfo
);
boolean
success
=
userService
.
login
(
loginInfo
,
sessionId
);
if
(
success
)
{
if
(
success
)
{
return
ResponseEntity
.
ok
(
ImmutableMap
.
of
(
"message"
,
"登录成功"
));
return
ResponseEntity
.
ok
(
ImmutableMap
.
of
(
"message"
,
"登录成功"
));
}
else
{
}
else
{
...
@@ -35,17 +55,15 @@ public class UserController {
...
@@ -35,17 +55,15 @@ public class UserController {
@ApiOperation
(
"查询当前登录用户"
)
@ApiOperation
(
"查询当前登录用户"
)
@GetMapping
(
"/login/info"
)
@GetMapping
(
"/login/info"
)
public
ResponseEntity
<
UserInfo
>
find
(
HttpServletRequest
request
)
{
public
ResponseEntity
<
UserInfo
>
find
()
{
String
sessionId
=
request
.
getSession
().
getId
();
UserInfo
userInfo
=
userService
.
findNow
();
UserInfo
userInfo
=
userService
.
findNow
(
sessionId
);
return
ResponseEntity
.
ok
(
userInfo
);
return
ResponseEntity
.
ok
(
userInfo
);
}
}
@ApiOperation
(
"用户登出"
)
@ApiOperation
(
"用户登出"
)
@GetMapping
(
"/logout"
)
@GetMapping
(
"/logout"
)
public
ResponseEntity
<
UserInfo
>
logout
(
HttpServletRequest
request
)
{
public
ResponseEntity
<
UserInfo
>
logout
()
{
String
sessionId
=
request
.
getSession
().
getId
();
UserInfo
userInfo
=
userService
.
findNow
();
UserInfo
userInfo
=
userService
.
findNow
(
sessionId
);
return
ResponseEntity
.
ok
(
userInfo
);
return
ResponseEntity
.
ok
(
userInfo
);
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论