package com.qianwen.smartman.modules.system.controller; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; import javax.validation.Valid; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.mp.support.Condition; import com.qianwen.core.mp.support.Query; import com.qianwen.core.scanner.modular.annotation.DeleteResource; import com.qianwen.core.scanner.modular.annotation.GetResource; import com.qianwen.core.scanner.modular.annotation.PostResource; import com.qianwen.core.scanner.modular.annotation.PutResource; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.tool.api.R; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.modules.system.convert.InterfaceConfigFieldConvert; import com.qianwen.smartman.modules.system.entity.InterfaceConfigField; import com.qianwen.smartman.modules.system.service.IInterfaceConfigFieldService; import com.qianwen.smartman.modules.system.vo.InterfaceConfigFieldVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import springfox.documentation.annotations.ApiIgnore; @Api(value = "动态接口字段管理", tags = {"动态接口字段管理"}) @ApiResource({"blade-system/interface-config-field"}) @RestController /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/controller/InterfaceConfigFieldController.class */ public class InterfaceConfigFieldController extends BladeController { private IInterfaceConfigFieldService interfaceConfigFieldService; public InterfaceConfigFieldController(final IInterfaceConfigFieldService interfaceConfigFieldService) { this.interfaceConfigFieldService = interfaceConfigFieldService; } @ApiOperationSupport(order = 1) @GetResource({"/get/{id}"}) @ApiOperation(value = "接口字段表详情", notes = "传入interfaceConfigField") public R detail(@PathVariable String id) { InterfaceConfigField interfaceConfigField = (InterfaceConfigField) this.interfaceConfigFieldService.getById(id); return R.data(InterfaceConfigFieldConvert.INSTANCE.convert(interfaceConfigField)); } @ApiOperationSupport(order = 2) @ApiImplicitParams({@ApiImplicitParam(name = "configId", value = "根据接口ID获取接口字段配置", paramType = "query", dataType = "string")}) @GetResource({"/list"}) @ApiOperation(value = "接口字段表列表", notes = "传入map") public R> list(@RequestParam @ApiIgnore Map params) { String configId = (String) params.get("configId"); List list = this.interfaceConfigFieldService.list(Condition.getQueryWrapper(params, InterfaceConfigField.class).lambda().eq(Func.isNotBlank(configId), (v0) -> { return v0.getConfigId(); }, configId)); List collect = list.stream().map(item -> { InterfaceConfigFieldVO convert = InterfaceConfigFieldConvert.INSTANCE.convert(item); convert.setRelationFieldNames(Optional.ofNullable(this.interfaceConfigFieldService.findRelation(item)).map(f -> { return f.stream().map(field -> { return field.getName(); }).collect(Collectors.toList()); }).orElse(null)); return convert; }).collect(Collectors.toList()); return R.data(collect); } @ApiOperationSupport(order = 2) @GetResource({"/count"}) @ApiOperation(value = "接口字段表统计值", notes = "传入map") public R count(@RequestParam @ApiIgnore Map params) { Long count = Long.valueOf(this.interfaceConfigFieldService.count(Condition.getQueryWrapper(params, InterfaceConfigField.class))); return R.data(count); } @ApiOperationSupport(order = 3) @GetResource({"/page"}) @ApiOperation(value = "接口字段表分页", notes = "传入map") public R> page(@RequestParam @ApiIgnore Map params, Query query) { IPage pages = this.interfaceConfigFieldService.page(Condition.getPage(query), Condition.getQueryWrapper(params, InterfaceConfigField.class)); return R.data(InterfaceConfigFieldConvert.INSTANCE.convert(pages)); } @ApiOperationSupport(order = 4) @PostResource({"/insert"}) @ApiOperation(value = "接口字段表新增", notes = "传入interfaceConfigFieldVO") public R insert(@Valid @RequestBody InterfaceConfigFieldVO interfaceConfigFieldVO) { InterfaceConfigField interfaceConfigField = InterfaceConfigFieldConvert.INSTANCE.convert(interfaceConfigFieldVO); this.interfaceConfigFieldService.save(interfaceConfigField); return R.data(InterfaceConfigFieldConvert.INSTANCE.convert(interfaceConfigField)); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @PutResource({"/update"}) @ApiOperation(value = "接口字段表修改", notes = "传入interfaceConfigFieldVO") public R update(@Valid @RequestBody InterfaceConfigFieldVO interfaceConfigFieldVO) { InterfaceConfigField interfaceConfigField = InterfaceConfigFieldConvert.INSTANCE.convert(interfaceConfigFieldVO); this.interfaceConfigFieldService.updateById(interfaceConfigField); return R.data(InterfaceConfigFieldConvert.INSTANCE.convert(interfaceConfigField)); } @ApiOperationSupport(order = 6) @DeleteResource({"/remove"}) @ApiOperation(value = "接口字段表删除", notes = "传入ids") public R remove(@ApiParam(value = "主键", required = true) @RequestBody List ids) { if (ids.isEmpty()) { return R.status(false); } return R.status(this.interfaceConfigFieldService.removeByIds(Func.toLongList(ids))); } }