package com.ruoyi.web.controller.api; import com.ruoyi.common.basic.PageDTO; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.BeanUtils; import com.ruoyi.system.domain.TbField; import com.ruoyi.system.dto.FieldDTO; import com.ruoyi.system.dto.ShowHideDTO; import com.ruoyi.system.dto.update.FieldUpdateDTO; import com.ruoyi.system.query.FieldQuery; import com.ruoyi.system.service.TbFieldCategoryService; import com.ruoyi.system.service.TbFieldService; import com.ruoyi.system.vo.FieldCategoryVO; import com.ruoyi.system.vo.FieldVO; import io.swagger.annotations.Api; 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 java.util.List; import java.util.Objects; /** *

* 字段表 前端控制器 *

* * @author mitao * @since 2024-03-13 */ @Slf4j @RestController @RequiredArgsConstructor @RequestMapping("/field") @Api(tags = "字段管理相关接口") public class TbFieldController { private final TbFieldService tbFieldService; private final TbFieldCategoryService tbFieldCategoryService; /** * 获取分类列表 * @param id 分类id * @return 分类列表 */ @GetMapping("/categories") @ApiOperation(value = "获取分类列表",notes = "一级分类id传0,二级分类传一级分类id,三级分类同理") public R> queryFieldCategories(@RequestParam Integer id) { return R.ok(tbFieldCategoryService.queryFieldCategories(id)); } /** * 添加字段 * @param dto 字段数据传输对象 * @return 响应状态 */ @PostMapping("/add") @ApiOperation("添加字段") public R add(@RequestBody @Validated FieldDTO dto){ tbFieldService.add(dto); return R.ok(); } @GetMapping("/influenced-data") @ApiOperation("隐藏字段,获取同步隐藏的基础数据") public R> influencedData(@RequestParam Integer id) { return R.ok(tbFieldService.influencedData(id)); } /** * 隐藏显示操作 * @param dto 显示隐藏操作数据传输对象 * @return R */ @PostMapping("/show-hide") @ApiOperation("隐藏显示操作") public R showHide(@RequestBody ShowHideDTO dto) { tbFieldService.showHide(dto); return R.ok(); } /** * 编辑字段 * @param dto 字段数据传输对象 * @return 响应状态 */ @PostMapping("/edit") @ApiOperation("编辑字段") public R add(@RequestBody @Validated FieldUpdateDTO dto){ TbField field = tbFieldService.getById(dto.getId()); if (Objects.isNull(field)) { throw new RuntimeException("参数异常"); } TbField tbField = BeanUtils.copyBean(dto, TbField.class); tbFieldService.updateById(tbField); return R.ok(); } /** * 分页条件查询 * @param query 部门条件查询对象 * @return PageVO */ @PostMapping("/page") @ApiOperation("分页条件查询") public R> page(@RequestBody FieldQuery query) { return R.ok(tbFieldService.queryPage(query)); } /** * 获取详情 * @param id id * @return FieldVO */ @GetMapping("/get-details") @ApiOperation("获取详情") public R getDetails(@RequestParam Integer id){ TbField field = tbFieldService.getById(id); return R.ok(BeanUtils.copyBean(field, FieldVO.class)); } /** * 删除 * @param id id * @return 响应状态 */ @DeleteMapping("/delete") @ApiOperation("删除") public R delete(@RequestParam Integer id){ tbFieldService.removeById(id); return R.ok(); } }