Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
E
event
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
陈世强
event
Commits
4eb62d03
提交
4eb62d03
authored
3月 20, 2025
作者:
obcy
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/event_fusion' into event_fusion
上级
093f31fe
d84e790f
隐藏空白字符变更
内嵌
并排
正在显示
30 个修改的文件
包含
853 行增加
和
42 行删除
+853
-42
pom.xml
pom.xml
+5
-0
EventAnalysisApplication.java
src/main/java/com/zzsn/event/EventAnalysisApplication.java
+2
-0
SubjectManageController.java
...va/com/zzsn/event/controller/SubjectManageController.java
+37
-4
SubjectTypeController.java
...m/zzsn/event/controller/common/SubjectTypeController.java
+6
-2
EsService.java
src/main/java/com/zzsn/event/es/EsService.java
+18
-1
DataPermitClient.java
src/main/java/com/zzsn/event/feign/api/DataPermitClient.java
+24
-0
DataPermitClientProd.java
...n/java/com/zzsn/event/feign/api/DataPermitClientProd.java
+22
-0
SubjectMapper.java
src/main/java/com/zzsn/event/mapper/SubjectMapper.java
+2
-2
SubjectTypeMapper.java
src/main/java/com/zzsn/event/mapper/SubjectTypeMapper.java
+2
-1
SubjectMapper.xml
src/main/java/com/zzsn/event/mapper/xml/SubjectMapper.xml
+3
-2
SubjectTypeMapper.xml
...main/java/com/zzsn/event/mapper/xml/SubjectTypeMapper.xml
+2
-1
Constant.java
src/main/java/com/zzsn/event/permit/Constant.java
+22
-0
EnumDBType.java
src/main/java/com/zzsn/event/permit/EnumDBType.java
+5
-0
EnumDataType.java
src/main/java/com/zzsn/event/permit/EnumDataType.java
+8
-0
ParamAop.java
src/main/java/com/zzsn/event/permit/ParamAop.java
+53
-0
SqlConditionUtil.java
src/main/java/com/zzsn/event/permit/SqlConditionUtil.java
+156
-0
UQueryEntity.java
src/main/java/com/zzsn/event/permit/UQueryEntity.java
+17
-0
ISubjectTypeService.java
...main/java/com/zzsn/event/service/ISubjectTypeService.java
+3
-1
SubjectService.java
src/main/java/com/zzsn/event/service/SubjectService.java
+3
-2
InformationServiceImpl.java
...a/com/zzsn/event/service/impl/InformationServiceImpl.java
+64
-7
SubjectServiceImpl.java
.../java/com/zzsn/event/service/impl/SubjectServiceImpl.java
+47
-11
SubjectTypeServiceImpl.java
...a/com/zzsn/event/service/impl/SubjectTypeServiceImpl.java
+30
-2
SimilarityUtil.java
src/main/java/com/zzsn/event/util/SimilarityUtil.java
+212
-0
TokenUtil.java
src/main/java/com/zzsn/event/util/TokenUtil.java
+88
-0
InfoDataSearchCondition.java
src/main/java/com/zzsn/event/vo/InfoDataSearchCondition.java
+1
-1
DisplayInfo.java
src/main/java/com/zzsn/event/vo/es/DisplayInfo.java
+1
-0
SpecialInformation.java
src/main/java/com/zzsn/event/vo/es/SpecialInformation.java
+1
-0
application-dev.yml
src/main/resources/application-dev.yml
+6
-1
application-pro.yml
src/main/resources/application-pro.yml
+7
-3
application-test.yml
src/main/resources/application-test.yml
+6
-1
没有找到文件。
pom.xml
浏览文件 @
4eb62d03
...
...
@@ -180,6 +180,11 @@
</dependency>
<!-- https://mvnrepository.com/artifact/org.fusesource.hawtbuf/hawtbuf -->
<dependency>
<groupId>
com.auth0
</groupId>
<artifactId>
java-jwt
</artifactId>
<version>
3.18.1
</version>
</dependency>
<dependency>
<groupId>
org.fusesource.hawtbuf
</groupId>
<artifactId>
hawtbuf
</artifactId>
<version>
1.11
</version>
...
...
src/main/java/com/zzsn/event/EventAnalysisApplication.java
浏览文件 @
4eb62d03
...
...
@@ -2,7 +2,9 @@ package com.zzsn.event;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
@EnableFeignClients
@SpringBootApplication
public
class
EventAnalysisApplication
{
...
...
src/main/java/com/zzsn/event/controller/SubjectManageController.java
浏览文件 @
4eb62d03
...
...
@@ -41,6 +41,7 @@ import org.springframework.web.bind.annotation.*;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
...
...
@@ -146,8 +147,10 @@ public class SubjectManageController {
@GetMapping
((
"/pageList"
))
public
Result
<?>
researchCenterPageList
(
SubjectCondition
subjectCondition
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
Page
<
SubjectPage
>
pageList
=
subjectService
.
researchCenterPageList
(
subjectCondition
,
pageNo
,
pageSize
);
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
required
=
false
)
String
flagCode
,
HttpServletRequest
request
)
{
UserVo
loginUser
=
UserUtil
.
getLoginUser
();
Page
<
SubjectPage
>
pageList
=
subjectService
.
researchCenterPageList
(
subjectCondition
,
pageNo
,
pageSize
,
flagCode
,
request
,
loginUser
.
getUsername
());
return
Result
.
OK
(
pageList
);
}
...
...
@@ -156,6 +159,8 @@ public class SubjectManageController {
*
* @param type 分类(1-个人;2-公开;3-个人+公开)
* @param subjectName 专题名称
* @param environment 环境 1-测试 2-正式
* @param flagCode 数据权限code
* @param pageNo 当前页
* @param pageSize 每页返回条数
* @author lkg
...
...
@@ -165,10 +170,38 @@ public class SubjectManageController {
public
Result
<?>
visiblePageList
(
@RequestParam
Integer
type
,
@RequestParam
(
required
=
false
)
String
subjectName
,
@RequestParam
(
required
=
false
)
String
environment
,
@RequestParam
(
required
=
false
)
String
flagCode
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
request
)
{
UserVo
loginUser
=
UserUtil
.
getLoginUser
();
Page
<
Node
>
pageList
=
subjectService
.
visiblePageList
(
loginUser
.
getUsername
(),
type
,
subjectName
,
pageNo
,
pageSize
,
environment
,
request
,
flagCode
);
return
Result
.
OK
(
pageList
);
}
/**
* 当前用户可见的专题列表-研究中心-不验证
*
* @param type 分类(1-个人;2-公开;3-个人+公开)
* @param subjectName 专题名称
* @param environment 环境 1-测试 2-正式
* @param flagCode 数据权限code
* @param pageNo 当前页
* @param pageSize 每页返回条数
* @author lkg
* @date 2025/2/8
*/
@GetMapping
(
"/visiblePageListNoSign"
)
public
Result
<?>
visiblePageListNoSign
(
@RequestParam
Integer
type
,
@RequestParam
(
required
=
false
)
String
subjectName
,
@RequestParam
(
required
=
false
)
String
environment
,
@RequestParam
(
required
=
false
)
String
flagCode
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
request
)
{
UserVo
loginUser
=
UserUtil
.
getLoginUser
();
Page
<
Node
>
pageList
=
subjectService
.
visiblePageList
(
loginUser
.
getUsername
(),
type
,
subjectName
,
pageNo
,
pageSize
,
environment
);
Page
<
Node
>
pageList
=
subjectService
.
visiblePageList
(
loginUser
.
getUsername
(),
type
,
subjectName
,
pageNo
,
pageSize
,
environment
,
request
,
flagCode
);
return
Result
.
OK
(
pageList
);
}
...
...
src/main/java/com/zzsn/event/controller/common/SubjectTypeController.java
浏览文件 @
4eb62d03
...
...
@@ -16,6 +16,7 @@ import com.zzsn.event.vo.SubjectTypeVo;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
/**
...
...
@@ -137,12 +138,15 @@ public class SubjectTypeController {
*/
@GetMapping
(
"/subjectAndTypeTree"
)
public
Result
<?>
subjectAndTypeTree
(
@RequestParam
(
required
=
false
)
Integer
facePublic
,
@RequestParam
(
required
=
false
)
String
environment
)
{
@RequestParam
(
required
=
false
)
String
environment
,
@RequestParam
(
required
=
false
)
String
flagCode
,
HttpServletRequest
request
)
{
UserVo
loginUser
=
UserUtil
.
getLoginUser
();
List
<
SubjectTreeVO
>
dataList
=
null
;
if
(
facePublic
==
null
)
{
dataList
=
subjectTypeService
.
subjectAndTypeTree
(
environment
);
}
else
if
(
facePublic
==
1
)
{
dataList
=
subjectTypeService
.
subjectsByFacePublic
(
facePublic
,
environment
);
dataList
=
subjectTypeService
.
subjectsByFacePublic
(
facePublic
,
environment
,
loginUser
.
getUsername
(),
flagCode
,
request
);
}
return
Result
.
OK
(
dataList
);
}
...
...
src/main/java/com/zzsn/event/es/EsService.java
浏览文件 @
4eb62d03
...
...
@@ -777,6 +777,11 @@ public class EsService {
searchSourceBuilder
.
sort
(
"score"
,
SortOrder
.
ASC
);
}
break
;
case
"yqgzzk"
:
searchSourceBuilder
.
sort
(
"dataFrom"
,
SortOrder
.
DESC
);
searchSourceBuilder
.
sort
(
"topNum"
,
SortOrder
.
DESC
);
searchSourceBuilder
.
sort
(
"score"
,
SortOrder
.
DESC
);
break
;
default
:
searchSourceBuilder
.
sort
(
"publishDate"
,
SortOrder
.
DESC
);
break
;
...
...
@@ -1740,6 +1745,11 @@ public class EsService {
searchSourceBuilder
.
trackTotalHits
(
true
);
searchSourceBuilder
.
size
(
1
);
searchSourceBuilder
.
query
(
boolQueryBuilder
);
if
(
"asc"
.
equals
(
sortOrder
)){
searchSourceBuilder
.
sort
(
"publishDate"
,
SortOrder
.
ASC
);
}
else
{
searchSourceBuilder
.
sort
(
"publishDate"
,
SortOrder
.
DESC
);
}
searchRequest
.
source
(
searchSourceBuilder
);
try
{
SearchResponse
searchResponse
=
client
.
search
(
searchRequest
,
RequestOptions
.
DEFAULT
);
...
...
@@ -1903,7 +1913,14 @@ public class EsService {
Integer
checkStatus
=
searchCondition
.
getCheckStatus
();
Integer
deleteFlag
=
searchCondition
.
getDeleteFlag
();
if
(
checkStatus
!=
null
)
{
boolQuery
.
must
(
QueryBuilders
.
termQuery
(
"checkStatus"
,
checkStatus
));
if
(
checkStatus
==
0
)
{
BoolQueryBuilder
checkStatusBoolQuery
=
QueryBuilders
.
boolQuery
();
checkStatusBoolQuery
.
should
(
QueryBuilders
.
termQuery
(
"checkStatus"
,
checkStatus
));
checkStatusBoolQuery
.
should
(
QueryBuilders
.
boolQuery
().
mustNot
(
QueryBuilders
.
existsQuery
(
"checkStatus"
)));
boolQuery
.
must
(
checkStatusBoolQuery
);
}
else
{
boolQuery
.
must
(
QueryBuilders
.
termQuery
(
"checkStatus"
,
checkStatus
));
}
}
else
{
if
(
deleteFlag
==
null
)
{
deleteFlag
=
0
;
...
...
src/main/java/com/zzsn/event/feign/api/DataPermitClient.java
0 → 100644
浏览文件 @
4eb62d03
package
com
.
zzsn
.
event
.
feign
.
api
;
import
com.alibaba.fastjson2.JSONObject
;
import
feign.RequestLine
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestParam
;
/**
* @author zgz
* @date 2025/2/18
*/
@FeignClient
(
name
=
"data-permit"
,
url
=
"http://1.95.77.159:10089/permission/"
)
public
interface
DataPermitClient
{
/**
* 获取数据权限
* @return
*/
@PostMapping
(
value
=
"/data/permit/aop/getQueryEntity"
)
JSONObject
getQueryEntity
(
@RequestParam
(
"queryEntity"
)
JSONObject
params
,
@RequestHeader
(
"Accesstoken"
)
String
accesstoken
);
}
src/main/java/com/zzsn/event/feign/api/DataPermitClientProd.java
0 → 100644
浏览文件 @
4eb62d03
package
com
.
zzsn
.
event
.
feign
.
api
;
import
com.alibaba.fastjson2.JSONObject
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestParam
;
/**
* @author zgz
* @date 2025/2/18
*/
@FeignClient
(
name
=
"data-permit"
,
url
=
"http://1.95.14.24:8060/"
)
public
interface
DataPermitClientProd
{
/**
* 获取数据权限
* @return
*/
@PostMapping
(
value
=
"/data/permit/aop/getQueryEntity"
)
JSONObject
getQueryEntity
(
@RequestParam
(
"queryEntity"
)
JSONObject
params
,
@RequestHeader
(
"Accesstoken"
)
String
accesstoken
);
}
src/main/java/com/zzsn/event/mapper/SubjectMapper.java
浏览文件 @
4eb62d03
...
...
@@ -49,7 +49,7 @@ public interface SubjectMapper extends BaseMapper<Subject> {
* @author lkg
* @date 2025/1/14
*/
Page
<
SubjectPage
>
researchCenterFacePageList
(
@Param
(
"subjectCondition"
)
SubjectCondition
subjectCondition
,
Page
<
SubjectPage
>
page
);
Page
<
SubjectPage
>
researchCenterFacePageList
(
@Param
(
"subjectCondition"
)
SubjectCondition
subjectCondition
,
Page
<
SubjectPage
>
page
,
@Param
(
"sql"
)
String
sql
,
@Param
(
"username"
)
String
username
);
/**
* 当前用户可见的专题分页列表(公开和个人非公开)-研究中心
...
...
@@ -61,7 +61,7 @@ public interface SubjectMapper extends BaseMapper<Subject> {
* @author lkg
* @date 2025/2/8
*/
Page
<
Node
>
visibleList
(
@Param
(
"username"
)
String
username
,
@Param
(
"type"
)
Integer
type
,
@Param
(
"subjectName"
)
String
subjectName
,
Page
<
String
>
page
,
@Param
(
"environment"
)
String
environment
);
Page
<
Node
>
visibleList
(
@Param
(
"username"
)
String
username
,
@Param
(
"type"
)
Integer
type
,
@Param
(
"subjectName"
)
String
subjectName
,
Page
<
String
>
page
,
@Param
(
"environment"
)
String
environment
,
@Param
(
"sql"
)
String
sql
);
/**
* 获取专题详情(包含样例文章信息)
...
...
src/main/java/com/zzsn/event/mapper/SubjectTypeMapper.java
浏览文件 @
4eb62d03
...
...
@@ -78,7 +78,8 @@ public interface SubjectTypeMapper extends BaseMapper<SubjectType> {
* @author lkg
* @date 2025/1/7
*/
List
<
SubjectTreeVO
>
subjectsByFacePublic
(
@Param
(
"facePublic"
)
Integer
facePublic
,
@Param
(
"environment"
)
String
environment
);
List
<
SubjectTreeVO
>
subjectsByFacePublic
(
@Param
(
"facePublic"
)
Integer
facePublic
,
@Param
(
"environment"
)
String
environment
,
@Param
(
"username"
)
String
username
,
@Param
(
"sql"
)
String
sql
);
/**
* 可用的事件和分类列表
...
...
src/main/java/com/zzsn/event/mapper/xml/SubjectMapper.xml
浏览文件 @
4eb62d03
...
...
@@ -135,7 +135,8 @@
from subject d
LEFT JOIN subject_type_map b ON b.subject_id = d.id
LEFT JOIN subject_type c ON b.type_id = c.id
where d.face_public = 1
where
((d.face_public = 1 and d.create_by = #{username}) or (d.face_public = 1 and ${sql}))
<if
test=
"subjectCondition.environment !=null and subjectCondition.environment !=''"
>
and d.environment =#{subjectCondition.environment}
</if>
...
...
@@ -215,7 +216,7 @@
and face_public = 1
</when>
<otherwise>
and (
create_by = #{username} or face_public = 1
)
and (
(create_by = #{username}) or (face_public = 1 and ${sql})
)
</otherwise>
</choose>
</select>
...
...
src/main/java/com/zzsn/event/mapper/xml/SubjectTypeMapper.xml
浏览文件 @
4eb62d03
...
...
@@ -52,7 +52,8 @@
s.time_enable as start_time,
s.time_disable as end_time
from subject s
where s.face_public = #{facePublic}
where
((s.face_public = #{facePublic} and s.create_by = #{username}) or (s.face_public = #{facePublic} and ${sql}))
<if
test=
"environment!=null and environment != ''"
>
and s.environment = #{environment}
</if>
...
...
src/main/java/com/zzsn/event/permit/Constant.java
0 → 100644
浏览文件 @
4eb62d03
package
com
.
zzsn
.
event
.
permit
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
Constant
{
public
static
Map
<
String
,
String
>
symbolMap
=
new
HashMap
<>();
static
{
symbolMap
.
put
(
"="
,
"="
);
symbolMap
.
put
(
">"
,
">"
);
symbolMap
.
put
(
">="
,
">="
);
symbolMap
.
put
(
"<"
,
"<"
);
symbolMap
.
put
(
"<="
,
"<="
);
symbolMap
.
put
(
"!="
,
"!="
);
symbolMap
.
put
(
"in"
,
"in"
);
symbolMap
.
put
(
"isNull"
,
"isNull"
);
symbolMap
.
put
(
"between"
,
"between"
);
symbolMap
.
put
(
"like"
,
"like"
);
symbolMap
.
put
(
"likeLeft"
,
"likeLeft"
);
symbolMap
.
put
(
"likeRight"
,
"likeRight"
);
}
}
src/main/java/com/zzsn/event/permit/EnumDBType.java
0 → 100644
浏览文件 @
4eb62d03
package
com
.
zzsn
.
event
.
permit
;
public
enum
EnumDBType
{
MYSQL
,
ES
;
}
src/main/java/com/zzsn/event/permit/EnumDataType.java
0 → 100644
浏览文件 @
4eb62d03
package
com
.
zzsn
.
event
.
permit
;
public
enum
EnumDataType
{
/**
* 资讯、企业、专家
*/
NEWS
,
ENTERPRISE
,
EXPERT
;
}
src/main/java/com/zzsn/event/permit/ParamAop.java
0 → 100644
浏览文件 @
4eb62d03
package
com
.
zzsn
.
event
.
permit
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.zzsn.event.feign.api.DataPermitClient
;
import
com.zzsn.event.feign.api.DataPermitClientProd
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
@Aspect
@Component
@Slf4j
public
class
ParamAop
{
@Autowired
private
DataPermitClient
dataPermitClient
;
@Autowired
private
DataPermitClientProd
dataPermitClientProd
;
public
UQueryEntity
startArs
(
UQueryEntity
queryEntity
,
String
accesstoken
,
String
environment
){
JSONObject
params
=
new
JSONObject
();
params
.
put
(
"userId"
,
queryEntity
.
getUserId
());
params
.
put
(
"flagCode"
,
queryEntity
.
getFlagCode
());
params
.
put
(
"dbType"
,
EnumDBType
.
MYSQL
);
params
.
put
(
"dataType"
,
EnumDataType
.
NEWS
);
try
{
JSONObject
jo
=
new
JSONObject
();
if
(
StringUtils
.
isNotBlank
(
environment
)
&&
environment
.
equals
(
"2"
)){
jo
=
dataPermitClientProd
.
getQueryEntity
(
params
,
accesstoken
);
}
else
{
jo
=
dataPermitClient
.
getQueryEntity
(
params
,
accesstoken
);
}
if
(
jo
!=
null
)
{
if
(
jo
.
containsKey
(
"condition"
))
{
String
jSONString
=
JSONObject
.
toJSONString
(
jo
.
get
(
"condition"
));
queryEntity
.
setSql
(
SqlConditionUtil
.
get
(
JSONObject
.
parseObject
(
jSONString
)));
}
if
(
jo
.
containsKey
(
"fields"
))
{
queryEntity
.
setFields
(
jo
.
getString
(
"fields"
));
}
if
(
jo
.
containsKey
(
"shareIds"
))
{
queryEntity
.
setShardIds
(
jo
.
getJSONArray
(
"shareIds"
).
toJavaList
(
String
.
class
));
}
}
}
catch
(
Exception
ex
)
{
log
.
error
(
"{}"
,
ex
);
}
return
queryEntity
;
}
}
src/main/java/com/zzsn/event/permit/SqlConditionUtil.java
0 → 100644
浏览文件 @
4eb62d03
package
com
.
zzsn
.
event
.
permit
;
import
com.alibaba.fastjson2.JSON
;
import
com.alibaba.fastjson2.JSONObject
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.core.io.ClassPathResource
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.nio.charset.StandardCharsets
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Slf4j
public
class
SqlConditionUtil
{
private
static
String
FLAG_AND
=
"and"
;
private
static
String
FLAG_OR
=
"or"
;
public
static
List
<
String
>
FLAG_LIST
;
final
static
String
[]
MUST_CONDTION_FIELDS
=
new
String
[]{
"name"
,
"value"
,
"condition"
};
static
{
FLAG_LIST
=
new
ArrayList
<>();
FLAG_LIST
.
add
(
"and"
);
FLAG_LIST
.
add
(
"or"
);
}
public
static
String
getSql
(
JSONObject
jo
)
{
StringBuilder
stringBuilder
=
new
StringBuilder
();
setChd
(
jo
,
stringBuilder
);
return
stringBuilder
.
toString
();
}
private
static
void
setChd
(
JSONObject
jo
,
StringBuilder
stringBuilder
)
{
stringBuilder
.
append
(
"("
);
for
(
int
i
=
0
;
i
<
jo
.
getJSONArray
(
"query"
).
size
();
i
++)
{
JSONObject
chdJo
=
(
JSONObject
)
jo
.
getJSONArray
(
"query"
).
get
(
i
);
if
(
chdJo
.
containsKey
(
"flag"
)
&&
FLAG_LIST
.
contains
(
jo
.
getString
(
"flag"
).
toLowerCase
()))
{
setChd
(
chdJo
,
stringBuilder
);
}
else
{
setCondition
(
stringBuilder
,
chdJo
);
}
if
(
i
<
jo
.
getJSONArray
(
"query"
).
size
()
-
1
)
{
setFlag
(
stringBuilder
,
jo
.
getString
(
"flag"
).
toLowerCase
());
}
}
stringBuilder
.
append
(
")"
);
}
private
static
void
setFlag
(
StringBuilder
stringBuilder
,
String
flag
)
{
stringBuilder
.
append
(
" "
);
stringBuilder
.
append
(
flag
);
stringBuilder
.
append
(
" "
);
}
/***
* 装配查询条件
* @param stringBuilder
* @param jsonObject
*/
private
static
void
setCondition
(
StringBuilder
stringBuilder
,
JSONObject
jsonObject
)
{
if
(
jsonObject
.
containsKey
(
"condition"
)
&&
"isNull"
.
equals
(
jsonObject
.
getString
(
"condition"
)))
{
stringBuilder
.
append
(
jsonObject
.
getString
(
"name"
));
stringBuilder
.
append
(
" is null "
);
return
;
}
for
(
String
field
:
MUST_CONDTION_FIELDS
)
{
if
(!
jsonObject
.
containsKey
(
field
)
||
StringUtils
.
isBlank
(
jsonObject
.
getString
(
field
)))
{
return
;
}
}
try
{
String
condtion
=
jsonObject
.
getString
(
"condition"
);
if
(!
Constant
.
symbolMap
.
containsKey
(
condtion
))
{
return
;
}
String
name
=
jsonObject
.
getString
(
"name"
);
Object
value
=
jsonObject
.
get
(
"value"
);
boolean
isNumber
=
false
;
if
(
jsonObject
.
containsKey
(
"dataType"
)
&&
"number"
.
equals
(
jsonObject
.
getString
(
"dataType"
)))
{
isNumber
=
true
;
}
switch
(
condtion
)
{
case
"like"
:
{
value
=
"'%"
+
jsonObject
.
get
(
"value"
).
toString
()
+
"%'"
;
break
;
}
case
"likeLeft"
:
{
value
=
"'%"
+
jsonObject
.
get
(
"value"
).
toString
();
break
;
}
case
"likeRight"
:
{
value
=
jsonObject
.
get
(
"value"
).
toString
()
+
"%'"
;
break
;
}
case
"in"
:
{
//数字类型
if
(
isNumber
)
{
value
=
jsonObject
.
getJSONArray
(
"value"
).
toJSONString
().
replaceAll
(
"\",\""
,
","
).
replace
(
"[\""
,
"("
).
replace
(
"\"]"
,
")"
).
replace
(
"["
,
"("
).
replace
(
"]"
,
")"
);
}
else
{
value
=
jsonObject
.
getJSONArray
(
"value"
).
toJSONString
().
replaceAll
(
"\",\""
,
"','"
).
replace
(
"[\""
,
"('"
).
replace
(
"\"]"
,
"')"
);
}
break
;
}
default
:
value
=
isNumber
==
true
?
value
:
"'"
+
value
+
"'"
;
break
;
}
stringBuilder
.
append
(
name
);
stringBuilder
.
append
(
" "
);
stringBuilder
.
append
(
Constant
.
symbolMap
.
get
(
condtion
));
stringBuilder
.
append
(
" "
);
stringBuilder
.
append
(
value
);
}
catch
(
Exception
ex
)
{
log
.
error
(
"{}"
,
ex
);
}
}
public
static
String
get
(
JSONObject
jo
)
{
String
sql
=
getSql
(
jo
);
if
(
"()"
.
equals
(
sql
))
{
return
null
;
}
else
{
return
sql
;
}
}
public
static
void
main
(
String
[]
ag
)
{
log
.
info
(
JSON
.
toJSONString
(
getSql
(
getData
())));
}
public
static
JSONObject
getData
()
{
try
{
//data-数据授权-人物类.json
InputStream
inputStream
=
new
ClassPathResource
(
"1.json"
).
getInputStream
();
String
text
=
new
BufferedReader
(
new
InputStreamReader
(
inputStream
,
StandardCharsets
.
UTF_8
)).
lines
().
collect
(
Collectors
.
joining
(
"\n"
));
inputStream
.
close
();
return
JSON
.
parseObject
(
text
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
}
src/main/java/com/zzsn/event/permit/UQueryEntity.java
0 → 100644
浏览文件 @
4eb62d03
package
com
.
zzsn
.
event
.
permit
;
import
lombok.Data
;
import
org.elasticsearch.index.query.BoolQueryBuilder
;
import
java.util.List
;
@Data
public
class
UQueryEntity
{
private
String
userId
;
private
String
flagCode
;
private
String
sql
;
private
String
fields
;
private
List
<
String
>
shardIds
;
private
BoolQueryBuilder
queryBuilder
;
}
src/main/java/com/zzsn/event/service/ISubjectTypeService.java
浏览文件 @
4eb62d03
...
...
@@ -7,6 +7,7 @@ import com.zzsn.event.vo.SubjectTreeVO;
import
com.zzsn.event.vo.SubjectTypeTreeVO
;
import
com.zzsn.event.vo.SubjectTypeVo
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
/**
...
...
@@ -79,7 +80,8 @@ public interface ISubjectTypeService extends IService<SubjectType> {
* @author lkg
* @date 2025/1/7
*/
List
<
SubjectTreeVO
>
subjectsByFacePublic
(
Integer
facePublic
,
String
environment
);
List
<
SubjectTreeVO
>
subjectsByFacePublic
(
Integer
facePublic
,
String
environment
,
String
username
,
String
flagCode
,
HttpServletRequest
request
);
/**
* 专题和分类列表-研究中心
...
...
src/main/java/com/zzsn/event/service/SubjectService.java
浏览文件 @
4eb62d03
...
...
@@ -7,6 +7,7 @@ import com.zzsn.event.entity.Subject;
import
com.zzsn.event.util.tree.Node
;
import
com.zzsn.event.vo.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
/**
...
...
@@ -37,7 +38,7 @@ public interface SubjectService extends IService<Subject> {
* @author lkg
* @date 2024/12/18
*/
Page
<
SubjectPage
>
researchCenterPageList
(
SubjectCondition
subjectCondition
,
Integer
pageNo
,
Integer
pageSize
);
Page
<
SubjectPage
>
researchCenterPageList
(
SubjectCondition
subjectCondition
,
Integer
pageNo
,
Integer
pageSize
,
String
flagCode
,
HttpServletRequest
request
,
String
username
);
/**
* 当前用户可见的专题分页列表-研究中心
...
...
@@ -50,7 +51,7 @@ public interface SubjectService extends IService<Subject> {
* @author lkg
* @date 2025/2/8
*/
Page
<
Node
>
visiblePageList
(
String
username
,
Integer
type
,
String
subjectName
,
Integer
pageNo
,
Integer
pageSize
,
String
environment
);
Page
<
Node
>
visiblePageList
(
String
username
,
Integer
type
,
String
subjectName
,
Integer
pageNo
,
Integer
pageSize
,
String
environment
,
HttpServletRequest
request
,
String
flagCode
);
/**
* 获取专题详情(包含样例文章信息)
...
...
src/main/java/com/zzsn/event/service/impl/InformationServiceImpl.java
浏览文件 @
4eb62d03
...
...
@@ -17,6 +17,7 @@ import com.zzsn.event.entity.*;
import
com.zzsn.event.enums.EnumHandlerStatus
;
import
com.zzsn.event.enums.EnumOperateWay
;
import
com.zzsn.event.es.EsService
;
import
com.zzsn.event.mapper.SubjectMapper
;
import
com.zzsn.event.service.*
;
import
com.zzsn.event.util.*
;
import
com.zzsn.event.util.user.AuthUtil
;
...
...
@@ -90,7 +91,7 @@ public class InformationServiceImpl implements InformationService {
private
SysDictItemService
sysDictItemService
;
@Autowired
private
PythonUtil
pythonUtil
;
private
String
subjectId
=
"1898653164373065730"
;
//中外智库专栏对应专题id
@Override
public
IPage
<
EventDataVO
>
collectPageList
(
InfoDataSearchCondition
eventDataCondition
)
{
...
...
@@ -154,6 +155,9 @@ public class InformationServiceImpl implements InformationService {
return
page
;
}
@Autowired
private
SubjectMapper
subjectMapper
;
@Override
public
Result
subjectPageListGroupByLabel
(
UserVo
userVo
,
InfoDataSearchCondition
searchCondition
)
{
...
...
@@ -194,6 +198,20 @@ public class InformationServiceImpl implements InformationService {
//标签处理
List
<
LabelModelVo
>
modelVoList
=
modelMap
.
get
(
info
.
getSubjectId
());
formatLabel
(
modelVoList
,
info
);
try
{
//多个主题的保留分数最高的
List
<
Label
>
listLabel
=
info
.
getLabels
();
// 使用流操作找到score最大的Label
Optional
<
Label
>
maxLabel
=
listLabel
.
stream
()
.
filter
(
label
->
searchCondition
.
getLabelMark
().
equals
(
label
.
getLabelMark
()))
// 过滤labelMark
.
peek
(
label
->
label
.
setStatus
(
label
.
getStatus
()
==
null
?
0
:
label
.
getStatus
()))
// 将null赋值为0
.
max
(
Comparator
.
comparingDouble
(
Label:
:
getStatus
));
List
<
Label
>
maxLabelList
=
maxLabel
.
map
(
Collections:
:
singletonList
).
orElse
(
Collections
.
emptyList
());
info
.
setLabels
(
maxLabelList
);
}
catch
(
Exception
e
){
log
.
error
(
"处理得分最高标签异常"
,
e
);
}
dataList
.
add
(
info
);
}
Map
<
String
,
List
<
DisplayInfo
>>
mapList
=
groupedByLabelMark
(
dataList
,
searchCondition
);
...
...
@@ -205,7 +223,7 @@ public class InformationServiceImpl implements InformationService {
BeanUtils
.
copyProperties
(
obj
,
copy
);
num
++;
copy
.
setIndex
(
num
+
"."
);
copy
.
setTitle
(
StringUtils
.
isNotEmpty
(
copy
.
getTitle
())?
copy
.
getTitle
()
+
"。"
:
""
);
//
copy.setTitle(StringUtils.isNotEmpty(copy.getTitle())?copy.getTitle() + "。":"");
listN
.
add
(
copy
);
}
HashMap
map
=
new
HashMap
();
...
...
@@ -216,6 +234,10 @@ public class InformationServiceImpl implements InformationService {
}
else
{
//不加标签获取列表数据
searchCondition
.
setLabelMark
(
null
);
//中外智库专栏-数据需排序
if
(
StringUtils
.
isNotBlank
(
searchCondition
.
getSubjectId
())
&&
searchCondition
.
getSubjectId
().
equals
(
subjectId
)){
searchCondition
.
setColumn
(
"yqgzzk"
);
}
specialInformationIPage
=
esService
.
pageListByCondition
(
searchCondition
,
subjectIdList
);
long
totalT
=
specialInformationIPage
.
getTotal
();
if
(
totalT
>
0
)
{
...
...
@@ -233,8 +255,38 @@ public class InformationServiceImpl implements InformationService {
List
<
LabelModelVo
>
modelVoList
=
modelMap
.
get
(
info
.
getSubjectId
());
formatLabel
(
modelVoList
,
info
);
info
.
setIndex
(
num
+
"."
);
// info.setTitle(StringUtils.isNotEmpty(info.getTitle())?info.getTitle() + "。":"");
dataList
.
add
(
info
);
}
//中外智库专栏-数据需过滤
if
(
StringUtils
.
isNotBlank
(
searchCondition
.
getSubjectId
())
&&
searchCondition
.
getSubjectId
().
equals
(
subjectId
)){
ArrayList
<
DisplayInfo
>
saveList
=
new
ArrayList
<>(
list
.
size
());
List
<
String
>
titles
=
new
ArrayList
<>(
list
.
size
());
for
(
DisplayInfo
s:
dataList
){
String
title
=
s
.
getTitle
().
trim
();
int
tem
=
0
;
for
(
String
t:
titles
){
double
simforcatl
=
SimilarityUtil
.
simforcatl
(
title
,
t
);
if
(
simforcatl
>
0.83
){
log
.
info
(
"getArticleNode 获取文章列表中标题为[{}],和标题为[{}],的相似度大于80%过滤后者"
,
title
,
t
);
tem
=
1
;
break
;
}
}
if
(
tem
==
0
){
titles
.
add
(
title
);
}
else
{
continue
;
}
saveList
.
add
(
s
);
}
for
(
DisplayInfo
info:
saveList
){
if
(
StringUtils
.
isNotBlank
(
info
.
getSubtitle
())){
info
.
setTitle
(
info
.
getSubtitle
()+
info
.
getTitle
());
}
}
return
Result
.
OK
(
saveList
);
}
return
Result
.
OK
(
dataList
);
}
}
...
...
@@ -933,16 +985,21 @@ public class InformationServiceImpl implements InformationService {
@Override
public
void
supplyByCondition
(
String
subjectId
,
List
<
String
>
themeIds
)
{
List
<
String
>
bindSubjectIds
=
subjectMapper
.
getBindSubjectIds
(
subjectId
);
Subject
subject
=
subjectService
.
getById
(
subjectId
);
String
startTime
=
esService
.
getFirstTime
(
theme
Ids
,
"asc"
);
String
endTime
=
esService
.
getFirstTime
(
theme
Ids
,
"desc"
);
String
startTime
=
esService
.
getFirstTime
(
bindSubject
Ids
,
"asc"
);
String
endTime
=
esService
.
getFirstTime
(
bindSubject
Ids
,
"desc"
);
List
<
String
>
dateList
=
DateUtil
.
betweenDate
(
startTime
,
endTime
);
if
(
CollectionUtils
.
isNotEmpty
(
dateList
))
{
List
<
String
>
redisCacheList
=
new
ArrayList
<>();
for
(
String
date
:
dateList
)
{
//2025-01-21:123,123,123
String
dateStr
=
date
+
":"
+
StringUtils
.
join
(
","
,
themeIds
);
redisCacheList
.
add
(
dateStr
);
if
(
themeIds
!=
null
&&
!
themeIds
.
isEmpty
()){
//2025-01-21:123,123,123
String
dateStr
=
date
+
":"
+
StringUtils
.
join
(
","
,
themeIds
);
redisCacheList
.
add
(
dateStr
);
}
else
{
redisCacheList
.
add
(
date
);
}
}
redisUtil
.
rpushMultipleValues
(
Constants
.
HISTORY_SUBJECT_DATE_QUEUE
+
subject
.
getSubjectCode
(),
redisCacheList
.
toArray
(
new
String
[
0
]));
}
...
...
src/main/java/com/zzsn/event/service/impl/SubjectServiceImpl.java
浏览文件 @
4eb62d03
...
...
@@ -21,11 +21,10 @@ import com.zzsn.event.enums.BindTypeEnum;
import
com.zzsn.event.enums.CodePrefixEnum
;
import
com.zzsn.event.enums.SourceTypeEnum
;
import
com.zzsn.event.mapper.SubjectMapper
;
import
com.zzsn.event.permit.ParamAop
;
import
com.zzsn.event.permit.UQueryEntity
;
import
com.zzsn.event.service.*
;
import
com.zzsn.event.util.CodeGenerateUtil
;
import
com.zzsn.event.util.CronUtil
;
import
com.zzsn.event.util.HttpUtil
;
import
com.zzsn.event.util.RedisUtil
;
import
com.zzsn.event.util.*
;
import
com.zzsn.event.util.tree.Node
;
import
com.zzsn.event.util.user.UserUtil
;
import
com.zzsn.event.util.user.UserVo
;
...
...
@@ -41,6 +40,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.time.LocalDate
;
import
java.time.ZoneId
;
...
...
@@ -104,7 +104,8 @@ public class SubjectServiceImpl extends ServiceImpl<SubjectMapper, Subject> impl
private
InfoSourceGroupService
infoSourceGroupService
;
@Autowired
private
ISubjectInfoSourceMapService
iSubjectInfoSourceMapService
;
@Autowired
private
ParamAop
paramAop
;
@Value
(
"${python.subjectProcessorUrl}"
)
private
String
subjectProcessorUrl
;
@Value
(
"${clb.subject.default.processing.advanceMonth}"
)
...
...
@@ -159,11 +160,31 @@ public class SubjectServiceImpl extends ServiceImpl<SubjectMapper, Subject> impl
}
@Override
public
Page
<
SubjectPage
>
researchCenterPageList
(
SubjectCondition
subjectCondition
,
Integer
pageNo
,
Integer
pageSize
)
{
public
Page
<
SubjectPage
>
researchCenterPageList
(
SubjectCondition
subjectCondition
,
Integer
pageNo
,
Integer
pageSize
,
String
flagCode
,
HttpServletRequest
request
,
String
username
)
{
Integer
facePublic
=
subjectCondition
.
getFacePublic
();
Page
<
SubjectPage
>
page
=
new
Page
<>(
pageNo
,
pageSize
);
if
(
facePublic
!=
null
&&
facePublic
==
1
)
{
page
=
baseMapper
.
researchCenterFacePageList
(
subjectCondition
,
page
);
//公开的添加数据权限-查询拥有权限的公开专题以及个人创建的公开专题
String
sql
=
""
;
if
(
StringUtils
.
isNotBlank
(
flagCode
)){
String
accesstoken
=
request
.
getHeader
(
"Accesstoken"
);
String
userId
=
TokenUtil
.
verifyToken
(
accesstoken
);
UQueryEntity
queryEntity
=
new
UQueryEntity
();
queryEntity
.
setUserId
(
userId
);
queryEntity
.
setFlagCode
(
flagCode
);
queryEntity
=
paramAop
.
startArs
(
queryEntity
,
accesstoken
,
subjectCondition
.
getEnvironment
());
String
sqlStr
=
queryEntity
.
getSql
();
if
(
sqlStr
.
contains
(
"()"
)){
sqlStr
=
sqlStr
.
replace
(
"()"
,
"(1=2)"
);
}
if
(
sqlStr
.
contains
(
"id"
)){
sqlStr
=
sqlStr
.
replace
(
"id"
,
"d.id"
);
}
sql
=
sqlStr
;
log
.
info
(
"researchCenterPageList sql:{}"
,
sql
);
}
log
.
info
(
"researchCenterPageList username:{},environment:{},sql:{}"
,
username
,
subjectCondition
.
getEnvironment
(),
sql
);
page
=
baseMapper
.
researchCenterFacePageList
(
subjectCondition
,
page
,
sql
,
username
);
}
else
{
//查询类别id的所有明细id
List
<
String
>
typeIds
=
new
ArrayList
<>();
...
...
@@ -180,9 +201,25 @@ public class SubjectServiceImpl extends ServiceImpl<SubjectMapper, Subject> impl
}
@Override
public
Page
<
Node
>
visiblePageList
(
String
username
,
Integer
type
,
String
subjectName
,
Integer
pageNo
,
Integer
pageSize
,
String
environment
)
{
public
Page
<
Node
>
visiblePageList
(
String
username
,
Integer
type
,
String
subjectName
,
Integer
pageNo
,
Integer
pageSize
,
String
environment
,
HttpServletRequest
request
,
String
flagCode
)
{
Page
<
String
>
page
=
new
Page
<>(
pageNo
,
pageSize
);
return
baseMapper
.
visibleList
(
username
,
type
,
subjectName
,
page
,
environment
);
String
sql
=
""
;
if
(
StringUtils
.
isNotBlank
(
flagCode
)){
String
accesstoken
=
request
.
getHeader
(
"Accesstoken"
);
String
userId
=
TokenUtil
.
verifyToken
(
accesstoken
);
UQueryEntity
queryEntity
=
new
UQueryEntity
();
queryEntity
.
setUserId
(
userId
);
queryEntity
.
setFlagCode
(
flagCode
);
queryEntity
=
paramAop
.
startArs
(
queryEntity
,
accesstoken
,
environment
);
String
sqlStr
=
queryEntity
.
getSql
();
if
(
sqlStr
.
contains
(
"()"
)){
sqlStr
=
sqlStr
.
replace
(
"()"
,
"(1=2)"
);
}
sql
=
sqlStr
;
log
.
info
(
"visiblePageList sql:{}"
,
sql
);
}
log
.
info
(
"visiblePageList username:{},type:{},subjectName:{},environment:{},sql:{}"
,
username
,
type
,
subjectName
,
environment
,
sql
);
return
baseMapper
.
visibleList
(
username
,
type
,
subjectName
,
page
,
environment
,
sql
);
}
@Override
...
...
@@ -246,8 +283,7 @@ public class SubjectServiceImpl extends ServiceImpl<SubjectMapper, Subject> impl
//第一次启用时,添加redis缓存,,用于向专题里进数据
if
(
byId
.
getSubjectType
()
==
3
)
{
//复合专题根据绑定的专题数据时间确定要入库的数据时间范围
List
<
String
>
ids
=
this
.
baseMapper
.
getBindSubjectIds
(
byId
.
getId
());
informationService
.
supplyByCondition
(
subjectId
,
ids
);
informationService
.
supplyByCondition
(
subjectId
,
null
);
}
else
{
setRedisCache
(
subjectId
);
}
...
...
src/main/java/com/zzsn/event/service/impl/SubjectTypeServiceImpl.java
浏览文件 @
4eb62d03
...
...
@@ -6,7 +6,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.zzsn.event.entity.SubjectType
;
import
com.zzsn.event.mapper.SubjectTypeMapper
;
import
com.zzsn.event.permit.ParamAop
;
import
com.zzsn.event.permit.UQueryEntity
;
import
com.zzsn.event.service.ISubjectTypeService
;
import
com.zzsn.event.util.TokenUtil
;
import
com.zzsn.event.util.tree.Node
;
import
com.zzsn.event.util.tree.TreeUtil
;
import
com.zzsn.event.util.user.UserUtil
;
...
...
@@ -14,12 +17,15 @@ import com.zzsn.event.vo.SubjectPage;
import
com.zzsn.event.vo.SubjectTreeVO
;
import
com.zzsn.event.vo.SubjectTypeTreeVO
;
import
com.zzsn.event.vo.SubjectTypeVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -29,6 +35,7 @@ import java.util.stream.Collectors;
* @author lkg
* @date 2024/4/28
*/
@Slf4j
@Service
public
class
SubjectTypeServiceImpl
extends
ServiceImpl
<
SubjectTypeMapper
,
SubjectType
>
implements
ISubjectTypeService
{
...
...
@@ -41,6 +48,8 @@ public class SubjectTypeServiceImpl extends ServiceImpl<SubjectTypeMapper, Subje
public
List
<
Node
>
researchCenterEnableList
(
String
username
)
{
return
baseMapper
.
enableList
(
1
,
username
);
}
@Autowired
private
ParamAop
paramAop
;
@Override
public
List
<
String
>
belowIdList
(
String
typeId
,
Integer
category
)
{
...
...
@@ -95,8 +104,27 @@ public class SubjectTypeServiceImpl extends ServiceImpl<SubjectTypeMapper, Subje
}
@Override
public
List
<
SubjectTreeVO
>
subjectsByFacePublic
(
Integer
facePublic
,
String
environment
)
{
return
baseMapper
.
subjectsByFacePublic
(
facePublic
,
environment
);
public
List
<
SubjectTreeVO
>
subjectsByFacePublic
(
Integer
facePublic
,
String
environment
,
String
username
,
String
flagCode
,
HttpServletRequest
request
)
{
String
sql
=
""
;
if
(
StringUtils
.
isNotBlank
(
flagCode
)){
String
accesstoken
=
request
.
getHeader
(
"Accesstoken"
);
String
userId
=
TokenUtil
.
verifyToken
(
accesstoken
);
UQueryEntity
queryEntity
=
new
UQueryEntity
();
queryEntity
.
setUserId
(
userId
);
queryEntity
.
setFlagCode
(
flagCode
);
queryEntity
=
paramAop
.
startArs
(
queryEntity
,
accesstoken
,
environment
);
String
sqlStr
=
queryEntity
.
getSql
();
if
(
sqlStr
.
contains
(
"()"
)){
sqlStr
=
sqlStr
.
replace
(
"()"
,
"(1=2)"
);
}
sql
=
sqlStr
;
log
.
info
(
"subjectsByFacePublic sql:{}"
,
sql
);
}
log
.
info
(
"subjectsByFacePublic username:{},facePublic:{},environment:{},sql:{}"
,
username
,
facePublic
,
environment
,
sql
);
List
<
SubjectTreeVO
>
list
=
baseMapper
.
subjectsByFacePublic
(
facePublic
,
environment
,
username
,
sql
);
log
.
info
(
"subjectsByFacePublic=======list.size:{}"
,
list
.
size
());
return
list
;
}
@Override
...
...
src/main/java/com/zzsn/event/util/SimilarityUtil.java
0 → 100644
浏览文件 @
4eb62d03
package
com
.
zzsn
.
event
.
util
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
/**
* 编辑距离的两字符串相似度
*
* @author jianpo.mo
*/
public
class
SimilarityUtil
{
private
static
int
min
(
int
one
,
int
two
,
int
three
)
{
int
min
=
one
;
if
(
two
<
min
)
{
min
=
two
;
}
if
(
three
<
min
)
{
min
=
three
;
}
return
min
;
}
public
static
int
ld
(
String
str1
,
String
str2
)
{
int
d
[][];
//矩阵
int
n
=
str1
.
length
();
int
m
=
str2
.
length
();
int
i
;
//遍历str1的
int
j
;
//遍历str2的
char
ch1
;
//str1的
char
ch2
;
//str2的
int
temp
;
//记录相同字符,在某个矩阵位置值的增量,不是0就是1
if
(
n
==
0
)
{
return
m
;
}
if
(
m
==
0
)
{
return
n
;
}
d
=
new
int
[
n
+
1
][
m
+
1
];
for
(
i
=
0
;
i
<=
n
;
i
++)
{
//初始化第一列
d
[
i
][
0
]
=
i
;
}
for
(
j
=
0
;
j
<=
m
;
j
++)
{
//初始化第一行
d
[
0
][
j
]
=
j
;
}
for
(
i
=
1
;
i
<=
n
;
i
++)
{
//遍历str1
ch1
=
str1
.
charAt
(
i
-
1
);
//去匹配str2
for
(
j
=
1
;
j
<=
m
;
j
++)
{
ch2
=
str2
.
charAt
(
j
-
1
);
if
(
ch1
==
ch2
)
{
temp
=
0
;
}
else
{
temp
=
1
;
}
//左边+1,上边+1, 左上角+temp取最小
d
[
i
][
j
]
=
min
(
d
[
i
-
1
][
j
]+
1
,
d
[
i
][
j
-
1
]+
1
,
d
[
i
-
1
][
j
-
1
]+
temp
);
}
}
return
d
[
n
][
m
];
}
public
static
double
sim
(
String
str1
,
String
str2
)
{
int
ld
=
ld
(
str1
,
str2
);
return
1
-
(
double
)
ld
/
Math
.
min
(
str1
.
length
(),
str2
.
length
());
}
public
static
int
ldforcatlcn
(
String
str1
,
String
str2
)
{
if
(
str1
==
null
||
str2
==
null
){
return
0
;
}
int
d
=
0
;
//相同数
int
f
=
0
;
//相同数
int
n
=
str1
.
length
();
int
m
=
str2
.
length
();
int
i
;
//遍历str1的
int
j
;
//遍历str2的
String
ch1
;
//str1的
String
ch2
;
//str2的
if
(
n
==
0
)
{
return
0
;
}
if
(
m
==
0
)
{
return
0
;
}
for
(
i
=
0
;
i
<
n
;
i
++)
{
//遍历str1
ch1
=
str1
.
substring
(
i
,
i
+
1
);
//去匹配str2
if
(
str2
.
contains
(
ch1
)){
d
++;
}
}
for
(
i
=
0
;
i
<
m
;
i
++)
{
//遍历str1
ch2
=
str2
.
substring
(
i
,
i
+
1
);
//去匹配str2
if
(
str1
.
contains
(
ch2
)){
f
++;
}
}
return
Math
.
min
(
d
,
f
);
}
public
static
double
ldforcatlen
(
String
str1
,
String
str2
)
{
if
(
str1
==
null
||
str2
==
null
){
return
0
;
}
String
[]
a
=
str1
.
split
(
"[^a-zA-Z]+"
);
String
[]
b
=
str2
.
split
(
"[^a-zA-Z]+"
);
int
d
=
0
;
//相同数
int
f
=
0
;
//相同数
int
n
=
a
.
length
;
int
m
=
b
.
length
;
int
i
;
//遍历str1的
String
ch1
;
//str1的
String
ch2
;
//str2的
if
(
n
==
0
)
{
return
0
;
}
if
(
m
==
0
)
{
return
0
;
}
for
(
i
=
0
;
i
<
n
;
i
++)
{
//遍历str1
ch1
=
a
[
i
];
//去匹配str2
if
(
str2
.
contains
(
ch1
)){
d
++;
}
}
for
(
i
=
0
;
i
<
m
;
i
++)
{
//遍历str1
ch2
=
b
[
i
];
//去匹配str2
if
(
str1
.
contains
(
ch2
)){
f
++;
}
}
return
(
double
)(
Math
.
min
(
d
,
f
))/(
Math
.
min
(
m
,
n
));
}
public
static
double
simforcatl
(
String
str1
,
String
str2
)
{
if
(
isChinese
(
str1
)&&
isChinese
(
str2
)){
int
ld
=
ldforcatlcn
(
str1
,
str2
);
return
(
double
)
ld
/
Math
.
min
(
str1
.
length
(),
str2
.
length
());
}
if
(
isEnglish
(
str1
)&&
isEnglish
(
str2
)){
double
ld
=
ldforcatlen
(
str1
,
str2
);
return
ld
;
}
return
0
;
}
public
static
boolean
isEnglish
(
String
charaString
){
return
charaString
.
getBytes
().
length
==
charaString
.
length
();
}
public
static
boolean
isChinese
(
String
str
){
String
regEx
=
"[\\u4e00-\\u9fa5]+"
;
Pattern
p
=
Pattern
.
compile
(
regEx
);
Matcher
m
=
p
.
matcher
(
str
);
if
(
m
.
find
())
return
true
;
else
return
false
;
}
public
static
void
main
(
String
[]
args
)
{
String
str1
=
"【观察】 三年行动 国企改革再升级"
;
String
str2
=
"三年行动 国企改革再升级"
;
String
str3
=
"【国企改革】三年行动, 国企改革再升级"
;
System
.
out
.
println
(
"sim12="
+
simforcatl
(
str1
,
str2
));
System
.
out
.
println
(
"sim13="
+
simforcatl
(
str1
,
str3
));
System
.
out
.
println
(
"sim23="
+
simforcatl
(
str2
,
str3
));
String
str4
=
"混合所有制改革"
;
String
str5
=
"混改"
;
System
.
out
.
println
(
"sim45="
+
simforcatl
(
str4
,
str5
));
System
.
out
.
println
(
"sim55="
+
simforcatl
(
str5
,
str5
));
String
str6
=
"【国企混改】国企混合所有制改革实务(上)"
;
String
str7
=
"【国企混改】国企混合所有制改革实务(下)"
;
System
.
out
.
println
(
"sim67="
+
simforcatl
(
str5
,
str5
));
}
}
\ No newline at end of file
src/main/java/com/zzsn/event/util/TokenUtil.java
0 → 100644
浏览文件 @
4eb62d03
package
com
.
zzsn
.
event
.
util
;
import
com.auth0.jwt.JWT
;
import
com.auth0.jwt.JWTVerifier
;
import
com.auth0.jwt.algorithms.Algorithm
;
import
com.auth0.jwt.interfaces.Claim
;
import
com.auth0.jwt.interfaces.DecodedJWT
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* token util
*
* @author yanrj 2018-7-17 13:17:11
*
*/
public
class
TokenUtil
{
/**
* createToken
*
* @param userId
* @return
* @throws Exception
*/
public
static
String
createToken
(
String
userId
,
String
timeStr
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"alg"
,
"HS256"
);
map
.
put
(
"typ"
,
"JWT"
);
map
.
put
(
"timeStr"
,
timeStr
);
String
token
=
JWT
.
create
().
withHeader
(
map
)
// header
.
withClaim
(
"userId"
,
userId
)
// payload
.
withClaim
(
"timeStr"
,
timeStr
)
// payload
.
sign
(
Algorithm
.
HMAC256
(
"secret"
));
return
token
;
}
/**
* verifyToken
*
* @param token
* @return
* @throws Exception
*/
public
static
String
verifyToken
(
String
token
){
JWTVerifier
verifier
=
JWT
.
require
(
Algorithm
.
HMAC256
(
"secret"
)).
build
();
DecodedJWT
jwt
=
verifier
.
verify
(
token
);
Map
<
String
,
Claim
>
claims
=
jwt
.
getClaims
();
return
claims
.
get
(
"userId"
).
asString
();
}
/**
* get token time String
*
* @param token
* @return
* @throws Exception
*/
public
static
String
getTimeStrToken
(
String
token
)
throws
Exception
{
JWTVerifier
verifier
=
JWT
.
require
(
Algorithm
.
HMAC256
(
"secret"
)).
build
();
DecodedJWT
jwt
=
verifier
.
verify
(
token
);
Map
<
String
,
Claim
>
claims
=
jwt
.
getClaims
();
return
claims
.
get
(
"timeStr"
).
asString
();
}
/**
* main
*
* @param args
* @throws Exception
*/
// public static void main(String[] args) throws Exception {
//// Long startTime = System.currentTimeMillis();
// String token = createToken("190","1578276314015");
// System.out.println(token);
//// Long midTime = System.currentTimeMillis();
//// System.out.println(midTime - startTime + "ms");
//// String userId = verifyToken(token);
//// System.out.println(userId);
//// Long endTime = System.currentTimeMillis();
//// System.out.println(endTime - midTime + "ms");
// System.out.println( verifyToken(token) );
// System.out.println( getTimeStrToken(token) );
// }
}
src/main/java/com/zzsn/event/vo/InfoDataSearchCondition.java
浏览文件 @
4eb62d03
...
...
@@ -63,7 +63,7 @@ public class InfoDataSearchCondition {
private
String
isAll
;
//专题分类(1-专题;2-事件)
private
Integer
category
;
private
Integer
category
=
1
;
//是否视频 "video"
private
String
video
;
...
...
src/main/java/com/zzsn/event/vo/es/DisplayInfo.java
浏览文件 @
4eb62d03
...
...
@@ -46,6 +46,7 @@ public class DisplayInfo {
//标题
private
String
title
;
private
String
titleRaw
;
private
String
subtitle
;
//采集来源(如通用、定制、微信公众号等)
private
String
source
;
//附加字段
...
...
src/main/java/com/zzsn/event/vo/es/SpecialInformation.java
浏览文件 @
4eb62d03
...
...
@@ -46,6 +46,7 @@ public class SpecialInformation {
//标题
private
String
title
;
private
String
titleRaw
;
private
String
subtitle
;
//采集来源(如通用、定制、微信公众号等)
private
String
source
;
//附加字段
...
...
src/main/resources/application-dev.yml
浏览文件 @
4eb62d03
...
...
@@ -159,7 +159,7 @@ python:
clearDuplicateHistoryUrl
:
http://1.95.13.40:8080/subject/delete_history_data
jeecg
:
shiro
:
excludeUrls
:
/info/subjectPageListGroupByLabel,/subject/simple/queryInfoNoSign
excludeUrls
:
/info/subjectPageListGroupByLabel,/subject/simple/queryInfoNoSign
,/subject/manage/visiblePageListNoSign
kafka
:
topic
:
...
...
@@ -183,3 +183,8 @@ caiji:
url
:
http://1.95.133.166:8823/baseSourceInfo/api/subject/keywordSave
projectCode
:
zzsn_prod
projectName
:
克虏宝正式
data-permit
:
dataPermitGetQueryEntityTest
:
http://1.95.77.159:10089/permission/
dataPermitGetQueryEntityProd
:
http://1.95.14.24:8060/
src/main/resources/application-pro.yml
浏览文件 @
4eb62d03
...
...
@@ -151,7 +151,7 @@ python:
clearDuplicateHistoryUrl
:
http://1.95.13.40:8080/subject/delete_history_data
jeecg
:
shiro
:
excludeUrls
:
excludeUrls
:
/info/subjectPageListGroupByLabel,/subject/simple/queryInfoNoSign,/subject/manage/visiblePageListNoSign
kafka
:
topic
:
subject
:
...
...
@@ -165,4 +165,8 @@ clb:
subject
:
default
:
processing
:
advanceMonth
:
6
\ No newline at end of file
advanceMonth
:
6
data-permit
:
dataPermitGetQueryEntityTest
:
http://1.95.77.159:10089/permission/
dataPermitGetQueryEntityProd
:
http://1.95.14.24:8060/
\ No newline at end of file
src/main/resources/application-test.yml
浏览文件 @
4eb62d03
...
...
@@ -161,7 +161,7 @@ python:
clearDuplicateHistoryUrl
:
http://1.95.13.40:8080/subject/delete_history_data
jeecg
:
shiro
:
excludeUrls
:
info/subjectPageListGroupByLabel,/subject/simple/queryInfoNoSign
excludeUrls
:
info/subjectPageListGroupByLabel,/subject/simple/queryInfoNoSign
,/subject/manage/visiblePageListNoSign
kafka
:
topic
:
subject
:
...
...
@@ -173,3 +173,7 @@ clb:
default
:
processing
:
advanceMonth
:
6
data-permit
:
dataPermitGetQueryEntityTest
:
http://1.95.77.159:10089/permission/
dataPermitGetQueryEntityProd
:
http://1.95.14.24:8060/
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论