package com.artfess.query.controller; import com.artfess.base.annotation.ApiGroup; import com.artfess.base.constants.ApiGroupConsts; import com.artfess.base.controller.BaseController; import com.artfess.base.enums.ResponseErrorEnums; import com.artfess.base.model.CommonResult; import com.artfess.base.valid.AddGroup; import com.artfess.query.manager.BizAdvanceQueryMouldConfigManager; import com.artfess.query.model.BizAdvanceQueryMould; import com.artfess.query.model.BizAdvanceQueryMouldConfig; import com.artfess.query.model.BizQueryTagCondition; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; 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; import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 高级查询条件配置表(界面动态配置)BIZ_ADVANCE_QUERY_MOULD_CONFIG 前端控制器 * * @company 阿特菲斯信息技术有限公司 * @author wh * @since 2025-02-17 */ @Api(tags = "企查查--高级查询条件配置表") @ApiGroup(group = {ApiGroupConsts.GROUP_BIZ_QUERY}) @RestController @RequestMapping("/query/queryMouldConfig/v1/") public class BizAdvanceQueryMouldConfigController extends BaseController { @ApiOperation("批量保存高级查询条件表") @PostMapping("saveBatch") public CommonResult saveBatch(@ApiParam(name = "model",value = "实体信息") @RequestBody @Validated({AddGroup.class}) List tagList) throws Exception { //验证字段不能出现重复 List fields=tagList.stream().map(t->t.getFieldName()).collect(Collectors.toList()); List disFields=fields.stream().distinct().collect(Collectors.toList()); if(fields.size()!=disFields.size()){ return new CommonResult<>(ResponseErrorEnums.FAIL_OPTION,"设置字段不能重复"); } boolean status = this.baseService.saveOrUpdateBatch(tagList); return status ? CommonResult.success(null,"批量高级查询条件模板表成功") : new CommonResult<>(ResponseErrorEnums.FAIL_OPTION); } @ApiOperation("根据标签查询对应配置的高级查询条件信息") @PostMapping("qureyConditionByTag") public CommonResult qureyConditionByTag(@RequestParam String tagId){ List list = this.baseService.qureyConditionByTag(tagId); List> reList = new ArrayList<>(); if(!CollectionUtils.isEmpty(list)){ Map> map = list.stream().collect(Collectors.groupingBy(BizAdvanceQueryMouldConfig::getQueryCatalogs)); for (Map.Entry> entry : map.entrySet()) { String key = entry.getKey(); List value = entry.getValue(); Map result = new HashMap<>(); result.put("group",key); result.put("data",value); result.put("size",value.size()); result.put("sn",value.get(0).getSn()); reList.add(result); } reList.sort(Comparator.comparing( remap -> (Comparable) remap.get("sn"), Comparator.nullsFirst(Comparator.naturalOrder()) )); } return CommonResult.success(reList,"获取成功!"); } }