Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
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
项目统一框架
amos-boot-biz
Commits
75346abc
Commit
75346abc
authored
Jan 14, 2026
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(jg): 操作日志
1.增加查询接口初稿
parent
ec80145d
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
159 additions
and
0 deletions
+159
-0
TZSCommonConstant.java
...os/boot/module/common/api/constant/TZSCommonConstant.java
+2
-0
UserOperateLogController.java
...odule/common/biz/controller/UserOperateLogController.java
+37
-0
UserOperateLogServiceImpl.java
...le/common/biz/service/impl/UserOperateLogServiceImpl.java
+120
-0
No files found.
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/constant/TZSCommonConstant.java
View file @
75346abc
...
...
@@ -40,6 +40,8 @@ public class TZSCommonConstant {
public
static
final
String
ES_INDEX_NAME_EQUIPMENT_INFO
=
"idx_biz_equipment_info"
;
public
static
final
String
ES_INDEX_NAME_JG_ALL
=
"idx_biz_view_jg_all"
;
public
static
final
String
ES_INDEX_NAME_USER_OPERATE_LOG
=
"user_operate_log"
;
/**
* 固定式压力容器
*/
...
...
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/controller/UserOperateLogController.java
0 → 100644
View file @
75346abc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
controller
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.common.biz.service.impl.UserOperateLogServiceImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.util.Map
;
@RestController
@RequestMapping
(
value
=
"/user-operate-log"
)
@RequiredArgsConstructor
@Api
(
tags
=
"用户业务操作日志"
)
public
class
UserOperateLogController
{
private
final
UserOperateLogServiceImpl
userOperateLogService
;
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/page"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"操作日志查询"
)
public
ResponseModel
<
Page
<
JSONObject
>>
page
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
,
@RequestParam
(
required
=
false
)
Map
<
String
,
Object
>
params
)
{
return
ResponseHelper
.
buildResponse
(
userOperateLogService
.
page
(
current
,
size
,
new
JSONObject
(
params
)));
}
}
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/service/impl/UserOperateLogServiceImpl.java
0 → 100644
View file @
75346abc
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
service
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.common.api.constant.TZSCommonConstant
;
import
com.yeejoin.amos.component.feign.utils.FeignUtil
;
import
com.yeejoin.amos.feign.privilege.Privilege
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.CompanyModel
;
import
lombok.RequiredArgsConstructor
;
import
org.elasticsearch.action.search.SearchRequest
;
import
org.elasticsearch.action.search.SearchResponse
;
import
org.elasticsearch.client.RequestOptions
;
import
org.elasticsearch.client.RestHighLevelClient
;
import
org.elasticsearch.index.query.BoolQueryBuilder
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.elasticsearch.search.SearchHit
;
import
org.elasticsearch.search.builder.SearchSourceBuilder
;
import
org.elasticsearch.search.sort.SortOrder
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
@Service
@RequiredArgsConstructor
public
class
UserOperateLogServiceImpl
{
private
final
RestHighLevelClient
restHighLevelClient
;
public
Page
<
JSONObject
>
page
(
int
current
,
int
size
,
JSONObject
params
)
{
Page
<
JSONObject
>
result
=
new
Page
<>(
current
,
size
);
SearchRequest
request
=
new
SearchRequest
();
request
.
indices
(
TZSCommonConstant
.
ES_INDEX_NAME_USER_OPERATE_LOG
);
SearchSourceBuilder
builder
=
new
SearchSourceBuilder
();
builder
.
trackTotalHits
(
true
);
BoolQueryBuilder
boolMust
=
QueryBuilders
.
boolQuery
();
// 业务方法定义精确查询
if
(!
ObjectUtils
.
isEmpty
(
params
.
getString
(
"methodName"
)))
{
BoolQueryBuilder
pBuilder
=
QueryBuilders
.
boolQuery
();
pBuilder
.
must
(
QueryBuilders
.
termQuery
(
"methodName.keyword"
,
params
.
getString
(
"methodName"
)));
boolMust
.
must
(
pBuilder
);
}
// 业务方法名称精确查询
if
(!
ObjectUtils
.
isEmpty
(
params
.
getString
(
"methodLabel"
)))
{
BoolQueryBuilder
pBuilder
=
QueryBuilders
.
boolQuery
();
pBuilder
.
must
(
QueryBuilders
.
termQuery
(
"methodLabel.keyword"
,
params
.
getString
(
"methodLabel"
)));
boolMust
.
must
(
pBuilder
);
}
// 入参关键字模糊查询
if
(!
ObjectUtils
.
isEmpty
(
params
.
getString
(
"params"
)))
{
BoolQueryBuilder
pBuilder
=
QueryBuilders
.
boolQuery
();
pBuilder
.
must
(
QueryBuilders
.
termQuery
(
"params.keyword"
,
params
.
getString
(
"params"
)));
boolMust
.
must
(
pBuilder
);
}
// 出参关键字查询
if
(!
ObjectUtils
.
isEmpty
(
params
.
getString
(
"result"
)))
{
BoolQueryBuilder
pBuilder
=
QueryBuilders
.
boolQuery
();
pBuilder
.
must
(
QueryBuilders
.
termQuery
(
"result.keyword"
,
params
.
getString
(
"result"
)));
boolMust
.
must
(
pBuilder
);
}
// 操作人账号关键字查询
if
(!
ObjectUtils
.
isEmpty
(
params
.
getString
(
"loginId"
)))
{
BoolQueryBuilder
pBuilder
=
QueryBuilders
.
boolQuery
();
pBuilder
.
must
(
QueryBuilders
.
termQuery
(
"loginId"
,
params
.
getString
(
"loginId"
)));
boolMust
.
must
(
pBuilder
);
}
// 操作人userId关键字查询
if
(!
ObjectUtils
.
isEmpty
(
params
.
getString
(
"userId"
)))
{
BoolQueryBuilder
pBuilder
=
QueryBuilders
.
boolQuery
();
pBuilder
.
must
(
QueryBuilders
.
termQuery
(
"userId"
,
params
.
getString
(
"userId"
)));
boolMust
.
must
(
pBuilder
);
}
builder
.
query
(
boolMust
);
builder
.
sort
(
"createDate"
,
SortOrder
.
DESC
);
builder
.
from
((
current
-
1
)
*
size
);
builder
.
size
(
size
);
request
.
source
(
builder
);
List
<
JSONObject
>
list
=
new
LinkedList
<>();
long
totle
=
0
;
try
{
Set
<
String
>
userIds
=
new
HashSet
<>();
SearchResponse
response
=
restHighLevelClient
.
search
(
request
,
RequestOptions
.
DEFAULT
);
for
(
SearchHit
hit
:
response
.
getHits
().
getHits
())
{
System
.
out
.
println
(
hit
);
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
hit
);
JSONObject
dto2
=
jsonObject
.
getJSONObject
(
"sourceAsMap"
);
userIds
.
add
(
dto2
.
getString
(
"userId"
));
list
.
add
(
dto2
);
}
// 填充操作人名称、填充操作人单位
this
.
fillingUserInfo
(
list
,
userIds
);
totle
=
Objects
.
requireNonNull
(
response
.
getInternalResponse
().
hits
().
getTotalHits
()).
value
;
result
.
setRecords
(
list
);
result
.
setTotal
(
totle
);
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
return
result
;
}
private
void
fillingUserInfo
(
List
<
JSONObject
>
list
,
Set
<
String
>
userIds
)
{
List
<
AgencyUserModel
>
userModels
=
FeignUtil
.
remoteCall
(()
->
Privilege
.
agencyUserClient
.
queryByIds
(
String
.
join
(
","
,
userIds
),
true
));
Map
<
String
,
AgencyUserModel
>
userIdUserMap
=
userModels
.
stream
().
collect
(
Collectors
.
toMap
(
AgencyUserModel:
:
getUserId
,
Function
.
identity
()));
list
.
forEach
(
item
->
{
item
.
put
(
"realName"
,
Optional
.
ofNullable
(
userIdUserMap
.
get
(
item
.
getString
(
"userId"
))).
map
(
AgencyUserModel:
:
getRealName
).
orElse
(
""
));
item
.
put
(
"companyName"
,
Optional
.
ofNullable
(
userIdUserMap
.
get
(
item
.
getString
(
"userId"
))).
map
(
AgencyUserModel:
:
getOrgNamesWithoutRole
).
orElse
(
""
));
item
.
remove
(
"token"
);
});
}
}
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