mitao
2024-03-15 92b586e7d47167421f6500be641734acebeacd79
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbFieldCategoryController.java
@@ -1,9 +1,9 @@
package com.ruoyi.web.controller.api;
import com.ruoyi.common.basic.PageVO;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.basic.PageDTO;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.utils.BeanUtils;
import com.ruoyi.system.domain.TbFieldCategory;
import com.ruoyi.system.dto.FieldCategoryDTO;
import com.ruoyi.system.dto.ShowHideDTO;
@@ -11,15 +11,16 @@
import com.ruoyi.system.query.FieldCategoryQuery;
import com.ruoyi.system.service.TbFieldCategoryService;
import com.ruoyi.system.vo.FieldCategoryDetailVO;
import com.ruoyi.system.vo.FieldCategoryVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Objects;
/**
 * <p>
@@ -29,58 +30,58 @@
 * @author mitao
 * @since 2024-03-13
 */
@Api(tags = "字段分类管理")
@Validated
@Slf4j
@RestController
@RequestMapping("/field-category")
@RequiredArgsConstructor
@Api(tags = "字段分类管理相关接口")
public class TbFieldCategoryController {
    private final TbFieldCategoryService tbFieldCategoryService;
    /**
     * 添加
     * @param dto 字段分类数据传输对象
     * @return AjaxResult
     * @return R
     */
    @PostMapping("/add")
    @ApiOperation("添加")
    public AjaxResult add(@RequestBody FieldCategoryDTO dto) {
    public R<Object> add(@RequestBody @Validated FieldCategoryDTO dto) {
        try {
            tbFieldCategoryService.add(dto);
        } catch (Exception e) {
            log.error("添加分类异常", e);
            throw new RuntimeException("操作失败");
        }
        return AjaxResult.success();
        return R.ok();
    }
    /**
     * 根据id获取字段分类详情
     * @param id 字段分类id
     * @return AjaxResult
     * @return R
     */
    @GetMapping("/getById")
    @ApiOperation("根据id获取字段分类详情")
    @ApiImplicitParam(name = "id", value = "字段分类id", required = true)
    public AjaxResult<FieldCategoryDetailVO> getById(@RequestParam(value = "id") @NotNull(message = "id不能为空") Integer id) {
    public R<FieldCategoryDetailVO> getById(@RequestParam(value = "id") Integer id) {
        TbFieldCategory oneCategory = tbFieldCategoryService.getById(id);
        FieldCategoryDetailVO vo = new FieldCategoryDetailVO();
        BeanUtils.copyBeanProp(vo, oneCategory);
        if (Objects.isNull(oneCategory)) {
            return R.ok(new FieldCategoryDetailVO());
        }
        FieldCategoryDetailVO vo = BeanUtils.copyBean(oneCategory, FieldCategoryDetailVO.class);
        //根据一级分类id,查询二级分类
        List<TbFieldCategory> twoCategoryList = tbFieldCategoryService.lambdaQuery().eq(TbFieldCategory::getParentId, oneCategory.getId()).list();
        twoCategoryList.forEach(item->{
            FieldCategoryDetailVO twoCategoryVO = new FieldCategoryDetailVO();
            BeanUtils.copyBeanProp(twoCategoryVO, item);
            FieldCategoryDetailVO twoCategoryVO = BeanUtils.copyBean(item, FieldCategoryDetailVO.class);
            vo.getChildren().add(twoCategoryVO);
            //根据二级分类id,查询三级分类
            List<TbFieldCategory> threeCategoryList = tbFieldCategoryService.lambdaQuery().eq(TbFieldCategory::getParentId, item.getId()).list();
            threeCategoryList.forEach(threeCategory->{
                FieldCategoryDetailVO threeCategoryVO = new FieldCategoryDetailVO();
                BeanUtils.copyBeanProp(threeCategoryVO, threeCategory);
                FieldCategoryDetailVO threeCategoryVO = BeanUtils.copyBean(threeCategory, FieldCategoryDetailVO.class);
                twoCategoryVO.getChildren().add(threeCategoryVO);
            });
            vo.getChildren().add(twoCategoryVO);
        });
        return AjaxResult.success(vo);
        return R.ok(vo);
    }
    /**
@@ -90,59 +91,61 @@
     */
    @PostMapping("/page")
    @ApiOperation("分页条件查询")
    public AjaxResult<PageVO<FieldCategoryDetailVO>> page(@RequestBody FieldCategoryQuery query) {
        return AjaxResult.success(tbFieldCategoryService.queryPage(query));
    public R<PageDTO<FieldCategoryVO>> page(@RequestBody FieldCategoryQuery query) {
        return R.ok(tbFieldCategoryService.queryPage(query));
    }
    /**
     * 隐藏显示操作
     * @param dto 显示隐藏操作数据传输对象
     * @return AjaxResult
     * @return R
     */
    @PostMapping("/show-hide")
    @PutMapping("/show-hide")
    @ApiOperation("隐藏显示操作")
    public AjaxResult showHide(@RequestBody ShowHideDTO dto) {
        try {
            tbFieldCategoryService.showHide(dto);
        } catch (Exception e) {
            throw new RuntimeException("操作失败");
        }
        return AjaxResult.success();
    public R<Object> showHide(@RequestBody ShowHideDTO dto) {
        tbFieldCategoryService.showHide(dto);
        return R.ok();
    }
    @GetMapping("/delete-children")
    /**
     * 删除分类子节点
     * @param id id
     * @return R
     */
    @DeleteMapping("/delete-children")
    @ApiOperation("编辑页面删除子字段分类")
    @ApiImplicitParam(name = "id", value = "字段分类id", required = true)
    public AjaxResult deleteChildren(@RequestParam(value = "id") @NotNull(message = "id不能为空") Integer id){
    public R<Object> deleteChildren(@RequestParam(value = "id") Integer id){
        try {
            tbFieldCategoryService.deleteChildren(id);
        } catch (Exception e) {
            log.error("编辑页面删除子字段分类失败",e);
            throw new RuntimeException("操作失败");
        }
        return AjaxResult.success();
        return R.ok();
    }
    @GetMapping("/delete")
    /**
     * 删除分类
     * @param id id
     * @return R
     */
    @DeleteMapping("/delete")
    @ApiOperation("列表页面删除分类")
    @ApiImplicitParam(name = "id", value = "字段分类id", required = true)
    public AjaxResult delete(@RequestParam(value = "id") @NotNull(message = "id不能为空") Integer id){
        try {
            tbFieldCategoryService.delete(id);
        } catch (Exception e) {
            throw new RuntimeException("操作失败");
        }
        return AjaxResult.success();
    public R<Void> delete(@RequestParam(value = "id") Integer id){
        tbFieldCategoryService.delete(id);
        return R.ok();
    }
    @PostMapping("/edit")
    /**
     * 编辑分类
     * @param dto 字段分类更新数据传输对象
     * @return R
     */
    @PutMapping("/edit")
    @ApiOperation("编辑")
    public AjaxResult edit(@RequestBody FieldCategoryUpdateDTO dto) {
        try {
            tbFieldCategoryService.edit(dto);
        } catch (Exception e) {
            throw new RuntimeException("操作失败");
        }
        return AjaxResult.success();
    public R<Object> edit(@RequestBody FieldCategoryUpdateDTO dto) {
        tbFieldCategoryService.edit(dto);
        return R.ok();
    }
}