From fac5d01bfcddfc8edef0a5fd3d401b1fe383fe16 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 29 三月 2022 16:48:15 +0800 Subject: [PATCH] 采用配置文件自动化生成代码 --- src/main/java/org/yeshi/utils/generater/entity/admin/AdminGeneraterInfo.java | 279 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 261 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/yeshi/utils/generater/entity/admin/AdminGeneraterInfo.java b/src/main/java/org/yeshi/utils/generater/entity/admin/AdminGeneraterInfo.java index 480ad85..ab34430 100644 --- a/src/main/java/org/yeshi/utils/generater/entity/admin/AdminGeneraterInfo.java +++ b/src/main/java/org/yeshi/utils/generater/entity/admin/AdminGeneraterInfo.java @@ -1,11 +1,18 @@ package org.yeshi.utils.generater.entity.admin; import org.yeshi.utils.generater.annotation.admin.AdminController; +import org.yeshi.utils.generater.annotation.admin.form.*; +import org.yeshi.utils.generater.entity.KeyValue; import org.yeshi.utils.generater.util.AnotationUtil; +import org.yeshi.utils.generater.vo.xmlconfig.admin.AdminControllerData; +import org.yeshi.utils.generater.vo.xmlconfig.admin.AdminData; +import org.yeshi.utils.generater.vo.xmlconfig.admin.ColumnData; +import org.yeshi.utils.generater.vo.xmlconfig.admin.SearchFormData; +import org.yeshi.utils.generater.vo.xmlconfig.admin.form.*; +import org.yeshi.utils.generater.vo.xmlconfig.base.FormComponent; import java.lang.annotation.Annotation; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author Administrator @@ -18,7 +25,7 @@ //entity绫� private Class entity; //controller娉ㄨВ瀵硅薄 - private AdminController controllerData; + private AdminControllerData controllerData; //淇敼鐨勮〃鍗曡鏁版嵁 private List<FormRowData> updateFormRows; //娣诲姞鐨勮〃鍗曡鏁版嵁 @@ -28,6 +35,24 @@ private List<Map<String, Object>> showDataList; + private String title; + private String pageDir; + private String listFileName; + private String addFileName; + private String updateFileName; + + private boolean delete; + private boolean add; + private boolean edit; + + + public String getPageDir() { + return pageDir; + } + + public void setPageDir(String pageDir) { + this.pageDir = pageDir; + } public Class getEntity() { return entity; @@ -37,11 +62,11 @@ this.entity = entity; } - public AdminController getControllerData() { + public AdminControllerData getControllerData() { return controllerData; } - public void setControllerData(AdminController controllerData) { + public void setControllerData(AdminControllerData controllerData) { this.controllerData = controllerData; } @@ -77,13 +102,75 @@ this.showDataList = showDataList; } + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getListFileName() { + return listFileName; + } + + public void setListFileName(String listFileName) { + this.listFileName = listFileName; + } + + public String getAddFileName() { + return addFileName; + } + + public void setAddFileName(String addFileName) { + this.addFileName = addFileName; + } + + public String getUpdateFileName() { + return updateFileName; + } + + public void setUpdateFileName(String updateFileName) { + this.updateFileName = updateFileName; + } + + public boolean isDelete() { + return delete; + } + + public void setDelete(boolean delete) { + this.delete = delete; + } + + public boolean isAdd() { + return add; + } + + public void setAdd(boolean add) { + this.add = add; + } + + public boolean isEdit() { + return edit; + } + + public void setEdit(boolean edit) { + this.edit = edit; + } public static class Builder { private Class entity; + private AdminData adminData; + public Builder setEntityClass(Class clazz) { this.entity = clazz; + return this; + } + + public Builder setAdminData(AdminData adminData) { + this.adminData = adminData; return this; } @@ -91,24 +178,180 @@ if (entity == null) { throw new Exception("灏氭湭璁剧疆entity"); } - //鏌ヨ鏄惁闇�瑕佺敓鎴愮鐞嗙晫闈笌controller - Annotation[] ans = entity.getAnnotations(); - for (Annotation an : ans) { - if (an instanceof AdminController) { - Class searchFormClass = ((AdminController) an).searchForm(); - AdminGeneraterInfo info = new AdminGeneraterInfo(); - info.setEntity(entity); - info.setControllerData((AdminController) an); - info.setSearchFormRows(AnotationUtil.getFormRowData(searchFormClass)); - info.setAddFormRows(AnotationUtil.getFormRowData(entity)); - info.setUpdateFormRows(AnotationUtil.getUpdateFormRowData(entity)); - info.setShowDataList(AnotationUtil.getShowDataList(entity)); - return info; + + if (adminData != null) { + //xml閰嶇疆鏂囦欢鏂瑰紡鐢熸垚 + AdminGeneraterInfo info = new AdminGeneraterInfo(); + info.setEntity(entity); + info.setControllerData(adminData.getController()); + info.setTitle(adminData.getPages().getTitle()); + info.setPageDir(adminData.getPages().getPageDir()); + info.setEdit(adminData.getPages().getList().isEdit()); + info.setDelete(adminData.getPages().getList().isDelete()); + info.setAdd(adminData.getPages().getAdd() != null); + + + if (adminData.getPages().getList() != null) { + info.setListFileName(adminData.getPages().getList().getFileName()); + if (adminData.getPages().getList().getSearchForm() != null) { + List<FormRowData> searchFormList = new ArrayList<>(); + for (ColumnData columnData : adminData.getPages().getList().getSearchForm().getColumns()) { + FormRowData rowData = getFormRowData(columnData); + searchFormList.add(rowData); + } + info.setSearchFormRows(searchFormList); + } + + List<Map<String, Object>> showList = new ArrayList<>(); + + for (ColumnData columnData : adminData.getPages().getList().getColumns()) { + Map<String, Object> map = new HashMap<>(); + map.put("identifier", columnData.getProperty()); + map.put("title", columnData.getTitle()); + map.put("order", columnData.getOrder()); + map.put("imgWidth", columnData.getImgWidth()); + map.put("imgHeight", columnData.getImgHeight()); + map.put("showType", columnData.getShowType().name()); + showList.add(map); + } + + Comparator<Map<String, Object>> cm = (Map<String, Object> o1, Map<String, Object> o2) -> { + return (int) (o1.get("order")) - (int) (o2.get("order")); + }; + Collections.sort(showList, cm); + info.setShowDataList(showList); + } + + if (adminData.getPages().getAdd() != null) { + info.setAddFileName(adminData.getPages().getAdd().getFileName()); + List<FormRowData> rowList = new ArrayList<>(); + for (ColumnData columnData : adminData.getPages().getAdd().getColumns()) { + FormRowData rowData = getFormRowData(columnData); + rowList.add(rowData); + } + info.setAddFormRows(rowList); + } + + if (adminData.getPages().getUpdate() != null) { + info.setUpdateFileName(adminData.getPages().getUpdate().getFileName()); + List<FormRowData> rowList = new ArrayList<>(); + for (ColumnData columnData : adminData.getPages().getUpdate().getColumns()) { + FormRowData rowData = getFormRowData(columnData); + rowList.add(rowData); + } + info.setUpdateFormRows(rowList); + } + + return info; + } else { + //娉ㄨВ鏂瑰紡鐢熸垚 + //鏌ヨ鏄惁闇�瑕佺敓鎴愮鐞嗙晫闈笌controller + Annotation[] ans = entity.getAnnotations(); + for (Annotation an : ans) { + if (an instanceof AdminController) { + Class searchFormClass = ((AdminController) an).searchForm(); + AdminGeneraterInfo info = new AdminGeneraterInfo(); + info.setEntity(entity); + + AdminControllerData adminControllerData = new AdminControllerData(); + AdminController adminController = (AdminController) an; + adminControllerData.setMapping(adminController.mapping()); + adminControllerData.setResponseBody(true); + adminControllerData.setPkg(null); + adminControllerData.setJsonp(false); + + info.setEdit(adminController.edit()); + info.setDelete(adminController.delete()); + info.setAdd(true); + + info.setControllerData(adminControllerData); + info.setSearchFormRows(AnotationUtil.getFormRowData(searchFormClass)); + info.setAddFormRows(AnotationUtil.getFormRowData(entity)); + info.setUpdateFormRows(AnotationUtil.getUpdateFormRowData(entity)); + info.setShowDataList(AnotationUtil.getShowDataList(entity)); + return info; + } } } return null; } + private FormRowData getFormRowData(ColumnData columnData) { + FormRowData rowData = new FormRowData(); + rowData.setKey(columnData.getProperty()); + FormComponent component = columnData.getComponent(); + Map<String, Object> params = new HashMap<>(); + params.put("desc", component.getDesc()); + params.put("disable", !component.isEnable()); + params.put("title", columnData.getTitle()); + if (component instanceof FormComponentText) { + rowData.setType(Text.class.getSimpleName()); + + FormComponentText formComponentText = (FormComponentText) component; + params.put("dateFormat", formComponentText.getDateFormat()); + params.put("inputType", formComponentText.getInputType().name()); + params.put("maxLength", formComponentText.getMaxLength() == null ? -1 : formComponentText.getMaxLength()); + params.put("minLength", formComponentText.getMinLength() == null ? -1 : formComponentText.getMinLength()); + params.put("placeHolder", formComponentText.getPlaceHolder()); + if (formComponentText.getVerify() != null) { + params.put("require", formComponentText.getVerify().isRequire()); + params.put("verifyType", formComponentText.getVerify().getType()); + params.put("verifyValue", formComponentText.getVerify().getExpress()); + params.put("verifyNotifyMsg", formComponentText.getVerify().getNotify()); + } + + } else if (component instanceof FormComponentRadioGroup) { + rowData.setType(RadioGroup.class.getSimpleName()); + FormComponentRadioGroup formComponentRadioGroup = (FormComponentRadioGroup) component; + Map<String, Object> map = formComponentRadioGroup.getValues(); + List<KeyValue> list = new ArrayList<>(); + for (Iterator<String> its = map.keySet().iterator(); its.hasNext(); ) { + String key = its.next(); + list.add(new KeyValue(key, map.get(key) + "")); + } + params.put("values", list); + } else if (component instanceof FormComponentImg) { + rowData.setType(Img.class.getSimpleName()); + FormComponentImg formComponentImg = (FormComponentImg) component; + params.put("width", formComponentImg.getWidth() == null ? -1 : formComponentImg.getWidth()); + params.put("height", formComponentImg.getHeight() == null ? -1 : formComponentImg.getHeight()); + params.put("uploadApi", formComponentImg.getApi().getPath()); + if (formComponentImg.getApi().getParams() != null) { + List<KeyValue> list = new ArrayList<>(); + for (Iterator<String> its = formComponentImg.getApi().getParams().keySet().iterator(); its.hasNext(); ) { + String key = its.next(); + list.add(new KeyValue(key, formComponentImg.getApi().getParams().get(key) + "")); + } + params.put("uploadApiParams", list); + } + } else if (component instanceof FormComponentSwitch) { + rowData.setType(Switch.class.getSimpleName()); + } else if (component instanceof FormComponentSelect) { + rowData.setType(Select.class.getSimpleName()); + FormComponentSelect formComponentSelect = (FormComponentSelect) component; + if (formComponentSelect.getApi() != null) { + params.put("apiPath", formComponentSelect.getApi().getPath()); + List<KeyValue> list = new ArrayList<>(); + for (Iterator<String> its = formComponentSelect.getApi().getParams().keySet().iterator(); its.hasNext(); ) { + String key = its.next(); + list.add(new KeyValue(key, formComponentSelect.getApi().getParams().get(key) + "")); + } + params.put("apiParams", list); + } + + if (formComponentSelect.getValues() != null) { + List<KeyValue> list = new ArrayList<>(); + for (Iterator<String> its = formComponentSelect.getValues().keySet().iterator(); its.hasNext(); ) { + String key = its.next(); + list.add(new KeyValue(key, formComponentSelect.getValues().get(key) + "")); + } + params.put("values", list); + } + } + rowData.setParams(params); + return rowData; + } + } -- Gitblit v1.8.0