DYL
2025-01-10 5ac72fbfc76d24974a620d0b0e17abd09138f43a
知识库接口开发
已添加16个文件
654 ■■■■■ 文件已修改
zhitan-admin/src/main/java/com/zhitan/web/controller/knowledgeBase/KnowledgeBaseController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/constant/MessageConstant.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBaseAddDTO.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBaseEditDTO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/dto/KnowledgeBasePageDTO.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/entity/KnowledgeBase.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/entity/KnowledgeBaseFile.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/enums/EnergyTypeEnum.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/vo/KnowledgeBaseDetailVO.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/knowledgeBase/domain/vo/KnowledgeBasePageVO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/knowledgeBase/mapper/KnowledgeBaseFileMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/knowledgeBase/mapper/KnowledgeBaseMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/knowledgeBase/service/IKnowledgeBaseService.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/knowledgeBase/service/impl/KnowledgeBaseServiceImpl.java 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/knowledgeBase/KnowledgeBaseFileMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/knowledgeBase/KnowledgeBaseMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
    }
}
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 = "知识库信息不存在";
}
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;
}
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;
}
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;
}
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;
}
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;
    /**
     * çŸ¥è¯†åº“id
     */
    private Long knowledgeBaseId;
    /**
     * æ–‡ä»¶åœ°å€
     */
    private String url;
}
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;
    }
}
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;
}
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;
}
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> {
}
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> {
}
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);
}
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));
    }
}
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>
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>