From 92b586e7d47167421f6500be641734acebeacd79 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 15 三月 2024 20:39:30 +0800 Subject: [PATCH] 分类管理、字段管理接口 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldCategoryServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 40 insertions(+), 16 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldCategoryServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldCategoryServiceImpl.java index 2a7e491..bb46ead 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldCategoryServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbFieldCategoryServiceImpl.java @@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.common.basic.PageVO; +import com.ruoyi.common.basic.PageDTO; +import com.ruoyi.common.enums.ShowStatus; +import com.ruoyi.common.utils.BeanUtils; +import com.ruoyi.common.utils.CollUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.system.domain.TbFieldCategory; import com.ruoyi.system.dto.FieldCategoryDTO; import com.ruoyi.system.dto.ShowHideDTO; @@ -63,31 +65,39 @@ } @Override - public PageVO<FieldCategoryVO> queryPage(FieldCategoryQuery query) { + public PageDTO<FieldCategoryVO> queryPage(FieldCategoryQuery query) { Page<TbFieldCategory> page = this.lambdaQuery() .like(StringUtils.isNotBlank(query.getFieldCategoryName()), TbFieldCategory::getFieldCategoryName, query.getFieldCategoryName()) .eq(ObjectUtils.isNotEmpty(query.getStatus()), TbFieldCategory::getStatus, query.getStatus()) + .eq(TbFieldCategory::getParentId, 0) + .orderByDesc(TbFieldCategory::getCreateTime) .page(new Page<>(query.getPageNum(), query.getPageSize())); - PageVO<FieldCategoryVO> pageVO = new PageVO<>(); - pageVO.setPageNo(page.getPages()); - pageVO.setPageSize(page.getSize()); - pageVO.setTotalPages(page.getTotal()); - pageVO.setTotalCount(page.getTotal()); - pageVO.setRecords(page.getRecords().stream().map(item -> { - FieldCategoryVO fieldCategoryVO = new FieldCategoryVO(); - BeanUtils.copyBeanProp(fieldCategoryVO, item); - return fieldCategoryVO; - }).collect(Collectors.toList())); - return pageVO; + if (CollUtils.isEmpty(page.getRecords())) { + return PageDTO.empty(page); + } + return PageDTO.of(page, FieldCategoryVO.class); } @Override + @Transactional(rollbackFor = Exception.class) public void showHide(ShowHideDTO dto) { - TbFieldCategory category = this.getById(dto.getId()); + updateCategoryAndChildren(dto.getId(), dto.getStatus()); + } + + private void updateCategoryAndChildren(Integer id, Integer status) { + TbFieldCategory category = this.getById(id); if (Objects.isNull(category)) { throw new RuntimeException("非法id"); } - this.lambdaUpdate().eq(TbFieldCategory::getId, dto.getId()).set(TbFieldCategory::getStatus, dto.getStatus()); + this.lambdaUpdate() + .eq(TbFieldCategory::getId, id) + .set(TbFieldCategory::getStatus, status) + .update(); + List<TbFieldCategory> children = this.lambdaQuery().eq(TbFieldCategory::getParentId, category.getId()).list(); + if (CollUtils.isNotEmpty(children)) { + List<Integer> childIds = children.stream().map(TbFieldCategory::getId).collect(Collectors.toList()); + childIds.forEach(childId -> updateCategoryAndChildren(childId, status)); + } } @Override @@ -113,6 +123,9 @@ public void delete(Integer id) { //一级分类 TbFieldCategory category = this.getById(id); + if (Objects.isNull(category)) { + throw new RuntimeException("非法参数"); + } //查询是否有二级分类 List<TbFieldCategory> threeCategoryList = this.lambdaQuery().eq(TbFieldCategory::getParentId, id).list(); if (CollectionUtils.isNotEmpty(threeCategoryList)) { @@ -148,6 +161,7 @@ }); } } + private void updateCategory(FieldCategoryUpdateDTO dto) { if (dto == null) return; this.lambdaUpdate() @@ -156,4 +170,14 @@ .eq(TbFieldCategory::getId, dto.getId()) .update(); } + + @Override + public List<FieldCategoryVO> queryFieldCategories(Integer id) { + List<TbFieldCategory> list = this.lambdaQuery() + .select(TbFieldCategory::getId,TbFieldCategory::getFieldCategoryName) + .eq(TbFieldCategory::getParentId, id) + .eq(TbFieldCategory::getStatus, ShowStatus.SHOW) + .list(); + return BeanUtils.copyList(list, FieldCategoryVO.class); + } } -- Gitblit v1.7.1