package com.product.admin.controller; import com.product.admin.config.CmnConst; import com.product.admin.config.SystemCode; import com.product.admin.service.PublicService; import com.product.common.lang.StringUtils; import com.product.core.cache.DataPoolCacheImpl; import com.product.core.config.CoreConst; import com.product.core.entity.FieldSetEntity; import com.product.core.entity.RequestParameterEntity; import com.product.core.exception.BaseException; import com.product.core.spring.context.SpringMVCContextHolder; import com.product.module.sys.version.ApiVersion; import com.product.util.BaseUtil; import com.product.util.config.SystemParamSet; import com.product.util.support.AbstractBaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 公共 */ @RestController @RequestMapping("/api") public class PublicController extends AbstractBaseController { @Autowired PublicService publicService; @PostMapping("/common/get-table-by-function/{version}") @ApiVersion(1) public String getTableByFunction(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) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this.error(SystemCode.SYSTEM_FORM_NODATA); } if (StringUtils.isEmpty(fse.getString(CmnConst.FUNCTION_UUID))) { return this.error(SystemCode.SYSTEM_FORM_COUNT); } return OK_List(publicService.getBaseDao().getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DATAMODEL_TABLE, "table_type=1 and uuid =?)", new String[]{fse.getString(CmnConst.FUNCTION_UUID)}, false)); } catch (BaseException e) { e.printStackTrace(); return this.error(e); } catch (Exception e) { e.printStackTrace(); return this.error(SystemCode.GET_FIELD_FIAL, e); } } /** * 获取字段 * * @param request * @return */ @PostMapping("/get-fields/{version}") @ApiVersion(1) public String getFields(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) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } // 判断表名是否正常 if (fse.getTableName() == null || !CmnConst.PRODUCT_SYS_DATAMODEL_FIELD.equals(fse.getTableName())) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } String table_uuid = fse.getString(CmnConst.TABLE_UUID); String table_name = fse.getString(CmnConst.TABLE_NAME); DataPoolCacheImpl instance = DataPoolCacheImpl.getInstance(); if (!StringUtils.isEmpty(table_uuid)) { table_name = instance.getCacheData("所有表信息(uuid)", new String[]{table_uuid}).getString(0, CmnConst.TABLE_NAME); } if (StringUtils.isEmpty(table_name)) { return this.error(SystemCode.GET_FIELD_FIAL.getValue(), SystemCode.GET_FIELD_FIAL.getText()); } return publicService.getFields(table_name, fse.getBoolean("relevanceTable")); } catch (BaseException e) { e.printStackTrace(); return this.error(e); } catch (Exception e) { e.printStackTrace(); SpringMVCContextHolder.getSystemLogger().error(e); return this.error(SystemCode.GET_FIELD_FIAL.getValue(), SystemCode.GET_FIELD_FIAL.getText()); } } /** * 获取字段 * * @param request * @return */ @PostMapping("/get-parent-fields/{version}") @ApiVersion(1) public String getFieldsAndParent(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) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } // 判断表名是否正常 if (fse.getTableName() == null || !CmnConst.PRODUCT_SYS_DATAMODEL_FIELD.equals(fse.getTableName())) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } String table_uuid = fse.getString(CmnConst.TABLE_UUID); String table_name = fse.getString(CmnConst.TABLE_NAME); DataPoolCacheImpl instance = DataPoolCacheImpl.getInstance(); if (!StringUtils.isEmpty(table_uuid)) { table_name = instance.getCacheData("所有表信息", new String[]{table_uuid}).getString(0, CmnConst.TABLE_NAME); } if (StringUtils.isEmpty(table_name)) { return this.error(SystemCode.GET_FIELD_FIAL.getValue(), SystemCode.GET_FIELD_FIAL.getText()); } return publicService.getFields(table_name, fse.getBoolean("relevanceTable")); } catch (BaseException e) { e.printStackTrace(); return this.error(e); } catch (Exception e) { e.printStackTrace(); SpringMVCContextHolder.getSystemLogger().error(e); return this.error(SystemCode.GET_FIELD_FIAL.getValue(), SystemCode.GET_FIELD_FIAL.getText()); } } /** * 获取字段 * * @param request * @return */ @PostMapping("/get-fields-by-function/{version}") @ApiVersion(1) public String getFieldsByFunction(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) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } // 判断表名是否正常 if (fse.getTableName() == null || !CmnConst.PRODUCT_SYS_DATAMODEL_FIELD.equals(fse.getTableName())) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } String function_uuid = fse.getString(CmnConst.FUNCTION_UUID); String table_uuid = publicService.getTableByFunction(function_uuid); String table_name = fse.getString(CmnConst.TABLE_NAME); DataPoolCacheImpl instance = DataPoolCacheImpl.getInstance(); if (!StringUtils.isEmpty(table_uuid)) { table_name = instance.getCacheData("所有表信息", new String[]{table_uuid}).getString(0, CmnConst.TABLE_NAME); } if (StringUtils.isEmpty(table_name)) { return this.error(SystemCode.GET_FIELD_FIAL.getValue(), SystemCode.GET_FIELD_FIAL.getText()); } return publicService.getFields(table_name, fse.getBoolean("relevanceTable")); } catch (BaseException e) { e.printStackTrace(); return this.error(e); } catch (Exception e) { e.printStackTrace(); SpringMVCContextHolder.getSystemLogger().error(e); return this.error(SystemCode.GET_FIELD_FIAL.getValue(), SystemCode.GET_FIELD_FIAL.getText()); } } // /** // * 获取系统消息 // * // * @param request // * @return // */ // @PostMapping("/get-system-message/{version}") // @ApiVersion(1) // public String getSystemMessage(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) { // SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); // return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); // } // Integer message_type = fse.getInteger("message_type"); // //创建获取消息对象 // FieldSetEntity fseMessage = new FieldSetEntity(); // fseMessage.setTableName("product_sys_message"); //装载表名 // fseMessage.setValue(CmnConst.USER_ID, SpringMVCContextHolder.getCurrentUser().getUser_id()); //user_id // fseMessage.setValue("token", SpringMVCContextHolder.getCurrentUser().getToken_info()); //装载token // fseMessage.setValue(CmnConst.USER_ACCOUNT, SpringMVCContextHolder.getCurrentUser().getUser_account()); //装载用户名 // WebsocketMesssageService websocketMesssageService = SpringBeanUtil.getBean(WebsocketMesssageService.class); // DataTableEntity dt = websocketMesssageService.readUserMessage(fseMessage); // if (message_type != null) { // if (!BaseUtil.dataTableIsEmpty(dt)) { // dt = dt.clones(); // for (int i = 0; i < dt.getRows(); i++) { // if (message_type != dt.getInt(i, "message_type")) { // dt.removeFieldSetEntity(i); // i--; // } // } // } // } // return OK_List(dt); // } catch (BaseException e) { // e.printStackTrace(); // SpringMVCContextHolder.getSystemLogger().error(e); // return this.error(SystemCode.GET_SYSTEM_MESSAGE_FIAL.getValue(), SystemCode.GET_SYSTEM_MESSAGE_FIAL.getText()); // } catch (Exception e) { // e.printStackTrace(); // SpringMVCContextHolder.getSystemLogger().error(e); // return this.error(SystemCode.GET_SYSTEM_MESSAGE_FIAL.getValue(), SystemCode.GET_SYSTEM_MESSAGE_FIAL.getText() + e.getMessage()); // } // } /** * 获取系统变量 * * @param request * @return */ @PostMapping("/get-system-variate/{version}") @ApiVersion(1) public String getSystemVariate(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) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } Map systemParams = SystemParamSet.SYSTEM_PARAMS; List> reuslt = new ArrayList<>(); if (systemParams != null) { for (Map.Entry key : systemParams.entrySet()) { Map map = new HashMap<>(); //系统变量名 map.put("variate_name", key.getKey()); String[] value = (String[]) key.getValue(); //变量描述 map.put("variate_description", value[0]); //变量数据类型 map.put("variate_type", value[1]); //变量数据类型 map.put("variate_class", value[2]); reuslt.add(map); } } return BaseUtil.success(reuslt, null); } catch ( BaseException e) { e.printStackTrace(); return this.error(e); } catch ( Exception e) { e.printStackTrace(); SpringMVCContextHolder.getSystemLogger().error(e); return this.error(SystemCode.GET_SYSTEM_VARIATE_FIAL.getValue(), SystemCode.GET_SYSTEM_VARIATE_FIAL.getText()); } } /** * 列表-通用获取 * * @param request * @return */ @RequestMapping(value = "/list-info/{version}", method = RequestMethod.POST) @ApiVersion(1) public String listInfo(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) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } if (StringUtils.isEmpty(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } return BaseUtil.success(publicService.listTable(fse)); } catch (BaseException e) { e.printStackTrace(); return this.error(e); } catch (Exception e) { e.printStackTrace(); return error(SystemCode.LIST_INFO_FAIL.getValue(), SystemCode.LIST_INFO_FAIL.getText()); } } /** * 列表-通用获取 * * @param request * @return */ @RequestMapping(value = "/save-table/{version}", method = RequestMethod.POST) @ApiVersion(1) public String saveTable(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()); } if (StringUtils.isEmpty(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } return OK_Add(publicService.saveFieldSetEntity(fse)); } catch (BaseException e) { e.printStackTrace(); return this.error(e); } catch (Exception e) { e.printStackTrace(); SpringMVCContextHolder.getSystemLogger().error(e); return error(SystemCode.OPERATION_DATA_FAIL.getValue(), SystemCode.OPERATION_DATA_FAIL.getText()); } } /** * 列表-通用获取 * * @param request * @return */ @RequestMapping(value = "/find-table/{version}", method = RequestMethod.POST) @ApiVersion(1) public String findTable(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()); } if (StringUtils.isEmpty(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } return OK_List(publicService.getFieldSetEntity(fse, true)); } catch (BaseException e) { e.printStackTrace(); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); e.printStackTrace(); return error(SystemCode.OPERATION_DATA_FAIL.getValue(), SystemCode.OPERATION_DATA_FAIL.getText()); } } /** * 列表-通用获取 * * @param request * @return */ @RequestMapping(value = "/del-table/{version}", method = RequestMethod.POST) @ApiVersion(1) public String delTable(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()); } if (StringUtils.isEmpty(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } publicService.delete(fse); return OK(); } catch (BaseException e) { e.printStackTrace(); return this.error(e); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); e.printStackTrace(); return error(SystemCode.OPERATION_DATA_FAIL.getValue(), SystemCode.OPERATION_DATA_FAIL.getText()); } } }