package com.product.server.report.controller; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.product.server.report.config.ReportCode; import com.product.util.BaseUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.product.common.lang.StringUtils; import com.product.core.config.CoreConst; import com.product.core.controller.support.AbstractBaseController; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.entity.RequestParameterEntity; import com.product.core.exception.BaseException; import com.product.module.sys.version.ApiVersion; import com.product.server.report.config.CmnConst; import com.product.server.report.config.SystemCode; import com.product.server.report.service.ReportDatasourceService; import com.product.server.report.service.idel.IReportDatasourceService; import com.product.util.config.SystemParamSet; @RestController @RequestMapping("/api/report-datasource") public class ReportDatasourceController extends AbstractBaseController{ @Autowired ReportDatasourceService reportDatasourceService; /** * 鎶ヨ〃鏁版嵁婧愬垪琛� * @param response * @param request * @return */ @RequestMapping(value = "/list-datasource/{version}", method = RequestMethod.POST) @ApiVersion(1) public String listDatasource(HttpServletResponse response,HttpServletRequest request) { try { //鑾峰彇鍙傛暟 FieldSetEntity fse=null; Object bean=request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if(bean != null){ RequestParameterEntity reqp=(RequestParameterEntity)bean; fse = reqp.getFormData(); } //鍒ゆ柇鍙傛暟鏄惁涓虹┖ if(bean == null || fse == null) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //鍒ゆ柇琛ㄥ悕鏄惁姝e父 if (!CmnConst.PRODUCT_SYS_REPORT_DATASOURCE_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } DataTableEntity dt=reportDatasourceService.listDatasource(fse); return OK_List(dt); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(),e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText()+e.getMessage()); } } /** * 鎶ヨ〃鏁版嵁婧愯鎯� * @param response * @param request * @return */ @RequestMapping(value = "/find-datasource/{version}", method = RequestMethod.POST) @ApiVersion(1) public String findDatasource(HttpServletResponse response,HttpServletRequest request) { try { //鑾峰彇鍙傛暟 FieldSetEntity fse=null; Object bean=request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if(bean != null){ RequestParameterEntity reqp=(RequestParameterEntity)bean; fse = reqp.getFormData(); } //鍒ゆ柇鍙傛暟鏄惁涓虹┖ if(bean == null || fse == null) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //鍒ゆ柇琛ㄥ悕鏄惁姝e父 if (!CmnConst.PRODUCT_SYS_REPORT_DATASOURCE_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } //鍒ゆ柇uuid鏄惁涓虹┖ if (StringUtils.isEmpty(fse.getUUID())) { return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText()); } FieldSetEntity dt=reportDatasourceService.findDatasource(fse.getUUID()); return OK_List(dt); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(),e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText()+e.getMessage()); } } /** * 鏁版嵁婧�-淇濆瓨 * @param response * @param request * @return */ @RequestMapping(value = "/save-datasource/{version}", method = RequestMethod.POST) @ApiVersion(1) public String updateDatasource(HttpServletRequest request) { try { //鑾峰彇鍙傛暟 FieldSetEntity fse=null; Object bean=request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if(bean != null){ RequestParameterEntity reqp=(RequestParameterEntity)bean; fse = reqp.getFormData(); } //鍒ゆ柇鍙傛暟鏄惁涓虹┖ if(bean == null || fse == null) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //鍒ゆ柇琛ㄥ悕鏄惁姝e父 if (!CmnConst.PRODUCT_SYS_REPORT_DATASOURCE_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } IReportDatasourceService service=(IReportDatasourceService)getProxyInstance(reportDatasourceService); String uuid = service.saveDatasource(fse); return OK_Add(uuid); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(),e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_SAVE_FAIL.getValue(), ReportCode.REPORT_DATASOURCE_SAVE_FAIL.getText()+e.getMessage()); } } /** * 鎶ヨ〃鏁版嵁婧愭柊澧� * * @param request * @return */ @RequestMapping(value = "/copy-datasource/{version}", method = RequestMethod.POST) @ApiVersion(1) public String copyDatasource(HttpServletRequest request) { try { //鑾峰彇鍙傛暟 FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } //鍒ゆ柇鍙傛暟鏄惁涓虹┖ if (bean == null || fse == null) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //鍒ゆ柇琛ㄥ悕鏄惁姝e父 if (!CmnConst.PRODUCT_SYS_REPORT_DATASOURCE_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } return OK_List(reportDatasourceService.copyDatasource(fse)); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_COPY_FAIL.getValue(), ReportCode.REPORT_DATASOURCE_COPY_FAIL.getText() + e.getMessage()); } } /** * 鎶ヨ〃鏁版嵁婧愬垹闄� * @param response * @param request * @return */ @RequestMapping(value = "/delete-datasource/{version}", method = RequestMethod.POST) @ApiVersion(1) public String deleteDatasource(HttpServletResponse response,HttpServletRequest request) { try { //鑾峰彇鍙傛暟 FieldSetEntity fse=null; Object bean=request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if(bean != null){ RequestParameterEntity reqp=(RequestParameterEntity)bean; fse = reqp.getFormData(); } //鍒ゆ柇鍙傛暟鏄惁涓虹┖ if(bean == null || fse == null) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //鍒ゆ柇琛ㄥ悕鏄惁姝e父 if (!CmnConst.PRODUCT_SYS_REPORT_DATASOURCE_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } //鍒ゆ柇uuid鏄惁涓虹┖ if (StringUtils.isEmpty(fse.getUUID())) { return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText()); } IReportDatasourceService service=(IReportDatasourceService)getProxyInstance(reportDatasourceService); boolean succ=service.deleteDatasource(fse.getUUID()); if (succ) { return OK(); }else { return this.error(SystemCode.SYTEM_REPORT_DATASOURCE_DELETE_ERROR.getValue(), SystemCode.SYTEM_REPORT_DATASOURCE_DELETE_ERROR.getText()); } } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(),e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText()+e.getMessage()); } } /** * 鎶ヨ〃sql瑙f瀽涓庨獙璇� * @param response * @param request * @return */ @RequestMapping(value = "/verify-sql/{version}", method = RequestMethod.POST) @ApiVersion(1) public String sqlVerify(HttpServletResponse response,HttpServletRequest request) { try { //鑾峰彇鍙傛暟 FieldSetEntity fse=null; Object bean=request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if(bean != null){ RequestParameterEntity reqp=(RequestParameterEntity)bean; fse = reqp.getFormData(); } //鍒ゆ柇鍙傛暟鏄惁涓虹┖ if(bean == null || fse == null) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //鍒ゆ柇uuid鏄惁涓虹┖ if (StringUtils.isEmpty(fse.getString(CmnConst.SQL_TEXT))) { return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText()); } DataTableEntity dt=reportDatasourceService.sqlVerify(fse); return OK_List(dt); } catch (BaseException e) { e.printStackTrace(); return this.error(e); } catch (Exception e) { e.printStackTrace(); return this.error("", ReportCode.REPORT_DATASOURCE_ERROR.getText()+e.getMessage()); } } /** * 鑾峰彇绯荤粺鍙傛暟 * @param response * @param request * @return */ @RequestMapping(value = "/get-system-param/{version}", method = RequestMethod.POST) @ApiVersion(1) public String getSysParam(HttpServletResponse response,HttpServletRequest request) { try { //鑾峰彇鍙傛暟 FieldSetEntity fse=null; Object bean=request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if(bean != null){ RequestParameterEntity reqp=(RequestParameterEntity)bean; fse = reqp.getFormData(); } //鍒ゆ柇鍙傛暟鏄惁涓虹┖ if(bean == null || fse == null) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } return BaseUtil.success(SystemParamSet.SYSTEM_PARAMS); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText()+e.getMessage()); } } /** * 鑾峰彇瀛楀吀鍙傛暟鍚� * @param response * @param request * @return */ @RequestMapping(value = "/get-dict-names/{version}", method = RequestMethod.POST) @ApiVersion(1) public String getDictNames(HttpServletResponse response,HttpServletRequest request) { try { //鑾峰彇鍙傛暟 FieldSetEntity fse=null; Object bean=request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if(bean != null){ RequestParameterEntity reqp=(RequestParameterEntity)bean; fse = reqp.getFormData(); } //鍒ゆ柇鍙傛暟鏄惁涓虹┖ if(bean == null || fse == null) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } DataTableEntity dt=reportDatasourceService.getDictNames(); return OK_List(dt); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode()); } catch (Exception e) { e.printStackTrace(); return this.error("", e.getMessage()); } } /** * 鎶ヨ〃鏁版嵁婧愯鎯� * @param response * @param request * @return */ @RequestMapping(value = "/get-datasource-field/{version}", method = RequestMethod.POST) @ApiVersion(1) public String getDataReouceOfField(HttpServletResponse response,HttpServletRequest request) { try { //鑾峰彇鍙傛暟 FieldSetEntity fse=null; Object bean=request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if(bean != null){ RequestParameterEntity reqp=(RequestParameterEntity)bean; fse = reqp.getFormData(); } //鍒ゆ柇鍙傛暟鏄惁涓虹┖ if(bean == null || fse == null) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //鍒ゆ柇琛ㄥ悕鏄惁姝e父 if (!CmnConst.PRODUCT_SYS_REPORT_DATASOURCE_CONFIG_FIELD.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } //鍒ゆ柇uuid鏄惁涓虹┖ if (StringUtils.isEmpty(fse.getUUID())) { return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText()); } DataTableEntity dt=reportDatasourceService.getDataReouceOfField(fse.getUUID()); return OK_List(dt); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(),e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText()+e.getMessage()); } } /** * 鎶ヨ〃鏁版嵁婧愯鎯� * @param response * @param request * @return */ @RequestMapping(value = "/get-dict-and-pormpt/{version}", method = RequestMethod.POST) @ApiVersion(1) public String getDictAndPrompt(HttpServletResponse response,HttpServletRequest request) { try { //鑾峰彇鍙傛暟 FieldSetEntity fse=null; Object bean=request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if(bean != null){ RequestParameterEntity reqp=(RequestParameterEntity)bean; fse = reqp.getFormData(); } //鍒ゆ柇鍙傛暟鏄惁涓虹┖ if(bean == null || fse == null) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } List<String> dt=reportDatasourceService.getDictAndPrompt(); return BaseUtil.success(dt); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(),e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText()+e.getMessage()); } } }