Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
W
work_service
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
licc
work_service
Commits
bd2f4e10
Commit
bd2f4e10
authored
Apr 01, 2021
by
nie'hong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完善工时统计
parent
ae809111
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
101 additions
and
4 deletions
+101
-4
BASE_RESP_CODE_ENUM.java
...wisenergy/common/utils/exception/BASE_RESP_CODE_ENUM.java
+1
-0
WorkUserService.java
...e/src/main/java/cn/wisenergy/service/WorkUserService.java
+3
-1
WorkUserServiceImpl.java
...n/java/cn/wisenergy/service/impl/WorkUserServiceImpl.java
+34
-1
WorkUserController.java
...isenergy/web/admin/controller/app/WorkUserController.java
+4
-2
LoginFilter.java
...ain/java/cn/wisenergy/web/config/hanlder/LoginFilter.java
+59
-0
No files found.
wisenergy-common/src/main/java/cn/wisenergy/common/utils/exception/BASE_RESP_CODE_ENUM.java
View file @
bd2f4e10
...
...
@@ -16,6 +16,7 @@ public enum BASE_RESP_CODE_ENUM {
MEDIA_TYPE_NOT_ACCEPT
(
"406"
,
"无法接受请求中的媒体类型"
),
REQUEST_TIME_OUT
(
"408"
,
"无法接受请求中的媒体类型"
),
MEDIA_TYPE_NOT_SUPPORTED
(
"415"
,
"不支持的媒体类型"
),
PLEASE_RE_LOGIN
(
"444"
,
"未登录或已下线,请重新登录"
),
SERVER_ERROR
(
"500"
,
"获取数据异常"
),
INPUT_PARAM_IS_NULL
(
"600"
,
"入参为空"
),
WORK_ORDER_INFO_IS_NULL
(
"601"
,
"工单信息为空"
),
...
...
wisenergy-service/src/main/java/cn/wisenergy/service/WorkUserService.java
View file @
bd2f4e10
...
...
@@ -7,6 +7,7 @@ import cn.wisenergy.model.dto.OrganizationStructureDto;
import
cn.wisenergy.model.dto.ResultUser
;
import
cn.wisenergy.model.vo.GetUserListVo
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -26,9 +27,10 @@ public interface WorkUserService {
* @param loginName 登录名
* @param password 密码
* @param source 登录来源
* @param request
* @return
*/
ResultUser
login
(
String
loginName
,
String
password
,
String
source
);
ResultUser
login
(
String
loginName
,
String
password
,
String
source
,
HttpServletRequest
request
);
/**
* 获取用户基础信息
...
...
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkUserServiceImpl.java
View file @
bd2f4e10
...
...
@@ -29,6 +29,9 @@ import org.springframework.transaction.annotation.Transactional;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
javax.servlet.ServletContext
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
import
java.util.*
;
/**
...
...
@@ -322,7 +325,7 @@ public class WorkUserServiceImpl implements WorkUserService {
}
@Override
public
ResultUser
login
(
String
loginName
,
String
password
,
String
source
)
{
public
ResultUser
login
(
String
loginName
,
String
password
,
String
source
,
HttpServletRequest
request
)
{
log
.
info
(
"WorkUserServiceImpl[]login[].input.param"
+
loginName
+
password
+
source
);
if
(
StringUtils
.
isEmpty
(
loginName
)
||
StringUtils
.
isEmpty
(
password
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
...
...
@@ -348,6 +351,36 @@ public class WorkUserServiceImpl implements WorkUserService {
if
(
roles
.
contains
(
ManagerEnum
.
NOT_MANAGER
.
getCode
()))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN
);
}
// 限制单设备登录
HttpSession
session
=
request
.
getSession
();
ServletContext
application
=
session
.
getServletContext
();
// 获取存储登录
Map
<
String
,
String
>
loginMap
=
(
Map
<
String
,
String
>)
application
.
getAttribute
(
"loginMap"
);
Map
<
String
,
HttpSession
>
sessionMap
=
(
Map
<
String
,
HttpSession
>)
application
.
getAttribute
(
"sessionMap"
);
String
id
=
String
.
valueOf
(
user
.
getId
());
if
(
loginMap
==
null
)
{
loginMap
=
new
HashMap
<>();
sessionMap
=
new
HashMap
<>();
}
if
(
loginMap
.
get
(
id
)
==
null
)
{
loginMap
.
put
(
id
,
session
.
getId
());
System
.
out
.
println
(
"session.getId() = "
+
session
.
getId
());
sessionMap
.
put
(
session
.
getId
(),
session
);
System
.
out
.
println
(
"session = "
+
session
);
}
else
{
String
sessionId
=
loginMap
.
get
(
id
);
//根据id获取上一个用户的sessionId
HttpSession
oldSession
=
sessionMap
.
get
(
sessionId
);
//根据sessionId获取上一个用户的session
oldSession
.
invalidate
();
sessionMap
.
remove
(
oldSession
.
getId
());
//根据sessionId删除旧session
sessionMap
.
put
(
session
.
getId
(),
session
);
loginMap
.
remove
(
id
);
//移除id和oldSession对应关系
loginMap
.
put
(
id
,
session
.
getId
());
//添加新的id和oldSession对应关系
}
application
.
setAttribute
(
"loginMap"
,
loginMap
);
// 添加两个HashMap到Application,重要
application
.
setAttribute
(
"sessionMap"
,
sessionMap
);
}
// 限制审核的天数
WorkSubmitAdopt
byId
=
workSubmitAdoptService
.
getById
(
1
);
...
...
wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/WorkUserController.java
View file @
bd2f4e10
...
...
@@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
/**
* @description:
* @author: nh
...
...
@@ -48,12 +50,12 @@ public class WorkUserController extends BaseController {
@ApiImplicitParam
(
name
=
"source"
,
value
=
"登录来源:PC/WAP"
,
dataType
=
"string"
,
required
=
true
)
})
@GetMapping
(
value
=
"/login"
)
public
Result
<
ResultUser
>
login
(
String
loginName
,
String
password
,
String
source
)
{
public
Result
<
ResultUser
>
login
(
String
loginName
,
String
password
,
String
source
,
HttpServletRequest
request
)
{
log
.
info
(
"WorkUserController[]login[]input.param"
+
loginName
+
password
+
source
);
if
(
StringUtils
.
isEmpty
(
loginName
)
||
StringUtils
.
isEmpty
(
password
)
||
StringUtils
.
isEmpty
(
source
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
ResultUser
resultUser
=
workUserService
.
login
(
loginName
,
password
,
source
);
ResultUser
resultUser
=
workUserService
.
login
(
loginName
,
password
,
source
,
request
);
return
getResult
(
resultUser
);
}
...
...
wisenergy-web-admin/src/main/java/cn/wisenergy/web/config/hanlder/LoginFilter.java
0 → 100644
View file @
bd2f4e10
package
cn
.
wisenergy
.
web
.
config
.
hanlder
;
import
cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM
;
import
cn.wisenergy.common.utils.exception.BaseCustomException
;
import
org.springframework.stereotype.Component
;
import
javax.servlet.*
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
import
java.io.IOException
;
import
java.util.Arrays
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Map
;
/**
* @description:
* @author: nh
* @create: 2021-04-01 10:44
**/
@Component
public
class
LoginFilter
implements
Filter
{
private
final
static
List
<
String
>
URI_LIST
=
Arrays
.
asList
(
"/login"
,
"/webjars"
,
"/swagger-resources"
,
"/null"
,
"/v2"
,
"/swagger-ui.html"
);
@Override
public
void
init
(
FilterConfig
filterConfig
)
throws
ServletException
{
}
@Override
public
void
doFilter
(
ServletRequest
request
,
ServletResponse
response
,
FilterChain
chain
)
throws
IOException
,
ServletException
{
HttpServletRequest
httpServletRequest
=
(
HttpServletRequest
)
request
;
HttpSession
session
=
httpServletRequest
.
getSession
();
ServletContext
application
=
session
.
getServletContext
();
Map
<
String
,
String
>
loginMap
=
(
Map
<
String
,
String
>)
application
.
getAttribute
(
"loginMap"
);
// 请求接口不为登录再过滤
String
requestURI
=
((
HttpServletRequest
)
request
).
getRequestURI
();
for
(
String
s
:
URI_LIST
)
{
if
(
requestURI
.
startsWith
(
s
))
{
chain
.
doFilter
(
request
,
response
);
return
;
}
}
if
(
loginMap
==
null
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
PLEASE_RE_LOGIN
);
}
Collection
<
String
>
values
=
loginMap
.
values
();
if
(!
values
.
contains
(
session
.
getId
()))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
PLEASE_RE_LOGIN
);
}
}
@Override
public
void
destroy
()
{
}
}
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