Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
indicators
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhangkb
indicators
Commits
a3b1e0bd
Commit
a3b1e0bd
authored
Jul 29, 2020
by
hzc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
首次上传操作日志接口
parent
76d53e82
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
366 additions
and
0 deletions
+366
-0
LoggingEventCtrl.java
.../keymobile/indicators/api/hytobacco/LoggingEventCtrl.java
+63
-0
LogQuery.java
...eymobile/indicators/model/entity/indicators/LogQuery.java
+33
-0
LogStatistics.java
...ile/indicators/model/entity/indicators/LogStatistics.java
+19
-0
LoggingEvent.java
...bile/indicators/model/entity/indicators/LoggingEvent.java
+44
-0
LoggingEventMapper.java
...ndicators/model/mapper/indicators/LoggingEventMapper.java
+22
-0
LoggingEventService.java
...com/keymobile/indicators/service/LoggingEventService.java
+19
-0
LoggingEventServiceImpl.java
...bile/indicators/service/impl/LoggingEventServiceImpl.java
+110
-0
LoggingEventMapper.xml
src/main/resources/mybatis/mapping/LoggingEventMapper.xml
+56
-0
No files found.
src/main/java/com/keymobile/indicators/api/hytobacco/LoggingEventCtrl.java
0 → 100644
View file @
a3b1e0bd
package
com
.
keymobile
.
indicators
.
api
.
hytobacco
;
import
com.keymobile.indicators.model.entity.dataenter.TaskIndValue
;
import
com.keymobile.indicators.model.entity.indicators.LogQuery
;
import
com.keymobile.indicators.model.entity.indicators.LogStatistics
;
import
com.keymobile.indicators.model.entity.indicators.LoggingEvent
;
import
com.keymobile.indicators.service.LoggingEventService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageImpl
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.*
;
@RestController
@RequestMapping
(
"/log"
)
@Api
(
tags
=
{
"系统管理-操作日志管理接口"
})
public
class
LoggingEventCtrl
{
@Autowired
private
LoggingEventService
loggingEventService
;
@PostMapping
(
"/findClassCount"
)
@ApiOperation
(
value
=
"查询访问模块的总数"
,
notes
=
"如果模块数大于五就取五个"
)
public
List
<
LogStatistics
>
findClassNameAndCount
(
@RequestBody
LogQuery
logQuery
){
return
loggingEventService
.
findClassNameAndCount
(
logQuery
);
}
@ApiOperation
(
value
=
"查询访问次数折线图数据"
,
notes
=
"根据时间查询访问次数折线图数据"
)
@PostMapping
(
"/findVisitCount"
)
public
List
<
LogStatistics
>
findVisitCount
(
@RequestBody
LogQuery
logQuery
){
return
loggingEventService
.
findVisitCount
(
logQuery
);
}
@ApiOperation
(
value
=
"查询访问人数折线图数据"
,
notes
=
"根据时间查询访问人数折线图数据"
)
@PostMapping
(
"/findVisitUserCount"
)
public
List
<
LogStatistics
>
findVisitUserCount
(
@RequestBody
LogQuery
logQuery
){
return
loggingEventService
.
findVisitUserCount
(
logQuery
);
}
@ApiOperation
(
value
=
"分页查询访问信息"
,
notes
=
"分页查询访问信息"
)
@PostMapping
(
"/findVisitMsg"
)
public
Page
<
LoggingEvent
>
findVisitMsg
(
@RequestBody
LogQuery
logQuery
){
Integer
pageNo
=
logQuery
.
getPageNo
();
Integer
pageSize
=
logQuery
.
getPageSize
();
if
(
pageNo
==
null
){
pageNo
=
1
;
}
if
(
pageSize
==
null
){
pageSize
=
10
;
}
List
<
LoggingEvent
>
list
=
new
ArrayList
<>();
long
total
=
loggingEventService
.
findCountByLogQuery
(
logQuery
);
PageRequest
request
=
PageRequest
.
of
(
pageNo
-
1
,
pageSize
);
logQuery
.
setPageOff
(
request
.
getOffset
());
if
(
total
>
0
)
{
list
=
loggingEventService
.
findVisitMsg
(
logQuery
);
}
Page
<
LoggingEvent
>
pageResult
=
new
PageImpl
<>(
list
,
request
,
total
);
return
pageResult
;
}
}
src/main/java/com/keymobile/indicators/model/entity/indicators/LogQuery.java
0 → 100644
View file @
a3b1e0bd
package
com
.
keymobile
.
indicators
.
model
.
entity
.
indicators
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Builder
;
import
lombok.Data
;
import
java.io.Serializable
;
@ApiModel
@Data
public
class
LogQuery
implements
Serializable
{
@ApiModelProperty
(
"页数,从1开始"
)
private
Integer
pageNo
;
@ApiModelProperty
(
"每页条数"
)
private
Integer
pageSize
;
private
Long
pageOff
;
@ApiModelProperty
(
"起时间 如2020-7-29"
)
private
String
startDateStr
;
@ApiModelProperty
(
"尾时间 如2020-7-29"
)
private
String
endDateStr
;
@ApiModelProperty
(
"模块名"
)
private
String
loggerName
;
@ApiModelProperty
(
"路径"
)
private
String
url
;
@ApiModelProperty
(
"员工id"
)
private
String
employeeId
;
private
Long
startTime
;
private
Long
endTime
;
}
src/main/java/com/keymobile/indicators/model/entity/indicators/LogStatistics.java
0 → 100644
View file @
a3b1e0bd
package
com
.
keymobile
.
indicators
.
model
.
entity
.
indicators
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
@ApiModel
public
class
LogStatistics
{
@ApiModelProperty
(
"模块名英文"
)
private
String
loggerName
;
@ApiModelProperty
(
"模块名中文"
)
private
String
loggerNameChinese
;
@ApiModelProperty
(
"时间"
)
private
String
dateTime
;
@ApiModelProperty
(
"访问数"
)
private
Long
count
;
}
src/main/java/com/keymobile/indicators/model/entity/indicators/LoggingEvent.java
0 → 100644
View file @
a3b1e0bd
package
com
.
keymobile
.
indicators
.
model
.
entity
.
indicators
;
import
java.io.Serializable
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.ToString
;
/**
* @Description
* @Author Hunter
* @Date 2020-07-28
*/
@ApiModel
@Setter
@Getter
@ToString
public
class
LoggingEvent
implements
Serializable
{
private
static
final
long
serialVersionUID
=
2666592461886676797L
;
@ApiModelProperty
(
"日期"
)
private
String
dateTime
;
@ApiModelProperty
(
"描述信息"
)
private
String
formattedMessage
;
@ApiModelProperty
(
"模块名英文"
)
private
String
loggerName
;
@ApiModelProperty
(
"模块名中文"
)
private
String
loggerNameChinese
;
@ApiModelProperty
(
"员工工号"
)
private
String
employeeId
;
@ApiModelProperty
(
"访问ip"
)
private
String
loginIp
;
@ApiModelProperty
(
"路径"
)
private
String
url
;
@ApiModelProperty
(
"注解ID"
)
private
Long
eventId
;
}
src/main/java/com/keymobile/indicators/model/mapper/indicators/LoggingEventMapper.java
0 → 100644
View file @
a3b1e0bd
package
com
.
keymobile
.
indicators
.
model
.
mapper
.
indicators
;
import
com.keymobile.indicators.model.entity.indicators.LogQuery
;
import
com.keymobile.indicators.model.entity.indicators.LogStatistics
;
import
com.keymobile.indicators.model.entity.indicators.LoggingEvent
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Select
;
import
java.util.List
;
@Mapper
public
interface
LoggingEventMapper
{
List
<
LogStatistics
>
findClassNameAndCount
(
LogQuery
logQuery
);
List
<
LogStatistics
>
findVisitCount
(
LogQuery
logQuery
);
List
<
LogStatistics
>
findVisitUserCount
(
LogQuery
logQuery
);
long
findCountByLogQuery
(
LogQuery
logQuery
);
List
<
LoggingEvent
>
findVisitMsg
(
LogQuery
logQuery
);
}
src/main/java/com/keymobile/indicators/service/LoggingEventService.java
0 → 100644
View file @
a3b1e0bd
package
com
.
keymobile
.
indicators
.
service
;
import
com.keymobile.indicators.model.entity.indicators.LogQuery
;
import
com.keymobile.indicators.model.entity.indicators.LogStatistics
;
import
com.keymobile.indicators.model.entity.indicators.LoggingEvent
;
import
java.util.List
;
public
interface
LoggingEventService
{
List
<
LogStatistics
>
findClassNameAndCount
(
LogQuery
logQuery
);
List
<
LogStatistics
>
findVisitCount
(
LogQuery
logQuery
);
List
<
LogStatistics
>
findVisitUserCount
(
LogQuery
logQuery
);
long
findCountByLogQuery
(
LogQuery
logQuery
);
List
<
LoggingEvent
>
findVisitMsg
(
LogQuery
logQuery
);
}
src/main/java/com/keymobile/indicators/service/impl/LoggingEventServiceImpl.java
0 → 100644
View file @
a3b1e0bd
package
com
.
keymobile
.
indicators
.
service
.
impl
;
import
com.keymobile.indicators.model.entity.indicators.LogQuery
;
import
com.keymobile.indicators.model.entity.indicators.LogStatistics
;
import
com.keymobile.indicators.model.entity.indicators.LoggingEvent
;
import
com.keymobile.indicators.model.mapper.indicators.LoggingEventMapper
;
import
com.keymobile.indicators.service.LoggingEventService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
@Service
public
class
LoggingEventServiceImpl
implements
LoggingEventService
{
@Autowired
private
LoggingEventMapper
loggingEventMapper
;
@Override
public
List
<
LogStatistics
>
findClassNameAndCount
(
LogQuery
logQuery
)
{
if
(
logQuery
!=
null
){
logQuery
.
setStartTime
(
this
.
getDateTime
(
logQuery
.
getStartDateStr
()));
logQuery
.
setEndTime
(
this
.
getDateTime
(
logQuery
.
getEndDateStr
()));
}
List
<
LogStatistics
>
LogStatisticsList
=
loggingEventMapper
.
findClassNameAndCount
(
logQuery
);
//如果大于五个取五个
if
(
LogStatisticsList
!=
null
&&
LogStatisticsList
.
size
()>
5
){
return
LogStatisticsList
.
subList
(
0
,
5
);
}
return
LogStatisticsList
;
}
@Override
public
List
<
LogStatistics
>
findVisitCount
(
LogQuery
logQuery
)
{
Long
startDateTime
=
null
;
Long
endDateTime
=
null
;
if
(
logQuery
!=
null
){
startDateTime
=
this
.
getDateTime
(
logQuery
.
getStartDateStr
());
endDateTime
=
this
.
getDateTime
(
logQuery
.
getEndDateStr
());
}
if
(
endDateTime
==
null
){
endDateTime
=
new
Date
().
getTime
();
}
if
(
startDateTime
==
null
){
Calendar
calendar
=
new
GregorianCalendar
();
calendar
.
setTimeInMillis
(
endDateTime
);
calendar
.
add
(
calendar
.
DATE
,-
30
);
startDateTime
=
calendar
.
getTimeInMillis
();
}
logQuery
.
setStartTime
(
startDateTime
);
logQuery
.
setEndTime
(
endDateTime
);
//查出符合条件的数据然后再判断具体天数的数量
List
<
LogStatistics
>
logStatisticsList
=
loggingEventMapper
.
findVisitCount
(
logQuery
);
return
logStatisticsList
;
}
@Override
public
List
<
LogStatistics
>
findVisitUserCount
(
LogQuery
logQuery
)
{
Long
startDateTime
=
null
;
Long
endDateTime
=
null
;
if
(
logQuery
!=
null
){
startDateTime
=
this
.
getDateTime
(
logQuery
.
getStartDateStr
());
endDateTime
=
this
.
getDateTime
(
logQuery
.
getEndDateStr
());
}
if
(
endDateTime
==
null
){
endDateTime
=
new
Date
().
getTime
();
}
if
(
startDateTime
==
null
){
Calendar
calendar
=
new
GregorianCalendar
();
calendar
.
setTimeInMillis
(
endDateTime
);
calendar
.
add
(
calendar
.
DATE
,-
30
);
startDateTime
=
calendar
.
getTimeInMillis
();
}
logQuery
.
setStartTime
(
startDateTime
);
logQuery
.
setEndTime
(
endDateTime
);
List
<
LogStatistics
>
LogStatisticsList
=
loggingEventMapper
.
findVisitUserCount
(
logQuery
);
return
LogStatisticsList
;
}
@Override
public
long
findCountByLogQuery
(
LogQuery
logQuery
)
{
if
(
logQuery
!=
null
){
logQuery
.
setStartTime
(
this
.
getDateTime
(
logQuery
.
getStartDateStr
()));
logQuery
.
setEndTime
(
this
.
getDateTime
(
logQuery
.
getEndDateStr
()));
}
return
loggingEventMapper
.
findCountByLogQuery
(
logQuery
);
}
@Override
public
List
<
LoggingEvent
>
findVisitMsg
(
LogQuery
logQuery
)
{
if
(
logQuery
!=
null
){
logQuery
.
setStartTime
(
this
.
getDateTime
(
logQuery
.
getStartDateStr
()));
logQuery
.
setEndTime
(
this
.
getDateTime
(
logQuery
.
getEndDateStr
()));
}
return
loggingEventMapper
.
findVisitMsg
(
logQuery
);
}
private
Long
getDateTime
(
String
dateStr
){
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Long
dateTime
=
null
;
try
{
Date
date
=
simpleDateFormat
.
parse
(
dateStr
);
dateTime
=
date
.
getTime
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
dateTime
;
}
}
src/main/resources/mybatis/mapping/LoggingEventMapper.xml
0 → 100644
View file @
a3b1e0bd
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.keymobile.indicators.model.mapper.indicators.LoggingEventMapper"
>
<select
id=
"findClassNameAndCount"
resultType=
"com.keymobile.indicators.model.entity.indicators.LogStatistics"
>
SELECT logger_name ,count(*)AS count from logging_event
<include
refid=
"findWhereSql"
></include>
GROUP BY logger_name
</select>
<select
id=
"findVisitCount"
resultType=
"com.keymobile.indicators.model.entity.indicators.LogStatistics"
>
SELECT FROM_UNIXTIME(timestmp/1000,'%Y-%m-%d') as date_time ,count(*) as count FROM logging_event
<include
refid=
"findWhereSql"
></include>
GROUP BY date_time
</select>
<select
id=
"findVisitUserCount"
resultType=
"com.keymobile.indicators.model.entity.indicators.LogStatistics"
>
SELECT FROM_UNIXTIME(timestmp/1000,'%Y-%m-%d') as date_time ,count(DISTINCT arg0) as count FROM logging_event
<include
refid=
"findWhereSql"
></include>
GROUP BY date_time
</select>
<select
id=
"findCountByLogQuery"
resultType=
"java.lang.Long"
>
SELECT count(*) AS count from logging_event
<include
refid=
"findWhereSql"
></include>
</select>
<select
id=
"findVisitMsg"
resultType=
"com.keymobile.indicators.model.entity.indicators.LoggingEvent"
>
SELECT FROM_UNIXTIME(timestmp/1000,'%Y-%m-%d %H:%m:%s') as date_time, formatted_message, logger_name, arg0 as employee_id, arg2 as login_ip, arg3 as url, event_id
FROM logging_event
<include
refid=
"findWhereSql"
></include>
limit #{pageOff}, #{pageSize}
</select>
<sql
id=
"findWhereSql"
>
where 1 = 1
<if
test=
"startTime != null and startTime != ''"
>
and timestmp
>
= #{startTime}
</if>
<if
test=
"endTime != null and endTime != ''"
>
and timestmp
<
= #{endTime}
</if>
<if
test=
"loggerName != null and loggerName!=''"
>
and logger_name = #{loggerName}
</if>
<if
test=
"employeeId != null and employeeId!=''"
>
and arg0 = #{employeeId}
</if>
<if
test=
"url != null and url!=''"
>
and arg3 = #{url}
</if>
</sql>
</mapper>
\ No newline at end of file
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