Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
brandkbs2
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
shenjunjie
brandkbs2
Commits
2881a1f0
Commit
2881a1f0
authored
Sep 23, 2022
by
陈健智
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户行为记录相关修改
parent
114e6fd7
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
56 additions
and
54 deletions
+56
-54
src/main/java/com/zhiwei/brandkbs2/aop/AopLogRecord.java
+24
-5
src/main/java/com/zhiwei/brandkbs2/controller/admin/ArticleController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/admin/BehaviorController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/admin/ChannelController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/admin/CustomTagController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/admin/EventController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/admin/ProjectController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/admin/ReportController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/admin/UserController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/app/AppArticleController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/app/AppChannelController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/app/AppContendController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/app/AppCrisisController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/app/AppCustomEventController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/app/AppHotController.java
+2
-2
src/main/java/com/zhiwei/brandkbs2/controller/app/AppIndexController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/controller/app/AppSearchController.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/easyexcel/dto/ExportBehaviorDTO.java
+2
-2
src/main/java/com/zhiwei/brandkbs2/pojo/Behavior.java
+9
-26
src/main/java/com/zhiwei/brandkbs2/pojo/vo/BehaviorVO.java
+2
-2
src/main/java/com/zhiwei/brandkbs2/service/impl/BehaviorServiceImpl.java
+2
-2
No files found.
src/main/java/com/zhiwei/brandkbs2/aop/AopLogRecord.java
View file @
2881a1f0
...
...
@@ -6,12 +6,15 @@ import com.zhiwei.brandkbs2.pojo.Behavior;
import
com.zhiwei.brandkbs2.service.UserService
;
import
com.zhiwei.brandkbs2.util.Tools
;
import
com.zhiwei.middleware.auth.util.JwtUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.aspectj.lang.JoinPoint
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Before
;
import
org.aspectj.lang.reflect.MethodSignature
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.context.request.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.servlet.HandlerMapping
;
...
...
@@ -19,9 +22,12 @@ import org.springframework.web.servlet.HandlerMapping;
import
javax.annotation.Resource
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.lang.annotation.Annotation
;
import
java.lang.reflect.Method
;
import
java.net.InetAddress
;
import
java.net.UnknownHostException
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
static
java
.
util
.
Objects
.
nonNull
;
...
...
@@ -36,7 +42,6 @@ import static java.util.Objects.nonNull;
public
class
AopLogRecord
{
@Value
(
"${jwt.key}"
)
private
String
jwtKey
;
@Resource
(
name
=
"userServiceImpl"
)
private
UserService
userService
;
@Resource
(
name
=
"behaviorDao"
)
...
...
@@ -45,9 +50,9 @@ public class AopLogRecord {
private
static
final
List
<
String
>
URL_PATTERNS
=
Arrays
.
asList
(
"/getNewAll"
,
"/getNew"
,
"/schedule"
);
@Before
(
"execution(public * com..controller..admin..*Controller.*(..)) || execution(* com..controller..app..*Controller.*(..))"
)
private
void
beforeLog
(
JoinPoint
joinPoint
)
throws
UnknownHostException
{
private
void
beforeLog
(
JoinPoint
joinPoint
)
throws
UnknownHostException
,
ClassNotFoundException
,
NoSuchMethodException
{
long
now
=
System
.
currentTimeMillis
();
// RequestContextHolder
是持有上下文的Request
容器
// RequestContextHolder
顾名思义 持有 request 上下文的
容器
ServletRequestAttributes
requestAttributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
// 获取request对象
HttpServletRequest
request
=
Objects
.
requireNonNull
(
requestAttributes
).
getRequest
();
...
...
@@ -59,6 +64,15 @@ public class AopLogRecord {
String
httpMethod
=
request
.
getMethod
();
String
uri
=
request
.
getRequestURI
();
String
methodName
=
joinPoint
.
getSignature
().
getName
();
// 访问页面
String
className
=
joinPoint
.
getTarget
().
getClass
().
getName
();
Class
<?>
clazz
=
Class
.
forName
(
className
);
String
controller
=
clazz
.
getAnnotation
(
Api
.
class
).
tags
()[
0
];
// 操作模块
MethodSignature
methodSignature
=
(
MethodSignature
)
joinPoint
.
getSignature
();
String
method
=
methodSignature
.
getMethod
().
getAnnotation
(
ApiOperation
.
class
).
value
();
// 前后台,false:前台,true:后台
boolean
backstage
=
uri
.
contains
(
"admin"
);
if
(!(
Tools
.
isNullOrUndefined
(
request
.
getHeader
(
jwtKey
))
||
Tools
.
isNullOrUndefined
(
request
.
getHeader
(
"pid"
))))
{
// 用户信息
String
userId
=
JwtUtil
.
unsign
(
request
.
getHeader
(
jwtKey
),
Map
.
class
).
get
(
GenericAttribute
.
USER_ID
).
toString
();
...
...
@@ -68,15 +82,20 @@ public class AopLogRecord {
String
severAddress
=
InetAddress
.
getLocalHost
().
getHostAddress
();
String
ipAddress
=
Tools
.
getIpAddress
(
request
);
// 接口传参信息
List
<
Map
<
String
,
Object
>>
requestArguments
=
getRequestArguments
(
joinPoint
);
List
<
Map
<
String
,
Object
>>
param
=
getRequestArguments
(
joinPoint
);
Behavior
behavior
=
Behavior
.
createBehaviorNew
(
userId
,
nickName
,
projectId
,
uri
,
methodName
,
httpMethod
,
requestArguments
,
now
,
now
,
severAddress
,
ip
Address
);
Behavior
behavior
=
new
Behavior
(
userId
,
projectId
,
nickName
,
ipAddress
,
now
,
controller
,
method
,
backstage
,
uri
,
methodName
,
httpMethod
,
param
,
now
,
sever
Address
);
String
collectionName
=
behaviorDao
.
generateCollectionName
();
behaviorDao
.
insertOneWithoutId
(
behavior
,
collectionName
);
}
}
}
/**
* 获取接口传参信息
* @param joinPoint
* @return
*/
private
List
<
Map
<
String
,
Object
>>
getRequestArguments
(
JoinPoint
joinPoint
)
{
List
<
Map
<
String
,
Object
>>
arguments
=
new
ArrayList
<>();
// 获取参数名
...
...
src/main/java/com/zhiwei/brandkbs2/controller/admin/ArticleController.java
View file @
2881a1f0
...
...
@@ -41,7 +41,7 @@ import java.util.Map;
*/
@RestController
@RequestMapping
(
"/admin/article"
)
@Api
(
tags
=
"稿件上传
接口
"
,
description
=
"提供稿件的上传功能"
)
@Api
(
tags
=
"稿件上传"
,
description
=
"提供稿件的上传功能"
)
@Auth
(
role
=
RoleEnum
.
COMMON_ADMIN
)
public
class
ArticleController
extends
BaseController
{
public
static
final
Logger
log
=
LogManager
.
getLogger
(
ArticleController
.
class
);
...
...
src/main/java/com/zhiwei/brandkbs2/controller/admin/BehaviorController.java
View file @
2881a1f0
...
...
@@ -29,7 +29,7 @@ import java.util.List;
*/
@RestController
@RequestMapping
(
"/admin/behavior"
)
@Api
(
tags
=
"用户行为管理
接口
"
,
description
=
"提供用户行为的查询和导出功能"
)
@Api
(
tags
=
"用户行为管理"
,
description
=
"提供用户行为的查询和导出功能"
)
@Auth
(
role
=
RoleEnum
.
COMMON_ADMIN
)
public
class
BehaviorController
extends
BaseController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/admin/ChannelController.java
View file @
2881a1f0
...
...
@@ -37,7 +37,7 @@ import java.util.stream.Collectors;
*/
@RestController
@RequestMapping
(
"/admin/channel"
)
@Api
(
tags
=
"渠道
模块接口
"
,
description
=
"提供渠道相关功能"
)
@Api
(
tags
=
"渠道
管理
"
,
description
=
"提供渠道相关功能"
)
@Auth
(
role
=
RoleEnum
.
COMMON_ADMIN
)
public
class
ChannelController
extends
BaseController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/admin/CustomTagController.java
View file @
2881a1f0
...
...
@@ -28,7 +28,7 @@ import static com.alibaba.fastjson.JSON.parseArray;
*/
@RestController
@RequestMapping
(
"/admin/custom"
)
@Api
(
tags
=
"自定义标签管理
接口
"
,
description
=
"提供自定义标签的增、删、改、查"
)
@Api
(
tags
=
"自定义标签管理"
,
description
=
"提供自定义标签的增、删、改、查"
)
@Auth
(
role
=
RoleEnum
.
COMMON_ADMIN
)
public
class
CustomTagController
extends
BaseController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/admin/EventController.java
View file @
2881a1f0
...
...
@@ -42,7 +42,7 @@ import java.util.Set;
*/
@RestController
@RequestMapping
(
"/admin/event"
)
@Api
(
tags
=
"事件管理
接口
"
,
description
=
"提供事件的增、删、改、查等功能"
)
@Api
(
tags
=
"事件管理"
,
description
=
"提供事件的增、删、改、查等功能"
)
@Auth
(
role
=
RoleEnum
.
COMMON_ADMIN
)
public
class
EventController
extends
BaseController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/admin/ProjectController.java
View file @
2881a1f0
...
...
@@ -42,7 +42,7 @@ import java.util.stream.Collectors;
*/
@RestController
@RequestMapping
(
"/admin/project"
)
@Api
(
tags
=
"项目管理
接口
"
,
description
=
"提供项目的增、删、改、查"
)
@Api
(
tags
=
"项目管理"
,
description
=
"提供项目的增、删、改、查"
)
@Auth
(
role
=
RoleEnum
.
SUPER_ADMIN
)
public
class
ProjectController
extends
BaseController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/admin/ReportController.java
View file @
2881a1f0
...
...
@@ -19,7 +19,7 @@ import javax.annotation.Resource;
*/
@RestController
@RequestMapping
(
"/admin/module/report"
)
@Api
(
tags
=
"简报配置
接口
"
,
description
=
"提供简报配置功能"
)
@Api
(
tags
=
"简报配置"
,
description
=
"提供简报配置功能"
)
@Auth
(
role
=
RoleEnum
.
COMMON_ADMIN
)
public
class
ReportController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/admin/UserController.java
View file @
2881a1f0
...
...
@@ -26,7 +26,7 @@ import javax.annotation.Resource;
*/
@RestController
@RequestMapping
(
"/admin/user"
)
@Api
(
tags
=
"用户管理
接口
"
,
description
=
"提供用户的增、删、改、查"
)
@Api
(
tags
=
"用户管理"
,
description
=
"提供用户的增、删、改、查"
)
@Auth
(
role
=
RoleEnum
.
COMMON_ADMIN
)
public
class
UserController
extends
BaseController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppArticleController.java
View file @
2881a1f0
...
...
@@ -31,7 +31,7 @@ import java.util.List;
*/
@RestController
@RequestMapping
(
"/app/yuqing"
)
@Api
(
tags
=
"前台舆情库
展示接口
"
,
description
=
"提供前台舆情库相关信息展示"
)
@Api
(
tags
=
"前台舆情库"
,
description
=
"提供前台舆情库相关信息展示"
)
@Auth
(
role
=
RoleEnum
.
CUSTOMER
)
public
class
AppArticleController
extends
BaseController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppChannelController.java
View file @
2881a1f0
...
...
@@ -25,7 +25,7 @@ import java.util.List;
*/
@RestController
@RequestMapping
(
"/app/channel"
)
@Api
(
tags
=
"前台渠道库
展示接口
"
,
description
=
"提供前台渠道库相关信息展示"
)
@Api
(
tags
=
"前台渠道库"
,
description
=
"提供前台渠道库相关信息展示"
)
@Auth
(
role
=
RoleEnum
.
CUSTOMER
)
public
class
AppChannelController
extends
BaseController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppContendController.java
View file @
2881a1f0
...
...
@@ -33,7 +33,7 @@ import java.util.stream.Collectors;
*/
@RestController
@RequestMapping
(
"/app/contend"
)
@Api
(
tags
=
"前台竞品库
展示接口
"
,
description
=
"提供前台竞品库相关信息展示"
)
@Api
(
tags
=
"前台竞品库"
,
description
=
"提供前台竞品库相关信息展示"
)
@Auth
(
role
=
RoleEnum
.
CUSTOMER
)
public
class
AppContendController
extends
BaseController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppCrisisController.java
View file @
2881a1f0
...
...
@@ -23,7 +23,7 @@ import org.springframework.web.client.RestTemplate;
*/
@RestController
@RequestMapping
(
"/app/crisis"
)
@Api
(
tags
=
"前台危机
展示接口
"
,
description
=
"提供前台危机相关信息展示"
)
@Api
(
tags
=
"前台危机
库
"
,
description
=
"提供前台危机相关信息展示"
)
@Auth
(
role
=
RoleEnum
.
CUSTOMER
)
public
class
AppCrisisController
extends
BaseController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppCustomEventController.java
View file @
2881a1f0
...
...
@@ -21,7 +21,7 @@ import javax.annotation.Resource;
*/
@RestController
@RequestMapping
(
"/app/customEvent"
)
@Api
(
tags
=
"前台自定义事件
展示接口
"
,
description
=
"提供前台自定义事件模块信息展示及操作"
)
@Api
(
tags
=
"前台自定义事件"
,
description
=
"提供前台自定义事件模块信息展示及操作"
)
@Auth
(
role
=
RoleEnum
.
CUSTOMER
)
public
class
AppCustomEventController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppHotController.java
View file @
2881a1f0
...
...
@@ -41,7 +41,7 @@ import java.util.stream.Collectors;
*/
@RestController
@RequestMapping
(
"/app/hot"
)
@Api
(
tags
=
"前台热点
展示接口
"
,
description
=
"提供前台热点相关信息展示"
)
@Api
(
tags
=
"前台热点
库
"
,
description
=
"提供前台热点相关信息展示"
)
@Auth
(
role
=
RoleEnum
.
CUSTOMER
)
public
class
AppHotController
extends
BaseController
{
private
static
final
long
ONE_HOUR
=
1L
;
...
...
@@ -116,7 +116,7 @@ public class AppHotController extends BaseController {
}
}
@ApiOperation
(
"
竞品库-最新资讯
"
)
@ApiOperation
(
"
首页-近24小时热门舆情,查竞品-竞品动态
"
)
@GetMapping
(
"/latestNews"
)
public
ResponseResult
latestNews
(
@RequestParam
(
value
=
"size"
,
defaultValue
=
"5"
)
Integer
size
,
@RequestParam
(
value
=
"include"
,
defaultValue
=
"true"
)
boolean
include
)
throws
IOException
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppIndexController.java
View file @
2881a1f0
...
...
@@ -26,7 +26,7 @@ import javax.annotation.Resource;
@RestController
@RequestMapping
(
"/app/index"
)
@Api
(
tags
=
"前台首页
展示接口
"
,
description
=
"提供前台首页相关信息展示"
)
@Api
(
tags
=
"前台首页"
,
description
=
"提供前台首页相关信息展示"
)
@Auth
(
role
=
RoleEnum
.
CUSTOMER
)
public
class
AppIndexController
extends
BaseController
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppSearchController.java
View file @
2881a1f0
...
...
@@ -36,7 +36,7 @@ import java.util.Objects;
*/
@RestController
@RequestMapping
(
"/app/search"
)
@Api
(
tags
=
"前台搜索相关
接口
"
,
description
=
"提供搜索相关功能"
)
@Api
(
tags
=
"前台搜索相关"
,
description
=
"提供搜索相关功能"
)
@Auth
(
role
=
RoleEnum
.
CUSTOMER
)
public
class
AppSearchController
extends
BaseController
{
@Autowired
...
...
src/main/java/com/zhiwei/brandkbs2/easyexcel/dto/ExportBehaviorDTO.java
View file @
2881a1f0
...
...
@@ -25,10 +25,10 @@ public class ExportBehaviorDTO {
private
Date
time
;
@ExcelProperty
(
"访问页面"
)
private
String
page
;
private
String
controller
;
@ExcelProperty
(
"操作模块"
)
private
String
m
odule
;
private
String
m
ethod
;
@ExcelProperty
(
"用户身份"
)
private
String
role
;
...
...
src/main/java/com/zhiwei/brandkbs2/pojo/Behavior.java
View file @
2881a1f0
package
com
.
zhiwei
.
brandkbs2
.
pojo
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
@@ -14,6 +15,7 @@ import java.util.Map;
*/
@Getter
@Setter
@AllArgsConstructor
public
class
Behavior
extends
AbstractBaseMongo
{
/**
* 用户ID
...
...
@@ -24,6 +26,10 @@ public class Behavior extends AbstractBaseMongo {
*/
private
String
projectId
;
/**
* nickName
*/
private
String
nickName
;
/**
* IP地址
*/
private
String
ip
;
...
...
@@ -34,22 +40,15 @@ public class Behavior extends AbstractBaseMongo {
/**
* 访问页面
*/
private
String
page
;
private
String
controller
;
/**
* 操作模块
*/
private
String
module
;
private
String
method
;
/**
* false:前台,true:后台
*/
private
boolean
backstage
;
/**
* nickName
*/
private
String
nickName
;
/**
* uri 访问路径
*/
...
...
@@ -65,7 +64,7 @@ public class Behavior extends AbstractBaseMongo {
/**
* 方法传入参数
*/
private
List
<
Map
<
String
,
Object
>>
arguments
;
private
List
<
Map
<
String
,
Object
>>
param
;
/**
* 更新时间
*/
...
...
@@ -86,20 +85,4 @@ public class Behavior extends AbstractBaseMongo {
this
.
backstage
=
backstage
;
}
}
public
static
Behavior
createBehaviorNew
(
String
userId
,
String
nickName
,
String
projectId
,
String
uri
,
String
methodName
,
String
httpMethod
,
List
<
Map
<
String
,
Object
>>
requestArguments
,
Long
CTime
,
Long
updateTime
,
String
severAddress
,
String
clientAddress
){
Behavior
behavior
=
new
Behavior
();
behavior
.
setUserId
(
userId
);
behavior
.
setNickName
(
nickName
);
behavior
.
setProjectId
(
projectId
);
behavior
.
setUri
(
uri
);
behavior
.
setMethodName
(
methodName
);
behavior
.
setHttpMethod
(
httpMethod
);
behavior
.
setArguments
(
requestArguments
);
behavior
.
setCTime
(
CTime
);
behavior
.
setUpdateTime
(
updateTime
);
behavior
.
setSeverAddress
(
severAddress
);
behavior
.
setIp
(
clientAddress
);
return
behavior
;
}
}
src/main/java/com/zhiwei/brandkbs2/pojo/vo/BehaviorVO.java
View file @
2881a1f0
...
...
@@ -35,11 +35,11 @@ public class BehaviorVO {
/**
* 访问页面
*/
private
String
page
;
private
String
controller
;
/**
* 操作模块
*/
private
String
m
odule
;
private
String
m
ethod
;
/**
* 角色ID
...
...
src/main/java/com/zhiwei/brandkbs2/service/impl/BehaviorServiceImpl.java
View file @
2881a1f0
...
...
@@ -111,8 +111,8 @@ public class BehaviorServiceImpl implements BehaviorService {
exportBehaviorDTO
.
setNickname
(
nicknameAndRoleId
.
getLeft
());
exportBehaviorDTO
.
setIp
(
behavior
.
getIp
());
exportBehaviorDTO
.
setTime
(
new
Date
(
behavior
.
getCTime
()));
exportBehaviorDTO
.
set
Page
(
behavior
.
getPage
());
exportBehaviorDTO
.
setM
odule
(
behavior
.
getModule
());
exportBehaviorDTO
.
set
Controller
(
behavior
.
getController
());
exportBehaviorDTO
.
setM
ethod
(
behavior
.
getMethod
());
exportBehaviorDTO
.
setRole
(
RoleEnum
.
getNameByState
(
nicknameAndRoleId
.
getRight
()));
resList
.
add
(
exportBehaviorDTO
);
});
...
...
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