package org.jeecg.modules.demo.resManager.catalog.controller; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.google.gson.JsonObject; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.demo.resManager.catalog.entity.Rescatalog; import org.jeecg.modules.demo.resManager.catalog.service.IRescatalogService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.modules.demo.resManager.categories.entity.Layercategories; import org.jeecg.modules.demo.resManager.categories.service.ILayercategoriesService; import org.jeecg.modules.demo.resManager.fields.entity.Layerfields; import org.jeecg.modules.demo.resManager.fields.service.ILayerfieldsService; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.jeecg.common.system.base.controller.JeecgController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.aspect.annotation.AutoLog; /** * @Description: 资源目录 * @Author: jeecg-boot * @Date: 2022-01-17 * @Version: V1.0 */ @Api(tags = "资源目录") @RestController @RequestMapping("/resManager.catalog/rescatalog") @Slf4j public class RescatalogController extends JeecgController { @Autowired private IRescatalogService rescatalogService; @Autowired private ILayercategoriesService layercategoriesService; @Autowired private ILayerfieldsService layerfieldsService; @AutoLog(value = "资源目录-资源目录查询") @ApiOperation(value = "资源目录-资源目录查询", notes = "资源目录-资源目录查询") @GetMapping(value = "/resList") public Result getResList() { List resList = new ArrayList<>(); resList = getResListByPid("0"); return Result.OK(resList); } private List getResListByPid(String pid) { List resList = new ArrayList<>(); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Rescatalog::getPid, pid).orderByAsc(Rescatalog::getDisplayorder); List resCatalogs = rescatalogService.list(queryWrapper); if(resCatalogs.size()>0){ for(int i=0;i fieldsQueryWrapper = new LambdaQueryWrapper<>(); fieldsQueryWrapper.eq(Layerfields::getLayername,rescatalog.getName()); fieldsQueryWrapper.orderByAsc(Layerfields::getXh); List layerFields = layerfieldsService.list(fieldsQueryWrapper); List fieldList = new ArrayList<>(); if(layerFields.size()>0){ for(int j=0;j categoriesQueryWrapper = new LambdaQueryWrapper<>(); categoriesQueryWrapper.eq(Layercategories::getLayername,rescatalog.getName()); List layerCategories = layercategoriesService.list(categoriesQueryWrapper); List categoryList = new ArrayList<>(); if(layerCategories.size()>0){ for(int j=0;j queryPageList(Rescatalog rescatalog, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { String hasQuery = req.getParameter("hasQuery"); if (hasQuery != null && "true".equals(hasQuery)) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(rescatalog, req.getParameterMap()); List list = rescatalogService.queryTreeListNoPage(queryWrapper); IPage pageList = new Page<>(1, 10, list.size()); pageList.setRecords(list); return Result.OK(pageList); } else { String parentId = rescatalog.getPid(); if (oConvertUtils.isEmpty(parentId)) { parentId = "0"; } rescatalog.setPid(null); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(rescatalog, req.getParameterMap()); // 使用 eq 防止模糊查询 queryWrapper.eq("pid", parentId); Page page = new Page(pageNo, pageSize); IPage pageList = rescatalogService.page(page, queryWrapper); return Result.OK(pageList); } } /** * 获取子数据 * * @param rescatalog * @param req * @return */ @AutoLog(value = "资源目录-获取子数据") @ApiOperation(value = "资源目录-获取子数据", notes = "资源目录-获取子数据") @GetMapping(value = "/childList") public Result queryPageList(Rescatalog rescatalog, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(rescatalog, req.getParameterMap()); List list = rescatalogService.list(queryWrapper); IPage pageList = new Page<>(1, 10, list.size()); pageList.setRecords(list); return Result.OK(pageList); } /** * 批量查询子节点 * * @param parentIds 父ID(多个采用半角逗号分割) * @param parentIds * @return 返回 IPage * @return */ @AutoLog(value = "资源目录-批量获取子数据") @ApiOperation(value = "资源目录-批量获取子数据", notes = "资源目录-批量获取子数据") @GetMapping("/getChildListBatch") public Result getChildListBatch(@RequestParam("parentIds") String parentIds) { try { QueryWrapper queryWrapper = new QueryWrapper<>(); List parentIdList = Arrays.asList(parentIds.split(",")); queryWrapper.in("pid", parentIdList); List list = rescatalogService.list(queryWrapper); IPage pageList = new Page<>(1, 10, list.size()); pageList.setRecords(list); return Result.OK(pageList); } catch (Exception e) { log.error(e.getMessage(), e); return Result.error("批量查询子节点失败:" + e.getMessage()); } } /** * 添加 * * @param rescatalog * @return */ @AutoLog(value = "资源目录-添加") @ApiOperation(value = "资源目录-添加", notes = "资源目录-添加") @PostMapping(value = "/add") public Result add(@RequestBody Rescatalog rescatalog) { rescatalogService.addRescatalog(rescatalog); return Result.OK("添加成功!"); } /** * 编辑 * * @param rescatalog * @return */ @AutoLog(value = "资源目录-编辑") @ApiOperation(value = "资源目录-编辑", notes = "资源目录-编辑") @PostMapping(value = "/edit") public Result edit(@RequestBody Rescatalog rescatalog) { rescatalogService.updateRescatalog(rescatalog); return Result.OK("编辑成功!"); } /** * 通过id删除 * * @param id * @return */ @AutoLog(value = "资源目录-通过id删除") @ApiOperation(value = "资源目录-通过id删除", notes = "资源目录-通过id删除") @PostMapping(value = "/delete") public Result delete(@RequestParam(name = "id", required = true) String id) { rescatalogService.deleteRescatalog(id); return Result.OK("删除成功!"); } /** * 批量删除 * * @param ids * @return */ @AutoLog(value = "资源目录-批量删除") @ApiOperation(value = "资源目录-批量删除", notes = "资源目录-批量删除") @PostMapping(value = "/deleteBatch") public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { this.rescatalogService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } /** * 通过id查询 * * @param id * @return */ @AutoLog(value = "资源目录-通过id查询") @ApiOperation(value = "资源目录-通过id查询", notes = "资源目录-通过id查询") @GetMapping(value = "/queryById") public Result queryById(@RequestParam(name = "id", required = true) String id) { Rescatalog rescatalog = rescatalogService.getById(id); if (rescatalog == null) { return Result.error("未找到对应数据"); } return Result.OK(rescatalog); } /** * 导出excel * * @param request * @param rescatalog */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, Rescatalog rescatalog) { return super.exportXls(request, rescatalog, Rescatalog.class, "资源目录"); } /** * 通过excel导入数据 * * @param request * @param response * @return */ @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, Rescatalog.class); } }