package com.finance.web.controller.api; import com.finance.common.basic.PageDTO; import com.finance.common.core.domain.R; import com.finance.common.exception.ServiceException; import com.finance.common.utils.BeanUtils; import com.finance.system.domain.TbField; import com.finance.system.dto.FieldDTO; import com.finance.system.dto.ShowHideDTO; import com.finance.system.dto.update.FieldUpdateDTO; import com.finance.system.query.FieldQuery; import com.finance.system.service.TbFieldCategoryService; import com.finance.system.service.TbFieldService; import com.finance.system.vo.FieldCategoryVO; import com.finance.system.vo.FieldVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** *

* 字段表 前端控制器 *

* * @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 Long id) { try { return R.ok(tbFieldCategoryService.queryFieldCategories(id)); } catch (Exception e) { if (e instanceof ServiceException) { return R.fail(e.getMessage()); } log.error("获取分类列表异常", e); return R.fail(); } } /** * 添加字段 * * @param dto 字段数据传输对象 * @return 响应状态 */ @PostMapping("/add") @ApiOperation("添加字段") public R add(@RequestBody @Validated FieldDTO dto) { try { tbFieldService.add(dto); } catch (Exception e) { if (e instanceof ServiceException) { return R.fail(e.getMessage()); } log.error("添加字段异常", e); return R.fail(); } return R.ok(); } @GetMapping("/influenced-data") @ApiOperation("隐藏字段,获取同步隐藏的基础数据") public R influencedData(@RequestParam Long id) { try { return R.ok(tbFieldService.influencedData(id)); } catch (Exception e) { if (e instanceof ServiceException) { return R.fail(e.getMessage()); } log.error("获取同步隐藏的基础数据异常", e); return R.fail(); } } /** * 隐藏显示操作 * * @param dto 显示隐藏操作数据传输对象 * @return R */ @PostMapping("/show-hide") @ApiOperation("隐藏显示操作") public R showHide(@RequestBody ShowHideDTO dto) { try { tbFieldService.showHide(dto); } catch (Exception e) { if (e instanceof ServiceException) { return R.fail(e.getMessage()); } log.error("隐藏显示操作异常", e); return R.fail(); } return R.ok(); } /** * 编辑字段 * * @param dto 字段数据传输对象 * @return 响应状态 */ @PostMapping("/edit") @ApiOperation("编辑字段") public R editField(@RequestBody @Validated FieldUpdateDTO dto) { try { tbFieldService.editField(dto); } catch (Exception e) { if (e instanceof ServiceException) { return R.fail(e.getMessage()); } log.error("编辑字段异常", e); return R.fail(); } return R.ok(); } /** * 分页条件查询 * * @param query 部门条件查询对象 * @return PageVO */ @PostMapping("/page") @ApiOperation("分页条件查询") public R> page(@Validated @RequestBody FieldQuery query) { try { return R.ok(tbFieldService.queryPage(query)); } catch (Exception e) { if (e instanceof ServiceException) { return R.fail(e.getMessage()); } log.error("分页条件查询异常", e); return R.fail(); } } /** * 获取详情 * * @param id id * @return FieldVO */ @GetMapping("/get-details") @ApiOperation("获取详情") public R getDetails(@RequestParam Long id) { try { TbField field = tbFieldService.getById(id); return R.ok(BeanUtils.copyBean(field, FieldVO.class)); } catch (Exception e) { if (e instanceof ServiceException) { return R.fail(e.getMessage()); } log.error("获取详情", e); return R.fail(); } } /** * 删除 * * @param id id * @return 响应状态 */ @DeleteMapping("/delete") @ApiOperation("删除") public R delete(@RequestParam Long id) { try { tbFieldService.removeById(id); } catch (Exception e) { if (e instanceof ServiceException) { return R.fail(e.getMessage()); } log.error("获取详情", e); return R.fail(); } return R.ok(); } /** * 模板下载 */ @GetMapping("/download") @ApiOperation("模板下载") public void downloadImportTemplate() { try { tbFieldService.downloadImportTemplate(); } catch (Exception e) { log.error("模板下载异常", e); throw new ServiceException("模板下载失败,请联系管理员!"); } } }