Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
sv-springboot
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bsoft
sv-springboot
Commits
b54b928f
Commit
b54b928f
authored
Mar 19, 2021
by
宋振民
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:审计日志新增登录时长
parent
26426cd4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
174 additions
and
30 deletions
+174
-30
doc/sql/20210319/audit_log.sql
+12
-0
hs-admin/pom.xml
+6
-0
hs-admin/src/main/java/com/hs/admin/common/utils/DateUtils.java
+0
-0
hs-admin/src/main/java/com/hs/admin/model/AuditLog.java
+13
-0
hs-admin/src/main/java/com/hs/admin/service/impl/AuditLogServiceImpl.java
+53
-4
hs-admin/src/main/resources/application-test.properties
+3
-2
hs-admin/src/main/resources/mapper/AuditLogMapper.xml
+3
-0
hs-admin/src/test/java/com/hs/admin/AuditLogServiceTest.java
+0
-8
hs-api/src/main/java/com/hs/api/common/aspect/AuditAspect.java
+23
-6
hs-api/src/main/java/com/hs/api/common/enums/AuditLogType.java
+2
-1
hs-api/src/main/java/com/hs/api/controller/BlockValuesController.java
+5
-0
hs-api/src/main/java/com/hs/api/controller/DeptController.java
+3
-0
hs-api/src/main/java/com/hs/api/controller/DimController.java
+3
-0
hs-api/src/main/java/com/hs/api/controller/DoctorController.java
+3
-0
hs-api/src/main/java/com/hs/api/controller/ExcelController.java
+3
-0
hs-api/src/main/java/com/hs/api/controller/IndController.java
+3
-0
hs-api/src/main/java/com/hs/api/controller/SerDiseaseController.java
+4
-0
hs-api/src/main/java/com/hs/api/controller/SerDiseaseDocController.java
+3
-0
hs-api/src/main/java/com/hs/api/controller/SerProjValueController.java
+6
-0
hs-api/src/main/java/com/hs/api/controller/SysConfigController.java
+3
-0
hs-api/src/main/java/com/hs/api/controller/UserController.java
+5
-0
hs-api/src/main/java/com/hs/api/model/AuditLog.java
+9
-0
hs-api/src/main/java/com/hs/api/service/Impl/LoginServiceImpl.java
+1
-0
hs-api/src/main/resources/application-test.properties
+4
-4
hs-api/src/main/resources/mapper/AuditLogMapper.xml
+3
-2
suvalue-boot-demo/suvalue-boot-demo-atomicinteger/suvalue-boot-demo-atomicinteger.iml
+1
-3
No files found.
doc/sql/20210319/audit_log.sql
0 → 100644
View file @
b54b928f
ALTER
TABLE
`audit_log`
MODIFY
COLUMN
`USER_ID`
int
(
11
)
NOT
NULL
COMMENT
'用户ID'
AFTER
`STATE`
,
MODIFY
COLUMN
`IP`
varchar
(
100
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
COMMENT
'用户IP'
AFTER
`USER_ID`
,
MODIFY
COLUMN
`MODULE_CODE`
int
(
11
)
NULL
DEFAULT
NULL
COMMENT
'模块编码'
AFTER
`IP`
,
MODIFY
COLUMN
`OPERATE_TYPE`
varchar
(
50
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
COMMENT
'操作类型'
AFTER
`MODULE_CODE`
,
MODIFY
COLUMN
`DESCRIBE`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL
COMMENT
'描述'
AFTER
`OPERATE_TYPE`
,
ADD
COLUMN
`TOKEN`
varchar
(
255
)
NULL
COMMENT
'TOKEN'
AFTER
`DESCRIBE`
;
ALTER
TABLE
`audit_log`
ADD
COLUMN
`URL`
varchar
(
255
)
NULL
COMMENT
'访问url'
AFTER
`TOKEN`
,
ADD
COLUMN
`PARAMS`
text
NULL
COMMENT
'参数'
AFTER
`URL`
;
\ No newline at end of file
hs-admin/pom.xml
View file @
b54b928f
...
...
@@ -82,6 +82,12 @@
<artifactId>
pagehelper-spring-boot-starter
</artifactId>
<version>
1.2.5
</version>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
<version>
3.8.1
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
<build>
...
...
hs-admin/src/main/java/com/hs/admin/common/utils/DateUtils.java
0 → 100644
View file @
b54b928f
This diff is collapsed.
Click to expand it.
hs-admin/src/main/java/com/hs/admin/model/AuditLog.java
View file @
b54b928f
...
...
@@ -35,4 +35,17 @@ public class AuditLog {
@Setter
private
String
describe
;
@Setter
private
String
token
;
@Setter
private
String
url
;
@Setter
private
String
params
;
@Setter
private
String
onlineTime
;
}
hs-admin/src/main/java/com/hs/admin/service/impl/AuditLogServiceImpl.java
View file @
b54b928f
...
...
@@ -4,18 +4,22 @@ import com.github.pagehelper.PageHelper;
import
com.github.pagehelper.PageInfo
;
import
com.hs.admin.common.base.PageRequest
;
import
com.hs.admin.common.base.PageResult
;
import
com.hs.admin.common.utils.
AESUtil
;
import
com.hs.admin.common.utils.
DateUtils
;
import
com.hs.admin.common.utils.PageUtil
;
import
com.hs.admin.mapper.AuditLogMapper
;
import
com.hs.admin.model.AuditLog
;
import
com.hs.admin.model.reqmodel.AuditLogReq
;
import
com.hs.admin.model.respmodel.SysUserList
;
import
com.hs.admin.service.AuditLogService
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.atomic.AtomicReference
;
import
static
java
.
util
.
stream
.
Collectors
.
groupingBy
;
@Service
public
class
AuditLogServiceImpl
implements
AuditLogService
{
...
...
@@ -35,7 +39,52 @@ public class AuditLogServiceImpl implements AuditLogService {
PageHelper
.
startPage
(
page
.
getPageNum
(),
page
.
getPageSize
());
List
<
AuditLog
>
allAuditLogs
=
auditLogMapper
.
getAllAuditLogs
();
PageResult
pageResult
=
PageUtil
.
getPageResult
(
page
,
new
PageInfo
<
AuditLog
>(
allAuditLogs
));
getOnlineTime
(
pageResult
.
getContent
());
return
pageResult
;
}
private
void
getOnlineTime
(
List
<
AuditLog
>
auditLogs
)
{
Map
<
String
,
String
>
onlineTimeMap
=
new
HashMap
<>();
Map
<
String
,
List
<
AuditLog
>>
map
=
auditLogs
.
stream
()
.
collect
(
groupingBy
(
AuditLog:
:
getToken
));
for
(
String
token
:
map
.
keySet
())
{
List
<
AuditLog
>
auditLogList
=
map
.
get
(
token
);
Date
loginTime
=
null
;
Date
logoutTime
=
null
;
Date
lastRefreshTIme
=
null
;
System
.
out
.
println
(
"token="
+
token
);
for
(
AuditLog
auditLog:
auditLogList
)
{
Date
createDate
=
auditLog
.
getCreateDate
();
if
(
auditLog
.
getOperateType
().
equals
(
"login"
))
{
loginTime
=
createDate
;
}
else
if
(
auditLog
.
getOperateType
().
equals
(
"logout"
))
{
logoutTime
=
createDate
;
}
else
if
(
auditLog
.
getOperateType
().
equals
(
"refresh"
))
{
if
(
lastRefreshTIme
==
null
||
createDate
.
getTime
()>
lastRefreshTIme
.
getTime
())
{
lastRefreshTIme
=
createDate
;
}
}
}
//有登录、退出时间的
if
(
loginTime
!=
null
&&
logoutTime
!=
null
)
{
String
dateMinus
=
DateUtils
.
dateDiff
(
loginTime
,
logoutTime
);
System
.
out
.
println
(
"时间差为:"
+
dateMinus
);
onlineTimeMap
.
put
(
token
,
dateMinus
);
}
else
if
(
loginTime
!=
null
&&
logoutTime
==
null
&&
lastRefreshTIme
!=
null
)
{
String
dateMinus
=
DateUtils
.
dateDiff
(
loginTime
,
lastRefreshTIme
);
System
.
out
.
println
(
"时间差为:"
+
dateMinus
);
onlineTimeMap
.
put
(
token
,
dateMinus
);
}
else
{
onlineTimeMap
.
put
(
token
,
"0分钟"
);
}
}
System
.
out
.
println
(
onlineTimeMap
);
for
(
AuditLog
auditLog:
auditLogs
)
{
auditLog
.
setOnlineTime
(
onlineTimeMap
.
get
(
auditLog
.
getToken
()));
}
}
}
hs-admin/src/main/resources/application-test.properties
View file @
b54b928f
#### \u6D4B\u8BD5\u73AF\u5883 ###################################################
spring.datasource.url
=
jdbc:mysql://192.168.18.176:3306/scml_sy2.
0
?useUnicode=true&characterEncoding=utf8&useSSL=false&autoReconnect=true&rewriteBatchedStatements=TRUE&serverTimezone=UTC
spring.datasource.url
=
jdbc:mysql://192.168.18.176:3306/scml_sy2.
1_org
?useUnicode=true&characterEncoding=utf8&useSSL=false&autoReconnect=true&rewriteBatchedStatements=TRUE&serverTimezone=UTC
spring.datasource.username
=
root
spring.datasource.password
=
Suvalue2016
spring.datasource.driver-class-name
=
com.mysql.jdbc.Driver
spring.datasource.druid.initial-size
=
1
# Redis\u6570\u636E\u5E93\u7D22\u5F15\uFF08\u9ED8\u8BA40\uFF09
spring.redis.database
=
0
spring.redis.database
=
1
spring.redis.host
=
192.168.18.166
spring.redis.port
=
6379
spring.redis.password
=
ll123456
...
...
hs-admin/src/main/resources/mapper/AuditLogMapper.xml
View file @
b54b928f
...
...
@@ -11,6 +11,9 @@
<result
column=
"MODULE_CODE"
jdbcType=
"INTEGER"
property=
"moduleCode"
/>
<result
column=
"OPERATE_TYPE"
jdbcType=
"VARCHAR"
property=
"operateType"
/>
<result
column=
"DESCRIBE"
jdbcType=
"VARCHAR"
property=
"describe"
/>
<result
column=
"TOKEN"
jdbcType=
"VARCHAR"
property=
"token"
/>
<result
column=
"URL"
jdbcType=
"VARCHAR"
property=
"url"
/>
<result
column=
"PARAMS"
jdbcType=
"VARCHAR"
property=
"params"
/>
</resultMap>
<insert
id=
"insert"
parameterType=
"com.hs.admin.model.AuditLog"
>
<selectKey
keyProperty=
"id"
order=
"AFTER"
resultType=
"java.lang.Long"
>
...
...
hs-admin/src/test/java/com/hs/admin/AuditLogServiceTest.java
View file @
b54b928f
package
com
.
hs
.
admin
;
import
com.hs.admin.model.AuditLog
;
import
com.hs.admin.model.reqmodel.UpdateUserReq
;
import
com.hs.admin.model.respmodel.SysUserList
;
import
com.hs.admin.service.AuditLogService
;
import
com.hs.admin.service.LoginService
;
import
com.hs.admin.service.UserService
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
java.util.ArrayList
;
import
java.util.List
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
classes
=
HsAdminApplicationTests
.
class
)
public
class
AuditLogServiceTest
{
...
...
hs-api/src/main/java/com/hs/api/common/aspect/AuditAspect.java
View file @
b54b928f
...
...
@@ -9,6 +9,7 @@ import com.hs.api.model.respmodel.LoginInfo;
import
com.hs.api.service.AuditLogService
;
import
com.hs.api.service.UserService
;
import
com.hs.common.utils.HttpUtil
;
import
com.hs.common.utils.RedisUtil
;
import
org.aspectj.lang.JoinPoint
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.*
;
...
...
@@ -20,7 +21,9 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.lang.reflect.Method
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
@Aspect
@Component
...
...
@@ -60,12 +63,6 @@ public class AuditAspect {
@AfterReturning
(
pointcut
=
"audit()"
,
returning
=
"rc"
)
public
void
afterReturning
(
JoinPoint
joinPoint
,
Result
rc
)
{
if
(
rc
.
getCode
()
==
Result
.
ErrorCode
.
SUCCESS
.
getCode
())
{
LoginInfo
loginInfo
=
(
LoginInfo
)
rc
.
getData
();
SysUser
user
=
loginInfo
.
getUser
();
if
(
user
==
null
)
return
;
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
String
ip
=
HttpUtil
.
getIP
(
request
);
MethodSignature
ms
=
(
MethodSignature
)
joinPoint
.
getSignature
();
Method
method
=
ms
.
getMethod
();
Audit
audit
=
method
.
getAnnotation
(
Audit
.
class
);
...
...
@@ -73,6 +70,23 @@ public class AuditAspect {
int
moduleCode
=
auditType
.
getModuleCode
();
String
operateType
=
auditType
.
getOperateType
();
String
describe
=
auditType
.
getDescribe
();
SysUser
user
=
new
SysUser
();
String
token
=
new
String
();
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
String
ip
=
HttpUtil
.
getIP
(
request
);
String
uri
=
request
.
getRequestURI
();
Object
[]
params
=
joinPoint
.
getArgs
();
List
<
Object
>
paramsList
=
Arrays
.
asList
(
params
);
if
(
operateType
.
equals
(
AuditLogType
.
REFRESH
.
getOperateType
()))
{
token
=
request
.
getHeader
(
"Authorization"
);
user
=
(
SysUser
)
RedisUtil
.
get
(
token
);
}
else
{
LoginInfo
loginInfo
=
(
LoginInfo
)
rc
.
getData
();
user
=
loginInfo
.
getUser
();
token
=
loginInfo
.
getToken
();
}
auditLog
.
setCreateDate
(
new
Date
());
auditLog
.
setState
(
true
);
...
...
@@ -81,6 +95,9 @@ public class AuditAspect {
auditLog
.
setModuleCode
(
moduleCode
);
auditLog
.
setOperateType
(
operateType
);
auditLog
.
setDescribe
(
describe
);
auditLog
.
setToken
(
token
);
auditLog
.
setUrl
(
uri
);
auditLog
.
setParams
(
paramsList
.
toString
());
auditLogService
.
add
(
auditLog
);
}
}
...
...
hs-api/src/main/java/com/hs/api/common/enums/AuditLogType.java
View file @
b54b928f
...
...
@@ -2,7 +2,8 @@ package com.hs.api.common.enums;
public
enum
AuditLogType
{
LOGIN
(
1
,
"login"
,
"用户登录"
),
LOGOUT
(
2
,
"logout"
,
"用户注销"
);
LOGOUT
(
2
,
"logout"
,
"用户注销"
),
REFRESH
(
1
,
"refresh"
,
"页面刷新"
);
private
int
moduleCode
;
private
String
operateType
;
...
...
hs-api/src/main/java/com/hs/api/controller/BlockValuesController.java
View file @
b54b928f
package
com
.
hs
.
api
.
controller
;
import
com.hs.api.common.Result
;
import
com.hs.api.common.annotations.Audit
;
import
com.hs.api.common.annotations.CurrentUser
;
import
com.hs.api.common.annotations.Token
;
import
com.hs.api.common.enums.AuditLogType
;
import
com.hs.api.model.reqmodel.BlockValues
;
import
com.hs.api.model.reqmodel.BlockValuesNew
;
import
com.hs.api.model.respmodel.BlockValue
;
...
...
@@ -36,6 +38,7 @@ public class BlockValuesController {
@ApiIgnore
// @PostMapping("blockValues")
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"根据Page查询板块数值"
)
public
Object
getBlockValuesByPageID
(
@RequestBody
BlockValues
blockValues
)
throws
InterruptedException
{
...
...
@@ -52,6 +55,7 @@ public class BlockValuesController {
*/
@PostMapping
(
"blockValuesNew"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"根据Page查询板块数值"
)
public
Object
getBlockValuesByPageIDNew
(
@ApiIgnore
@CurrentUser
Long
userId
,
@RequestBody
BlockValuesNew
blockValues
)
throws
InterruptedException
{
...
...
@@ -67,6 +71,7 @@ public class BlockValuesController {
*/
@PostMapping
(
"customBlockValues"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"根据Page获取报表标题信息"
)
public
Object
getCustomBlockValuesByPageCode
(
@ApiIgnore
@CurrentUser
Long
userId
,
@RequestBody
BlockValuesNew
blockValues
)
throws
InterruptedException
{
Map
<
String
,
List
>
titleMap
=
blockValuesService
.
getCustomBlockValuesByPageCode
(
userId
,
blockValues
.
getPageCode
(),
blockValues
.
getDim
());
...
...
hs-api/src/main/java/com/hs/api/controller/DeptController.java
View file @
b54b928f
package
com
.
hs
.
api
.
controller
;
import
com.hs.api.common.Result
;
import
com.hs.api.common.annotations.Audit
;
import
com.hs.api.common.annotations.CurrentUser
;
import
com.hs.api.common.annotations.Token
;
import
com.hs.api.common.enums.AuditLogType
;
import
com.hs.api.model.SerDepartment
;
import
com.hs.api.model.reqmodel.Disease
;
import
com.hs.api.service.SysUserOrgRsService
;
...
...
@@ -29,6 +31,7 @@ public class DeptController {
*/
@PostMapping
(
"/dept/list"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"查询科室列表"
)
public
Object
getList
(
@ApiIgnore
@CurrentUser
Long
userId
,
@RequestBody
Disease
.
DiseaseIDorLevel
disease
)
{
List
<
SerDepartment
>
sysMenuList
=
sysUserOrgRsService
.
getUserOrg
(
userId
,
disease
.
getDisease
(),
disease
.
getDate
());
...
...
hs-api/src/main/java/com/hs/api/controller/DimController.java
View file @
b54b928f
package
com
.
hs
.
api
.
controller
;
import
com.hs.api.common.Result
;
import
com.hs.api.common.annotations.Audit
;
import
com.hs.api.common.annotations.Token
;
import
com.hs.api.common.enums.AuditLogType
;
import
com.hs.api.model.reqmodel.ReqDimValue
;
import
com.hs.api.model.respmodel.DimValue
;
import
com.hs.api.service.DicDimService
;
...
...
@@ -29,6 +31,7 @@ public class DimController {
*/
@PostMapping
(
"dimValue"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"根据pageCode查询维度数值"
)
public
Object
getdimValueByPageCode
(
@RequestBody
@Valid
ReqDimValue
reqDimValue
)
{
List
<
DimValue
>
dimValueList
=
dicDimService
.
getByPageCode
(
reqDimValue
.
getPageCode
(),
reqDimValue
.
getOrgId
(),
reqDimValue
.
getDate
());
...
...
hs-api/src/main/java/com/hs/api/controller/DoctorController.java
View file @
b54b928f
package
com
.
hs
.
api
.
controller
;
import
com.hs.api.common.Result
;
import
com.hs.api.common.annotations.Audit
;
import
com.hs.api.common.annotations.Token
;
import
com.hs.api.common.enums.AuditLogType
;
import
com.hs.api.model.SerDoctor
;
import
com.hs.api.model.reqmodel.Doctor
;
import
com.hs.api.service.SerDoctorService
;
...
...
@@ -27,6 +29,7 @@ public class DoctorController {
*/
@PostMapping
(
"/doctor/list"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"根据科室查询医生列表"
)
public
Object
getList
(
@RequestBody
Doctor
doctor
)
throws
InterruptedException
{
List
<
SerDoctor
>
list
=
serDoctorService
.
getDoctor
(
doctor
.
getDept
());
...
...
hs-api/src/main/java/com/hs/api/controller/ExcelController.java
View file @
b54b928f
package
com
.
hs
.
api
.
controller
;
import
com.hs.api.common.Result
;
import
com.hs.api.common.annotations.Audit
;
import
com.hs.api.common.annotations.Token
;
import
com.hs.api.common.enums.AuditLogType
;
import
com.hs.api.common.handlers.GlobalExceptionHandler
;
import
com.hs.api.model.reqmodel.ExportReq
;
import
com.hs.api.service.ExcelService
;
...
...
@@ -27,6 +29,7 @@ public class ExcelController {
@PostMapping
(
"export"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"将Table转换为Xls"
)
public
Object
tableToXls
(
HttpServletRequest
request
,
@RequestBody
ExportReq
info
)
{
String
tableStr
=
StringEscapeUtils
.
unescapeHtml4
(
info
.
getTableStr
());
...
...
hs-api/src/main/java/com/hs/api/controller/IndController.java
View file @
b54b928f
package
com
.
hs
.
api
.
controller
;
import
com.hs.api.common.Result
;
import
com.hs.api.common.annotations.Audit
;
import
com.hs.api.common.enums.AuditLogType
;
import
com.hs.api.model.DicIndInfo
;
import
com.hs.api.service.DicIndService
;
import
io.swagger.annotations.Api
;
...
...
@@ -39,6 +41,7 @@ public class IndController {
// }
@GetMapping
(
"ind/find"
)
@Audit
(
type
=
AuditLogType
.
REFRESH
)
public
Object
find
(
Integer
pageCode
,
String
filter
)
{
List
<
DicIndInfo
>
list
=
dicIndService
.
selectAll
(
pageCode
,
filter
);
return
Result
.
success
(
list
);
...
...
hs-api/src/main/java/com/hs/api/controller/SerDiseaseController.java
View file @
b54b928f
package
com
.
hs
.
api
.
controller
;
import
com.hs.api.common.Result
;
import
com.hs.api.common.annotations.Audit
;
import
com.hs.api.common.annotations.CurrentUser
;
import
com.hs.api.common.annotations.Token
;
import
com.hs.api.common.enums.AuditLogType
;
import
com.hs.api.model.reqmodel.Disease
;
import
com.hs.api.model.respmodel.DiseaseLevel
;
import
com.hs.api.model.respmodel.DiseaseName
;
...
...
@@ -33,6 +35,7 @@ public class SerDiseaseController {
*/
@PostMapping
(
"disease/list"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"根据疾病编码或者疾病等级查询疾病列表"
)
public
Object
getDiseaseByLevel
(
@ApiIgnore
@CurrentUser
Long
userId
,
@RequestBody
Disease
.
DiseaseIDorLevel
disease
)
throws
InterruptedException
{
List
<
DiseaseLevel
>
diseaseLevel
=
serDiseaseService
.
selectListByIdorLevel
(
disease
.
getDate
(),
disease
.
getDisease
(),
...
...
@@ -42,6 +45,7 @@ public class SerDiseaseController {
@PostMapping
(
"disease/name"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"根据疾病名称查询疾病信息"
)
public
Object
getDiseaseByMdcName
(
@ApiIgnore
@CurrentUser
Long
userId
,
@RequestBody
Disease
.
DiseaseName
disease
)
throws
InterruptedException
{
List
<
DiseaseName
>
list
=
serDiseaseService
.
selectByMdcName
(
userId
,
disease
.
getDate
(),
disease
.
getMdcName
(),
disease
.
getDoctor
(),
disease
.
getDept
(),
disease
.
getMedicalRecord
());
...
...
hs-api/src/main/java/com/hs/api/controller/SerDiseaseDocController.java
View file @
b54b928f
package
com
.
hs
.
api
.
controller
;
import
com.hs.api.common.Result
;
import
com.hs.api.common.annotations.Audit
;
import
com.hs.api.common.annotations.Token
;
import
com.hs.api.common.enums.AuditLogType
;
import
com.hs.api.model.SerDiseaseDocRs
;
import
com.hs.api.model.reqmodel.DiseaseDoc
;
import
com.hs.api.service.SerDiseaseDocService
;
...
...
@@ -23,6 +25,7 @@ public class SerDiseaseDocController {
@PostMapping
(
"diseaseDoc"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"根据Code查询疾病关系信息"
)
public
Object
getDiseaseDoc
(
@RequestBody
DiseaseDoc
disease
)
throws
InterruptedException
{
List
<
SerDiseaseDocRs
>
list
=
serDiseaseDocService
.
getDiseaseDoc
(
disease
.
getDocCode
(),
disease
.
getMdcCode
(),
...
...
hs-api/src/main/java/com/hs/api/controller/SerProjValueController.java
View file @
b54b928f
package
com
.
hs
.
api
.
controller
;
import
com.hs.api.common.Result
;
import
com.hs.api.common.annotations.Audit
;
import
com.hs.api.common.annotations.CurrentUser
;
import
com.hs.api.common.annotations.Token
;
import
com.hs.api.common.enums.AuditLogType
;
import
com.hs.api.model.reqmodel.AddBudgetValue
;
import
com.hs.api.model.reqmodel.QueryBudgetValue
;
import
com.hs.api.model.reqmodel.QuerySummary
;
...
...
@@ -25,6 +27,7 @@ public class SerProjValueController {
@PostMapping
(
"budget/value"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"查询预算编制数据"
)
public
Object
getProjValue
(
@ApiIgnore
@CurrentUser
Long
userId
,
@RequestBody
QueryBudgetValue
request
)
throws
Throwable
{
Object
result
=
projValueService
.
getValue
(
request
.
getProjectType
(),
request
.
getDate
(),
request
.
getDeptCode
(),
userId
);
...
...
@@ -34,6 +37,7 @@ public class SerProjValueController {
@PostMapping
(
"budget/save"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"保存数据"
)
public
Object
save
(
@ApiIgnore
@CurrentUser
Long
userId
,
@RequestBody
AddBudgetValue
request
)
throws
Throwable
{
boolean
result
=
projValueService
.
save
(
userId
,
request
);
...
...
@@ -45,6 +49,7 @@ public class SerProjValueController {
@PostMapping
(
"budget/summary"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"查询预算编制汇总数据"
)
public
Object
getSummary
(
@ApiIgnore
@CurrentUser
Long
userId
,
@RequestBody
QuerySummary
request
)
throws
Throwable
{
Object
result
=
projValueService
.
getSummary
(
request
.
getDate
(),
request
.
getBudgetType
(),
userId
);
...
...
@@ -53,6 +58,7 @@ public class SerProjValueController {
@PostMapping
(
"budget/summarynew"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"查询预算编制汇总数据"
)
public
Object
getSummaryNew
(
@RequestBody
QuerySummary
req
)
throws
Throwable
{
Object
result
=
projValueService
.
getData
(
req
.
getDate
(),
req
.
getPage
());
...
...
hs-api/src/main/java/com/hs/api/controller/SysConfigController.java
View file @
b54b928f
package
com
.
hs
.
api
.
controller
;
import
com.hs.api.common.Result
;
import
com.hs.api.common.annotations.Audit
;
import
com.hs.api.common.annotations.Token
;
import
com.hs.api.common.enums.AuditLogType
;
import
com.hs.api.model.reqmodel.SysConfigReq
;
import
com.hs.api.service.SysConfigService
;
import
io.swagger.annotations.Api
;
...
...
@@ -24,6 +26,7 @@ public class SysConfigController {
*/
@PostMapping
(
"getSysConfigByKey"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"根据key查询系统配置"
)
public
Result
<
Boolean
>
sysConfigReq
(
@RequestBody
SysConfigReq
sysConfigReq
)
{
boolean
state
=
sysConfigService
.
getStateByKey
(
sysConfigReq
.
getKey
());
...
...
hs-api/src/main/java/com/hs/api/controller/UserController.java
View file @
b54b928f
...
...
@@ -76,6 +76,7 @@ public class UserController {
*/
@PostMapping
(
"roles"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"查询用户角色"
)
public
Object
getRoleListByUser
(
@ApiIgnore
@CurrentUser
Long
userId
)
throws
Exception
{
List
<
SysRole
>
sysRoleList
=
sysUserRoleRsService
.
getRoleListByUser
(
userId
);
...
...
@@ -90,6 +91,7 @@ public class UserController {
*/
@PostMapping
(
"menus"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"查询用户菜单"
)
public
Object
getMenuByUser
(
@ApiIgnore
@CurrentUser
Long
userId
)
throws
Exception
{
List
<
SysMenuList
>
sysMenuList
=
sysMenuService
.
getMenu
(
userId
);
...
...
@@ -98,6 +100,7 @@ public class UserController {
@PostMapping
(
"menu/list"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"查询综合菜单"
)
public
Object
getMenuByType
(
HttpServletRequest
request
,
@RequestBody
MenuReq
req
)
throws
Exception
{
String
token
=
request
.
getHeader
(
Constants
.
TOKEN_KEY
);
...
...
@@ -108,6 +111,7 @@ public class UserController {
@PostMapping
(
"module/state"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"查询module状态"
)
public
Object
getModuleStateByCode
(
HttpServletRequest
request
,
@RequestBody
ModuleReq
req
)
throws
Exception
{
String
token
=
request
.
getHeader
(
Constants
.
TOKEN_KEY
);
...
...
@@ -124,6 +128,7 @@ public class UserController {
*/
@PostMapping
(
"dept"
)
@Token
@Audit
(
type
=
AuditLogType
.
REFRESH
)
@ApiOperation
(
"查询用户科室"
)
public
Object
getOrgByUser
(
@ApiIgnore
@CurrentUser
Long
userId
,
@RequestBody
Disease
.
DiseaseIDorLevel
disease
)
throws
Exception
{
List
<
SerDepartment
>
sysMenuList
=
sysUserOrgRsService
.
getUserOrg
(
userId
,
disease
.
getDisease
(),
disease
.
getDate
());
...
...
hs-api/src/main/java/com/hs/api/model/AuditLog.java
View file @
b54b928f
...
...
@@ -32,4 +32,13 @@ public class AuditLog {
@Setter
private
String
describe
;
@Setter
private
String
token
;
@Setter
private
String
url
;
@Setter
private
String
params
;
}
hs-api/src/main/java/com/hs/api/service/Impl/LoginServiceImpl.java
View file @
b54b928f
...
...
@@ -148,6 +148,7 @@ public class LoginServiceImpl implements LoginService {
String
token
=
request
.
getHeader
(
Constants
.
TOKEN_KEY
);
SysUser
user
=
(
SysUser
)
RedisUtil
.
get
(
token
);
loginInfo
.
setUser
(
user
);
loginInfo
.
setToken
(
token
);
if
(!
token
.
equals
(
""
)
&&
token
!=
null
)
{
RedisUtil
.
del
(
token
);
};
...
...
hs-api/src/main/resources/application-test.properties
View file @
b54b928f
...
...
@@ -9,10 +9,10 @@ spring.datasource.druid.initial-size=1
project.path
=
localhost
# Redis\u6570\u636E\u5E93\u7D22\u5F15\uFF08\u9ED8\u8BA40\uFF09
spring.redis.database
=
1
spring.redis.host
=
1
27.0.0.1
spring.redis.port
=
7
379
spring.redis.password
=
123456
spring.redis.database
=
2
spring.redis.host
=
1
92.168.18.166
spring.redis.port
=
6
379
spring.redis.password
=
ll
123456
spring.redis.jedis.pool.max-active
=
8
# \u8FDE\u63A5\u6C60\u6700\u5927\u963B\u585E\u7B49\u5F85\u65F6\u95F4\uFF08\u4F7F\u7528\u8D1F\u503C\u8868\u793A\u6CA1\u6709\u9650\u5236\uFF09
spring.redis.jedis.pool.max-wait
=
-1
...
...
hs-api/src/main/resources/mapper/AuditLogMapper.xml
View file @
b54b928f
...
...
@@ -16,10 +16,11 @@
SELECT LAST_INSERT_ID()
</selectKey>
insert into audit_log (CREATE_DATE, `STATE`,
USER_ID, IP, MODULE_CODE, OPERATE_TYPE, `DESCRIBE`
USER_ID, IP, MODULE_CODE, OPERATE_TYPE, `DESCRIBE`
,TOKEN,URL,PARAMS
)
values (#{createDate,jdbcType=TIMESTAMP}, #{state,jdbcType=DECIMAL}, #{userId,jdbcType=DECIMAL},
#{ip,jdbcType=VARCHAR}, #{moduleCode,jdbcType=VARCHAR}, #{operateType,jdbcType=DECIMAL}, #{describe,jdbcType=VARCHAR}
#{ip,jdbcType=VARCHAR}, #{moduleCode,jdbcType=VARCHAR}, #{operateType,jdbcType=DECIMAL}, #{describe,jdbcType=VARCHAR},
#{token,jdbcType=VARCHAR},#{url,jdbcType=VARCHAR},#{params,jdbcType=VARCHAR}
)
</insert>
<select
id=
"selectAll"
resultMap=
"BaseResultMap"
>
...
...
suvalue-boot-demo/suvalue-boot-demo-atomicinteger/suvalue-boot-demo-atomicinteger.iml
View file @
b54b928f
<?xml version="1.0" encoding="UTF-8"?>
<module
org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule=
"true"
version=
"4"
>
<module
org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule=
"true"
type=
"JAVA_MODULE"
version=
"4"
>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_5"
>
<output
url=
"file://$MODULE_DIR$/target/classes"
/>
<output-test
url=
"file://$MODULE_DIR$/target/test-classes"
/>
<content
url=
"file://$MODULE_DIR$"
>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/resources"
type=
"java-resource"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/target"
/>
</content>
<orderEntry
type=
"inheritedJdk"
/>
...
...
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