提交 b0efe634 作者: ChenShiQiang

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/resources/application.yml
package com.zzsn.knowbase.controller; package com.zzsn.knowbase.controller;
import org.springframework.web.bind.annotation.RequestMapping; import com.zzsn.knowbase.entity.KbKnowledgeProject;
import com.zzsn.knowbase.service.KbKnowledgeProjectService;
import org.springframework.web.bind.annotation.RestController; import com.zzsn.knowbase.vo.Result;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/** /**
* <p> * <p>
...@@ -16,5 +19,49 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -16,5 +19,49 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping("/api/project") @RequestMapping("/api/project")
public class KbKnowledgeProjectController { public class KbKnowledgeProjectController {
@Autowired
KbKnowledgeProjectService knowledgeProjectService;
/**
* 根据id查询
* */
@GetMapping
public Result<?> getById(@RequestParam(name="id",required=true) String id){
return Result.OK(knowledgeProjectService.getById(id));
}
@PostMapping("/add")
public Result<?> add(@RequestBody KbKnowledgeProject knowledgeProject){
return knowledgeProjectService.add(knowledgeProject);
}
/**
* 编辑知识库
* */
@PostMapping("/edit")
public Result<?> edit(@RequestBody KbKnowledgeProject knowledgeProject){
return knowledgeProjectService.edit(knowledgeProject);
}
/**
* 删除知识库
* */
@GetMapping("/del")
public Result<?> del(@RequestParam(name="id",required=true) String id){
return knowledgeProjectService.del(id);
}
@GetMapping("/list")
public Result<?> list(
@RequestParam(name="sign",defaultValue = "1") String sign,
@RequestParam(name="projectId",required = false) String projectId
){
if (!"1".equals(sign)){
if (StringUtils.isBlank(projectId)){
return Result.error("查询非顶级节点列表时需要projectId参数");
}
}
return knowledgeProjectService.lists(sign,projectId);
}
} }
package com.zzsn.knowbase.entity; package com.zzsn.knowbase.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date;
/** /**
* <p> * <p>
* *
...@@ -93,6 +93,11 @@ public class KbKnowledgeProject extends Model<KbKnowledgeProject> { ...@@ -93,6 +93,11 @@ public class KbKnowledgeProject extends Model<KbKnowledgeProject> {
*/ */
@TableField("sys_org_code") @TableField("sys_org_code")
private String sysOrgCode; private String sysOrgCode;
/**
* 知识库描述
*/
@TableField("project_description")
private String projectDescription;
......
...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.mapper; ...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.knowbase.entity.KbAuthorizedUser; import com.zzsn.knowbase.entity.KbAuthorizedUser;
import org.apache.ibatis.annotations.Mapper;
/** /**
* <p> * <p>
...@@ -11,6 +12,7 @@ import com.zzsn.knowbase.entity.KbAuthorizedUser; ...@@ -11,6 +12,7 @@ import com.zzsn.knowbase.entity.KbAuthorizedUser;
* @author obcy * @author obcy
* @since 2024-01-04 * @since 2024-01-04
*/ */
@Mapper
public interface KbAuthorizedUserMapper extends BaseMapper<KbAuthorizedUser> { public interface KbAuthorizedUserMapper extends BaseMapper<KbAuthorizedUser> {
} }
...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.mapper; ...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.knowbase.entity.KbKnowledgeProject; import com.zzsn.knowbase.entity.KbKnowledgeProject;
import org.apache.ibatis.annotations.Mapper;
/** /**
* <p> * <p>
...@@ -11,6 +12,7 @@ import com.zzsn.knowbase.entity.KbKnowledgeProject; ...@@ -11,6 +12,7 @@ import com.zzsn.knowbase.entity.KbKnowledgeProject;
* @author obcy * @author obcy
* @since 2024-01-04 * @since 2024-01-04
*/ */
@Mapper
public interface KbKnowledgeProjectMapper extends BaseMapper<KbKnowledgeProject> { public interface KbKnowledgeProjectMapper extends BaseMapper<KbKnowledgeProject> {
} }
...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.mapper; ...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.knowbase.entity.KbPermissions; import com.zzsn.knowbase.entity.KbPermissions;
import org.apache.ibatis.annotations.Mapper;
/** /**
* <p> * <p>
...@@ -11,6 +12,7 @@ import com.zzsn.knowbase.entity.KbPermissions; ...@@ -11,6 +12,7 @@ import com.zzsn.knowbase.entity.KbPermissions;
* @author obcy * @author obcy
* @since 2024-01-04 * @since 2024-01-04
*/ */
@Mapper
public interface KbPermissionsMapper extends BaseMapper<KbPermissions> { public interface KbPermissionsMapper extends BaseMapper<KbPermissions> {
} }
...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.mapper; ...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.knowbase.entity.KbRole; import com.zzsn.knowbase.entity.KbRole;
import org.apache.ibatis.annotations.Mapper;
/** /**
* <p> * <p>
...@@ -11,6 +12,7 @@ import com.zzsn.knowbase.entity.KbRole; ...@@ -11,6 +12,7 @@ import com.zzsn.knowbase.entity.KbRole;
* @author obcy * @author obcy
* @since 2024-01-04 * @since 2024-01-04
*/ */
@Mapper
public interface KbRoleMapper extends BaseMapper<KbRole> { public interface KbRoleMapper extends BaseMapper<KbRole> {
} }
...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.mapper; ...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.knowbase.entity.KbRolePermissionMap; import com.zzsn.knowbase.entity.KbRolePermissionMap;
import org.apache.ibatis.annotations.Mapper;
/** /**
* <p> * <p>
...@@ -11,6 +12,7 @@ import com.zzsn.knowbase.entity.KbRolePermissionMap; ...@@ -11,6 +12,7 @@ import com.zzsn.knowbase.entity.KbRolePermissionMap;
* @author obcy * @author obcy
* @since 2024-01-04 * @since 2024-01-04
*/ */
@Mapper
public interface KbRolePermissionMapMapper extends BaseMapper<KbRolePermissionMap> { public interface KbRolePermissionMapMapper extends BaseMapper<KbRolePermissionMap> {
} }
...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.mapper; ...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.knowbase.entity.KbUserRoleMap; import com.zzsn.knowbase.entity.KbUserRoleMap;
import org.apache.ibatis.annotations.Mapper;
/** /**
* <p> * <p>
...@@ -11,6 +12,7 @@ import com.zzsn.knowbase.entity.KbUserRoleMap; ...@@ -11,6 +12,7 @@ import com.zzsn.knowbase.entity.KbUserRoleMap;
* @author obcy * @author obcy
* @since 2024-01-04 * @since 2024-01-04
*/ */
@Mapper
public interface KbUserRoleMapMapper extends BaseMapper<KbUserRoleMap> { public interface KbUserRoleMapMapper extends BaseMapper<KbUserRoleMap> {
} }
...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.service; ...@@ -2,6 +2,7 @@ package com.zzsn.knowbase.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.zzsn.knowbase.entity.KbKnowledgeProject; import com.zzsn.knowbase.entity.KbKnowledgeProject;
import com.zzsn.knowbase.vo.Result;
/** /**
* <p> * <p>
...@@ -12,5 +13,19 @@ import com.zzsn.knowbase.entity.KbKnowledgeProject; ...@@ -12,5 +13,19 @@ import com.zzsn.knowbase.entity.KbKnowledgeProject;
* @since 2024-01-04 * @since 2024-01-04
*/ */
public interface KbKnowledgeProjectService extends IService<KbKnowledgeProject> { public interface KbKnowledgeProjectService extends IService<KbKnowledgeProject> {
/**根节点父ID的值*/
public static final String ROOT_PID_VALUE = "0";
/**树节点有子节点状态值*/
public static final String HASCHILD = "1";
/**树节点无子节点状态值*/
public static final String NOCHILD = "0";
Result<?> add(KbKnowledgeProject knowledgeProject);
Result<?> edit(KbKnowledgeProject knowledgeProject);
Result<?> del(String id);
Result<?> lists(String sign, String projectId);
} }
package com.zzsn.knowbase.service.impl; package com.zzsn.knowbase.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzsn.knowbase.entity.KbKnowledgeProject; import com.zzsn.knowbase.entity.KbKnowledgeProject;
import com.zzsn.knowbase.mapper.KbKnowledgeProjectMapper; import com.zzsn.knowbase.mapper.KbKnowledgeProjectMapper;
import com.zzsn.knowbase.service.KbKnowledgeProjectService; import com.zzsn.knowbase.service.KbKnowledgeProjectService;
import com.zzsn.knowbase.vo.Result;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/** /**
* <p> * <p>
...@@ -18,4 +26,117 @@ import org.springframework.stereotype.Service; ...@@ -18,4 +26,117 @@ import org.springframework.stereotype.Service;
@Service @Service
public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjectMapper, KbKnowledgeProject> implements KbKnowledgeProjectService { public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjectMapper, KbKnowledgeProject> implements KbKnowledgeProjectService {
@Override
@Transactional
public Result<?> add(KbKnowledgeProject knowledgeProject) {
if (StringUtils.isBlank(knowledgeProject.getPid())){
knowledgeProject.setPid(KbKnowledgeProjectService.ROOT_PID_VALUE);
}else {
KbKnowledgeProject parent = super.getById(knowledgeProject.getPid());
if(parent!=null && !KbKnowledgeProjectService.HASCHILD.equals(parent.getHasChild())){
parent.setHasChild(KbKnowledgeProjectService.HASCHILD);
super.updateById(parent);
}
}
knowledgeProject.setStatus(0);
knowledgeProject.setHasChild(KbKnowledgeProjectService.NOCHILD);
/**第一次保存赋默认值*/
knowledgeProject.setFullPath("0");
super.save(knowledgeProject);
if (KbKnowledgeProjectService.ROOT_PID_VALUE.equals(knowledgeProject.getPid())){
knowledgeProject.setFullPath(knowledgeProject.getId().toString());
}else {
KbKnowledgeProject parent = super.getById(knowledgeProject.getPid());
knowledgeProject.setFullPath(parent.getFullPath() +","+ knowledgeProject.getId());
}
super.updateById(knowledgeProject);
return Result.OK();
}
@Override
@Transactional
public Result<?> edit(KbKnowledgeProject knowledgeProject) {
KbKnowledgeProject byId = super.getById(knowledgeProject.getId());
if (ObjectUtils.isEmpty(byId)){
return Result.error("未找到对应的知识库");
}
String oldPid = byId.getPid();
String newPid = knowledgeProject.getPid();
if(!oldPid.equals(newPid)) {
/**处理之前父节点的hasChild字段*/
updateOldParentNode(oldPid);
if(StringUtils.isBlank(newPid) || KbKnowledgeProjectService.ROOT_PID_VALUE.equals(newPid)){
knowledgeProject.setPid(KbKnowledgeProjectService.ROOT_PID_VALUE);
newPid = knowledgeProject.getPid();
}
/**处理新的父节点的hasChild字段*/
if(!KbKnowledgeProjectService.ROOT_PID_VALUE.equals(knowledgeProject.getPid())) {
super.update(Wrappers.<KbKnowledgeProject>lambdaUpdate().set(KbKnowledgeProject::getHasChild,KbKnowledgeProjectService.HASCHILD).eq(KbKnowledgeProject::getId,newPid));
}
super.updateById(knowledgeProject);
/**处理本节点的所有子节点的绝对路径*/
List<KbKnowledgeProject> list = super.list(Wrappers.<KbKnowledgeProject>lambdaQuery().like(KbKnowledgeProject::getFullPath,knowledgeProject.getId()));
if (CollectionUtil.isNotEmpty(list)){
String finalNewPid = newPid;
if (!KbKnowledgeProjectService.ROOT_PID_VALUE.equals(finalNewPid)) {
/**非根节点 移动到其他非根节点*/
if (!KbKnowledgeProjectService.ROOT_PID_VALUE.equals(oldPid)) {
list.forEach(e->{
e.setFullPath(e.getFullPath().replace(oldPid, finalNewPid));
});
}else {
/**根节点 移动到其他非根节点*/
list.forEach(e->{
e.setFullPath(finalNewPid+","+e.getFullPath());
});
}
}else {
/**移动到根节点*/
list.forEach(e->{
e.setFullPath(e.getFullPath().replace(oldPid+",", ""));
});
}
}
super.updateBatchById(list);
}
return Result.OK();
}
@Override
public Result<?> del(String id) {
KbKnowledgeProject byId = super.getById(id);
super.remove(Wrappers.<KbKnowledgeProject>lambdaQuery().like(KbKnowledgeProject::getFullPath,id));
if (StringUtils.isNotBlank(byId.getPid())&&!KbKnowledgeProjectService.ROOT_PID_VALUE.equals(byId.getPid())){
updateOldParentNode(byId.getPid());
}
return Result.OK();
}
@Override
public Result<?> lists(String sign, String projectId) {
List<KbKnowledgeProject> kbKnowledgeProjects ;
if ("1".equals(sign)&&StringUtils.isBlank(projectId)){
kbKnowledgeProjects = super.list(Wrappers.<KbKnowledgeProject>lambdaQuery().eq(KbKnowledgeProject::getPid, KbKnowledgeProjectService.ROOT_PID_VALUE));
}else {
kbKnowledgeProjects = super.list(Wrappers.<KbKnowledgeProject>lambdaQuery().eq(KbKnowledgeProject::getPid,projectId));
}
return Result.OK(kbKnowledgeProjects);
}
/**
* 根据所传pid查询旧的父级节点的子节点并修改相应状态值
* @param pid
*/
private void updateOldParentNode(String pid) {
if(!KbKnowledgeProjectService.ROOT_PID_VALUE.equals(pid)) {
Integer count = baseMapper.selectCount(Wrappers.<KbKnowledgeProject>lambdaQuery().eq(KbKnowledgeProject::getPid,pid));
if(count==null || count<=1) {
super.update(Wrappers.<KbKnowledgeProject>lambdaUpdate().set(KbKnowledgeProject::getHasChild,KbKnowledgeProjectService.NOCHILD).eq(KbKnowledgeProject::getId,pid));
}
}
}
} }
...@@ -4,13 +4,15 @@ server: ...@@ -4,13 +4,15 @@ server:
spring: spring:
datasource: datasource:
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: ciglobal
password: root password: qwer@9988&zzsn
elasticsearch: elasticsearch:
rest: rest:
uris: ["114.116.90.53:9200"] uris: ["114.116.90.53:9200"]
username: elastic username: elastic
password: elastic password: elastic
redis: redis:
database: 0 database: 0
host: 114.115.236.206 host: 114.115.236.206
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论