package com.vci.ubcs.omd.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.vci.ubcs.omd.constant.OmdCacheConstant; import com.vci.ubcs.omd.dto.OmdAttributeDTO; import com.vci.ubcs.omd.entity.OmdAttribute; import com.vci.ubcs.omd.service.IOmdAttributeService; import com.vci.ubcs.omd.vo.OmdAttributeVO; import com.vci.ubcs.omd.wrapper.OmdAttributeWrapper; import com.vci.ubcs.system.vo.DictVO; import io.swagger.annotations.*; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.BeanUtil; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import javax.validation.Valid; import java.util.List; import java.util.Map; /** * Description: 元数据(属性)控制器 * * @author LiHang * @date 2023/4/3 */ @NonDS @RestController @AllArgsConstructor @RequestMapping("/attribute") @Api(value = "元数据控制器", tags = "元数据控制器") public class OmdAttributeController extends BladeController { /** * 元数据服务 */ private final IOmdAttributeService attributeService; /** * 查看详情 * @param id 主键 * @return 执行结果 */ @GetMapping("/detail") @ApiOperationSupport(order = 1) @ApiOperation(value = "查看详情", notes = "传入主键") public R detail(Long id) { return R.data(attributeService.getAttributeDetail(id)); } /** * 列表 * @param condition 查询条件 * @return 执行结果 */ @GetMapping("/list") @ApiImplicitParams({ @ApiImplicitParam(name = "key", value = "属性名", paramType = "query", dataType = "string"), }) @ApiOperationSupport(order = 2) @ApiOperation(value = "查询列表", notes = "传入查询") public R> list(@ApiIgnore @RequestParam Map condition) { return R.data(OmdAttributeWrapper.build().listEntityVO(attributeService.list(Condition.getQueryWrapper(condition, OmdAttribute.class).lambda().orderByAsc(OmdAttribute::getKey)))); } /** * 分页列表 * @param condition 查询条件 */ @GetMapping("/page") @ApiImplicitParams({ @ApiImplicitParam(name = "key", value = "属性名", paramType = "query", dataType = "string"), }) @ApiOperationSupport(order = 2) @ApiOperation(value = "查询列表", notes = "传入查询") public R> parentList(@ApiIgnore @RequestParam Map condition, Query query) { IPage pageVO = new Page<>(); IPage page = attributeService.page(Condition.getPage(query), Condition.getQueryWrapper(condition, OmdAttribute.class).lambda().orderByAsc(OmdAttribute::getKey)); BeanUtil.copy(page,pageVO); pageVO.setRecords( OmdAttributeWrapper.build().listEntityVO(page.getRecords())); return R.data(pageVO); } /** * 新增或修改 * @param dto 元数据页面传输对象 * @return 执行结果 */ @PostMapping("/submit") @ApiOperationSupport(order = 3) @ApiOperation(value = "新增或修改", notes = "传入元数据对象") public R submit(@Valid @RequestBody OmdAttributeDTO dto) { CacheUtil.clear(OmdCacheConstant.ATTR_CACHE); return R.status(attributeService.submit(dto)); } /** * 删除 * @param ids 主键集合 * @return 执行结果 */ @PostMapping("/remove") @ApiOperationSupport(order = 4) @ApiOperation(value = "删除", notes = "主键集合") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { CacheUtil.clear(OmdCacheConstant.ATTR_CACHE); return R.status(attributeService.removeAttrs(ids)); } /** * 查看应用范围 * @param id 主键 * @return 查询结果 */ @GetMapping("/applyRange") @ApiOperationSupport(order = 5) @ApiOperation(value = "查看应用范围",notes = "传入主键") public R applyRange(Long id){ return R.data(attributeService.applyRange(id)); } }