Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
operation-control-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
王锦盛
operation-control-platform
Commits
3fc311df
Commit
3fc311df
authored
Mar 09, 2022
by
王锦盛
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加模型事记,并修改配置文件
parent
865bfbe7
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
354 additions
and
16 deletions
+354
-16
src/main/java/com/pms/ocp/common/aspectj/OperLog.java
src/main/java/com/pms/ocp/common/aspectj/OperLog.java
+30
-0
src/main/java/com/pms/ocp/common/aspectj/OperLogAspect.java
src/main/java/com/pms/ocp/common/aspectj/OperLogAspect.java
+183
-0
src/main/java/com/pms/ocp/common/config/SwaggerConfig.java
src/main/java/com/pms/ocp/common/config/SwaggerConfig.java
+2
-2
src/main/java/com/pms/ocp/controller/ModelBaseController.java
...main/java/com/pms/ocp/controller/ModelBaseController.java
+10
-2
src/main/java/com/pms/ocp/mapper/ModelNoteMapper.java
src/main/java/com/pms/ocp/mapper/ModelNoteMapper.java
+2
-1
src/main/java/com/pms/ocp/model/entity/ModelNote.java
src/main/java/com/pms/ocp/model/entity/ModelNote.java
+104
-1
src/main/java/com/pms/ocp/service/ModelNoteService.java
src/main/java/com/pms/ocp/service/ModelNoteService.java
+2
-1
src/main/java/com/pms/ocp/service/ModelPropertyService.java
src/main/java/com/pms/ocp/service/ModelPropertyService.java
+1
-2
src/main/java/com/pms/ocp/service/impl/ModelNoteServiceImpl.java
...n/java/com/pms/ocp/service/impl/ModelNoteServiceImpl.java
+13
-3
src/main/java/com/pms/ocp/service/impl/ModelPropertyServiceImpl.java
...va/com/pms/ocp/service/impl/ModelPropertyServiceImpl.java
+1
-1
src/main/resources/application-prod.yml
src/main/resources/application-prod.yml
+1
-1
src/main/resources/application.yml
src/main/resources/application.yml
+3
-1
src/main/resources/logback.xml
src/main/resources/logback.xml
+2
-1
No files found.
src/main/java/com/pms/ocp/common/aspectj/OperLog.java
0 → 100644
View file @
3fc311df
package
com.pms.ocp.common.aspectj
;
import
java.lang.annotation.*
;
/**
* @Auther: wangjian
* @Date: 2022/3/8 17:17
* @Description:
*/
@Target
(
ElementType
.
METHOD
)
//target用于标识此注解能标记在方法上还是类上
@Retention
(
RetentionPolicy
.
RUNTIME
)
//retention用于决定此注解的生命周期
@Documented
public
@interface
OperLog
{
/**
* 日志内容
*/
String
value
()
default
""
;
/**
* 日志类型(1登录日志,2操作日志)
*/
int
auditType
()
default
2
;
/**
* 操作日志类型 1查询2添加3修改4删除
*/
int
operStatus
()
default
0
;
}
src/main/java/com/pms/ocp/common/aspectj/OperLogAspect.java
0 → 100644
View file @
3fc311df
package
com.pms.ocp.common.aspectj
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.serializer.PropertyFilter
;
import
com.pms.ocp.model.entity.ModelNote
;
import
com.pms.ocp.service.ModelNoteService
;
import
com.sun.xml.internal.bind.v2.TODO
;
import
org.apache.commons.lang3.StringUtils
;
import
org.aspectj.lang.JoinPoint
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Pointcut
;
import
org.aspectj.lang.reflect.MethodSignature
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.LocalVariableTableParameterNameDiscoverer
;
import
org.springframework.stereotype.Component
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.ServletResponse
;
import
javax.servlet.http.HttpServletRequest
;
import
java.lang.reflect.Method
;
import
java.time.LocalDateTime
;
/**
* @Auther: wangjian
* @Date: 2022/3/8 17:21
* @Description:
*/
@Aspect
@Component
public
class
OperLogAspect
{
@Autowired
private
ModelNoteService
modelNoteService
;
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
OperLogAspect
.
class
);
@Pointcut
(
"@annotation(com.pms.ocp.common.aspectj.OperLog)"
)
public
void
logPointCut
()
{
}
@Around
(
"logPointCut()"
)
public
Object
around
(
ProceedingJoinPoint
point
)
throws
Throwable
{
long
beginTime
=
System
.
currentTimeMillis
();
System
.
out
.
println
(
"日志"
);
//执行方法
Object
result
=
point
.
proceed
();
//执行时长
long
time
=
System
.
currentTimeMillis
()
-
beginTime
;
//保存日志
saveSysLog
(
point
,
time
,
result
);
return
result
;
}
private
void
saveSysLog
(
ProceedingJoinPoint
point
,
long
time
,
Object
obj
)
{
MethodSignature
signature
=
(
MethodSignature
)
point
.
getSignature
();
Method
method
=
signature
.
getMethod
();
ModelNote
modelNote
=
new
ModelNote
();
OperLog
operLog
=
method
.
getAnnotation
(
OperLog
.
class
);
if
(
operLog
!=
null
)
{
String
content
=
operLog
.
value
();
modelNote
.
setAuditType
(
operLog
.
auditType
());
modelNote
.
setAuditMessageJson
(
content
);
}
//请求的方法名
// String className = point.getTarget().getClass().getName();
String
methodName
=
signature
.
getName
();
// dto.setMethod(className + "." + methodName + "()");
//设置操作类型
if
(
modelNote
.
getAuditType
()
==
3
)
{
modelNote
.
setOperStatus
(
getOperateType
(
methodName
,
operLog
.
operStatus
()));
}
//获取request
HttpServletRequest
request
=
getHttpServletRequest
();
//请求的参数
modelNote
.
setAuditMessageJson
(
getRequestParams
(
request
,
point
));
// //设置ip地址
// dto.setIp(getIpAddr(request));
//获取用户登录信息
// TODO
// TUser user = (TUser) SecurityUtils.getSubject().getPrincipal();
// if (user != null) {
// modelNote.setUserid(user.getUserName());
// modelNote.setUsername(user.getPassWord());
// }
// modelNote.setCostTime(time);
modelNote
.
setAuditCtime
(
LocalDateTime
.
now
());
modelNoteService
.
createModelNote
(
modelNote
);
}
private
int
getOperateType
(
String
methodName
,
int
operateType
)
{
if
(
operateType
>=
0
)
{
return
operateType
;
}
if
(
methodName
.
startsWith
(
"create"
))
{
return
1
;
}
if
(
methodName
.
startsWith
(
"update"
))
{
return
2
;
}
return
2
;
}
private
HttpServletRequest
getHttpServletRequest
()
{
return
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
}
private
String
getRequestParams
(
HttpServletRequest
request
,
JoinPoint
joinPoint
)
{
String
httpMethod
=
request
.
getMethod
();
String
param
=
""
;
if
(
"POST"
.
equals
(
httpMethod
)
||
"PUT"
.
equals
(
httpMethod
)
||
"PATCH"
.
equals
(
httpMethod
))
{
Object
[]
paramArray
=
joinPoint
.
getArgs
();
Object
[]
arguments
=
new
Object
[
paramArray
.
length
];
for
(
int
i
=
0
;
i
<
paramArray
.
length
;
i
++)
{
if
(
paramArray
[
i
]
instanceof
BindingResult
||
paramArray
[
i
]
instanceof
ServletRequest
||
paramArray
[
i
]
instanceof
ServletResponse
||
paramArray
[
i
]
instanceof
MultipartFile
)
{
continue
;
}
arguments
[
i
]
=
paramArray
[
i
];
}
PropertyFilter
propertyFilter
=
new
PropertyFilter
()
{
@Override
public
boolean
apply
(
Object
object
,
String
name
,
Object
value
)
{
if
(
value
!=
null
&&
value
.
toString
().
length
()
>
500
)
{
return
false
;
}
return
true
;
}
};
param
=
JSONObject
.
toJSONString
(
arguments
,
propertyFilter
);
}
else
{
MethodSignature
signature
=
(
MethodSignature
)
joinPoint
.
getSignature
();
Method
method
=
signature
.
getMethod
();
//请求的方法参数值
Object
[]
args
=
joinPoint
.
getArgs
();
//请求的方法名称
LocalVariableTableParameterNameDiscoverer
u
=
new
LocalVariableTableParameterNameDiscoverer
();
String
[]
parameterNames
=
u
.
getParameterNames
(
method
);
if
(
args
!=
null
&&
parameterNames
!=
null
)
{
for
(
int
i
=
0
;
i
<
args
.
length
;
i
++)
{
param
+=
" "
+
parameterNames
[
i
]
+
": "
+
args
[
i
];
}
}
}
return
param
;
}
public
String
getIpAddr
(
HttpServletRequest
request
)
{
String
ip
=
null
;
try
{
ip
=
request
.
getHeader
(
"x-forwarded-for"
);
if
(
StringUtils
.
isEmpty
(
ip
)
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"Proxy-Client-IP"
);
}
if
(
StringUtils
.
isEmpty
(
ip
)
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"WL-Proxy-Client-IP"
);
}
if
(
StringUtils
.
isEmpty
(
ip
)
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"HTTP_CLIENT-IP"
);
}
if
(
StringUtils
.
isEmpty
(
ip
)
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"HTTP_X-FORWARDED-FOR"
);
}
if
(
StringUtils
.
isEmpty
(
ip
)
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getRemoteAddr
();
}
}
catch
(
Exception
e
)
{
logger
.
error
(
"IP error"
,
e
);
}
return
ip
;
}
}
src/main/java/com/pms/ocp/common/config/SwaggerConfig.java
View file @
3fc311df
...
...
@@ -57,9 +57,9 @@ public class SwaggerConfig {
// 用ApiInfoBuilder进行定制
return
new
ApiInfoBuilder
()
// 设置标题
.
title
(
"运营管控
架构
平台_接口文档"
)
.
title
(
"运营管控平台_接口文档"
)
// 描述
.
description
(
"
运营管控架构平台_
接口文档"
)
.
description
(
"
关于模型库、应用库、服务库各管理
接口文档"
)
// 作者信息
.
contact
(
new
Contact
(
""
,
""
,
""
))
// 版本
...
...
src/main/java/com/pms/ocp/controller/ModelBaseController.java
View file @
3fc311df
...
...
@@ -2,9 +2,11 @@ package com.pms.ocp.controller;
import
com.pms.ocp.common.constants.CodeEnum
;
import
com.pms.ocp.model.entity.Model
;
import
com.pms.ocp.model.entity.ModelNote
;
import
com.pms.ocp.model.entity.ModelType
;
import
com.pms.ocp.model.vo.ResponseVO
;
import
com.pms.ocp.service.ModelGroupService
;
import
com.pms.ocp.service.ModelNoteService
;
import
com.pms.ocp.service.ModelPropertyService
;
import
com.pms.ocp.service.ModelService
;
import
io.swagger.annotations.Api
;
...
...
@@ -40,6 +42,9 @@ public class ModelBaseController {
@Autowired
private
ModelPropertyService
modelPropertyService
;
@Autowired
private
ModelNoteService
modelNoteService
;
/**
* 模型分类-查询
*
...
...
@@ -190,8 +195,11 @@ public class ModelBaseController {
*/
@ApiOperation
(
"模型事记-查询"
)
@GetMapping
(
"/get/model/note"
)
public
ResponseVO
getModelNote
()
{
return
ResponseVO
.
ok
();
public
ResponseVO
getModelNote
(
@RequestParam
(
value
=
"modelCode"
)
String
modelCode
)
{
List
<
ModelNote
>
modelNoteList
=
modelNoteService
.
getModelNoteList
(
modelCode
);
return
ResponseVO
.
ok
(
modelNoteList
);
}
/**
...
...
src/main/java/com/pms/ocp/mapper/ModelNoteMapper.java
View file @
3fc311df
...
...
@@ -2,6 +2,7 @@ package com.pms.ocp.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.pms.ocp.model.entity.Model
;
import
com.pms.ocp.model.entity.ModelNote
;
import
org.apache.ibatis.annotations.Mapper
;
/**
...
...
@@ -11,5 +12,5 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public
interface
ModelNoteMapper
extends
BaseMapper
<
Model
>
{
public
interface
ModelNoteMapper
extends
BaseMapper
<
Model
Note
>
{
}
src/main/java/com/pms/ocp/model/entity/ModelNote.java
View file @
3fc311df
package
com.pms.ocp.model.entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
/**
* @Auther: wangjian
* @Date: 2022/2/22 16:52
* @Description:模型事记对象
* @Description:模型事记
记录
对象
*/
@Data
@TableName
(
"ocp_model_audit"
)
public
class
ModelNote
{
@TableId
(
value
=
"obj_id"
,
type
=
IdType
.
ASSIGN_ID
)
private
String
objId
;
/**
* 模型代码
*/
private
int
modelCode
;
/**
* 属性代码
*/
private
int
propCode
;
/**
* 事记类型 0:人工操作,1:流程管控,3:总部下发
*/
private
int
auditType
;
/**
* 模型异动详情
*/
private
String
auditMessageJson
;
/**
* 异动类型 0:新增,1:迭代
*/
private
int
operStatus
;
/**
* 异动申请人id
*/
private
String
applyUserId
;
/**
* 异动申请人姓名
*/
private
String
applyUserName
;
/**
* 异动时间
*/
private
long
applyTime
;
/**
* 版本
*/
private
String
applyVersion
;
/**
* 新增时间
*/
private
LocalDateTime
auditCtime
;
/**
* 异动公司编号
*/
private
String
auditCompanyCode
;
/**
* 提交人id
*/
private
String
auditUserId
;
/**
* 提交人姓名
*/
private
String
auditUserName
;
/**
* 修改时间
*/
private
LocalDateTime
auditMtime
;
}
//
// COMMENT ON COLUMN public.ocp_model_audit.obj_id IS '主键是';
// COMMENT ON COLUMN public.ocp_model_audit.model_code IS '模型代码是';
// COMMENT ON COLUMN public.ocp_model_audit.prop_code IS '属性代码';
// COMMENT ON COLUMN public.ocp_model_audit.oper_status IS '异动类型0:新增,1:迭代';
// COMMENT ON COLUMN public.ocp_model_audit.oper_target IS '操作对象0:表,1:属性';
// COMMENT ON COLUMN public.ocp_model_audit.audit_type IS '事记类型0:人工操作,1:流程管控,3:总部下发';
// COMMENT ON COLUMN public.ocp_model_audit.audit_message_json IS '模型异动详情';
// COMMENT ON COLUMN public.ocp_model_audit.apply_user_id IS '异动申请人id';
// COMMENT ON COLUMN public.ocp_model_audit.apply_user_name IS '异动申请人';
// COMMENT ON COLUMN public.ocp_model_audit.apply_time IS '异动时间';
// COMMENT ON COLUMN public.ocp_model_audit.audit_ctime IS '申请时间';
// COMMENT ON COLUMN public.ocp_model_audit.audit_mtime IS '修改时间';
// COMMENT ON COLUMN public.ocp_model_audit.apply_version IS '版本';
// COMMENT ON COLUMN public.ocp_model_audit.audit_company_code IS '异动公司code';
// COMMENT ON COLUMN public.ocp_model_audit.audit_user_id IS '提交人id';
// COMMENT ON COLUMN public.ocp_model_audit.audit_user_name IS '提交人姓名';
src/main/java/com/pms/ocp/service/ModelNoteService.java
View file @
3fc311df
...
...
@@ -9,6 +9,7 @@ import java.util.List;
* @Date: 2022/2/22 16:08
* @Description:模型事记业务层接口
*/
public
interface
ModelNoteService
{
/**
...
...
@@ -41,7 +42,7 @@ public interface ModelNoteService {
* @param
* @return
*/
List
<
ModelNote
>
getModelNoteList
();
List
<
ModelNote
>
getModelNoteList
(
String
modelCode
);
/**
* 获取模型事记列表
...
...
src/main/java/com/pms/ocp/service/ModelPropertyService.java
View file @
3fc311df
package
com.pms.ocp.service
;
import
com.pms.ocp.model.entity.ModelProperty
;
import
com.pms.ocp.model.entity.ModelType
;
import
java.util.List
;
...
...
@@ -47,7 +46,7 @@ public interface ModelPropertyService {
/**
* 获取模型属性列表
*
* @param
modelId
* @param
* @return
*/
List
<
ModelProperty
>
getModelProperty
();
...
...
src/main/java/com/pms/ocp/service/impl/ModelNoteServiceImpl.java
View file @
3fc311df
package
com.pms.ocp.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.pms.ocp.mapper.ModelNoteMapper
;
import
com.pms.ocp.model.entity.ModelNote
;
import
com.pms.ocp.service.ModelNoteService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
...
...
@@ -14,9 +17,13 @@ import java.util.List;
@Service
public
class
ModelNoteServiceImpl
implements
ModelNoteService
{
@Autowired
private
ModelNoteMapper
modelNoteMapper
;
@Override
public
Integer
createModelNote
(
ModelNote
modelNote
)
{
return
null
;
return
modelNoteMapper
.
insert
(
modelNote
)
;
}
@Override
...
...
@@ -30,8 +37,11 @@ public class ModelNoteServiceImpl implements ModelNoteService {
}
@Override
public
List
<
ModelNote
>
getModelNoteList
()
{
return
null
;
public
List
<
ModelNote
>
getModelNoteList
(
String
modelCode
)
{
QueryWrapper
<
ModelNote
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
lambda
().
eq
(
ModelNote:
:
getModelCode
,
modelCode
);
return
modelNoteMapper
.
selectList
(
wrapper
);
}
@Override
...
...
src/main/java/com/pms/ocp/service/impl/ModelPropertyServiceImpl.java
View file @
3fc311df
...
...
@@ -3,7 +3,6 @@ package com.pms.ocp.service.impl;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.pms.ocp.model.entity.ModelProperty
;
import
com.pms.ocp.service.ModelPropertyService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
...
...
@@ -41,6 +40,7 @@ public class ModelPropertyServiceImpl implements ModelPropertyService {
/**
* TODO
*
* @return
*/
@Override
...
...
src/main/resources/application-prod.yml
View file @
3fc311df
...
...
@@ -4,7 +4,7 @@ spring:
username
:
ocp_user
password
:
spaceIN511
type
:
com.zaxxer.hikari.HikariDataSource
jdbc-
url
:
jdbc:postgresql://172.37.41.175:5432/pms3?currentSchema=operating_platform&stringtype=unspecified&TimeZone=Asia/Shanghai&useAffectedRows=true
url
:
jdbc:postgresql://172.37.41.175:5432/pms3?currentSchema=operating_platform&stringtype=unspecified&TimeZone=Asia/Shanghai&useAffectedRows=true
knife4j
:
enable
:
true
...
...
src/main/resources/application.yml
View file @
3fc311df
...
...
@@ -15,8 +15,10 @@ knife4j:
mybatis-plus
:
mapper-locations
:
classpath:/mapper/*.xml
configuration
:
# log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
# log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
log-impl
:
org.apache.ibatis.logging.stdout.StdOutImpl
# 是否开启自动驼峰命名规则
map-underscore-to-camel-case
:
true
logging
:
level
:
...
...
src/main/resources/logback.xml
View file @
3fc311df
...
...
@@ -51,7 +51,8 @@
<logger
name=
"org.springframework.boot.autoconfigure.logging"
level=
"INFO"
/>
<!--输出接口日志-->
<logger
name=
"com.pms.ocp.common.aspect.InterfaceLogAspect"
level=
"INFO"
additivity=
"false"
>
<!-- TODO-->
<logger
name=
"com.pms.ocp.common.aspectj.OperLogAspect"
level=
"INFO"
additivity=
"false"
>
<appender-ref
ref=
"INTERFACE_LOG"
/>
</logger>
...
...
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