package io.dataease.controller.dataset; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.dataease.base.domain.DatasetTableField; import io.dataease.controller.response.DatasetTableField4Type; import io.dataease.service.dataset.DataSetFieldService; import io.dataease.service.dataset.DataSetTableFieldsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; /** * @Author gin * @Date 2021/2/24 4:28 下午 */ @Api(tags = "数据集:数据集字段") @ApiSupport(order = 60) @RestController @RequestMapping("/dataset/field") public class DataSetTableFieldController { @Resource private DataSetTableFieldsService dataSetTableFieldsService; @Autowired private DataSetFieldService dataSetFieldService; @ApiOperation("查询表下属字段") @PostMapping("list/{tableId}") public List list(@PathVariable String tableId) { DatasetTableField datasetTableField = DatasetTableField.builder().build(); datasetTableField.setTableId(tableId); return dataSetTableFieldsService.list(datasetTableField); } @ApiOperation("分组查询表下属字段") @PostMapping("listByDQ/{tableId}") public DatasetTableField4Type listByDQ(@PathVariable String tableId) { DatasetTableField datasetTableField = DatasetTableField.builder().build(); datasetTableField.setTableId(tableId); datasetTableField.setGroupType("d"); List dimensionList = dataSetTableFieldsService.list(datasetTableField); datasetTableField.setGroupType("q"); List quotaList = dataSetTableFieldsService.list(datasetTableField); DatasetTableField4Type datasetTableField4Type = new DatasetTableField4Type(); datasetTableField4Type.setDimensionList(dimensionList); datasetTableField4Type.setQuotaList(quotaList); return datasetTableField4Type; } @ApiOperation("批量更新") @PostMapping("batchEdit") public void batchEdit(@RequestBody List list) { dataSetTableFieldsService.batchEdit(list); } @ApiOperation("保存") @PostMapping("save") public DatasetTableField save(@RequestBody DatasetTableField datasetTableField) { return dataSetTableFieldsService.save(datasetTableField); } @ApiOperation("删除") @PostMapping("delete/{id}") public void delete(@PathVariable String id) { dataSetTableFieldsService.delete(id); } @ApiOperation("值枚举") @PostMapping("fieldValues/{fieldId}") public List fieldValues(@PathVariable String fieldId) { return dataSetFieldService.fieldValues(fieldId); } @ApiOperation("多字段值枚举") @PostMapping("multFieldValues") public List multFieldValues(@RequestBody List fieldIds) { List results = fieldIds.stream().map(fieldId -> dataSetFieldService.fieldValues(fieldId)).flatMap(list -> list.stream()).distinct().collect(Collectors.toList()); return results; } }