Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
K
know-base
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
张京坤
know-base
Commits
56624370
提交
56624370
authored
1月 04, 2024
作者:
ChenShiQiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
es
上级
2d99760c
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
702 行增加
和
1 行删除
+702
-1
pom.xml
pom.xml
+16
-0
Constants.java
src/main/java/com/zzsn/knowbase/constant/Constants.java
+2
-0
KnowledgeController.java
...ava/com/zzsn/knowbase/controller/KnowledgeController.java
+81
-0
Content.java
src/main/java/com/zzsn/knowbase/entity/Content.java
+22
-0
Knowledge.java
src/main/java/com/zzsn/knowbase/entity/Knowledge.java
+112
-0
IKnowledgeService.java
...ain/java/com/zzsn/knowbase/service/IKnowledgeService.java
+43
-0
KnowledgeServiceImpl.java
.../com/zzsn/knowbase/service/impl/KnowledgeServiceImpl.java
+167
-0
CodeGenerateUtil.java
src/main/java/com/zzsn/knowbase/util/CodeGenerateUtil.java
+140
-0
EsDateUtil.java
src/main/java/com/zzsn/knowbase/util/EsDateUtil.java
+41
-0
EsOpUtil.java
src/main/java/com/zzsn/knowbase/util/EsOpUtil.java
+0
-0
KnowledgeParam.java
src/main/java/com/zzsn/knowbase/vo/KnowledgeParam.java
+58
-0
KnowledgeVO.java
src/main/java/com/zzsn/knowbase/vo/KnowledgeVO.java
+15
-0
application.yml
src/main/resources/application.yml
+5
-1
没有找到文件。
pom.xml
浏览文件 @
56624370
...
@@ -127,6 +127,22 @@
...
@@ -127,6 +127,22 @@
<artifactId>
fastdfs-client
</artifactId>
<artifactId>
fastdfs-client
</artifactId>
<version>
1.26.1-RELEASE
</version>
<version>
1.26.1-RELEASE
</version>
</dependency>
</dependency>
<!-- es-->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-elasticsearch
</artifactId>
<version>
2.2.6.RELEASE
</version>
</dependency>
<dependency>
<groupId>
org.springframework.data
</groupId>
<artifactId>
spring-data-elasticsearch
</artifactId>
<version>
4.0.5.RELEASE
</version>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger-common
</artifactId>
<version>
3.0.0
</version>
</dependency>
</dependencies>
</dependencies>
...
...
src/main/java/com/zzsn/knowbase/constant/Constants.java
浏览文件 @
56624370
...
@@ -28,6 +28,8 @@ public class Constants {
...
@@ -28,6 +28,8 @@ public class Constants {
//处理后的专题资讯信息存储索引。
//处理后的专题资讯信息存储索引。
public
final
static
String
ES_DATA_FOR_SUBJECT
=
"subjectdatabase_2023"
;
public
final
static
String
ES_DATA_FOR_SUBJECT
=
"subjectdatabase_2023"
;
//知识库
public
final
static
String
ES_DATA_FOR_KNOWLEDGE
=
"knowledgedatabase"
;
/*
/*
* 专题内容主次关系索引
* 专题内容主次关系索引
*/
*/
...
...
src/main/java/com/zzsn/knowbase/controller/KnowledgeController.java
0 → 100644
浏览文件 @
56624370
package
com
.
zzsn
.
knowbase
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.zzsn.knowbase.entity.AiReportScienceFile
;
import
com.zzsn.knowbase.entity.Knowledge
;
import
com.zzsn.knowbase.service.IKnowledgeService
;
import
com.zzsn.knowbase.vo.AiReportScienceFileVo
;
import
com.zzsn.knowbase.vo.KnowledgeParam
;
import
com.zzsn.knowbase.vo.KnowledgeVO
;
import
com.zzsn.knowbase.vo.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
/**
* @Description: 知识
* @Author: chenshiqiang
* @Version: V1.0
*/
@Api
(
tags
=
"知识"
)
@RestController
@RequestMapping
(
"/api/knowledge"
)
@Slf4j
public
class
KnowledgeController
{
@Autowired
private
IKnowledgeService
knowledgeService
;
/**
* 分页列表查询
*/
@GetMapping
(
value
=
"/list"
)
public
Result
<?>
queryPageList
(
KnowledgeParam
knowledgeParam
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
name
=
"column"
,
defaultValue
=
"common"
)
String
column
,
@RequestParam
(
name
=
"order"
,
defaultValue
=
"desc"
)
String
order
)
{
IPage
<
KnowledgeVO
>
pageList
=
knowledgeService
.
queryPageList
(
knowledgeParam
,
pageNo
,
pageSize
,
column
,
order
);
return
Result
.
OK
(
pageList
);
}
/**
* 添加
*
* @param knowledge
* @return
*/
@ApiOperation
(
value
=
"知识-添加"
,
notes
=
"知识-添加"
)
@PostMapping
(
value
=
"/add"
)
public
Result
<?>
add
(
@RequestBody
Knowledge
knowledge
)
{
knowledgeService
.
addKnowledge
(
knowledge
);
return
Result
.
OK
(
"添加成功!"
);
}
/**
* 编辑
*
* @param knowledge
* @return
*/
@ApiOperation
(
value
=
"信息源组类别-编辑"
,
notes
=
"信息源组类别-编辑"
)
@PutMapping
(
value
=
"/edit"
)
public
Result
<?>
edit
(
@RequestBody
Knowledge
knowledge
)
{
knowledgeService
.
updateKnowledge
(
knowledge
);
return
Result
.
OK
(
"编辑成功!"
);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@DeleteMapping
(
value
=
"/delete"
)
public
Result
<?>
delete
(
@RequestParam
(
name
=
"id"
)
String
id
)
{
knowledgeService
.
deleteKnowledge
(
id
);
return
Result
.
OK
(
"删除成功!"
);
}
}
src/main/java/com/zzsn/knowbase/entity/Content.java
0 → 100644
浏览文件 @
56624370
package
com
.
zzsn
.
knowbase
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* todo
*
* @author ShiQiangChen
* @date 2024/1/4
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
Content
{
private
String
contentId
;
private
String
content
;
}
src/main/java/com/zzsn/knowbase/entity/Knowledge.java
0 → 100644
浏览文件 @
56624370
package
com
.
zzsn
.
knowbase
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Description: 知识
* @Author: chenshiqiang
* @Version: V1.0
*/
@Data
@ApiModel
(
value
=
"group_type对象"
,
description
=
"信息源组类别"
)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
Knowledge
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@ApiModelProperty
(
value
=
"主键"
)
private
String
id
;
/**
* 标题
*/
@Excel
(
name
=
"标题"
,
width
=
15
)
@ApiModelProperty
(
value
=
"标题"
)
private
String
title
;
/**
* 创建人
*/
@ApiModelProperty
(
value
=
"创建人"
)
private
String
createBy
;
/**
* 创建日期
*/
@ApiModelProperty
(
value
=
"创建日期"
)
private
String
createTime
;
/**
* 更新人
*/
@ApiModelProperty
(
value
=
"更新人"
)
private
String
updateBy
;
/**
* 更新日期
*/
private
String
updateTime
;
/**
* 状态(1启用 0不启用)
*/
private
Integer
status
;
/**
* 来源
*/
private
String
origin
;
/**
* 作者
*/
private
Integer
author
;
/**
* 发布时间
*/
private
String
publishDate
;
/**
* 审核状态
*/
private
Integer
verifyStatus
;
/**
* 审核人id
*/
private
String
verifierId
;
/**
* 审核人名字
*/
private
String
verifierName
;
/**
* 知识库id
*/
private
String
knowledgeProjectId
;
/**
* 类型
*/
private
String
type
;
private
Integer
deleteFlag
;
private
List
<
Content
>
contents
;
private
List
<
KnowFile
>
files
;
}
class
KnowFile
{
private
String
fileId
;
private
String
filePath
;
private
String
fileType
;
private
Integer
fileSize
;
}
src/main/java/com/zzsn/knowbase/service/IKnowledgeService.java
0 → 100644
浏览文件 @
56624370
package
com
.
zzsn
.
knowbase
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.zzsn.knowbase.entity.Knowledge
;
import
com.zzsn.knowbase.vo.KnowledgeParam
;
import
com.zzsn.knowbase.vo.KnowledgeVO
;
import
java.util.List
;
/**
* @Description: 知识服务
* @Author: chenshiqiang
* @Version: V1.0
*/
public
interface
IKnowledgeService
{
/**
* 新增
*/
void
addKnowledge
(
Knowledge
knowledge
);
/**
* 修改
*/
void
updateKnowledge
(
Knowledge
knowledge
)
;
/**
* 删除
*/
void
deleteKnowledge
(
String
id
)
;
/**
* 分页检索
* @param knowledgeParam
* @param pageNo
* @param pageSize
* @param column
* @param order
* @return
*/
IPage
<
KnowledgeVO
>
queryPageList
(
KnowledgeParam
knowledgeParam
,
Integer
pageNo
,
Integer
pageSize
,
String
column
,
String
order
);
}
src/main/java/com/zzsn/knowbase/service/impl/KnowledgeServiceImpl.java
0 → 100644
浏览文件 @
56624370
package
com
.
zzsn
.
knowbase
.
service
.
impl
;
import
cn.hutool.json.JSONUtil
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.zzsn.knowbase.constant.Constants
;
import
com.zzsn.knowbase.entity.Content
;
import
com.zzsn.knowbase.entity.Knowledge
;
import
com.zzsn.knowbase.service.IKnowledgeService
;
import
com.zzsn.knowbase.util.CodeGenerateUtil
;
import
com.zzsn.knowbase.util.DateUtil
;
import
com.zzsn.knowbase.util.EsDateUtil
;
import
com.zzsn.knowbase.util.EsOpUtil
;
import
com.zzsn.knowbase.vo.KnowledgeParam
;
import
com.zzsn.knowbase.vo.KnowledgeVO
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.lucene.search.join.ScoreMode
;
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.NestedQueryBuilder
;
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.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Description: 知识
* @Author: chenshiqiang
* @Version: V1.0
*/
@Service
class
KnowledgeServiceImpl
implements
IKnowledgeService
{
@Autowired
private
RestHighLevelClient
client
;
@Autowired
private
EsOpUtil
esOpUtil
;
@Autowired
private
CodeGenerateUtil
codeGenerateUtil
;
@Override
public
void
addKnowledge
(
Knowledge
knowledge
)
{
if
(
null
==
knowledge
.
getId
())
{
knowledge
.
setId
(
codeGenerateUtil
.
geneIdNo
(
Constants
.
FINANCE
,
8
));
}
if
(
null
==
knowledge
.
getVerifyStatus
())
{
knowledge
.
setVerifyStatus
(
0
);
}
knowledge
.
setCreateTime
(
cn
.
hutool
.
core
.
date
.
DateUtil
.
formatDateTime
(
new
Date
()).
replace
(
" "
,
"T"
));
knowledge
.
setDeleteFlag
(
0
);
List
<
Content
>
contents
=
new
ArrayList
<>();
contents
.
add
(
Content
.
builder
()
.
contentId
(
codeGenerateUtil
.
geneIdNo
(
Constants
.
FINANCE
,
8
))
.
content
(
"content"
).
build
());
knowledge
.
setContents
(
contents
);
esOpUtil
.
docSavaByEntity
(
Constants
.
ES_DATA_FOR_KNOWLEDGE
,
knowledge
.
getId
(),
knowledge
);
}
@Override
public
void
updateKnowledge
(
Knowledge
knowledge
)
{
esOpUtil
.
docSavaByEntity
(
Constants
.
ES_DATA_FOR_KNOWLEDGE
,
knowledge
.
getId
(),
knowledge
);
}
@Override
public
void
deleteKnowledge
(
String
id
)
{
esOpUtil
.
docDeleteById
(
Constants
.
ES_DATA_FOR_KNOWLEDGE
,
id
);
}
@Override
public
IPage
<
KnowledgeVO
>
queryPageList
(
KnowledgeParam
knowledgeParam
,
Integer
pageNo
,
Integer
pageSize
,
String
column
,
String
order
)
{
SearchRequest
searchRequest
=
new
SearchRequest
(
Constants
.
ES_DATA_FOR_KNOWLEDGE
);
SearchSourceBuilder
searchSourceBuilder
=
new
SearchSourceBuilder
();
//设置分页参数
searchSourceBuilder
.
size
(
pageSize
);
searchSourceBuilder
.
from
((
pageNo
-
1
)
*
pageSize
);
//默认按照置顶以及时间倒序排列
//根据topNum正序查找,查询置顶数据
searchSourceBuilder
.
sort
(
"publishDate"
,
SortOrder
.
DESC
);
if
(
"score"
.
equals
(
column
))
{
if
(
"asc"
.
equals
(
order
))
{
searchSourceBuilder
.
sort
(
"score"
,
SortOrder
.
ASC
);
searchSourceBuilder
.
sort
(
"publishDate"
,
SortOrder
.
ASC
);
}
else
if
(
"desc"
.
equals
(
order
))
{
searchSourceBuilder
.
sort
(
"score"
,
SortOrder
.
DESC
);
searchSourceBuilder
.
sort
(
"publishDate"
,
SortOrder
.
DESC
);
}
}
else
if
(
"publishDate"
.
equals
(
column
))
{
if
(
"desc"
.
equals
(
order
))
{
searchSourceBuilder
.
sort
(
"publishDate"
,
SortOrder
.
DESC
);
searchSourceBuilder
.
sort
(
"score"
,
SortOrder
.
DESC
);
}
else
if
(
"asc"
.
equals
(
order
))
{
searchSourceBuilder
.
sort
(
"publishDate"
,
SortOrder
.
ASC
);
searchSourceBuilder
.
sort
(
"score"
,
SortOrder
.
ASC
);
}
}
//默认最大数量是10000,设置为true后,显示准确数量
searchSourceBuilder
.
trackTotalHits
(
true
);
//创建查询对象
BoolQueryBuilder
boolQuery
=
QueryBuilders
.
boolQuery
();
if
(
StringUtils
.
isNotEmpty
(
knowledgeParam
.
getTitle
()))
{
boolQuery
.
must
(
QueryBuilders
.
matchPhraseQuery
(
"title"
,
knowledgeParam
.
getTitle
()));
}
if
(
StringUtils
.
isNotEmpty
(
knowledgeParam
.
getOrigin
()))
{
boolQuery
.
must
(
QueryBuilders
.
matchPhraseQuery
(
"origin"
,
knowledgeParam
.
getOrigin
()));
}
if
(
StringUtils
.
isNotEmpty
(
knowledgeParam
.
getId
()))
{
boolQuery
.
must
(
QueryBuilders
.
termQuery
(
"id"
,
knowledgeParam
.
getId
()));
}
if
(
null
!=
knowledgeParam
.
getVerifyStatus
())
{
boolQuery
.
must
(
QueryBuilders
.
termQuery
(
"verifyStatus"
,
knowledgeParam
.
getVerifyStatus
()));
}
//时间过滤筛选
if
(
StringUtils
.
isNotBlank
(
knowledgeParam
.
getStartTime
()))
{
boolQuery
.
filter
(
QueryBuilders
.
rangeQuery
(
"publishDate"
).
gte
(
EsDateUtil
.
esFieldDateFormat
(
knowledgeParam
.
getStartTime
())));
}
if
(
StringUtils
.
isNotBlank
(
knowledgeParam
.
getEndTime
()))
{
boolQuery
.
filter
(
QueryBuilders
.
rangeQuery
(
"publishDate"
).
lte
(
EsDateUtil
.
esFieldDateFormat
(
knowledgeParam
.
getEndTime
())));
}
else
{
boolQuery
.
filter
(
QueryBuilders
.
rangeQuery
(
"publishDate"
).
lte
(
EsDateUtil
.
esFieldDateFormat
(
DateUtil
.
dateToString
(
new
Date
()))));
}
if
(
StringUtils
.
isNotBlank
(
knowledgeParam
.
getContent
()))
{
BoolQueryBuilder
nestedBoolQueryBuilder
=
QueryBuilders
.
boolQuery
();
nestedBoolQueryBuilder
.
must
(
QueryBuilders
.
termQuery
(
"contents.content"
,
knowledgeParam
.
getContent
()));
NestedQueryBuilder
nestedQueryBuilder
=
QueryBuilders
.
nestedQuery
(
"contents"
,
nestedBoolQueryBuilder
,
ScoreMode
.
None
);
boolQuery
.
must
(
nestedQueryBuilder
);
}
searchSourceBuilder
.
query
(
boolQuery
);
searchRequest
.
source
(
searchSourceBuilder
);
SearchResponse
searchResponse
=
null
;
try
{
searchResponse
=
client
.
search
(
searchRequest
,
RequestOptions
.
DEFAULT
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
SearchHit
[]
searchHits
=
searchResponse
.
getHits
().
getHits
();
List
<
KnowledgeVO
>
list
=
new
ArrayList
<>();
for
(
SearchHit
hit
:
searchHits
)
{
String
queryInfo
=
hit
.
getSourceAsString
();
KnowledgeVO
info
=
JSONUtil
.
toBean
(
queryInfo
,
KnowledgeVO
.
class
);
info
.
setPublishDate
(
EsDateUtil
.
esFieldDateMapping
(
info
.
getPublishDate
()));
list
.
add
(
info
);
}
IPage
<
KnowledgeVO
>
pageData
=
new
Page
<>(
pageNo
,
pageSize
,
searchResponse
.
getHits
().
getTotalHits
().
value
);
pageData
.
setRecords
(
list
);
return
pageData
;
}
}
src/main/java/com/zzsn/knowbase/util/CodeGenerateUtil.java
0 → 100644
浏览文件 @
56624370
package
com
.
zzsn
.
knowbase
.
util
;
import
lombok.SneakyThrows
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.data.redis.support.atomic.RedisAtomicLong
;
import
org.springframework.stereotype.Component
;
import
java.text.SimpleDateFormat
;
import
java.util.Calendar
;
import
java.util.Date
;
/**
* @author lkg
* @description: 按规则生成唯一值
* @date 2021/6/3 18:29
*/
@Component
public
class
CodeGenerateUtil
{
@Autowired
private
StringRedisTemplate
stringRedisTemplate
;
/**
* 生成编码
* @param prefix 前缀
* @return java.lang.String
*/
public
String
geneCodeNo
(
String
prefix
){
return
getCode
(
prefix
);
}
/**
* 生成id
* @param prefix 前缀
* @return java.lang.String
*/
public
String
geneIdNo
(
String
prefix
,
int
num
){
return
getId
(
prefix
,
num
);
}
/**
* 生成统一社会信用代码
* @param prefix 前缀
* @return java.lang.String
*/
public
String
geneSocialCreditCode
(
String
prefix
){
return
getCreditCode
(
prefix
);
}
//根据规则生成code(规则:前缀+格式化日期(截取后六位)+递增值(8位数))
private
String
getCreditCode
(
String
prefix
)
{
String
redisKey
=
getRedisKey
(
prefix
);
Date
expireDate
=
getExpireDate
();
//返回当前redis中的key的最大值
long
seq
=
generate
(
stringRedisTemplate
,
redisKey
,
expireDate
);
//获取当天的日期,格式为yyyyMMdd
String
date
=
new
SimpleDateFormat
(
"yyyyMMdd"
).
format
(
expireDate
);
//生成八位的序列号,如果seq不够四位,seq前面补0,
//如果seq位数超过了八位,那么无需补0直接返回当前的seq
String
sequence
=
StringUtils
.
leftPad
(
Long
.
toString
(
seq
),
8
,
"0"
);
return
prefix
+
date
.
substring
(
2
)
+
sequence
;
}
//生成老企业库id
public
long
getEnterpriseId
(
String
prefix
)
{
String
redisKey
=
getRedisKey
(
prefix
);
Date
expireDate
=
getExpireDate
();
//返回当前redis中的key的最大值
long
seq
=
generate
(
stringRedisTemplate
,
redisKey
,
expireDate
);
//获取当天的日期,格式为yyyyMMdd
String
date
=
new
SimpleDateFormat
(
"yyyyMMdd"
).
format
(
expireDate
);
//生成八位的序列号,如果seq不够四位,seq前面补0,
//如果seq位数超过了八位,那么无需补0直接返回当前的seq
String
sequence
=
StringUtils
.
leftPad
(
Long
.
toString
(
seq
),
5
,
"0"
);
return
Long
.
parseLong
(
date
.
substring
(
2
)
+
sequence
);
}
//根据规则生成编码(规则:前缀+格式化日期+递增值(4位数))
private
String
getCode
(
String
prefix
){
String
redisKey
=
getRedisKey
(
prefix
);
Date
expireDate
=
getExpireDate
();
//返回当前redis中的key的最大值
long
seq
=
generate
(
stringRedisTemplate
,
redisKey
,
expireDate
);
//获取当天的日期,格式为yyyyMMdd
String
date
=
new
SimpleDateFormat
(
"yyyyMMdd"
).
format
(
expireDate
);
//生成四位的序列号,如果seq不够四位,seq前面补0,
//如果seq位数超过了四位,那么无需补0直接返回当前的seq
String
sequence
=
StringUtils
.
leftPad
(
Long
.
toString
(
seq
),
4
,
"0"
);
//返回编码
return
prefix
+
"-"
+
date
+
"-"
+
sequence
;
}
//根据规则生成id(规则:格式化日期(截取后六位)+递增值(8位数))
private
String
getId
(
String
prefix
,
int
num
){
String
redisKey
=
getRedisKey
(
prefix
);
Date
expireDate
=
getExpireDate
();
//返回当前redis中的key的最大值
long
seq
=
generate
(
stringRedisTemplate
,
redisKey
,
expireDate
);
//获取当天的日期,格式为yyyyMMdd
String
date
=
new
SimpleDateFormat
(
"yyyyMMdd"
).
format
(
expireDate
);
//生成八位的序列号,如果seq不够四位,seq前面补0,
//如果seq位数超过了八位,那么无需补0直接返回当前的seq
String
sequence
=
StringUtils
.
leftPad
(
Long
.
toString
(
seq
),
num
,
"0"
);
return
date
.
substring
(
2
)+
sequence
;
}
//获取redis--key
@SneakyThrows
private
String
getRedisKey
(
String
prefix
){
if
(
StringUtils
.
isEmpty
(
prefix
)){
throw
new
Exception
(
"前缀不能为空!"
);
}
//用作存放redis中的key前缀
String
PREFIX_KEY
=
"CodeGenerateUtil::"
;
return
PREFIX_KEY
+
prefix
;
}
//获取缓存过期时间点
private
Date
getExpireDate
(){
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
23
);
calendar
.
set
(
Calendar
.
MINUTE
,
59
);
calendar
.
set
(
Calendar
.
SECOND
,
59
);
//设置过期时间,这里设置为当天的23:59:59
return
calendar
.
getTime
();
}
//获取redis缓存
private
long
generate
(
StringRedisTemplate
stringRedisTemplate
,
String
key
,
Date
expireTime
)
{
//RedisAtomicLong为原子类,根据传入的key和redis链接工厂创建原子类
RedisAtomicLong
counter
=
new
RedisAtomicLong
(
key
,
stringRedisTemplate
.
getConnectionFactory
());
//设置过期时间
counter
.
expireAt
(
expireTime
);
//返回redis中key的值
return
counter
.
incrementAndGet
();
}
}
src/main/java/com/zzsn/knowbase/util/EsDateUtil.java
0 → 100644
浏览文件 @
56624370
package
com
.
zzsn
.
knowbase
.
util
;
/**
* Es对日期类型处理
* @author kongliufeng
* @create 2020-08-07 14:05
*/
public
class
EsDateUtil
{
/**
* yyyy-MM-dd HH:mm:ss ->yyyy-MM-ddTHH:mm:ss
* @param data
* @return
*/
public
static
String
esFieldDateFormat
(
String
data
)
{
if
(
data
==
null
)
return
data
;
if
(
data
.
length
()
==
19
)
{
//标准yyyy-MM-dd HH:mm:ss
return
data
.
replace
(
" "
,
"T"
);
}
else
if
(
data
.
length
()
==
10
)
{
//yyyy-MM-dd
return
data
;
}
return
null
;
}
/**
* yyyy-MM-dd HH:mm:ss ->yyyy-MM-ddTHH:mm:ss
* @param data
* @return
*/
public
static
String
esFieldDateMapping
(
String
data
)
{
if
(
data
==
null
)
return
data
;
if
(
data
.
length
()
==
19
)
{
//标准yyyy-MM-dd HH:mm:ss
return
data
.
replace
(
"T"
,
" "
);
}
else
if
(
data
.
length
()
==
10
)
{
//yyyy-MM-dd
return
data
;
}
return
null
;
}
}
src/main/java/com/zzsn/knowbase/util/EsOpUtil.java
0 → 100644
浏览文件 @
56624370
差异被折叠。
点击展开。
src/main/java/com/zzsn/knowbase/vo/KnowledgeParam.java
0 → 100644
浏览文件 @
56624370
package
com
.
zzsn
.
knowbase
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* 知识参数
*
* @author ShiQiangChen
* @date 2024/1/4
*/
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public
class
KnowledgeParam
{
private
String
id
;
private
String
title
;
/**
* 来源
*/
private
String
origin
;
/**
* 作者
*/
private
Integer
author
;
/**
* 发布时间
*/
private
String
publishDate
;
/**
* 审核状态
*/
private
Integer
verifyStatus
;
/**
* 审核人id
*/
private
String
verifierId
;
/**
* 审核人名字
*/
private
String
verifierName
;
/**
* 知识库id
*/
private
String
knowledgeProjectId
;
/**
* 类型
*/
private
String
type
;
private
String
startTime
;
private
String
endTime
;
private
String
content
;
}
src/main/java/com/zzsn/knowbase/vo/KnowledgeVO.java
0 → 100644
浏览文件 @
56624370
package
com
.
zzsn
.
knowbase
.
vo
;
import
com.zzsn.knowbase.entity.Knowledge
;
import
lombok.Data
;
/**
* 知识参数
*
* @author ShiQiangChen
* @date 2024/1/4
*/
@Data
public
class
KnowledgeVO
extends
Knowledge
{
}
src/main/resources/application.yml
浏览文件 @
56624370
...
@@ -6,7 +6,11 @@ spring:
...
@@ -6,7 +6,11 @@ spring:
url
:
jdbc:mysql://114.116.44.11:3306/knowledge?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&AllowPublicKeyRetrieval=True
url
:
jdbc:mysql://114.116.44.11:3306/knowledge?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&AllowPublicKeyRetrieval=True
username
:
root
username
:
root
password
:
root
password
:
root
elasticsearch
:
rest
:
uris
:
[
"
114.116.90.53:9200"
]
username
:
elastic
password
:
elastic
redis
:
redis
:
database
:
0
database
:
0
host
:
114.115.236.206
host
:
114.115.236.206
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论