From df2795f606cec9953d83e10baafb96996bca5d4d Mon Sep 17 00:00:00 2001
From: zhitan-cloud <394600+ustcyc@user.noreply.gitee.com>
Date: 星期五, 10 一月 2025 16:30:19 +0800
Subject: [PATCH] !7 知识库功能接口新增 Merge pull request !7 from DYL0109/dyl_dev
---
zhitan-common/src/main/java/com/zhitan/common/constant/MessageConstant.java | 9
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBasePageDTO.java | 38 +++
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/vo/KnowledgeBasePageVO.java | 35 +++
zhitan-system/src/main/java/com/zhitan/knowledgeBase/service/IKnowledgeBaseService.java | 44 ++++
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBaseAddDTO.java | 44 ++++
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/entity/KnowledgeBaseFile.java | 29 ++
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/vo/KnowledgeBaseDetailVO.java | 46 ++++
zhitan-system/src/main/resources/mapper/knowledgeBase/KnowledgeBaseFileMapper.xml | 6
zhitan-system/src/main/resources/mapper/knowledgeBase/KnowledgeBaseMapper.xml | 18 +
zhitan-system/src/main/java/com/zhitan/knowledgeBase/mapper/KnowledgeBaseFileMapper.java | 17 +
zhitan-system/src/main/java/com/zhitan/knowledgeBase/service/impl/KnowledgeBaseServiceImpl.java | 157 ++++++++++++++
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBaseEditDTO.java | 22 ++
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/entity/KnowledgeBase.java | 38 +++
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/enums/EnergyTypeEnum.java | 48 ++++
zhitan-admin/src/main/java/com/zhitan/web/controller/knowledgeBase/KnowledgeBaseController.java | 86 +++++++
zhitan-system/src/main/java/com/zhitan/knowledgeBase/mapper/KnowledgeBaseMapper.java | 17 +
16 files changed, 654 insertions(+), 0 deletions(-)
diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/knowledgeBase/KnowledgeBaseController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/knowledgeBase/KnowledgeBaseController.java
new file mode 100644
index 0000000..2b71db9
--- /dev/null
+++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/knowledgeBase/KnowledgeBaseController.java
@@ -0,0 +1,86 @@
+package com.zhitan.web.controller.knowledgeBase;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zhitan.common.core.controller.BaseController;
+import com.zhitan.common.core.domain.AjaxResult;
+import com.zhitan.common.core.page.TableDataInfo;
+import com.zhitan.knowledgeBase.domain.dto.KnowledgeBaseAddDTO;
+import com.zhitan.knowledgeBase.domain.dto.KnowledgeBaseEditDTO;
+import com.zhitan.knowledgeBase.domain.dto.KnowledgeBasePageDTO;
+import com.zhitan.knowledgeBase.domain.vo.KnowledgeBaseDetailVO;
+import com.zhitan.knowledgeBase.domain.vo.KnowledgeBasePageVO;
+import com.zhitan.knowledgeBase.service.IKnowledgeBaseService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 鐭ヨ瘑搴�(KnowledgeBase)琛ㄦ帶鍒跺眰
+ *
+ * @author makejava
+ * @since 2025-01-10 15:05:26
+ */
+@RestController
+@Api(tags = "鐭ヨ瘑搴撶鐞�")
+@RequestMapping("/knowledgeBase")
+public class KnowledgeBaseController extends BaseController {
+ /**
+ * 鏈嶅姟瀵硅薄
+ */
+ @Resource
+ private IKnowledgeBaseService IKnowledgeBaseService;
+
+ /**
+ * 鐭ヨ瘑搴�-鍒楄〃鏌ヨ
+ */
+ @GetMapping("/page")
+ @ApiOperation(value = "鐭ヨ瘑搴�-鍒楄〃鏌ヨ")
+ public TableDataInfo page(KnowledgeBasePageDTO pageDTO) {
+ Page<KnowledgeBasePageVO> responsePage = IKnowledgeBaseService.getPageList(pageDTO);
+ return getDataTable(responsePage);
+ }
+
+ /**
+ * 鐭ヨ瘑搴�-鏌ヨ璇︽儏
+ */
+ @GetMapping("/detail")
+ @ApiOperation(value = "鐭ヨ瘑搴�-鏌ヨ璇︽儏")
+ public AjaxResult page(@RequestParam("id") Long id) {
+ KnowledgeBaseDetailVO responsePage = IKnowledgeBaseService.getDetail(id);
+ return success(responsePage);
+ }
+
+ /**
+ * 鐭ヨ瘑搴�-鏂板
+ */
+ @PostMapping("/add")
+ @ApiOperation(value = "鐭ヨ瘑搴�-鏂板")
+ public AjaxResult add(@RequestBody @Validated KnowledgeBaseAddDTO addDTO) {
+ IKnowledgeBaseService.add(addDTO);
+ return success();
+ }
+
+ /**
+ * 鐭ヨ瘑搴�-鏇存柊
+ */
+ @PostMapping("/edit")
+ @ApiOperation(value = "鐭ヨ瘑搴�-鏇存柊")
+ public AjaxResult edit(@RequestBody @Validated KnowledgeBaseEditDTO editDTO) {
+ IKnowledgeBaseService.edit(editDTO);
+ return success();
+ }
+
+ /**
+ * 鐭ヨ瘑搴�-鍒犻櫎
+ */
+ @DeleteMapping("/delete/{id}")
+ @ApiOperation(value = "鐭ヨ瘑搴�-鍒犻櫎")
+ public AjaxResult delete(@PathVariable("id") Long id) {
+ IKnowledgeBaseService.delete(id);
+ return success();
+ }
+}
+
diff --git a/zhitan-common/src/main/java/com/zhitan/common/constant/MessageConstant.java b/zhitan-common/src/main/java/com/zhitan/common/constant/MessageConstant.java
new file mode 100644
index 0000000..b45991a
--- /dev/null
+++ b/zhitan-common/src/main/java/com/zhitan/common/constant/MessageConstant.java
@@ -0,0 +1,9 @@
+package com.zhitan.common.constant;
+
+/**
+ * @Author DYL
+ **/
+public class MessageConstant {
+
+ public static final String KNOWLEDGE_BASE_NOT_EXIST = "鐭ヨ瘑搴撲俊鎭笉瀛樺湪";
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBaseAddDTO.java b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBaseAddDTO.java
new file mode 100644
index 0000000..d4cedc0
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBaseAddDTO.java
@@ -0,0 +1,44 @@
+package com.zhitan.knowledgeBase.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @Author DYL
+ **/
+@Data
+@ApiModel(value = "鐭ヨ瘑搴撴柊澧炲弬鏁�")
+public class KnowledgeBaseAddDTO {
+
+ /**
+ * 鏍囬
+ */
+ @ApiModelProperty(value = "鏍囬", required = true)
+ @NotBlank(message = "璇峰~鍐欐爣棰�")
+ private String title;
+
+ /**
+ * 鑳芥簮绫诲瀷
+ */
+ @ApiModelProperty(value = "鑳芥簮绫诲瀷", required = true)
+ @NotNull(message = "璇烽�夋嫨鑳芥簮绫诲瀷")
+ private Integer type;
+
+ /**
+ * 鍐呭
+ */
+ @ApiModelProperty(value = "鍐呭", required = true)
+ @NotBlank(message = "璇峰~鍐欏唴瀹�")
+ private String content;
+
+ /**
+ * 闄勪欢
+ */
+ @ApiModelProperty(value = "闄勪欢")
+ private List<String> url;
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBaseEditDTO.java b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBaseEditDTO.java
new file mode 100644
index 0000000..6cbff4f
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBaseEditDTO.java
@@ -0,0 +1,22 @@
+package com.zhitan.knowledgeBase.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Author DYL
+ **/
+@Data
+@ApiModel(value = "鐭ヨ瘑搴撶紪杈戝弬鏁�")
+public class KnowledgeBaseEditDTO extends KnowledgeBaseAddDTO {
+
+ /**
+ * id
+ */
+ @ApiModelProperty(value = "id", required = true)
+ @NotNull(message = "id涓嶈兘涓虹┖")
+ private Long id;
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBasePageDTO.java b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBasePageDTO.java
new file mode 100644
index 0000000..2a7576e
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBasePageDTO.java
@@ -0,0 +1,38 @@
+package com.zhitan.knowledgeBase.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author DYL
+ **/
+@Data
+@ApiModel(value = "鐭ヨ瘑搴撳垎椤垫煡璇㈠弬鏁�")
+public class KnowledgeBasePageDTO {
+
+
+ /**
+ * 椤电爜
+ */
+ @ApiModelProperty(value = "椤电爜")
+ private Integer pageNum;
+
+ /**
+ * 姣忛〉鏉℃暟
+ */
+ @ApiModelProperty(value = "姣忛〉鏉℃暟")
+ private Integer pageSize;
+
+ /**
+ * 鏍囬
+ */
+ @ApiModelProperty(value = "鏍囬")
+ private String title;
+
+ /**
+ * 鑳芥簮绫诲瀷
+ */
+ @ApiModelProperty(value = "鑳芥簮绫诲瀷")
+ private Integer type;
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/entity/KnowledgeBase.java b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/entity/KnowledgeBase.java
new file mode 100644
index 0000000..5e54b0c
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/entity/KnowledgeBase.java
@@ -0,0 +1,38 @@
+package com.zhitan.knowledgeBase.domain.entity;
+
+import com.zhitan.common.core.domain.BaseEntity;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鐭ヨ瘑搴�(KnowledgeBase)瀹炰綋绫�
+ *
+ * @author makejava
+ * @since 2025-01-10 14:57:10
+ */
+@Data
+public class KnowledgeBase extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = -68391633692977272L;
+ /**
+ * id
+ */
+ private Long id;
+ /**
+ * 鏍囬
+ */
+ private String title;
+ /**
+ * 鑳芥簮绫诲瀷(0:鐢�;1:姘�;2:澶╃劧姘�;3:钂告苯)
+ */
+ private Integer type;
+ /**
+ * 鍐呭
+ */
+ private String content;
+ /**
+ * 鍒犻櫎鏍囧織
+ */
+ private Boolean delFlag;
+}
+
diff --git a/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/entity/KnowledgeBaseFile.java b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/entity/KnowledgeBaseFile.java
new file mode 100644
index 0000000..c5222da
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/entity/KnowledgeBaseFile.java
@@ -0,0 +1,29 @@
+package com.zhitan.knowledgeBase.domain.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鐭ヨ瘑搴撻檮浠惰〃(KnowledgeBaseFile)瀹炰綋绫�
+ *
+ * @author makejava
+ * @since 2025-01-10 14:57:12
+ */
+@Data
+public class KnowledgeBaseFile implements Serializable {
+ private static final long serialVersionUID = 998732434860554353L;
+ /**
+ * id
+ */
+ private Long id;
+ /**
+ * 鐭ヨ瘑搴搃d
+ */
+ private Long knowledgeBaseId;
+ /**
+ * 鏂囦欢鍦板潃
+ */
+ private String url;
+}
+
diff --git a/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/enums/EnergyTypeEnum.java b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/enums/EnergyTypeEnum.java
new file mode 100644
index 0000000..66662d5
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/enums/EnergyTypeEnum.java
@@ -0,0 +1,48 @@
+package com.zhitan.knowledgeBase.domain.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Author DYL
+ **/
+@Getter
+@AllArgsConstructor
+public enum EnergyTypeEnum {
+
+ ELECTRICITY(0,"Electricity", "鐢�"),
+ WATER(1,"Water", "姘�"),
+ GAS(2,"Gas", "澶╃劧姘�"),
+ STEAM(3,"Steam", "钂告苯");
+
+ private final Integer code;
+ private final String name;
+ private final String desc;
+
+ public static EnergyTypeEnum getEnumByCode(Integer code) {
+ for (EnergyTypeEnum e : EnergyTypeEnum.values()) {
+ if (e.code.equals(code)) {
+ return e;
+ }
+ }
+ return null;
+ }
+
+ public static String getNameByCode(Integer code) {
+ for (EnergyTypeEnum e : EnergyTypeEnum.values()) {
+ if (e.code.equals(code)) {
+ return e.name;
+ }
+ }
+ return null;
+ }
+
+ public static String getDescByCode(Integer code) {
+ for (EnergyTypeEnum e : EnergyTypeEnum.values()) {
+ if (e.code.equals(code)) {
+ return e.desc;
+ }
+ }
+ return null;
+ }
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/vo/KnowledgeBaseDetailVO.java b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/vo/KnowledgeBaseDetailVO.java
new file mode 100644
index 0000000..099829e
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/vo/KnowledgeBaseDetailVO.java
@@ -0,0 +1,46 @@
+package com.zhitan.knowledgeBase.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author DYL
+ **/
+@Data
+@ApiModel(value = "鐭ヨ瘑搴撹鎯�")
+public class KnowledgeBaseDetailVO {
+
+ /**
+ * id
+ */
+ @ApiModelProperty(value = "id")
+ private Long id;
+ /**
+ * 鏍囬
+ */
+ @ApiModelProperty(value = "鏍囬")
+ private String title;
+ /**
+ * 鑳芥簮绫诲瀷(0:鐢�;1:姘�;2:澶╃劧姘�;3:钂告苯)
+ */
+ @ApiModelProperty(value = "鑳芥簮绫诲瀷(0:鐢�;1:姘�;2:澶╃劧姘�;3:钂告苯)")
+ private Integer type;
+ /**
+ * 鑳芥簮绫诲瀷鎻忚堪
+ */
+ @ApiModelProperty(value = "鑳芥簮绫诲瀷鎻忚堪")
+ private String typeDesc;
+ /**
+ * 鍐呭
+ */
+ @ApiModelProperty(value = "鍐呭")
+ private String content;
+ /**
+ * 闄勪欢
+ */
+ @ApiModelProperty(value = "闄勪欢")
+ private List<String> url;
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/vo/KnowledgeBasePageVO.java b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/vo/KnowledgeBasePageVO.java
new file mode 100644
index 0000000..22b923d
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/vo/KnowledgeBasePageVO.java
@@ -0,0 +1,35 @@
+package com.zhitan.knowledgeBase.domain.vo;
+
+import lombok.Data;
+
+/**
+ * @Author DYL
+ **/
+@Data
+public class KnowledgeBasePageVO {
+
+ /**
+ * id
+ */
+ private Long id;
+ /**
+ * 鏍囬
+ */
+ private String title;
+ /**
+ * 鑳芥簮绫诲瀷(0:鐢�;1:姘�;2:澶╃劧姘�;3:钂告苯)
+ */
+ private Integer type;
+ /**
+ * 鑳芥簮绫诲瀷鎻忚堪
+ */
+ private String typeDesc;
+ /**
+ * 鍐呭
+ */
+ private String content;
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private String createTime;
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/knowledgeBase/mapper/KnowledgeBaseFileMapper.java b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/mapper/KnowledgeBaseFileMapper.java
new file mode 100644
index 0000000..bf43c50
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/mapper/KnowledgeBaseFileMapper.java
@@ -0,0 +1,17 @@
+package com.zhitan.knowledgeBase.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhitan.knowledgeBase.domain.entity.KnowledgeBaseFile;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 鐭ヨ瘑搴撻檮浠惰〃(KnowledgeBaseFile)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2025-01-10 14:57:12
+ */
+@Mapper
+public interface KnowledgeBaseFileMapper extends BaseMapper<KnowledgeBaseFile> {
+
+}
+
diff --git a/zhitan-system/src/main/java/com/zhitan/knowledgeBase/mapper/KnowledgeBaseMapper.java b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/mapper/KnowledgeBaseMapper.java
new file mode 100644
index 0000000..6d6fd44
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/mapper/KnowledgeBaseMapper.java
@@ -0,0 +1,17 @@
+package com.zhitan.knowledgeBase.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhitan.knowledgeBase.domain.entity.KnowledgeBase;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 鐭ヨ瘑搴�(KnowledgeBase)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author makejava
+ * @since 2025-01-10 14:57:08
+ */
+@Mapper
+public interface KnowledgeBaseMapper extends BaseMapper<KnowledgeBase> {
+
+}
+
diff --git a/zhitan-system/src/main/java/com/zhitan/knowledgeBase/service/IKnowledgeBaseService.java b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/service/IKnowledgeBaseService.java
new file mode 100644
index 0000000..040f52e
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/service/IKnowledgeBaseService.java
@@ -0,0 +1,44 @@
+package com.zhitan.knowledgeBase.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhitan.knowledgeBase.domain.dto.KnowledgeBaseAddDTO;
+import com.zhitan.knowledgeBase.domain.dto.KnowledgeBaseEditDTO;
+import com.zhitan.knowledgeBase.domain.dto.KnowledgeBasePageDTO;
+import com.zhitan.knowledgeBase.domain.entity.KnowledgeBase;
+import com.zhitan.knowledgeBase.domain.vo.KnowledgeBaseDetailVO;
+import com.zhitan.knowledgeBase.domain.vo.KnowledgeBasePageVO;
+
+/**
+ * 鐭ヨ瘑搴�(KnowledgeBase)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author makejava
+ * @since 2025-01-10 15:05:27
+ */
+public interface IKnowledgeBaseService extends IService<KnowledgeBase> {
+
+ /**
+ * 鐭ヨ瘑搴�-鍒楄〃鏌ヨ
+ */
+ Page<KnowledgeBasePageVO> getPageList(KnowledgeBasePageDTO pageDTO);
+
+ /**
+ * 鐭ヨ瘑搴�-鏌ヨ璇︽儏
+ */
+ KnowledgeBaseDetailVO getDetail(Long id);
+
+ /**
+ * 鐭ヨ瘑搴�-鏂板
+ */
+ void add(KnowledgeBaseAddDTO addDTO);
+
+ /**
+ * 鐭ヨ瘑搴�-鏇存柊
+ */
+ void edit(KnowledgeBaseEditDTO editDTO);
+
+ /**
+ * 鐭ヨ瘑搴�-鍒犻櫎
+ */
+ void delete(Long id);
+}
diff --git a/zhitan-system/src/main/java/com/zhitan/knowledgeBase/service/impl/KnowledgeBaseServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/service/impl/KnowledgeBaseServiceImpl.java
new file mode 100644
index 0000000..44f17b7
--- /dev/null
+++ b/zhitan-system/src/main/java/com/zhitan/knowledgeBase/service/impl/KnowledgeBaseServiceImpl.java
@@ -0,0 +1,157 @@
+package com.zhitan.knowledgeBase.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhitan.common.constant.MessageConstant;
+import com.zhitan.common.exception.ServiceException;
+import com.zhitan.knowledgeBase.domain.dto.KnowledgeBaseAddDTO;
+import com.zhitan.knowledgeBase.domain.dto.KnowledgeBaseEditDTO;
+import com.zhitan.knowledgeBase.domain.dto.KnowledgeBasePageDTO;
+import com.zhitan.knowledgeBase.domain.entity.KnowledgeBase;
+import com.zhitan.knowledgeBase.domain.entity.KnowledgeBaseFile;
+import com.zhitan.knowledgeBase.domain.enums.EnergyTypeEnum;
+import com.zhitan.knowledgeBase.domain.vo.KnowledgeBaseDetailVO;
+import com.zhitan.knowledgeBase.domain.vo.KnowledgeBasePageVO;
+import com.zhitan.knowledgeBase.mapper.KnowledgeBaseFileMapper;
+import com.zhitan.knowledgeBase.mapper.KnowledgeBaseMapper;
+import com.zhitan.knowledgeBase.service.IKnowledgeBaseService;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 鐭ヨ瘑搴�(KnowledgeBase)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author makejava
+ * @since 2025-01-10 15:05:28
+ */
+@Service
+public class KnowledgeBaseServiceImpl extends ServiceImpl<KnowledgeBaseMapper, KnowledgeBase> implements IKnowledgeBaseService {
+
+ @Resource
+ private KnowledgeBaseFileMapper fileMapper;
+
+
+ /**
+ * 鐭ヨ瘑搴�-鍒楄〃鏌ヨ
+ */
+ public Page<KnowledgeBasePageVO> getPageList(KnowledgeBasePageDTO pageDTO) {
+ Page<KnowledgeBasePageVO> voPage = new Page<>(pageDTO.getPageNum(), pageDTO.getPageSize());
+
+ // 鍒嗛〉鏌ヨ
+ Page<KnowledgeBase> knowledgeBasePage = baseMapper.selectPage(new Page<>(pageDTO.getPageNum(), pageDTO.getPageSize()),
+ Wrappers.<KnowledgeBase>lambdaQuery()
+ .like(ObjectUtils.isNotEmpty(pageDTO.getTitle()), KnowledgeBase::getTitle, pageDTO.getTitle())
+ .eq(ObjectUtils.isNotEmpty(pageDTO.getType()), KnowledgeBase::getType, pageDTO.getType())
+ .eq(KnowledgeBase::getDelFlag, false).orderByDesc(KnowledgeBase::getCreateTime));
+
+ List<KnowledgeBase> records = knowledgeBasePage.getRecords();
+ if (records.isEmpty()){
+ return voPage;
+ }
+ // 鏁版嵁杞崲
+ voPage.setRecords(records.stream().map(item -> {
+ KnowledgeBasePageVO pageVO = new KnowledgeBasePageVO();
+ BeanUtil.copyProperties(item, pageVO);
+ pageVO.setTypeDesc(EnergyTypeEnum.getDescByCode(item.getType()));
+ return pageVO;
+ }).collect(Collectors.toList()));
+ voPage.setTotal(knowledgeBasePage.getTotal());
+ return voPage;
+ }
+
+ /**
+ * 鐭ヨ瘑搴�-鏌ヨ璇︽儏
+ */
+ public KnowledgeBaseDetailVO getDetail(Long id) {
+ KnowledgeBaseDetailVO vo = new KnowledgeBaseDetailVO();
+
+ // 鏌ヨ鏁版嵁
+ KnowledgeBase knowledgeBase = baseMapper.selectById(id);
+ if (knowledgeBase != null){
+ // 鏁版嵁杞崲
+ BeanUtil.copyProperties(knowledgeBase, vo);
+ vo.setUrl(fileMapper.selectList(Wrappers.<KnowledgeBaseFile>lambdaQuery()
+ .select(KnowledgeBaseFile::getUrl)
+ .eq(KnowledgeBaseFile::getKnowledgeBaseId, id))
+ .stream().map(KnowledgeBaseFile::getUrl).collect(Collectors.toList()));
+ }
+ return vo;
+ }
+
+ /**
+ * 鐭ヨ瘑搴�-鏂板
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void add(KnowledgeBaseAddDTO addDTO) {
+ // 鎻掑叆鏁版嵁
+ KnowledgeBase knowledgeBase = new KnowledgeBase();
+ BeanUtil.copyProperties(addDTO, knowledgeBase);
+ baseMapper.insert(knowledgeBase);
+
+ // 鎻掑叆鏂囦欢
+ if (ObjectUtils.isNotEmpty(addDTO.getUrl())){
+ addDTO.getUrl().forEach(url->{
+ KnowledgeBaseFile file = new KnowledgeBaseFile();
+ file.setKnowledgeBaseId(knowledgeBase.getId());
+ file.setUrl(url);
+ fileMapper.insert(file);
+ });
+ }
+ }
+
+ /**
+ * 鐭ヨ瘑搴�-鏇存柊
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void edit(KnowledgeBaseEditDTO editDTO) {
+ // 鏌ヨ鏁版嵁
+ KnowledgeBase knowledgeBase = baseMapper.selectById(editDTO.getId());
+ if (ObjectUtils.isEmpty(knowledgeBase)){
+ throw new ServiceException(MessageConstant.KNOWLEDGE_BASE_NOT_EXIST);
+ }
+ // 鏇存柊鏁版嵁
+ BeanUtils.copyProperties(editDTO, knowledgeBase);
+ baseMapper.updateById(knowledgeBase);
+
+ // 鍒犻櫎鏂囦欢
+ fileMapper.delete(Wrappers.<KnowledgeBaseFile>lambdaQuery()
+ .eq(KnowledgeBaseFile::getKnowledgeBaseId, knowledgeBase.getId()));
+
+ // 鎻掑叆鏂囦欢
+ if (ObjectUtils.isNotEmpty(editDTO.getUrl())){
+ editDTO.getUrl().forEach(url->{
+ KnowledgeBaseFile file = new KnowledgeBaseFile();
+ file.setKnowledgeBaseId(knowledgeBase.getId());
+ file.setUrl(url);
+ fileMapper.insert(file);
+ });
+ }
+ }
+
+ /**
+ * 鐭ヨ瘑搴�-鍒犻櫎
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(Long id) {
+ // 鏌ヨ鏁版嵁
+ KnowledgeBase knowledgeBase = baseMapper.selectById(id);
+ if (ObjectUtils.isEmpty(knowledgeBase)){
+ throw new ServiceException(MessageConstant.KNOWLEDGE_BASE_NOT_EXIST);
+ }
+ // 鍒犻櫎鏁版嵁
+ knowledgeBase.setDelFlag(true);
+ baseMapper.updateById(knowledgeBase);
+
+ // 鍒犻櫎鏂囦欢
+ fileMapper.delete(Wrappers.<KnowledgeBaseFile>lambdaQuery()
+ .eq(KnowledgeBaseFile::getKnowledgeBaseId, id));
+ }
+}
diff --git a/zhitan-system/src/main/resources/mapper/knowledgeBase/KnowledgeBaseFileMapper.xml b/zhitan-system/src/main/resources/mapper/knowledgeBase/KnowledgeBaseFileMapper.xml
new file mode 100644
index 0000000..3558679
--- /dev/null
+++ b/zhitan-system/src/main/resources/mapper/knowledgeBase/KnowledgeBaseFileMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhitan.knowledgeBase.mapper.KnowledgeBaseFileMapper">
+
+</mapper>
+
diff --git a/zhitan-system/src/main/resources/mapper/knowledgeBase/KnowledgeBaseMapper.xml b/zhitan-system/src/main/resources/mapper/knowledgeBase/KnowledgeBaseMapper.xml
new file mode 100644
index 0000000..803a036
--- /dev/null
+++ b/zhitan-system/src/main/resources/mapper/knowledgeBase/KnowledgeBaseMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhitan.knowledgeBase.mapper.KnowledgeBaseMapper">
+
+ <resultMap type="com.zhitan.knowledgeBase.domain.entity.KnowledgeBase" id="KnowledgeBaseMap">
+ <result property="id" column="id" jdbcType="INTEGER"/>
+ <result property="title" column="title" jdbcType="VARCHAR"/>
+ <result property="type" column="type" jdbcType="INTEGER"/>
+ <result property="content" column="content" jdbcType="VARCHAR"/>
+ <result property="delFlag" column="del_flag" jdbcType="BOOLEAN"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+ </resultMap>
+
+</mapper>
+
--
Gitblit v1.9.3