Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart_gov_platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
smart_gov_platform
Commits
be2c63e2
Commit
be2c63e2
authored
Jun 02, 2022
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新菜单树列表
parent
0361dead
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
107 additions
and
101 deletions
+107
-101
portal-manager/doc/api.md
portal-manager/doc/api.md
+89
-7
portal-manager/src/main/java/com/mortals/xhx/base/login/web/LoginController.java
.../java/com/mortals/xhx/base/login/web/LoginController.java
+6
-81
portal-manager/src/main/java/com/mortals/xhx/module/user/model/UserEntity.java
...in/java/com/mortals/xhx/module/user/model/UserEntity.java
+9
-0
portal-manager/src/main/java/com/mortals/xhx/module/user/model/vo/UserVo.java
...ain/java/com/mortals/xhx/module/user/model/vo/UserVo.java
+3
-13
No files found.
portal-manager/doc/api.md
View file @
be2c63e2
...
...
@@ -39,8 +39,7 @@ password|String|用户密码|是|-
{
"loginName":"zhang3",
"password":"123456",
"securityCode":"5455"
"password":"123456"
}
```
...
...
@@ -50,19 +49,102 @@ password|String|用户密码|是|-
---|---|---|---
code|Integer|结果码(-1.失败,1.成功)|-
msg|String|消息|-
data|Object|数据对象|-
 
token|String|jwt token认证信息|-
 
user|Object|用户信息|-
  
id|Long|用户ID
  
loginName|String|登录名
  
realName|String|用户名
  
mobile|String|用户手机号
  
phone|String|用户联系电话
  
email|String|用户邮箱
  
qq|String|QQ号码
  
siteIds|String|所属站点id,多个逗号分隔
  
areaCodes|String|所属区域code,多个逗号分隔
  
menuList|Arrays|菜单列表,树结构
   
id|Long|菜单ID,主键
   
name|String|菜单名称
   
url|String|连接地址
   
parentId|Long|父菜单ID,一级菜单的该字段值为-1
   
linkType|Integer|链接方式,(0.内链,1.外链,2.脚本)
   
imgPath|String|主菜单图标,主菜单图标的css样式名
   
buttonImgPath|String|按钮图标
   
imgCommPath|String|常用菜单图标
   
visible|Integer|菜单显示(0.隐藏,1.显示)
   
menuType|Integer|菜单类型(0.目录,1.菜单,2.按钮)
   
status|Integer|菜单状态(0.禁用,1.启用)
   
authType|Integer|权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
   
orderId|Integer|排序编号
   
childList|Arrays|菜单子列表
**响应消息样例:**
```
{
"msg":"
登录成功
",
"msg":"
用户登录系统成功!
",
"code":1,
"data":{
"user":{
"areaCodes":"",
"createTime":1654132346000,
"createUserId":1,
"createUserName":"admin",
"expireTime":1654223524841,
"id":1,
"lastLoginAddress":"127.0.0.1",
"lastLoginTime":1654132346000,
"loginName":"admin",
"loginTime":1654137124841,
"manager":false,
"menuList":[
{
"authType":0,
"childList":[
{
"authType":1,
"childList":[
{
"authType":1,
"childList":[
],
"id":3,
"linkType":1,
"menuType":2,
"name":"排号系统",
"orderId":3,
"parentId":2,
"status":1,
"url":"http://www.baidu.com",
"visible":1
}
],
"id":2,
"linkType":0,
"menuType":0,
"name":"聚集服务",
"orderId":2,
"parentId":1,
"status":1,
"visible":1
}
],
"id":1,
"linkType":0,
"menuType":0,
"name":"数据管理",
"orderId":1,
"parentId":-1,
"status":1,
"visible":1
}
],
"mobile":"13808095770",
"realName":"系统管理员",
"siteIds":""
},
"token":"eyJhbGciOiJIUzI1NiJ9.eyJsb2dpbl91c2VyX2tleSI6IjI0OGNlYTkxYzZlNTQ4MTU5ZWQ2MWYzNjgxNDg4ZDY3In0.XOwzDtTpAayGbH8auQbG96Qqmd1sivx8w59S60pm19g"
}
}
```
### 登出
...
...
portal-manager/src/main/java/com/mortals/xhx/base/login/web/LoginController.java
View file @
be2c63e2
...
...
@@ -62,33 +62,18 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
loginForm
.
validate
();
userEntity
=
userService
.
doLogin
(
loginName
,
password
,
ip
);
userEntity
.
setLastLoginAddress
(
ip
);
recordSysLog
(
request
,
userEntity
,
"用户登录系统成功!"
);
//根据用户id获取角色所分配的资源路径
// Set<String> urls = resourceService.findUrlSetByUserId(userEntity.getId());
// //菜单列表
// List<MenuEntity> menuList = menuService.findTreeMenu(userEntity, urls);
// userEntity.setMenuList(menuList);
// List<ModelEntity> modelList = this.service.findModelList(userEntity.getId());
// userEntity.setModelList(modelList);
List
<
MenuEntity
>
menuList
=
menuService
.
findTreeMenuByUser
(
userEntity
);
List
<
MenuEntity
>
menuList
=
menuService
.
findTreeMenuByUser
(
userEntity
);
userEntity
.
setMenuList
(
menuList
);
userEntity
.
setLoginTime
(
System
.
currentTimeMillis
());
userEntity
.
setToken
(
IdUtil
.
fastSimpleUUID
());
userEntity
.
setExpireTime
(
DateUtils
.
addCurrDate
(
7
).
getTime
());
//userEntity.setMenuUrl(generateMenuUrlCode(urls));
String
token
=
authTokenService
.
createToken
(
userEntity
);
//generateMenuUrlCode(urls);
//this.generateBlackCookie(request, response, loginName, urls);
data
.
put
(
"token"
,
token
);
data
.
put
(
"user"
,
userEntity
);
recordSysLog
(
request
,
userEntity
,
"用户登录系统成功!"
);
ret
.
put
(
KEY_RESULT_DATA
,
data
);
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
ret
.
put
(
KEY_RESULT_MSG
,
"用户登录系统成功!"
);
//ret.put("resources", urls);
return
ret
.
toJSONString
();
}
catch
(
Exception
e
)
{
log
.
error
(
"login error "
,
e
);
...
...
@@ -111,75 +96,15 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
if
(
user
==
null
)
{
return
""
;
}
//Set<String> urls = resourceService.findUrlSetByUserId(user.getId());
//List<MenuEntity> outlookBarList = menuService.findTreeMenu(user, urls);
String
currUserName
=
user
.
getRealName
();
if
(
currUserName
==
null
||
currUserName
.
trim
().
length
()
==
0
)
{
currUserName
=
"管理员"
;
}
UserEntity
userEntity
=
userService
.
get
(
user
.
getId
());
List
<
MenuEntity
>
menuList
=
menuService
.
findTreeMenuByUser
(
userEntity
);
userEntity
.
setMenuList
(
menuList
);
JSONObject
data
=
new
JSONObject
();
//data.put("barList", outlookBarList);
data
.
put
(
"id"
,
user
.
getId
());
data
.
put
(
"userType"
,
user
.
getUserType
());
data
.
put
(
"user"
,
userEntity
);
ret
.
put
(
KEY_RESULT_DATA
,
data
);
//this.generateBlackCookie(request, response, user.getLoginName(), urls);
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
ret
.
put
(
KEY_RESULT_MSG
,
"用户登录系统成功!"
);
//ret.put("resources", urls);
return
ret
.
toJSONString
();
}
private
void
generateBlackCookie
(
HttpServletRequest
request
,
HttpServletResponse
response
,
String
loginName
,
Set
<
String
>
urls
)
{
try
{
String
cacheKey
=
RedisKey
.
KEY_MENU_CACHE
+
loginName
;
String
securityKey
=
GlobalSysInfo
.
getPropertyValue
(
SysConstains
.
PROP_COOKIE_SECURITY_KEY
);
//应为Cookie会超长,所以改为仅存储key将值放入redis
//CookieService.setCookieForAuth(request, response, securityKey, null);
StringBuilder
sb
=
new
StringBuilder
();
if
(
urls
!=
null
&&
urls
.
size
()
>
0
)
{
for
(
String
url
:
urls
)
{
int
index
=
url
.
hashCode
()
&
(
Integer
.
MAX_VALUE
-
1
);
sb
.
append
(
index
).
append
(
","
);
}
}
String
menuUrl
=
sb
.
toString
();
menuUrl
=
AESUtil
.
encrypt
(
menuUrl
,
securityKey
);
cacheService
.
set
(
cacheKey
,
menuUrl
,
604800
);
HttpUtil
.
setCookieValue
(
request
,
response
,
SysConstains
.
COOKIE_MENU
,
cacheKey
,
-
1
);
}
catch
(
Throwable
e
)
{
}
}
private
String
generateMenuUrlCode
(
Set
<
String
>
urls
)
{
try
{
String
securityKey
=
GlobalSysInfo
.
getPropertyValue
(
SysConstains
.
PROP_COOKIE_SECURITY_KEY
);
StringBuilder
sb
=
new
StringBuilder
();
if
(
urls
!=
null
&&
urls
.
size
()
>
0
)
{
for
(
String
url
:
urls
)
{
int
index
=
url
.
hashCode
()
&
(
Integer
.
MAX_VALUE
-
1
);
sb
.
append
(
index
).
append
(
","
);
}
}
String
menuUrl
=
sb
.
toString
();
return
AESUtil
.
encrypt
(
menuUrl
,
securityKey
);
}
catch
(
Throwable
e
)
{
log
.
error
(
"编码异常"
,
e
);
return
null
;
}
}
@RequestMapping
(
"parseToken"
)
public
IUser
parseToken
()
throws
Exception
{
IUser
userEntity
=
authTokenService
.
getLoginUser
(
request
);
if
(!
ObjectUtils
.
isEmpty
(
userEntity
))
{
authTokenService
.
verifyToken
(
userEntity
);
return
userEntity
;
}
return
null
;
}
}
portal-manager/src/main/java/com/mortals/xhx/module/user/model/UserEntity.java
View file @
be2c63e2
...
...
@@ -3,6 +3,8 @@ package com.mortals.xhx.module.user.model;
import
java.util.Date
;
import
java.util.List
;
import
java.util.ArrayList
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.mortals.framework.annotation.Excel
;
import
com.mortals.framework.model.BaseEntityLong
;
...
...
@@ -25,10 +27,12 @@ public class UserEntity extends UserVo implements IUser {
/**
* 登录密码,使用md5双次加密
*/
@JSONField
(
serialize
=
false
)
private
String
loginPwd
;
/**
* 登录限制地址,多个IP地址用逗号分隔,可以使用IP段匹配,如:172.17.*非空:则只能该值内的IP可以登录
*/
@JSONField
(
serialize
=
false
)
private
String
loginLimitAddress
;
/**
* 用户名
...
...
@@ -53,6 +57,7 @@ public class UserEntity extends UserVo implements IUser {
/**
* 用户类型(0.系统用户,1.普通用户,2.工作人员)
*/
@JSONField
(
serialize
=
false
)
private
Integer
userType
;
/**
* 所属站点id,多个逗号分隔
...
...
@@ -65,18 +70,22 @@ public class UserEntity extends UserVo implements IUser {
/**
* 用户状态(0.停用,1.正常,2.冻结,3.销户,4.离职)
*/
@JSONField
(
serialize
=
false
)
private
Integer
status
;
/**
* 创建用户名称
*/
@JSONField
(
serialize
=
false
)
private
String
createUserName
;
/**
* 最后一次登录时间
*/
@JSONField
(
serialize
=
false
)
private
Date
lastLoginTime
;
/**
* 最后一次登录地址
*/
@JSONField
(
serialize
=
false
)
private
String
lastLoginAddress
;
...
...
portal-manager/src/main/java/com/mortals/xhx/module/user/model/vo/UserVo.java
View file @
be2c63e2
package
com.mortals.xhx.module.user.model.vo
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.xhx.module.menu.model.MenuEntity
;
...
...
@@ -14,18 +15,12 @@ import java.util.List;
*/
@Data
public
class
UserVo
extends
BaseEntityLong
{
/**
* 站点名称
*/
//private String siteName;
/**
* 唯一标识
*/
@JSONField
(
serialize
=
false
)
private
String
token
;
/**
* 菜单栏
*/
private
String
menuUrl
;
/**
* 登录时间
...
...
@@ -37,11 +32,6 @@ public class UserVo extends BaseEntityLong {
*/
private
Long
expireTime
;
/**
* 模块列表
*/
//private List<ModelEntity> modelList;
/**
* 菜单列表
*/
...
...
Write
Preview
Markdown
is supported
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