From 5ac72fbfc76d24974a620d0b0e17abd09138f43a Mon Sep 17 00:00:00 2001 From: DYL <Dn1332079466> Date: 星期五, 10 一月 2025 16:21:29 +0800 Subject: [PATCH] 知识库接口开发 --- 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