package com.cim.idm.controller; import com.cim.idm.exception.BaseException; import com.cim.idm.response.BaseResponse; import com.cim.idm.response.RespGenerator; import com.cim.idm.service.QueryService; import com.cim.idm.utils.PageResult; import com.cim.idm.utils.ParamUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 查询接口控制器 */ @SuppressWarnings("all") @Slf4j @RestController @RequestMapping("/api") @Api(tags = "查询接口", description = "提供统一查询接口和分页查询接口") public class QueryController { @Autowired private QueryService queryService; /** * 统一查询接口 * @param param 查询参数 * @return 查询结果 */ @ApiOperation(value = "统一查询接口", notes = "根据 queryId 和 version 查询数据") @RequestMapping(value = "/query", method = RequestMethod.POST) public BaseResponse> query( @ApiParam(name = "param", value = "查询参数", required = true) @RequestBody Map param) { log.info("统一查询接口传输数据 param ==========> " + param); List> mapList = new ArrayList<>(); String queryId = ParamUtils.getStringParam(param, "queryId"); String version = ParamUtils.getStringParam(param, "version"); Map bindMap = (Map) param.get("params"); try { mapList = queryService.getQueryResult(queryId, version, bindMap); } catch (Exception e) { throw new BaseException(e.getMessage()); } return RespGenerator.returnOK(mapList); } /** * 统一查询接口(分页) * @param param 查询参数 * @return 分页查询结果 */ @ApiOperation(value = "统一查询接口(分页)", notes = "根据 queryId、version 和分页参数查询数据") @RequestMapping(value = "/queryPage", method = RequestMethod.POST) public BaseResponse>> queryPage( @ApiParam(name = "param", value = "查询参数", required = true) @RequestBody Map param) { log.info("统一查询接口(分页)传输数据 param ==========> " + param); PageResult> mapList = new PageResult<>(); String queryId = param.get("queryId").toString(); String version = param.get("version").toString(); int pageNum = (int) param.get("pageNum"); int pageSize = (int) param.get("pageSize"); Map bindMap = (Map) param.get("params"); try { mapList = queryService.getQueryResultPage(queryId, version, bindMap, pageNum, pageSize); } catch (Exception e) { throw new BaseException(e.getMessage()); } return RespGenerator.returnOK(mapList); } /** * PDA统一查询接口 * @param param 查询参数 * @return 查询结果 */ @ApiOperation(value = "PDA统一查询接口", notes = "根据 queryId 和 version 查询数据") @RequestMapping(value = "/ApiQuery", method = RequestMethod.POST) public BaseResponse> pdaQuery( @ApiParam(name = "param", value = "查询参数", required = true) @RequestBody Map param) { log.info("PDA统一查询接口传输数据 param ==========> " + param); List> mapList = new ArrayList<>(); String queryId = param.get("queryId").toString(); String version = param.get("version").toString(); Map bindMap = (Map) param.get("params"); try { mapList = queryService.getQueryResult(queryId, version, bindMap); } catch (Exception e) { throw new BaseException(e.getMessage()); } return RespGenerator.returnOK(mapList); } }