知识库代码框架
This commit is contained in:
350
src/main/java/com/rj/service/impl/KnowledgeBaseServiceImpl.java
Normal file
350
src/main/java/com/rj/service/impl/KnowledgeBaseServiceImpl.java
Normal file
@@ -0,0 +1,350 @@
|
||||
package com.rj.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.rj.entity.KnowledgeBase;
|
||||
import com.rj.mapper.KnowledgeBaseMapper;
|
||||
import com.rj.service.IKnowledgeBaseService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 知识库管理表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author 李中华 ,spllzh
|
||||
* @since 2025-01-27
|
||||
*/
|
||||
@Service
|
||||
public class KnowledgeBaseServiceImpl extends ServiceImpl<KnowledgeBaseMapper, KnowledgeBase> implements IKnowledgeBaseService {
|
||||
|
||||
@Override
|
||||
public Map<String, Object> addKnowledge(KnowledgeBase knowledgeBase) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
// 生成UUID作为主键
|
||||
knowledgeBase.setId(UUID.randomUUID().toString().replace("-", ""));
|
||||
knowledgeBase.setCreateTime(LocalDateTime.now());
|
||||
knowledgeBase.setUpdateTime(LocalDateTime.now());
|
||||
|
||||
// 设置默认值
|
||||
if (knowledgeBase.getViewCount() == null) {
|
||||
knowledgeBase.setViewCount(0);
|
||||
}
|
||||
if (knowledgeBase.getLikeCount() == null) {
|
||||
knowledgeBase.setLikeCount(0);
|
||||
}
|
||||
if (knowledgeBase.getSortOrder() == null) {
|
||||
knowledgeBase.setSortOrder(0);
|
||||
}
|
||||
if (knowledgeBase.getIsTop() == null) {
|
||||
knowledgeBase.setIsTop(false);
|
||||
}
|
||||
if (knowledgeBase.getStatus() == null || knowledgeBase.getStatus().trim().isEmpty()) {
|
||||
knowledgeBase.setStatus("已发布");
|
||||
}
|
||||
|
||||
boolean success = this.save(knowledgeBase);
|
||||
if (success) {
|
||||
result.put("success", true);
|
||||
result.put("message", "知识添加成功");
|
||||
result.put("data", knowledgeBase);
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "知识添加失败");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "知识添加异常:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getKnowledgeById(String id) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
KnowledgeBase knowledge = this.getById(id);
|
||||
if (knowledge != null) {
|
||||
// 增加浏览次数
|
||||
knowledge.setViewCount(knowledge.getViewCount() + 1);
|
||||
this.updateById(knowledge);
|
||||
|
||||
result.put("success", true);
|
||||
result.put("message", "查询成功");
|
||||
result.put("data", knowledge);
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "知识不存在");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "查询异常:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getKnowledgeList(Integer current, Integer size, String title,
|
||||
String category, String industry, String creator, String status) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
Page<KnowledgeBase> page = new Page<>(current, size);
|
||||
LambdaQueryWrapper<KnowledgeBase> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
// 添加查询条件
|
||||
if (title != null && !title.trim().isEmpty()) {
|
||||
queryWrapper.like(KnowledgeBase::getTitle, title);
|
||||
}
|
||||
if (category != null && !category.trim().isEmpty()) {
|
||||
queryWrapper.eq(KnowledgeBase::getCategory, category);
|
||||
}
|
||||
if (industry != null && !industry.trim().isEmpty()) {
|
||||
queryWrapper.eq(KnowledgeBase::getIndustry, industry);
|
||||
}
|
||||
if (creator != null && !creator.trim().isEmpty()) {
|
||||
queryWrapper.like(KnowledgeBase::getCreator, creator);
|
||||
}
|
||||
if (status != null && !status.trim().isEmpty()) {
|
||||
queryWrapper.eq(KnowledgeBase::getStatus, status);
|
||||
}
|
||||
|
||||
// 排序:置顶优先,然后按排序权重,最后按创建时间倒序
|
||||
queryWrapper.orderByDesc(KnowledgeBase::getUpdateTime);
|
||||
|
||||
Page<KnowledgeBase> knowledgePage = this.page(page, queryWrapper);
|
||||
|
||||
result.put("success", true);
|
||||
result.put("message", "查询成功");
|
||||
result.put("data", knowledgePage.getRecords());
|
||||
result.put("total", knowledgePage.getTotal());
|
||||
result.put("current", knowledgePage.getCurrent());
|
||||
result.put("size", knowledgePage.getSize());
|
||||
result.put("pages", knowledgePage.getPages());
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "查询异常:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> updateKnowledge(KnowledgeBase knowledgeBase) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
if (knowledgeBase.getId() == null || knowledgeBase.getId().trim().isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message", "知识ID不能为空");
|
||||
return result;
|
||||
}
|
||||
|
||||
knowledgeBase.setUpdateTime(LocalDateTime.now());
|
||||
boolean success = this.updateById(knowledgeBase);
|
||||
|
||||
if (success) {
|
||||
result.put("success", true);
|
||||
result.put("message", "知识信息更新成功");
|
||||
result.put("data", knowledgeBase);
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "知识信息更新失败");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "更新异常:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> deleteKnowledge(String id) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
boolean success = this.removeById(id);
|
||||
if (success) {
|
||||
result.put("success", true);
|
||||
result.put("message", "知识删除成功");
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "知识删除失败");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "删除异常:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> batchDeleteKnowledge(List<String> ids) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
if (ids == null || ids.isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message", "知识ID列表不能为空");
|
||||
return result;
|
||||
}
|
||||
|
||||
boolean success = this.removeByIds(ids);
|
||||
if (success) {
|
||||
result.put("success", true);
|
||||
result.put("message", "批量删除成功,共删除 " + ids.size() + " 条记录");
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "批量删除失败");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "批量删除异常:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> likeKnowledge(String id) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
KnowledgeBase knowledge = this.getById(id);
|
||||
if (knowledge != null) {
|
||||
knowledge.setLikeCount(knowledge.getLikeCount() + 1);
|
||||
knowledge.setUpdateTime(LocalDateTime.now());
|
||||
boolean success = this.updateById(knowledge);
|
||||
|
||||
if (success) {
|
||||
result.put("success", true);
|
||||
result.put("message", "点赞成功");
|
||||
result.put("data", knowledge);
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "点赞失败");
|
||||
}
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "知识不存在");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "点赞异常:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> toggleTopKnowledge(String id) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
KnowledgeBase knowledge = this.getById(id);
|
||||
if (knowledge != null) {
|
||||
knowledge.setIsTop(!knowledge.getIsTop());
|
||||
knowledge.setUpdateTime(LocalDateTime.now());
|
||||
boolean success = this.updateById(knowledge);
|
||||
|
||||
if (success) {
|
||||
result.put("success", true);
|
||||
result.put("message", knowledge.getIsTop() ? "置顶成功" : "取消置顶成功");
|
||||
result.put("data", knowledge);
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "操作失败");
|
||||
}
|
||||
} else {
|
||||
result.put("success", false);
|
||||
result.put("message", "知识不存在");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "操作异常:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getKnowledgeStatistics() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
long totalCount = this.count();
|
||||
|
||||
// 按状态统计
|
||||
LambdaQueryWrapper<KnowledgeBase> publishedWrapper = new LambdaQueryWrapper<>();
|
||||
publishedWrapper.eq(KnowledgeBase::getStatus, "已发布");
|
||||
long publishedCount = this.count(publishedWrapper);
|
||||
|
||||
LambdaQueryWrapper<KnowledgeBase> draftWrapper = new LambdaQueryWrapper<>();
|
||||
draftWrapper.eq(KnowledgeBase::getStatus, "草稿");
|
||||
long draftCount = this.count(draftWrapper);
|
||||
|
||||
LambdaQueryWrapper<KnowledgeBase> topWrapper = new LambdaQueryWrapper<>();
|
||||
topWrapper.eq(KnowledgeBase::getIsTop, true);
|
||||
long topCount = this.count(topWrapper);
|
||||
|
||||
Map<String, Object> statistics = new HashMap<>();
|
||||
statistics.put("totalKnowledge", totalCount);
|
||||
statistics.put("publishedCount", publishedCount);
|
||||
statistics.put("draftCount", draftCount);
|
||||
statistics.put("topCount", topCount);
|
||||
|
||||
result.put("success", true);
|
||||
result.put("message", "统计信息获取成功");
|
||||
result.put("data", statistics);
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "统计信息获取异常:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getCategories() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
LambdaQueryWrapper<KnowledgeBase> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.select(KnowledgeBase::getCategory)
|
||||
.groupBy(KnowledgeBase::getCategory);
|
||||
List<KnowledgeBase> categories = this.list(queryWrapper);
|
||||
|
||||
List<String> categoryList = categories.stream()
|
||||
.map(KnowledgeBase::getCategory)
|
||||
.distinct()
|
||||
.toList();
|
||||
|
||||
result.put("success", true);
|
||||
result.put("message", "分类列表获取成功");
|
||||
result.put("data", categoryList);
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "分类列表获取异常:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getIndustries() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
LambdaQueryWrapper<KnowledgeBase> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.select(KnowledgeBase::getIndustry)
|
||||
.groupBy(KnowledgeBase::getIndustry);
|
||||
List<KnowledgeBase> industries = this.list(queryWrapper);
|
||||
|
||||
List<String> industryList = industries.stream()
|
||||
.map(KnowledgeBase::getIndustry)
|
||||
.distinct()
|
||||
.toList();
|
||||
|
||||
result.put("success", true);
|
||||
result.put("message", "行业列表获取成功");
|
||||
result.put("data", industryList);
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "行业列表获取异常:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user