| | |
| | | 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; |
| | |
| | | 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> |
| | |
| | | * @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); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @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(); |
| | | } |
| | | |
| | | } |