Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart-office-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-office-platform
Commits
b47cacf7
Commit
b47cacf7
authored
Nov 16, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加同步接口
parent
16602cc7
Changes
29
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
359 additions
and
498 deletions
+359
-498
common-lib/src/main/java/com/mortals/xhx/feign/device/IDeviceFeign.java
.../main/java/com/mortals/xhx/feign/device/IDeviceFeign.java
+2
-2
common-lib/src/main/java/com/mortals/xhx/feign/user/IUserFeign.java
.../src/main/java/com/mortals/xhx/feign/user/IUserFeign.java
+2
-2
smart-office-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthTokenServiceImpl.java
.../xhx/base/framework/interceptor/AuthTokenServiceImpl.java
+55
-18
smart-office-manager/src/main/java/com/mortals/xhx/base/login/web/StandaloneLoginController.java
...mortals/xhx/base/login/web/StandaloneLoginController.java
+1
-1
smart-office-manager/src/main/java/com/mortals/xhx/base/system/resource/dao/ibatis/ResourceDaoImpl.java
.../xhx/base/system/resource/dao/ibatis/ResourceDaoImpl.java
+0
-1
smart-office-manager/src/main/java/com/mortals/xhx/base/system/resource/model/ResourceEntity.java
...ortals/xhx/base/system/resource/model/ResourceEntity.java
+2
-2
smart-office-manager/src/main/java/com/mortals/xhx/base/system/resource/service/impl/ResourceServiceImpl.java
...ase/system/resource/service/impl/ResourceServiceImpl.java
+0
-1
smart-office-manager/src/main/java/com/mortals/xhx/base/system/resource/web/ResourceController.java
...tals/xhx/base/system/resource/web/ResourceController.java
+8
-13
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/dao/ibatis/RoleAuthDaoImpl.java
...tals/xhx/base/system/role/dao/ibatis/RoleAuthDaoImpl.java
+0
-1
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/dao/ibatis/RoleDaoImpl.java
.../mortals/xhx/base/system/role/dao/ibatis/RoleDaoImpl.java
+0
-1
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/dao/ibatis/RoleUserDaoImpl.java
...tals/xhx/base/system/role/dao/ibatis/RoleUserDaoImpl.java
+0
-1
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/model/RoleEntity.java
...va/com/mortals/xhx/base/system/role/model/RoleEntity.java
+3
-7
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/service/impl/RoleAuthServiceImpl.java
...hx/base/system/role/service/impl/RoleAuthServiceImpl.java
+33
-14
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/service/impl/RoleServiceImpl.java
...ls/xhx/base/system/role/service/impl/RoleServiceImpl.java
+8
-9
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/service/impl/RoleUserServiceImpl.java
...hx/base/system/role/service/impl/RoleUserServiceImpl.java
+38
-13
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleAuthController.java
.../mortals/xhx/base/system/role/web/RoleAuthController.java
+2
-7
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleController.java
.../com/mortals/xhx/base/system/role/web/RoleController.java
+5
-8
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleUserController.java
.../mortals/xhx/base/system/role/web/RoleUserController.java
+7
-11
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/dao/ibatis/UserDaoImpl.java
.../mortals/xhx/base/system/user/dao/ibatis/UserDaoImpl.java
+2
-3
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntity.java
...va/com/mortals/xhx/base/system/user/model/UserEntity.java
+1
-2
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntityExt.java
...com/mortals/xhx/base/system/user/model/UserEntityExt.java
+0
-42
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserQuery.java
...ava/com/mortals/xhx/base/system/user/model/UserQuery.java
+0
-1
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/model/vo/UserVo.java
...ava/com/mortals/xhx/base/system/user/model/vo/UserVo.java
+5
-3
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/service/UserService.java
...com/mortals/xhx/base/system/user/service/UserService.java
+9
-65
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
...ls/xhx/base/system/user/service/impl/UserServiceImpl.java
+112
-173
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java
.../com/mortals/xhx/base/system/user/web/UserController.java
+29
-95
smart-office-manager/src/main/java/com/mortals/xhx/common/key/RedisKey.java
...er/src/main/java/com/mortals/xhx/common/key/RedisKey.java
+2
-0
smart-office-manager/src/main/java/com/mortals/xhx/common/utils/MenuEncodeUtil.java
...ain/java/com/mortals/xhx/common/utils/MenuEncodeUtil.java
+30
-0
smart-office-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
...in/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
+3
-2
No files found.
common-lib/src/main/java/com/mortals/xhx/feign/device/IDeviceFeign.java
View file @
b47cacf7
...
@@ -30,7 +30,7 @@ public interface IDeviceFeign extends IFeign {
...
@@ -30,7 +30,7 @@ public interface IDeviceFeign extends IFeign {
* @param devicePdu
* @param devicePdu
* @return
* @return
*/
*/
@PostMapping
(
value
=
"/device/list"
)
@PostMapping
(
value
=
"/device/
inter
list"
)
Rest
<
RespData
<
List
<
DevicePdu
>>>
list
(
@RequestBody
DevicePdu
devicePdu
);
Rest
<
RespData
<
List
<
DevicePdu
>>>
list
(
@RequestBody
DevicePdu
devicePdu
);
...
@@ -40,7 +40,7 @@ public interface IDeviceFeign extends IFeign {
...
@@ -40,7 +40,7 @@ public interface IDeviceFeign extends IFeign {
* @param id
* @param id
* @return
* @return
*/
*/
@GetMapping
(
value
=
"/device/info"
)
@GetMapping
(
value
=
"/device/in
terin
fo"
)
Rest
<
DevicePdu
>
info
(
@RequestParam
(
value
=
"id"
)
Long
id
);
Rest
<
DevicePdu
>
info
(
@RequestParam
(
value
=
"id"
)
Long
id
);
...
...
common-lib/src/main/java/com/mortals/xhx/feign/user/IUserFeign.java
View file @
b47cacf7
...
@@ -28,7 +28,7 @@ public interface IUserFeign extends IFeign {
...
@@ -28,7 +28,7 @@ public interface IUserFeign extends IFeign {
* @param userPdu
* @param userPdu
* @return
* @return
*/
*/
@PostMapping
(
value
=
"/user/list"
)
@PostMapping
(
value
=
"/user/
inter
list"
)
Rest
<
RespData
<
List
<
UserPdu
>>>
list
(
@RequestBody
UserPdu
userPdu
);
Rest
<
RespData
<
List
<
UserPdu
>>>
list
(
@RequestBody
UserPdu
userPdu
);
...
@@ -38,7 +38,7 @@ public interface IUserFeign extends IFeign {
...
@@ -38,7 +38,7 @@ public interface IUserFeign extends IFeign {
* @param id
* @param id
* @return
* @return
*/
*/
@GetMapping
(
value
=
"/user/info"
)
@GetMapping
(
value
=
"/user/in
terin
fo"
)
Rest
<
UserPdu
>
info
(
@RequestParam
(
value
=
"id"
)
Long
id
);
Rest
<
UserPdu
>
info
(
@RequestParam
(
value
=
"id"
)
Long
id
);
/**
/**
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthTokenServiceImpl.java
View file @
b47cacf7
package
com.mortals.xhx.base.framework.interceptor
;
package
com.mortals.xhx.base.framework.interceptor
;
import
cn.hutool.core.codec.Base64
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.ap.SysConstains
;
import
com.mortals.framework.ap.SysConstains
;
import
com.mortals.framework.service.IAuthTokenService
;
import
com.mortals.framework.service.IAuthTokenService
;
...
@@ -8,30 +7,42 @@ import com.mortals.framework.service.ICacheService;
...
@@ -8,30 +7,42 @@ import com.mortals.framework.service.ICacheService;
import
com.mortals.framework.service.IUser
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.xhx.base.system.resource.service.ResourceService
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
com.mortals.xhx.common.key.RedisKey
;
import
com.mortals.xhx.common.utils.MenuEncodeUtil
;
import
io.jsonwebtoken.Claims
;
import
io.jsonwebtoken.Claims
;
import
io.jsonwebtoken.Jwts
;
import
io.jsonwebtoken.Jwts
;
import
io.jsonwebtoken.SignatureAlgorithm
;
import
io.jsonwebtoken.SignatureAlgorithm
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Base64
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Set
;
/**
/**
* token验证处理
* token验证处理
*
*
* @author zxfei
* @author zxfei
*/
*/
@Primary
@Service
@Service
@Order
(
1
)
@Order
(
1
)
@Slf4j
@Slf4j
public
class
AuthTokenServiceImpl
implements
IAuthTokenService
{
public
class
AuthTokenServiceImpl
implements
IAuthTokenService
{
@Autowired
private
UserService
userService
;
// 令牌自定义标识
// 令牌自定义标识
@Value
(
"${token.header:Authorization}"
)
@Value
(
"${token.header:Authorization}"
)
private
String
header
;
private
String
header
;
...
@@ -54,7 +65,6 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
...
@@ -54,7 +65,6 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
@Value
(
"${token.database:0}"
)
@Value
(
"${token.database:0}"
)
private
Integer
portalDb
;
private
Integer
portalDb
;
protected
static
final
Long
SECOND
=
1
l
;
protected
static
final
Long
SECOND
=
1
l
;
protected
static
final
Long
SECOND_MINUTE
=
60
*
SECOND
;
protected
static
final
Long
SECOND_MINUTE
=
60
*
SECOND
;
...
@@ -70,6 +80,10 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
...
@@ -70,6 +80,10 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
@Autowired
@Autowired
private
ICacheService
cacheService
;
private
ICacheService
cacheService
;
@Autowired
private
ResourceService
resourceService
;
/**
/**
* 获取信息
* 获取信息
*
*
...
@@ -82,22 +96,39 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
...
@@ -82,22 +96,39 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
String
token
=
getToken
(
request
);
String
token
=
getToken
(
request
);
if
(
StringUtils
.
isNotEmpty
(
token
))
{
if
(
StringUtils
.
isNotEmpty
(
token
))
{
try
{
try
{
boolean
signed
=
Jwts
.
parser
().
isSigned
(
token
);
if
(!
signed
)
{
log
.
error
(
"token非法!=>{}"
,
token
);
return
null
;
}
Claims
claims
=
parseToken
(
token
);
Claims
claims
=
parseToken
(
token
);
String
uuid
=
(
String
)
claims
.
get
(
SysConstains
.
LOGIN_USER_KEY
);
String
uuid
=
(
String
)
claims
.
get
(
SysConstains
.
LOGIN_USER_KEY
);
String
userKey
=
getTokenKey
(
uuid
);
String
userKey
=
getTokenKey
(
uuid
);
// Rest<String> rest = userFeign.getToken(userKey);
// String userStr = rest.getData();
cacheService
.
select
(
portalDb
);
cacheService
.
select
(
portalDb
);
String
userStr
=
cacheService
.
get
(
userKey
);
String
userStr
=
cacheService
.
get
(
userKey
);
//刷新token时间
UserEntity
userEntity
=
JSONObject
.
parseObject
(
userStr
,
UserEntity
.
class
);
if
(!
ObjectUtils
.
isEmpty
(
userEntity
))
{
verifyToken
(
userEntity
);
}
cacheService
.
select
(
db
);
cacheService
.
select
(
db
);
if
(
StringUtils
.
isNotEmpty
(
userStr
))
{
if
(!
ObjectUtils
.
isEmpty
(
userEntity
))
{
UserEntity
userEntity
=
JSONObject
.
parseObject
(
userStr
,
UserEntity
.
class
);
UserEntity
temp
=
userService
.
getExtCache
(
userEntity
.
getLoginName
());
userEntity
.
setToken
(
token
);
if
(!
ObjectUtils
.
isEmpty
(
temp
))
{
userEntity
.
setId
(
temp
.
getId
());
}
//更新resource 路径
String
menuUrlCode
=
cacheService
.
hget
(
RedisKey
.
KEY_USER_MENU_CACHE
,
userEntity
.
getId
().
toString
(),
String
.
class
);
if
(
ObjectUtils
.
isEmpty
(
menuUrlCode
))
{
Set
<
String
>
urls
=
resourceService
.
findUrlSetByUserId
(
userEntity
.
getId
());
menuUrlCode
=
MenuEncodeUtil
.
generateMenuUrlCode
(
urls
);
cacheService
.
hset
(
RedisKey
.
KEY_USER_MENU_CACHE
,
userEntity
.
getId
().
toString
(),
menuUrlCode
);
}
userEntity
.
setMenuUrl
(
menuUrlCode
);
return
userEntity
;
return
userEntity
;
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"解析jwt token异常!
"
,
e
);
log
.
error
(
"解析jwt token异常!
,token:{}"
,
token
,
e
);
return
null
;
return
null
;
}
}
}
}
...
@@ -151,8 +182,8 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
...
@@ -151,8 +182,8 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
public
void
verifyToken
(
IUser
user
)
{
public
void
verifyToken
(
IUser
user
)
{
long
expireTime
=
user
.
getExpireTime
();
long
expireTime
=
user
.
getExpireTime
();
long
currentTime
=
System
.
currentTimeMillis
();
long
currentTime
=
System
.
currentTimeMillis
();
if
(
expireTime
-
currentTime
<=
SECOND_MINUTE_TEN
)
{
if
(
expireTime
-
currentTime
<=
SECOND_MINUTE_TEN
*
1000
)
{
log
.
info
(
"不足十分钟,刷新过期时间"
);
log
.
info
(
"不足
二
十分钟,刷新过期时间"
);
refreshToken
(
user
);
refreshToken
(
user
);
}
}
}
}
...
@@ -164,7 +195,7 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
...
@@ -164,7 +195,7 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
*/
*/
public
void
refreshToken
(
IUser
user
)
{
public
void
refreshToken
(
IUser
user
)
{
//user.setLoginTime(System.currentTimeMillis());
//user.setLoginTime(System.currentTimeMillis());
user
.
setExpireTime
(
user
.
getLoginTime
()
==
null
?
System
.
currentTimeMillis
()
:
user
.
getLoginTime
()
+
expireTime
*
SECOND_MINUTE
);
user
.
setExpireTime
(
user
.
getLoginTime
()
==
null
?
System
.
currentTimeMillis
()
:
user
.
getLoginTime
()
+
expireTime
*
SECOND_MINUTE
*
1000
);
// 根据uuid将user缓存
// 根据uuid将user缓存
String
userKey
=
getTokenKey
(
user
.
getToken
());
String
userKey
=
getTokenKey
(
user
.
getToken
());
//设置有效时间 单位秒
//设置有效时间 单位秒
...
@@ -182,9 +213,8 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
...
@@ -182,9 +213,8 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
String
token
=
Jwts
.
builder
()
String
token
=
Jwts
.
builder
()
.
setExpiration
(
DateUtils
.
addCurrDate
(
7
))
.
setExpiration
(
DateUtils
.
addCurrDate
(
7
))
.
setClaims
(
claims
)
.
setClaims
(
claims
)
.
signWith
(
SignatureAlgorithm
.
HS256
,
Base64
.
encode
(
secret
.
getBytes
())).
compact
();
.
signWith
(
SignatureAlgorithm
.
HS256
,
Base64
.
getEncoder
()
.
encodeToString
(
secret
.
getBytes
())).
compact
();
return
token
;
return
token
;
}
}
...
@@ -197,7 +227,7 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
...
@@ -197,7 +227,7 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
@Override
@Override
public
Claims
parseToken
(
String
token
)
{
public
Claims
parseToken
(
String
token
)
{
return
Jwts
.
parser
()
return
Jwts
.
parser
()
.
setSigningKey
(
Base64
.
encode
(
secret
.
getBytes
()))
.
setSigningKey
(
Base64
.
getEncoder
().
encodeToString
(
secret
.
getBytes
()))
.
parseClaimsJws
(
token
)
.
parseClaimsJws
(
token
)
.
getBody
();
.
getBody
();
}
}
...
@@ -232,4 +262,11 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
...
@@ -232,4 +262,11 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
private
String
getTokenKey
(
String
uuid
)
{
private
String
getTokenKey
(
String
uuid
)
{
return
SysConstains
.
LOGIN_TOKEN_KEY
+
uuid
;
return
SysConstains
.
LOGIN_TOKEN_KEY
+
uuid
;
}
}
public
static
void
main
(
String
[]
args
)
{
// boolean signed = Jwts.parser().isSigned("123");
boolean
signed
=
Jwts
.
parser
().
isSigned
(
"eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuaW5naGFvLm5ldCIsImV4cCI6IjE0Mzg5NTU0NDUiLCJuYW1lIjoid2FuZ2hhbyIsImFkbWluIjp0cnVlfQ.SwyHTEx_RQppr97g4J5lKXtabJecpejuef8AqKYMAJc"
);
System
.
out
.
println
(
signed
);
}
}
}
smart-office-manager/src/main/java/com/mortals/xhx/base/login/web/StandaloneLoginController.java
View file @
b47cacf7
...
@@ -74,7 +74,7 @@ public class StandaloneLoginController extends BaseCRUDJsonBodyMappingController
...
@@ -74,7 +74,7 @@ public class StandaloneLoginController extends BaseCRUDJsonBodyMappingController
try
{
try
{
loginForm
.
validate
();
loginForm
.
validate
();
userEntity
=
userService
.
doLogin
(
loginName
,
password
,
ip
);
//
userEntity = userService.doLogin(loginName, password, ip);
userEntity
.
setLastLoginAddress
(
ip
);
userEntity
.
setLastLoginAddress
(
ip
);
recordSysLog
(
request
,
userEntity
,
"用户登录系统成功!"
);
recordSysLog
(
request
,
userEntity
,
"用户登录系统成功!"
);
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/resource/dao/ibatis/ResourceDaoImpl.java
View file @
b47cacf7
...
@@ -8,7 +8,6 @@ import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
...
@@ -8,7 +8,6 @@ import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import
com.mortals.framework.model.ParamDto
;
import
com.mortals.framework.model.ParamDto
;
import
com.mortals.xhx.base.system.resource.dao.ResourceDao
;
import
com.mortals.xhx.base.system.resource.dao.ResourceDao
;
import
com.mortals.xhx.base.system.resource.model.ResourceEntity
;
import
com.mortals.xhx.base.system.resource.model.ResourceEntity
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.HashMap
;
import
java.util.HashMap
;
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/resource/model/ResourceEntity.java
View file @
b47cacf7
...
@@ -8,10 +8,10 @@
...
@@ -8,10 +8,10 @@
package
com.mortals.xhx.base.system.resource.model
;
package
com.mortals.xhx.base.system.resource.model
;
import
java.util.Date
;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.framework.model.BaseEntityLong
;
import
java.util.Date
;
/**
/**
* <p>Title: 资源信息</p>
* <p>Title: 资源信息</p>
* <p>Description: ResourceEntity </p>
* <p>Description: ResourceEntity </p>
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/resource/service/impl/ResourceServiceImpl.java
View file @
b47cacf7
...
@@ -15,7 +15,6 @@ import com.mortals.xhx.base.system.resource.dao.ResourceDao;
...
@@ -15,7 +15,6 @@ import com.mortals.xhx.base.system.resource.dao.ResourceDao;
import
com.mortals.xhx.base.system.resource.model.ResourceEntity
;
import
com.mortals.xhx.base.system.resource.model.ResourceEntity
;
import
com.mortals.xhx.base.system.resource.model.ResourceQuery
;
import
com.mortals.xhx.base.system.resource.model.ResourceQuery
;
import
com.mortals.xhx.base.system.resource.service.ResourceService
;
import
com.mortals.xhx.base.system.resource.service.ResourceService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.HashSet
;
import
java.util.HashSet
;
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/resource/web/ResourceController.java
View file @
b47cacf7
package
com.mortals.xhx.base.system.resource.web
;
package
com.mortals.xhx.base.system.resource.web
;
import
java.util.HashMap
;
import
com.alibaba.fastjson.JSONObject
;
import
java.util.Map
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
com.mortals.framework.common.IBaseEnum
;
import
com.mortals.framework.common.IBaseEnum
;
import
com.mortals.framework.common.code.UserType
;
import
com.mortals.framework.common.code.UserType
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.base.system.resource.model.ResourceEntity
;
import
com.mortals.xhx.base.system.resource.service.ResourceService
;
import
com.mortals.xhx.common.code.AuthType
;
import
com.mortals.xhx.common.code.SourceType
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.alibaba.fastjson.JSONObject
;
import
java.util.HashMap
;
import
com.mortals.framework.model.Context
;
import
java.util.Map
;
import
com.mortals.framework.web.BaseCRUDJsonMappingController
;
import
com.mortals.xhx.base.system.resource.model.ResourceEntity
;
import
com.mortals.xhx.base.system.resource.service.ResourceService
;
import
com.mortals.xhx.common.code.AuthType
;
import
com.mortals.xhx.common.code.SourceType
;
/**
/**
* 资源信息
* 资源信息
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/dao/ibatis/RoleAuthDaoImpl.java
View file @
b47cacf7
...
@@ -11,7 +11,6 @@ package com.mortals.xhx.base.system.role.dao.ibatis;
...
@@ -11,7 +11,6 @@ package com.mortals.xhx.base.system.role.dao.ibatis;
import
com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis
;
import
com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis
;
import
com.mortals.xhx.base.system.role.dao.RoleAuthDao
;
import
com.mortals.xhx.base.system.role.dao.RoleAuthDao
;
import
com.mortals.xhx.base.system.role.model.RoleAuthEntity
;
import
com.mortals.xhx.base.system.role.model.RoleAuthEntity
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
/**
/**
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/dao/ibatis/RoleDaoImpl.java
View file @
b47cacf7
...
@@ -11,7 +11,6 @@ package com.mortals.xhx.base.system.role.dao.ibatis;
...
@@ -11,7 +11,6 @@ package com.mortals.xhx.base.system.role.dao.ibatis;
import
com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis
;
import
com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis
;
import
com.mortals.xhx.base.system.role.dao.RoleDao
;
import
com.mortals.xhx.base.system.role.dao.RoleDao
;
import
com.mortals.xhx.base.system.role.model.RoleEntity
;
import
com.mortals.xhx.base.system.role.model.RoleEntity
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
/**
/**
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/dao/ibatis/RoleUserDaoImpl.java
View file @
b47cacf7
...
@@ -11,7 +11,6 @@ package com.mortals.xhx.base.system.role.dao.ibatis;
...
@@ -11,7 +11,6 @@ package com.mortals.xhx.base.system.role.dao.ibatis;
import
com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis
;
import
com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis
;
import
com.mortals.xhx.base.system.role.dao.RoleUserDao
;
import
com.mortals.xhx.base.system.role.dao.RoleUserDao
;
import
com.mortals.xhx.base.system.role.model.RoleUserEntity
;
import
com.mortals.xhx.base.system.role.model.RoleUserEntity
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
/**
/**
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/model/RoleEntity.java
View file @
b47cacf7
...
@@ -8,10 +8,10 @@
...
@@ -8,10 +8,10 @@
package
com.mortals.xhx.base.system.role.model
;
package
com.mortals.xhx.base.system.role.model
;
import
java.util.Date
;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.framework.model.BaseEntityLong
;
import
java.util.Date
;
/**
/**
* <p>Title: 角色信息</p>
* <p>Title: 角色信息</p>
* <p>Description: RoleEntity </p>
* <p>Description: RoleEntity </p>
...
@@ -22,11 +22,7 @@ import com.mortals.framework.model.BaseEntityLong;
...
@@ -22,11 +22,7 @@ import com.mortals.framework.model.BaseEntityLong;
*/
*/
public
class
RoleEntity
extends
BaseEntityLong
{
public
class
RoleEntity
extends
BaseEntityLong
{
private
static
final
long
serialVersionUID
=
1547777703344L
;
private
static
final
long
serialVersionUID
=
1547777703344L
;
/** 用户ID */
private
Long
userId
;
/** 角色名称 */
/** 角色名称 */
private
String
name
;
private
String
name
;
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/service/impl/RoleAuthServiceImpl.java
View file @
b47cacf7
/**
/**
* 文件:RoleAuthServiceImpl.java
* 文件:RoleAuthServiceImpl.java
* 版本:1.0.0
* 版本:1.0.0
* 日期:
* 日期:
* Copyright ®
* Copyright ®
* All right reserved.
* All right reserved.
*/
*/
package
com.mortals.xhx.base.system.role.service.impl
;
package
com.mortals.xhx.base.system.role.service.impl
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.util.DataUtil
;
import
com.mortals.xhx.base.system.resource.service.ResourceService
;
import
com.mortals.xhx.base.system.role.dao.RoleAuthDao
;
import
com.mortals.xhx.base.system.role.dao.RoleAuthDao
;
import
com.mortals.xhx.base.system.role.model.RoleAuthEntity
;
import
com.mortals.xhx.base.system.role.model.RoleAuthEntity
;
import
com.mortals.xhx.base.system.role.model.RoleAuthQuery
;
import
com.mortals.xhx.base.system.role.model.RoleAuthQuery
;
import
com.mortals.xhx.base.system.role.service.RoleAuthService
;
import
com.mortals.xhx.base.system.role.service.RoleAuthService
;
import
com.mortals.xhx.common.key.RedisKey
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.HashMap
;
import
java.util.List
;
import
static
com
.
mortals
.
xhx
.
common
.
utils
.
MenuEncodeUtil
.
generateMenuUrlCode
;
import
java.util.Map
;
/**
/**
* <p>Title: 角色资源权限</p>
* <p>Title: 角色资源权限</p>
* <p>Description: RoleAuthServiceImpl service接口 </p>
* <p>Description: RoleAuthServiceImpl service接口 </p>
* <p>Copyright: Copyright ® </p>
* <p>Copyright: Copyright ® </p>
* <p>Company: </p>
* <p>Company: </p>
* @author
* @author
* @version 1.0.0
* @version 1.0.0
*/
*/
@Service
(
"roleAuthService"
)
@Service
(
"roleAuthService"
)
public
class
RoleAuthServiceImpl
extends
AbstractCRUDServiceImpl
<
RoleAuthDao
,
RoleAuthEntity
,
Long
>
implements
RoleAuthService
{
public
class
RoleAuthServiceImpl
extends
AbstractCRUDServiceImpl
<
RoleAuthDao
,
RoleAuthEntity
,
Long
>
implements
RoleAuthService
{
@Autowired
private
ICacheService
cacheService
;
@Autowired
private
ResourceService
resourceService
;
@Override
@Override
public
void
doDistributionSource
(
RoleAuthQuery
query
)
{
public
void
doDistributionSource
(
RoleAuthQuery
query
)
{
...
@@ -49,6 +56,18 @@ public class RoleAuthServiceImpl extends AbstractCRUDServiceImpl<RoleAuthDao,Rol
...
@@ -49,6 +56,18 @@ public class RoleAuthServiceImpl extends AbstractCRUDServiceImpl<RoleAuthDao,Rol
list
.
add
(
entity
);
list
.
add
(
entity
);
}
}
this
.
dao
.
insertBatch
(
list
);
this
.
dao
.
insertBatch
(
list
);
this
.
updateUserMenuUrlCache
();
}
}
private
void
updateUserMenuUrlCache
()
{
//更新用户菜单
Set
<
String
>
hkeys
=
cacheService
.
hkeys
(
RedisKey
.
KEY_USER_MENU_CACHE
);
for
(
String
userId
:
hkeys
)
{
Set
<
String
>
urls
=
resourceService
.
findUrlSetByUserId
(
DataUtil
.
converStr2Long
(
userId
,
0L
));
String
menuUrlCode
=
generateMenuUrlCode
(
urls
);
cacheService
.
hset
(
RedisKey
.
KEY_USER_MENU_CACHE
,
userId
,
menuUrlCode
);
}
}
}
}
\ No newline at end of file
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/service/impl/RoleServiceImpl.java
View file @
b47cacf7
/**
/**
* 文件:RoleServiceImpl.java
* 文件:RoleServiceImpl.java
* 版本:1.0.0
* 版本:1.0.0
* 日期:
* 日期:
* Copyright ®
* Copyright ®
* All right reserved.
* All right reserved.
*/
*/
package
com.mortals.xhx.base.system.role.service.impl
;
package
com.mortals.xhx.base.system.role.service.impl
;
...
@@ -15,7 +15,6 @@ import com.mortals.xhx.base.system.role.dao.RoleDao;
...
@@ -15,7 +15,6 @@ import com.mortals.xhx.base.system.role.dao.RoleDao;
import
com.mortals.xhx.base.system.role.model.*
;
import
com.mortals.xhx.base.system.role.model.*
;
import
com.mortals.xhx.base.system.role.service.RoleAuthService
;
import
com.mortals.xhx.base.system.role.service.RoleAuthService
;
import
com.mortals.xhx.base.system.role.service.RoleService
;
import
com.mortals.xhx.base.system.role.service.RoleService
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -27,7 +26,7 @@ import java.util.Arrays;
...
@@ -27,7 +26,7 @@ import java.util.Arrays;
* <p>Description: RoleServiceImpl service接口 </p>
* <p>Description: RoleServiceImpl service接口 </p>
* <p>Copyright: Copyright ® </p>
* <p>Copyright: Copyright ® </p>
* <p>Company: </p>
* <p>Company: </p>
* @author
* @author
* @version 1.0.0
* @version 1.0.0
*/
*/
@Service
(
"roleService"
)
@Service
(
"roleService"
)
...
@@ -56,5 +55,5 @@ public class RoleServiceImpl extends AbstractCRUDServiceImpl<RoleDao,RoleEntity,
...
@@ -56,5 +55,5 @@ public class RoleServiceImpl extends AbstractCRUDServiceImpl<RoleDao,RoleEntity,
}).
count
();
}).
count
();
super
.
removeAfter
(
ids
,
context
,
result
);
super
.
removeAfter
(
ids
,
context
,
result
);
}
}
}
}
\ No newline at end of file
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/service/impl/RoleUserServiceImpl.java
View file @
b47cacf7
/**
/**
* 文件:RoleUserServiceImpl.java
* 文件:RoleUserServiceImpl.java
* 版本:1.0.0
* 版本:1.0.0
* 日期:
* 日期:
* Copyright ®
* Copyright ®
* All right reserved.
* All right reserved.
*/
*/
package
com.mortals.xhx.base.system.role.service.impl
;
package
com.mortals.xhx.base.system.role.service.impl
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.util.DataUtil
;
import
com.mortals.xhx.base.system.resource.service.ResourceService
;
import
com.mortals.xhx.base.system.role.dao.RoleUserDao
;
import
com.mortals.xhx.base.system.role.dao.RoleUserDao
;
import
com.mortals.xhx.base.system.role.model.RoleUserEntity
;
import
com.mortals.xhx.base.system.role.model.RoleUserEntity
;
import
com.mortals.xhx.base.system.role.model.RoleUserQuery
;
import
com.mortals.xhx.base.system.role.model.RoleUserQuery
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
com.mortals.xhx.common.key.RedisKey
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.HashMap
;
import
java.util.List
;
import
static
com
.
mortals
.
xhx
.
common
.
utils
.
MenuEncodeUtil
.
generateMenuUrlCode
;
import
java.util.Map
;
/**
/**
* <p>Title: 角色用户</p>
* <p>Title: 角色用户</p>
* <p>Description: RoleUserServiceImpl service接口 </p>
* <p>Description: RoleUserServiceImpl service接口 </p>
* <p>Copyright: Copyright ® </p>
* <p>Copyright: Copyright ® </p>
* <p>Company: </p>
* <p>Company: </p>
* @author
* @author
* @version 1.0.0
* @version 1.0.0
*/
*/
@Service
(
"roleUserService"
)
@Service
(
"roleUserService"
)
public
class
RoleUserServiceImpl
extends
AbstractCRUDServiceImpl
<
RoleUserDao
,
RoleUserEntity
,
Long
>
implements
RoleUserService
{
public
class
RoleUserServiceImpl
extends
AbstractCRUDServiceImpl
<
RoleUserDao
,
RoleUserEntity
,
Long
>
implements
RoleUserService
{
@Autowired
private
ICacheService
cacheService
;
@Autowired
private
ResourceService
resourceService
;
@Override
@Override
public
void
doDistributionUser
(
RoleUserQuery
query
)
{
public
void
doDistributionUser
(
RoleUserQuery
query
)
{
...
@@ -50,6 +60,7 @@ public class RoleUserServiceImpl extends AbstractCRUDServiceImpl<RoleUserDao,Rol
...
@@ -50,6 +60,7 @@ public class RoleUserServiceImpl extends AbstractCRUDServiceImpl<RoleUserDao,Rol
list
.
add
(
rolseUser
);
list
.
add
(
rolseUser
);
}
}
this
.
dao
.
insertBatch
(
list
);
this
.
dao
.
insertBatch
(
list
);
updateUserMenuUrlCache
();
}
}
@Override
@Override
...
@@ -68,8 +79,22 @@ public class RoleUserServiceImpl extends AbstractCRUDServiceImpl<RoleUserDao,Rol
...
@@ -68,8 +79,22 @@ public class RoleUserServiceImpl extends AbstractCRUDServiceImpl<RoleUserDao,Rol
list
.
add
(
rolseUser
);
list
.
add
(
rolseUser
);
}
}
this
.
dao
.
insertBatch
(
list
);
this
.
dao
.
insertBatch
(
list
);
updateUserMenuUrlCache
();
}
}
@Override
protected
void
removeAfter
(
Long
[]
ids
,
Context
context
,
int
result
)
throws
AppException
{
updateUserMenuUrlCache
();
}
private
void
updateUserMenuUrlCache
()
{
//更新用户菜单
Set
<
String
>
hkeys
=
cacheService
.
hkeys
(
RedisKey
.
KEY_USER_MENU_CACHE
);
for
(
String
userId
:
hkeys
)
{
Set
<
String
>
urls
=
resourceService
.
findUrlSetByUserId
(
DataUtil
.
converStr2Long
(
userId
,
0L
));
String
menuUrlCode
=
generateMenuUrlCode
(
urls
);
cacheService
.
hset
(
RedisKey
.
KEY_USER_MENU_CACHE
,
userId
,
menuUrlCode
);
}
}
}
}
\ No newline at end of file
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleAuthController.java
View file @
b47cacf7
...
@@ -3,20 +3,15 @@ package com.mortals.xhx.base.system.role.web;
...
@@ -3,20 +3,15 @@ package com.mortals.xhx.base.system.role.web;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.base.system.role.model.RoleAuthEntity
;
import
com.mortals.xhx.base.system.role.model.RoleAuthQuery
;
import
com.mortals.xhx.base.system.role.model.RoleAuthQuery
;
import
com.mortals.xhx.base.system.role.service.RoleAuthService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.mortals.framework.web.BaseCRUDJsonMappingController
;
import
com.mortals.xhx.base.system.role.model.RoleAuthEntity
;
import
com.mortals.xhx.base.system.role.service.RoleAuthService
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
/**
/**
* 角色资源权限
* 角色资源权限
*
*
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleController.java
View file @
b47cacf7
...
@@ -5,21 +5,18 @@ import com.alibaba.fastjson.JSONObject;
...
@@ -5,21 +5,18 @@ import com.alibaba.fastjson.JSONObject;
import
com.mortals.framework.common.IBaseEnum
;
import
com.mortals.framework.common.IBaseEnum
;
import
com.mortals.framework.common.code.UserType
;
import
com.mortals.framework.common.code.UserType
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.framework.web.BasePhpCRUDJsonMappingController
;
import
com.mortals.xhx.base.system.role.model.RoleQuery
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
com.mortals.framework.web.BaseCRUDJsonMappingController
;
import
com.mortals.xhx.base.system.role.model.RoleEntity
;
import
com.mortals.xhx.base.system.role.model.RoleEntity
;
import
com.mortals.xhx.base.system.role.model.RoleUserEntity
;
import
com.mortals.xhx.base.system.role.model.RoleUserEntity
;
import
com.mortals.xhx.base.system.role.service.RoleService
;
import
com.mortals.xhx.base.system.role.service.RoleService
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
com.mortals.xhx.common.code.RoleType
;
import
com.mortals.xhx.common.code.RoleType
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleUserController.java
View file @
b47cacf7
...
@@ -7,26 +7,22 @@ import com.mortals.framework.ap.SysConstains;
...
@@ -7,26 +7,22 @@ import com.mortals.framework.ap.SysConstains;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.base.system.role.model.RoleUserQuery
;
import
org.apache.commons.beanutils.MethodUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.mortals.framework.web.BaseCRUDJsonMappingController
;
import
com.mortals.xhx.base.system.role.model.RoleEntity
;
import
com.mortals.xhx.base.system.role.model.RoleEntity
;
import
com.mortals.xhx.base.system.role.model.RoleUserEntity
;
import
com.mortals.xhx.base.system.role.model.RoleUserEntity
;
import
com.mortals.xhx.base.system.role.model.RoleUserQuery
;
import
com.mortals.xhx.base.system.role.service.RoleService
;
import
com.mortals.xhx.base.system.role.service.RoleService
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.model.UserQuery
;
import
com.mortals.xhx.base.system.user.model.UserQuery
;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
org.apache.commons.beanutils.MethodUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/dao/ibatis/UserDaoImpl.java
View file @
b47cacf7
...
@@ -8,11 +8,10 @@
...
@@ -8,11 +8,10 @@
package
com.mortals.xhx.base.system.user.dao.ibatis
;
package
com.mortals.xhx.base.system.user.dao.ibatis
;
import
com.mortals.xhx.base.system.user.dao.UserDao
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis
;
import
com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis
;
import
com.mortals.framework.model.ParamDto
;
import
com.mortals.framework.model.ParamDto
;
import
com.mortals.xhx.base.system.user.dao.UserDao
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
import
java.util.List
;
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntity.java
View file @
b47cacf7
...
@@ -131,8 +131,7 @@ public class UserEntity extends UserVo implements IUser {
...
@@ -131,8 +131,7 @@ public class UserEntity extends UserVo implements IUser {
@Override
@Override
public
boolean
isAdmin
()
{
public
boolean
isAdmin
()
{
// return super.getId() == null ? false : super.getId().longValue() == SysConstains.ADMIN_ID;
return
super
.
getId
()
==
null
?
false
:
super
.
getId
().
longValue
()
==
SysConstains
.
ADMIN_ID
;
return
true
;
}
}
@Override
@Override
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntityExt.java
deleted
100644 → 0
View file @
16602cc7
package
com.mortals.xhx.base.system.user.model
;
import
com.mortals.framework.model.BaseEntityLong
;
import
lombok.Data
;
import
java.util.List
;
/**
* Description:User
* date: 2021-9-26 16:11:48
*/
@Data
public
class
UserEntityExt
extends
BaseEntityLong
{
/**
* 站点名称
*/
private
String
siteName
;
private
String
roleIds
;
/**
* 唯一标识
*/
private
String
token
;
/**
* 菜单栏
*/
private
String
menuUrl
;
/**
* 登录时间
*/
private
Long
loginTime
;
/**
* 过期时间
*/
private
Long
expireTime
;
}
\ No newline at end of file
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserQuery.java
View file @
b47cacf7
package
com.mortals.xhx.base.system.user.model
;
package
com.mortals.xhx.base.system.user.model
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
/**
/**
* 用户信息业务查询对象
* 用户信息业务查询对象
...
...
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/model/vo/UserVo.java
View file @
b47cacf7
...
@@ -4,9 +4,6 @@ package com.mortals.xhx.base.system.user.model.vo;
...
@@ -4,9 +4,6 @@ package com.mortals.xhx.base.system.user.model.vo;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.framework.model.BaseEntityLong
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
/**
* 用户信息业务视图对象
* 用户信息业务视图对象
*
*
...
@@ -15,6 +12,7 @@ import java.util.List;
...
@@ -15,6 +12,7 @@ import java.util.List;
*/
*/
@Data
@Data
public
class
UserVo
extends
BaseEntityLong
{
public
class
UserVo
extends
BaseEntityLong
{
/**
/**
* 站点名称
* 站点名称
*/
*/
...
@@ -39,4 +37,8 @@ public class UserVo extends BaseEntityLong {
...
@@ -39,4 +37,8 @@ public class UserVo extends BaseEntityLong {
* 过期时间
* 过期时间
*/
*/
private
Long
expireTime
;
private
Long
expireTime
;
private
String
oldPassword
;
private
String
newPassword
;
private
String
siteIds
;
}
}
\ No newline at end of file
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/service/UserService.java
View file @
b47cacf7
...
@@ -8,9 +8,9 @@
...
@@ -8,9 +8,9 @@
package
com.mortals.xhx.base.system.user.service
;
package
com.mortals.xhx.base.system.user.service
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Result
;
import
com.mortals.framework.service.ICRUDCacheService
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.xhx.base.system.menu.model.MenuEntity
;
import
com.mortals.xhx.base.system.menu.model.MenuEntity
;
import
com.mortals.xhx.base.system.user.dao.UserDao
;
import
com.mortals.xhx.base.system.user.dao.UserDao
;
...
@@ -28,17 +28,9 @@ import java.util.Set;
...
@@ -28,17 +28,9 @@ import java.util.Set;
* @version 1.0.0
* @version 1.0.0
*/
*/
public
interface
UserService
extends
ICRUDService
<
UserEntity
,
Long
>
{
public
interface
UserService
extends
ICRUDCacheService
<
UserEntity
,
Long
>
{
/**
* 用户登录
*
* @param loginName 登录用户名
* @param password 登录密码
* @param loginIp 登录IP
* @return
* @throws AppException
*/
UserEntity
doLogin
(
String
loginName
,
String
password
,
String
loginIp
)
throws
AppException
;
/**
/**
* 校验用户名与密码是否正确
* 校验用户名与密码是否正确
...
@@ -48,16 +40,7 @@ public interface UserService extends ICRUDService<UserEntity,Long> {
...
@@ -48,16 +40,7 @@ public interface UserService extends ICRUDService<UserEntity,Long> {
* @return
* @return
* @throws AppException
* @throws AppException
*/
*/
UserEntity
doCheckUser
(
String
loginName
,
String
password
)
throws
AppException
;
UserEntity
doCheckUser
(
String
loginName
,
String
password
)
throws
AppException
;
/**
* 检查用户是否存在
*
* @param loginName 登录用户名
* @param userId 密码
* @return
*/
boolean
existUser
(
String
loginName
,
Long
userId
)
throws
AppException
;
/**
/**
* 通过登录用户获取菜单功能权限
* 通过登录用户获取菜单功能权限
...
@@ -73,49 +56,10 @@ public interface UserService extends ICRUDService<UserEntity,Long> {
...
@@ -73,49 +56,10 @@ public interface UserService extends ICRUDService<UserEntity,Long> {
* @param userEntity
* @param userEntity
* @return
* @return
*/
*/
Set
<
Long
>
findAllAuthIds
(
UserEntity
userEntity
)
throws
AppException
;
Set
<
Long
>
findAllAuthIds
(
UserEntity
userEntity
)
throws
AppException
;
/**
* 查询用户记录
*
* @param platformId
* @param params
* @param currPage
* @param prePageResult
* @return
* @throws AppException
*/
Result
<
UserEntity
>
find
(
Long
platformId
,
UserEntity
params
,
int
currPage
,
int
prePageResult
)
throws
AppException
;
/**
* 为客户创建用户
*
* @param currUser 当前用户
* @param customerId 客户ID
* @param customerName 客户名称
* @param loginName
* @param password
* @param userName
* @param mobile
* @return
* @throws AppException
*/
UserEntity
createUser
(
IUser
currUser
,
Long
customerId
,
String
customerName
,
String
loginName
,
String
password
,
String
userName
,
String
mobile
)
throws
AppException
;
/**
* 用户修改密码
*
* @param loginName
* @param oldPwd
* @param newPwd
* @return
* @throws AppException
*/
boolean
updateUserPwd
(
String
loginName
,
String
oldPwd
,
String
newPwd
)
throws
AppException
;
Rest
<
Void
>
refreshUser
();
UserDao
getUserDao
();
UserDao
getUserDao
();
}
}
\ No newline at end of file
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
View file @
b47cacf7
...
@@ -9,13 +9,12 @@
...
@@ -9,13 +9,12 @@
package
com.mortals.xhx.base.system.user.service.impl
;
package
com.mortals.xhx.base.system.user.service.impl
;
import
com.mortals.framework.ap.SysConstains
;
import
com.mortals.framework.ap.SysConstains
;
import
com.mortals.framework.common.
code.UserType
;
import
com.mortals.framework.common.
Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.Result
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.service.impl.AbstractCRUD
Cache
ServiceImpl
;
import
com.mortals.framework.util.SecurityUtil
;
import
com.mortals.framework.util.SecurityUtil
;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.xhx.base.system.menu.model.MenuEntity
;
import
com.mortals.xhx.base.system.menu.model.MenuEntity
;
...
@@ -24,14 +23,17 @@ import com.mortals.xhx.base.system.resource.model.ResourceEntity;
...
@@ -24,14 +23,17 @@ import com.mortals.xhx.base.system.resource.model.ResourceEntity;
import
com.mortals.xhx.base.system.resource.service.ResourceService
;
import
com.mortals.xhx.base.system.resource.service.ResourceService
;
import
com.mortals.xhx.base.system.role.model.RoleUserEntity
;
import
com.mortals.xhx.base.system.role.model.RoleUserEntity
;
import
com.mortals.xhx.base.system.role.model.RoleUserQuery
;
import
com.mortals.xhx.base.system.role.model.RoleUserQuery
;
import
com.mortals.xhx.base.system.role.service.RoleService
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
com.mortals.xhx.base.system.user.dao.UserDao
;
import
com.mortals.xhx.base.system.user.dao.UserDao
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.model.UserQuery
;
import
com.mortals.xhx.base.system.user.model.UserQuery
;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.common.pdu.RespData
;
import
com.mortals.xhx.common.pdu.user.UserPdu
;
import
com.mortals.xhx.feign.user.IUserFeign
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
...
@@ -49,69 +51,66 @@ import java.util.stream.Collectors;
...
@@ -49,69 +51,66 @@ import java.util.stream.Collectors;
* @version 1.0.0
* @version 1.0.0
*/
*/
@Service
(
"userService"
)
@Service
(
"userService"
)
public
class
UserServiceImpl
extends
AbstractCRUDServiceImpl
<
UserDao
,
UserEntity
,
Long
>
implements
UserService
{
@Slf4j
public
class
UserServiceImpl
extends
AbstractCRUDCacheServiceImpl
<
UserDao
,
UserEntity
,
Long
>
implements
UserService
{
@Autowired
@Autowired
private
MenuService
menuService
;
private
MenuService
menuService
;
@Autowired
@Autowired
private
ResourceService
resourceService
;
private
ResourceService
resourceService
;
@Autowired
private
RoleService
roleService
;
@Autowired
@Autowired
private
RoleUserService
roleUserService
;
private
RoleUserService
roleUserService
;
private
void
doHandlerUser
(
UserEntity
entity
)
throws
AppException
{
@Autowired
if
(
StringUtils
.
isNotEmpty
(
entity
.
getLoginPwd
()))
{
private
IUserFeign
userFeign
;
try
{
entity
.
setLoginPwd
(
SecurityUtil
.
md5DoubleEncoding
(
entity
.
getLoginPwd
()));
}
catch
(
Exception
e
)
{
throw
new
AppException
(
"密码转换异常"
);
}
}
else
{
entity
.
setLoginPwd
(
null
);
}
}
@Override
@Override
protected
void
saveBefore
(
UserEntity
entity
,
Context
context
)
throws
AppException
{
protected
String
getExtKey
(
UserEntity
data
)
{
if
(!
ObjectUtils
.
isEmpty
(
entity
.
getLoginName
())
&&
existUser
(
entity
.
getLoginName
(),
entity
.
getId
()))
{
return
data
.
getLoginName
();
throw
new
AppException
(
"登录名已存在!"
);
}
this
.
doHandlerUser
(
entity
);
}
}
@Override
@Override
protected
void
updateBefore
(
UserEntity
entity
,
Context
context
)
throws
AppException
{
public
UserEntity
doCheckUser
(
String
loginName
,
String
password
)
throws
AppException
{
// if (entity.getId().longValue() == SysConstains.ADMIN_ID && !context.getUser().isAdmin()) {
// throw new AppException("你没有权限执行该操作");
// }
//更新不更新密码字段
UserQuery
params
=
new
UserQuery
();
entity
.
setLoginPwd
(
null
);
params
.
setLoginName
(
loginName
);
this
.
doHandlerUser
(
entity
);
UserEntity
sysUser
=
this
.
selectOne
(
params
);
//更新角色
if
(
sysUser
==
null
||
!
sysUser
.
getLoginName
().
equals
(
loginName
))
{
if
(
entity
.
getId
().
longValue
()
!=
SysConstains
.
ADMIN_ID
&&!
ObjectUtils
.
isEmpty
(
entity
.
getRoleIds
())){
return
null
;
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
roleUserQuery
.
setUserId
(
entity
.
getId
());
List
<
Long
>
idList
=
Arrays
.
asList
(
entity
.
getRoleIds
().
split
(
","
)).
stream
().
map
(
Long:
:
parseLong
).
collect
(
Collectors
.
toList
());
roleUserQuery
.
setRoleIdList
(
idList
);
roleUserService
.
doDistributionRole
(
roleUserQuery
);
}
}
try
{
if
(!
sysUser
.
getLoginPwd
().
equals
(
SecurityUtil
.
md5DoubleEncoding
(
password
)))
{
return
null
;
}
}
catch
(
Exception
e
)
{
log
.
error
(
"查询用户异常,loginName:"
+
loginName
,
e
);
return
null
;
}
return
sysUser
;
}
}
@Override
@Override
protected
void
saveAfter
(
UserEntity
entity
,
Context
context
)
throws
AppException
{
protected
void
saveAfter
(
UserEntity
entity
,
Context
context
)
throws
AppException
{
//更新角色
updateUserRole
(
entity
);
if
(!
ObjectUtils
.
isEmpty
(
entity
.
getId
())&&
entity
.
getId
().
longValue
()
!=
SysConstains
.
ADMIN_ID
&&!
ObjectUtils
.
isEmpty
(
entity
.
getRoleIds
())){
}
@Override
protected
void
updateAfter
(
UserEntity
entity
,
Context
context
)
throws
AppException
{
updateUserRole
(
entity
);
}
private
void
updateUserRole
(
UserEntity
entity
)
{
if
(!
ObjectUtils
.
isEmpty
(
entity
.
getId
())
&&
entity
.
getId
().
longValue
()
!=
SysConstains
.
ADMIN_ID
&&
!
ObjectUtils
.
isEmpty
(
entity
.
getRoleIds
()))
{
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
roleUserQuery
.
setUserId
(
entity
.
getId
());
roleUserQuery
.
setUserId
(
entity
.
getId
());
List
<
Long
>
idList
=
Arrays
.
asList
(
entity
.
getRoleIds
().
split
(
","
)).
stream
().
map
(
Long:
:
parseLong
).
collect
(
Collectors
.
toList
());
List
<
Long
>
idList
=
Arrays
.
asList
(
entity
.
getRoleIds
().
split
(
","
)).
stream
().
map
(
Long:
:
parseLong
).
collect
(
Collectors
.
toList
());
roleUserQuery
.
setRoleIdList
(
idList
);
roleUserQuery
.
setRoleIdList
(
idList
);
roleUserService
.
doDistributionRole
(
roleUserQuery
);
roleUserService
.
doDistributionRole
(
roleUserQuery
);
}
}
super
.
saveAfter
(
entity
,
context
);
}
}
@Override
@Override
...
@@ -122,66 +121,8 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
...
@@ -122,66 +121,8 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
String
roleIds
=
roleUserService
.
find
(
roleUserQuery
).
stream
().
map
(
RoleUserEntity:
:
getRoleId
).
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
));
String
roleIds
=
roleUserService
.
find
(
roleUserQuery
).
stream
().
map
(
RoleUserEntity:
:
getRoleId
).
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
));
item
.
setRoleIds
(
roleIds
);
item
.
setRoleIds
(
roleIds
);
}).
count
();
}).
count
();
super
.
findAfter
(
params
,
pageInfo
,
context
,
list
);
}
@Override
protected
UserEntity
findBefore
(
UserEntity
params
,
Context
context
)
throws
AppException
{
// if (StringUtils.isNotEmpty(params.getDeptIds())) {
// params.setDeptIds(StringUtils.fillWithMark(params.getDeptIds(), ","));
// }
return
super
.
findBefore
(
params
,
context
);
}
@Override
protected
UserEntity
findBefore
(
UserEntity
params
,
PageInfo
pageInfo
,
Context
context
)
throws
AppException
{
// if (StringUtils.isNotEmpty(params.getDeptIds())) {
// params.setDeptIds(StringUtils.fillWithMark(params.getDeptIds(), ","));
// }
return
super
.
findBefore
(
params
,
pageInfo
,
context
);
}
}
public
UserEntity
findByLoginName
(
String
loginName
)
{
UserQuery
params
=
new
UserQuery
();
params
.
setLoginName
(
loginName
);
List
<
UserEntity
>
userList
=
super
.
dao
.
getList
(
params
);
if
(
userList
!=
null
&&
userList
.
size
()
>
0
)
{
return
userList
.
get
(
0
);
}
return
null
;
}
@Override
public
UserEntity
doLogin
(
String
loginName
,
String
password
,
String
loginIp
)
throws
AppException
{
UserEntity
sysUser
=
this
.
findByLoginName
(
loginName
);
if
(
sysUser
==
null
||
!
sysUser
.
getLoginName
().
equals
(
loginName
))
{
throw
new
AppException
(
"用户名不存在!"
);
}
try
{
if
(!
sysUser
.
getLoginPwd
().
equals
(
SecurityUtil
.
md5DoubleEncoding
(
password
)))
{
throw
new
AppException
(
"登录密码错误!"
);
}
}
catch
(
Exception
e
)
{
throw
new
AppException
(
"密码验认出错!"
,
e
);
}
return
sysUser
;
}
@Override
public
UserEntity
doCheckUser
(
String
loginName
,
String
password
)
throws
AppException
{
UserEntity
sysUser
=
this
.
findByLoginName
(
loginName
);
if
(
sysUser
==
null
||
!
sysUser
.
getLoginName
().
equals
(
loginName
))
{
return
null
;
}
try
{
if
(!
sysUser
.
getLoginPwd
().
equals
(
SecurityUtil
.
md5DoubleEncoding
(
password
)))
{
return
null
;
}
}
catch
(
Exception
e
)
{
return
null
;
}
return
sysUser
;
}
@Override
@Override
public
Set
<
Long
>
findAllAuthIds
(
UserEntity
userEntity
)
throws
AppException
{
public
Set
<
Long
>
findAllAuthIds
(
UserEntity
userEntity
)
throws
AppException
{
...
@@ -207,7 +148,7 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
...
@@ -207,7 +148,7 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
urls
.
addAll
(
StringUtils
.
converStr2Set
(
url
));
urls
.
addAll
(
StringUtils
.
converStr2Set
(
url
));
}
}
}
}
Set
<
Long
>
authIds
=
new
HashSet
<>();
Set
<
Long
>
authIds
=
new
HashSet
<
Long
>();
Map
<
Long
,
MenuEntity
>
menuMap
=
new
HashMap
<
Long
,
MenuEntity
>();
Map
<
Long
,
MenuEntity
>
menuMap
=
new
HashMap
<
Long
,
MenuEntity
>();
List
<
MenuEntity
>
userModuleList
=
this
.
menuService
.
findAllEnable
();
List
<
MenuEntity
>
userModuleList
=
this
.
menuService
.
findAllEnable
();
for
(
MenuEntity
sysModule
:
userModuleList
)
{
for
(
MenuEntity
sysModule
:
userModuleList
)
{
...
@@ -215,7 +156,6 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
...
@@ -215,7 +156,6 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
continue
;
continue
;
}
}
menuMap
.
put
(
sysModule
.
getId
(),
sysModule
);
menuMap
.
put
(
sysModule
.
getId
(),
sysModule
);
if
(!
user
.
isAdmin
()
&&
urls
.
contains
(
StringUtils
.
trim
(
sysModule
.
getUrl
())))
{
if
(!
user
.
isAdmin
()
&&
urls
.
contains
(
StringUtils
.
trim
(
sysModule
.
getUrl
())))
{
authIds
.
add
(
sysModule
.
getId
());
authIds
.
add
(
sysModule
.
getId
());
}
}
...
@@ -250,86 +190,85 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
...
@@ -250,86 +190,85 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
}
}
@Override
@Override
public
Result
<
UserEntity
>
find
(
Long
platformId
,
UserEntity
params
,
int
currPage
,
int
prePageResult
)
throws
AppException
{
public
Rest
<
Void
>
refreshUser
()
{
PageInfo
pageInfo
=
new
PageInfo
(
prePageResult
);
UserPdu
userPdu
=
new
UserPdu
();
pageInfo
.
setCurrPage
(
currPage
);
userPdu
.
setPage
(
1
);
return
super
.
find
(
params
,
pageInfo
,
null
);
userPdu
.
setSize
(-
1
);
}
Rest
<
RespData
<
List
<
UserPdu
>>>
resp
=
userFeign
.
list
(
userPdu
);
if
(
resp
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
List
<
UserPdu
>
userPduList
=
resp
.
getData
().
getData
();
log
.
info
(
"用户总数量:{}"
,
userPduList
.
size
());
if
(!
ObjectUtils
.
isEmpty
(
userPduList
))
{
List
<
UserEntity
>
newUserList
=
userPduList
.
stream
().
map
(
newUser
->
{
UserEntity
userEntity
=
new
UserEntity
();
userEntity
.
initAttrValue
();
BeanUtils
.
copyProperties
(
newUser
,
userEntity
,
new
String
[]{
"id"
,
"lastLoginTime"
,
"lastLoginAddress"
});
return
userEntity
;
}).
collect
(
Collectors
.
toList
());
@Override
List
<
UserEntity
>
saveUpdateUserList
=
newUserList
.
parallelStream
().
map
(
item
->
{
public
UserEntity
createUser
(
IUser
currUser
,
Long
customerId
,
String
customerName
,
String
loginName
,
String
password
,
UserEntity
extCache
=
this
.
getExtCache
(
item
.
getLoginName
());
String
userName
,
String
mobile
)
throws
AppException
{
if
(
ObjectUtils
.
isEmpty
(
extCache
))
{
try
{
item
.
setCreateUserId
(
1L
);
UserEntity
entity
=
new
UserEntity
();
item
.
setCreateUserName
(
"系统管理员"
);
entity
.
initAttrValue
();
item
.
setCreateTime
(
new
Date
());
entity
.
setLoginName
(
loginName
);
return
item
;
entity
.
setRealName
(
userName
);
}
else
{
entity
.
setLoginPwd
(
password
);
//更新用户列表
entity
.
setMobile
(
mobile
);
item
.
setId
(
extCache
.
getId
());
entity
.
setUserType
(
UserType
.
CUSTOMER
.
getValue
());
item
.
setUpdateUserId
(
1L
);
entity
.
setCreateTime
(
new
Date
());
item
.
setUpdateUserName
(
"系统管理员"
);
if
(
currUser
!=
null
)
{
item
.
setUpdateTime
(
new
Date
());
entity
.
setCreateUser
(
currUser
.
getLoginName
());
return
item
;
entity
.
setCreateUserName
(
currUser
.
getRealName
());
}
}
}).
collect
(
Collectors
.
toList
());
this
.
doHandlerUser
(
entity
);
Map
<
Boolean
,
List
<
UserEntity
>>
saveUpdateCollect
=
saveUpdateUserList
.
stream
().
collect
(
Collectors
.
partitioningBy
(
x
->
x
.
getId
()
==
null
));
dao
.
insert
(
entity
);
if
(!
ObjectUtils
.
isEmpty
(
saveUpdateCollect
.
get
(
true
)))
{
return
entity
;
//需要新增的用户
}
catch
(
Exception
e
)
{
log
.
info
(
"需要新增用户数量:{}"
,
saveUpdateCollect
.
get
(
true
).
size
());
log
.
error
(
"给客户创建用户异常-->customerId:"
+
customerId
+
",customerName:"
+
customerName
+
",loginName:"
+
loginName
+
saveUpdateCollect
.
get
(
true
).
stream
().
forEach
(
item
->
{
"-->原因:"
+
e
.
getMessage
());
this
.
getUserDao
().
insert
(
item
);
return
null
;
this
.
putCache
(
item
.
getId
()
==
null
?
""
:
item
.
getId
().
toString
(),
item
);
}
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
}
roleUserQuery
.
setUserId
(
item
.
getId
());
roleUserQuery
.
setRoleIdList
(
Arrays
.
asList
(
1L
));
roleUserService
.
doDistributionRole
(
roleUserQuery
);
});
}
@Override
if
(!
ObjectUtils
.
isEmpty
(
saveUpdateCollect
.
get
(
false
)))
{
public
boolean
existUser
(
String
loginName
,
Long
userId
)
throws
AppException
{
//需要新增的用户
UserEntity
sysUser
=
this
.
findByLoginName
(
loginName
);
log
.
info
(
"需要更新用户数量:{}"
,
saveUpdateCollect
.
get
(
false
).
size
());
boolean
bRet
=
false
;
saveUpdateCollect
.
get
(
false
).
stream
().
forEach
(
item
->
{
if
(
sysUser
!=
null
)
{
this
.
getUserDao
().
update
(
item
);
if
(
userId
==
null
||
userId
==
0
||
userId
.
longValue
()
!=
sysUser
.
getId
().
longValue
())
{
this
.
putCache
(
item
.
getId
()
==
null
?
""
:
item
.
getId
().
toString
(),
item
);
bRet
=
true
;
});
}
//差集删除
Set
<
String
>
collectSet
=
newUserList
.
parallelStream
().
map
(
x
->
x
.
getLoginName
()).
collect
(
Collectors
.
toSet
());
Long
[]
removeUserIds
=
this
.
getCacheList
().
parallelStream
().
filter
(
f
->
!
collectSet
.
contains
(
f
.
getLoginName
())).
map
(
i
->
i
.
getId
()).
distinct
().
toArray
(
Long
[]::
new
);
if
(!
ObjectUtils
.
isEmpty
(
removeUserIds
))
{
log
.
info
(
"需要删除的本地用户数量:{}"
,
removeUserIds
.
length
);
this
.
remove
(
removeUserIds
,
null
);
}
}
}
//查找新增 与更新
}
}
return
bRet
;
return
Rest
.
ok
()
;
}
}
@Override
@Override
public
boolean
updateUserPwd
(
String
loginName
,
String
oldPwd
,
String
newPwd
)
throws
AppException
{
protected
void
removeAfter
(
Long
[]
ids
,
Context
context
,
int
result
)
throws
AppException
{
UserEntity
sysUser
=
this
.
findByLoginName
(
loginName
);
super
.
removeAfter
(
ids
,
context
,
result
);
if
(
sysUser
==
null
||
!
sysUser
.
getLoginName
().
equals
(
loginName
))
{
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
throw
new
AppException
(
"帐号错误!"
);
roleUserQuery
.
setUserIdList
(
Arrays
.
asList
(
ids
));
}
Long
[]
userIds
=
roleUserService
.
find
(
roleUserQuery
).
stream
().
map
(
RoleUserEntity:
:
getId
).
toArray
(
Long
[]::
new
);
try
{
roleUserService
.
remove
(
userIds
,
context
);
if
(!
sysUser
.
getLoginPwd
().
equals
(
SecurityUtil
.
md5DoubleEncoding
(
oldPwd
)))
{
throw
new
AppException
(
"原始密码错误!"
);
}
}
catch
(
Exception
e
)
{
throw
new
AppException
(
"密码验认出错!"
,
e
);
}
try
{
sysUser
.
setLoginPwd
(
SecurityUtil
.
md5DoubleEncoding
(
newPwd
));
}
catch
(
Exception
e
)
{
throw
new
AppException
(
"密码转换异常!"
,
e
);
}
dao
.
update
(
sysUser
);
return
true
;
}
}
@Override
public
UserDao
getUserDao
()
{
return
getDao
();
}
@Override
@Override
protected
void
removeAfter
(
Long
[]
ids
,
Context
context
,
int
result
)
throws
AppException
{
public
UserDao
getUserDao
()
{
Arrays
.
asList
(
ids
).
stream
().
peek
(
userId
->{
return
this
.
getDao
();
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
roleUserQuery
.
setUserId
(
userId
);
Long
[]
userIds
=
roleUserService
.
find
(
roleUserQuery
).
stream
().
map
(
RoleUserEntity:
:
getId
).
toArray
(
Long
[]::
new
);
roleUserService
.
remove
(
userIds
,
context
);
}).
count
();
super
.
removeAfter
(
ids
,
context
,
result
);
}
}
}
}
\ No newline at end of file
smart-office-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java
View file @
b47cacf7
/**
* 文件:UserController.java
* 版本:1.0.0
* 日期:
* Copyright ®
* All right reserved.
*/
package
com.mortals.xhx.base.system.user.web
;
package
com.mortals.xhx.base.system.user.web
;
import
com.
alibaba.fastjson.JSONObject
;
import
com.
mortals.framework.annotation.UnAuth
;
import
com.mortals.framework.common.IBaseEnum
;
import
com.mortals.framework.common.IBaseEnum
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.common.code.UserType
;
import
com.mortals.framework.common.code.UserType
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.framework.web.BaseCRUDJsonMappingController
;
import
com.mortals.xhx.base.system.role.model.RoleEntity
;
import
com.mortals.xhx.base.framework.annotation.Operlog
;
import
com.mortals.xhx.base.system.role.model.RoleQuery
;
import
com.mortals.xhx.base.system.role.model.RoleUserEntity
;
import
com.mortals.xhx.base.system.role.model.RoleUserQuery
;
import
com.mortals.xhx.base.system.role.service.RoleService
;
import
com.mortals.xhx.base.system.role.service.RoleService
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
com.mortals.xhx.common.code.UserStatus
;
import
com.mortals.xhx.common.code.UserStatus
;
import
io.jsonwebtoken.Claims
;
import
io.jsonwebtoken.Jwts
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Base64
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
* 用户信息
* <p>Title: 用户信息</p>
*
* <p>Description: UserController </p>
* @author: zxfei
* <p>Copyright: Copyright ® </p>
* @date: 2022/5/7 15:42
* <p>Company: </p>
* @author
* @version 1.0.0
*/
*/
@RestController
@RestController
@RequestMapping
(
"user"
)
@RequestMapping
(
"user"
)
...
@@ -46,90 +42,28 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic
...
@@ -46,90 +42,28 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic
@Autowired
@Autowired
private
RoleService
roleService
;
private
RoleService
roleService
;
@Autowired
private
RoleUserService
roleUserService
;
public
UserController
()
{
public
UserController
()
{
super
.
setModuleDesc
(
"用户信息"
);
super
.
setModuleDesc
(
"用户信息"
);
}
}
@Override
@Override
protected
void
init
(
Map
<
String
,
Object
>
model
,
Context
context
)
{
protected
void
init
(
Map
<
String
,
Object
>
model
,
Context
context
)
{
this
.
addDict
(
model
,
"userType"
,
IBaseEnum
.
getEnumMap
(
UserType
.
class
));
this
.
addDict
(
model
,
"userType"
,
IBaseEnum
.
getEnumMap
(
UserType
.
class
));
this
.
addDict
(
model
,
"status"
,
UserStatus
.
getEnumMap
());
this
.
addDict
(
model
,
"status"
,
UserStatus
.
getEnumMap
());
this
.
addDict
(
model
,
"roleIds"
,
roleService
.
find
(
new
RoleQuery
()).
stream
().
collect
(
Collectors
.
toMap
(
x
->
x
.
getId
().
toString
(),
y
->
y
.
getName
())));
List
<
RoleEntity
>
roleList
=
roleService
.
find
(
new
RoleEntity
());
this
.
addDict
(
model
,
"roleId"
,
roleList
.
stream
().
collect
(
Collectors
.
toMap
(
e
->
e
.
getId
().
toString
(),
e
->
e
.
getName
())));
}
super
.
init
(
model
,
context
);
@Override
protected
void
doListBefore
(
UserEntity
query
,
Map
<
String
,
Object
>
model
,
Context
context
)
throws
AppException
{
if
(!
StringUtils
.
isEmpty
(
query
.
getRealName
()))
{
query
.
setRealName
(
"%"
.
concat
(
query
.
getRealName
()).
concat
(
"%"
));
}
if
(!
StringUtils
.
isEmpty
(
query
.
getLoginName
()))
{
query
.
setLoginName
(
"%"
.
concat
(
query
.
getLoginName
()).
concat
(
"%"
));
}
}
@Override
protected
int
editAfter
(
Long
id
,
Map
<
String
,
Object
>
model
,
UserEntity
entity
,
Context
context
)
throws
AppException
{
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
roleUserQuery
.
setUserId
(
entity
.
getId
());
String
roleIds
=
roleUserService
.
find
(
roleUserQuery
).
stream
().
map
(
RoleUserEntity:
:
getRoleId
).
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
));
entity
.
setRoleIds
(
roleIds
);
return
super
.
editAfter
(
id
,
model
,
entity
,
context
);
}
}
@Override
protected
int
saveAfter
(
UserEntity
entity
,
Map
<
String
,
Object
>
model
,
Context
context
)
throws
AppException
{
if
(
entity
.
getId
()
==
getCurUser
().
getId
())
{
// TODO: 2022/8/15 更新redis session信息
//saveCurrUserForSession(request, response, userService.get(form.getEntity().getId(), false));
}
return
super
.
saveAfter
(
entity
,
model
,
context
);
}
// @Override
// protected void saveBefore(UserEntity entity, Map<String, Object> model, Context context) throws AppException {
// if (!ObjectUtils.isEmpty(entity.getLoginName()) && service.existUser(entity.getLoginName(), entity.getId())) {
// throw new AppException("登录名已存在!");
// }
// super.saveBefore(entity, model, context);
// }
@RequestMapping
(
value
=
"change/password"
,
method
=
RequestMethod
.
POST
)
@Operlog
(
msg
=
"密码修改成功!"
)
public
String
changePassword
(
@RequestParam
String
oldPwd
,
@RequestParam
String
newPwd
)
{
JSONObject
ret
=
new
JSONObject
();
try
{
service
.
updateUserPwd
(
super
.
getCurUser
().
getLoginName
(),
oldPwd
,
newPwd
);
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
ret
.
put
(
KEY_RESULT_MSG
,
"密码修改成功!"
);
}
catch
(
Exception
e
)
{
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_FAILURE
);
ret
.
put
(
KEY_RESULT_MSG
,
super
.
convertException
(
e
));
}
return
ret
.
toJSONString
();
}
public
static
void
main
(
String
[]
args
)
{
String
token
=
"eyJhbGciOiJIUzI1NiJ9.eyJsb2dpbl91c2VyX2tleSI6IjIzNGE5NDA5ZDVhOTQ3MWNhMzdkYjZkYmMwY2JjZTc5In0.MWyQW40HYDxyUz7PJRf_nRsFPWx3Hr811Ime984nixs"
;
String
secret
=
"026db82420614469897fcc2dc1b4ce38"
;
Claims
claims
=
Jwts
.
parser
()
.
setSigningKey
(
Base64
.
getEncoder
().
encodeToString
(
secret
.
getBytes
()))
.
parseClaimsJws
(
token
)
.
getBody
();
String
uuid
=
(
String
)
claims
.
get
(
"login_user_key"
);
System
.
out
.
println
(
uuid
);
@PostMapping
({
"refreshUser"
})
@UnAuth
public
Rest
<
Object
>
refreshUser
()
{
log
.
info
(
"刷新用户"
);
this
.
service
.
refreshUser
();
return
Rest
.
ok
(
"用户同步刷新操作成功"
);
}
}
}
}
\ No newline at end of file
smart-office-manager/src/main/java/com/mortals/xhx/common/key/RedisKey.java
View file @
b47cacf7
...
@@ -23,4 +23,6 @@ public class RedisKey {
...
@@ -23,4 +23,6 @@ public class RedisKey {
public
static
final
String
KEY_PRODUCT_CACHE
=
"productDict"
;
public
static
final
String
KEY_PRODUCT_CACHE
=
"productDict"
;
public
static
final
String
KEY_TOKEN_API_CACHE
=
"token:api:"
;
public
static
final
String
KEY_TOKEN_API_CACHE
=
"token:api:"
;
public
static
final
String
KEY_USER_MENU_CACHE
=
"user:menu"
;
}
}
smart-office-manager/src/main/java/com/mortals/xhx/common/utils/MenuEncodeUtil.java
0 → 100644
View file @
b47cacf7
package
com.mortals.xhx.common.utils
;
import
com.mortals.framework.ap.GlobalSysInfo
;
import
com.mortals.framework.ap.SysConstains
;
import
com.mortals.framework.util.AESUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.Set
;
@Slf4j
public
class
MenuEncodeUtil
{
public
static
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
;
}
}
}
smart-office-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
View file @
b47cacf7
...
@@ -37,7 +37,8 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
...
@@ -37,7 +37,8 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
@Override
@Override
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
log
.
info
(
"同步用户任务"
);
log
.
info
(
"同步用户任务"
);
UserPdu
userPdu
=
new
UserPdu
();
userService
.
refreshUser
();
/* UserPdu userPdu = new UserPdu();
userPdu.setPage(1);
userPdu.setPage(1);
userPdu.setSize(-1);
userPdu.setSize(-1);
Rest<RespData<List<UserPdu>>> resp = userFeign.list(userPdu);
Rest<RespData<List<UserPdu>>> resp = userFeign.list(userPdu);
...
@@ -60,7 +61,7 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
...
@@ -60,7 +61,7 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
userService.getUserDao().update(userEntity);
userService.getUserDao().update(userEntity);
}
}
});
});
}
}
*/
}
}
...
...
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