123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- package com.xzl.web.controller;
- import java.util.List;
- import javax.servlet.http.HttpServletResponse;
- import com.xzl.common.core.domain.entity.SysFileFolder;
- import com.xzl.common.core.domain.model.LoginUser;
- import com.xzl.common.utils.SecurityUtils;
- import com.xzl.web.service.ISysFileFolderService;
- import lombok.Getter;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.PutMapping;
- import org.springframework.web.bind.annotation.DeleteMapping;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import com.xzl.common.annotation.Log;
- import com.xzl.common.core.controller.BaseController;
- import com.xzl.common.core.domain.AjaxResult;
- import com.xzl.common.enums.BusinessType;
- import com.xzl.common.utils.poi.ExcelUtil;
- import com.xzl.common.core.page.TableDataInfo;
- /**
- * 文件文件夹(麻城知识库四级结构)Controller
- *
- * @author xzl
- * @date 2025-06-17
- */
- @RestController
- @RequestMapping("/system/folder")
- public class SysFileFolderController extends BaseController {
- @Autowired
- private ISysFileFolderService sysFileFolderService;
- /**
- * 查询文件文件夹(麻城知识库四级结构)列表
- */
- @PreAuthorize("@ss.hasPermi('system:user:list')")
- @GetMapping("/list")
- public TableDataInfo list(SysFileFolder sysFileFolder) {
- startPage();
- List<SysFileFolder> list = sysFileFolderService.selectSysFileFolderList(sysFileFolder);
- return getDataTable(list);
- }
- /**
- * 导出文件文件夹(麻城知识库四级结构)列表
- */
- @PreAuthorize("@ss.hasPermi('system:user:export')")
- @Log(title = "文件文件夹(麻城知识库四级结构)", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(HttpServletResponse response, SysFileFolder sysFileFolder) {
- List<SysFileFolder> list = sysFileFolderService.selectSysFileFolderList(sysFileFolder);
- ExcelUtil<SysFileFolder> util = new ExcelUtil<>(SysFileFolder.class);
- util.exportExcel(response, list, "文件文件夹(麻城知识库四级结构)数据");
- }
- /**
- * 获取文件文件夹(麻城知识库四级结构)详细信息
- */
- @PreAuthorize("@ss.hasPermi('system:user:query')")
- @GetMapping(value = "/{folderId}")
- public AjaxResult getInfo(@PathVariable("folderId") Long folderId) {
- return success(sysFileFolderService.selectSysFileFolderByFolderId(folderId));
- }
- /**
- * 新增文件文件夹(麻城知识库四级结构)
- */
- @PreAuthorize("@ss.hasPermi('system:user:add')")
- @Log(title = "文件文件夹(麻城知识库四级结构)", businessType = BusinessType.INSERT)
- @PostMapping
- public AjaxResult add(@RequestBody SysFileFolder sysFileFolder) {
- return toAjax(sysFileFolderService.insertSysFileFolder(sysFileFolder));
- }
- /**
- * 修改文件文件夹(麻城知识库四级结构)
- */
- @PreAuthorize("@ss.hasPermi('system:user:edit')")
- @Log(title = "文件文件夹(麻城知识库四级结构)", businessType = BusinessType.UPDATE)
- @PutMapping("/update")
- public AjaxResult edit(@RequestBody SysFileFolder sysFileFolder) {
- LoginUser loginUser = SecurityUtils.getLoginUser();
- // 检查 sysFileFolder.getDeptId() 是否为 null
- if (loginUser.getUserId().equals(1L) ||
- (sysFileFolder.getCreateBy().equals(loginUser.getUser().getNickName()))) {
- return toAjax(sysFileFolderService.updateSysFileFolder(sysFileFolder));
- }
- return error("只有超级管理员或创建者可以修改");
- }
- /**
- * 删除文件文件夹(麻城知识库四级结构)
- */
- @PreAuthorize("@ss.hasPermi('system:user:remove')")
- @Log(title = "文件文件夹(麻城知识库四级结构)", businessType = BusinessType.DELETE)
- @DeleteMapping("/batchRemove/{folderIds}")
- public AjaxResult remove(@PathVariable Long[] folderIds) {
- return toAjax(sysFileFolderService.deleteSysFileFolderByFolderIds(folderIds));
- }
- /**
- * 获取部门树列表
- */
- @PreAuthorize("@ss.hasPermi('system:user:query')")
- @GetMapping("/folderTree")
- public AjaxResult folderTree(SysFileFolder sysFileFolder) {
- logger.info("返回的文件夹树数据: {}", sysFileFolderService.selectSysFileFolderTree(sysFileFolder).toString());
- return success(sysFileFolderService.selectSysFileFolderTree(sysFileFolder));
- }
- /**
- * 检查文件文件夹是否可以删除(是否包含子文件夹或文件)
- */
- @PreAuthorize("@ss.hasPermi('system:user:remove')")
- @GetMapping("/checkDeletable/{folderId}")
- public AjaxResult checkDeletable(@PathVariable Long folderId) {
- LoginUser loginUser = SecurityUtils.getLoginUser();
- // 判断是否包含子文件夹或文件
- boolean hasChildren = sysFileFolderService.hasChildren(folderId);
- int fileCount = sysFileFolderService.getFileCountByFolderId(folderId);
- if (loginUser.getUserId().equals(1L)
- || loginUser.getUser().getNickName()
- .equals(sysFileFolderService.selectSysFileFolderByFolderId(folderId).getCreateBy())) {
- return success(new CheckResult(hasChildren, fileCount));
- }
- return error("只有超级管理员或创建者可以删除");
- }
- // 内部类用于封装返回结果
- @Getter
- private static class CheckResult {
- private final boolean hasChildren;
- private final int fileCount;
- public CheckResult(boolean hasChildren, int fileCount) {
- this.hasChildren = hasChildren;
- this.fileCount = fileCount;
- }
- }
- // ... existing code ...
- /**
- * 删除指定文件夹下的所有文件(软删除)
- */
- @PreAuthorize("@ss.hasPermi('system:user:remove')")
- @Log(title = "文件操作", businessType = BusinessType.DELETE)
- @DeleteMapping("/{folderId}")
- public AjaxResult deleteFilesByFolderId(@PathVariable Long folderId) {
- return success(sysFileFolderService.deleteFilesByFolderId(folderId));
- }
- /**
- * 获取部门树列表(部门管理员)
- */
- @PreAuthorize("@ss.hasPermi('system:user:query')")
- @GetMapping()
- public AjaxResult folderTreeSelectByDeptId(SysFileFolder sysFileFolder) {
- LoginUser loginUser = SecurityUtils.getLoginUser();
- if (loginUser.getUserId().equals(1L)) {
- return success(sysFileFolderService.selectSysFileFolderTree(sysFileFolder));
- }
- return success(sysFileFolderService.selectSysFileFolderTreeByDeptId(loginUser.getDeptId(), sysFileFolder));
- }
- }
|