From c72e6198dbb4fbe09b270c7e12e399773d1ee12a Mon Sep 17 00:00:00 2001 From: lip Date: Mon, 15 Aug 2022 17:53:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9E=9A=E4=B8=BE=E4=B8=8B=E6=8B=89=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/bpm/web/sys/dev/EnumComboService.java | 69 ++++++++++++++++++++-- 1 file changed, 64 insertions(+), 5 deletions(-) diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/dev/EnumComboService.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/dev/EnumComboService.java index a284d6e..81b0ead 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/dev/EnumComboService.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/dev/EnumComboService.java @@ -1,8 +1,20 @@ package cc.smtweb.system.bpm.web.sys.dev; +import cc.smtweb.framework.core.annotation.SwBody; import cc.smtweb.framework.core.annotation.SwService; +import cc.smtweb.framework.core.common.AbstractEnum; +import cc.smtweb.framework.core.common.R; +import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.mvc.service.AbstractHandler; +import cc.smtweb.framework.core.mvc.service.SwListData; +import cc.smtweb.framework.core.session.UserSession; +import cc.smtweb.framework.core.util.PubUtil; import cc.smtweb.system.bpm.web.engine.dynPage.DynPageService; +import cc.smtweb.system.bpm.web.engine.dynPage.DynRetBean; +import org.springframework.util.Assert; + +import java.util.ArrayList; +import java.util.List; /** * Created by 1 at 2022-08-03 16:09:30 @@ -13,15 +25,62 @@ public class EnumComboService extends DynPageService { //public final static String TYPE_DEMO = "demo"; @Override protected AbstractHandler createHandler(String type) { - if (TYPE_LOAD.equals(type)) return new ComboHandler.EnumLoadHandler(); return super.createHandler(type); } -/* demo + //自定义 - public R demo(@SwBody SwMap params, UserSession us) { - return pageHandler(params, us, TYPE_DEMO, handler -> ((DemoHandler)handler).demo()); + public R loadOne(@SwBody SwMap params, UserSession us) { + SwListData swListData = buildListData(params.readString("cls")); + DynRetBean bean = DynRetBean.createList(swListData); + return R.success(bean); } -*/ + + private SwListData buildListData(String cls) { + if (PubUtil.isEmpty(cls)) return SwListData.create(new ArrayList(), 0); + List list = new ArrayList<>(); + try { + Class tempClass ; + Class wantClass = null; + try { + tempClass = Class.forName(cls); + wantClass = tempClass; + }catch (Exception e){ + e.printStackTrace(); + // + int lIndex = cls.lastIndexOf("."); + if (lIndex > 0) { + String outClass = cls.substring(0, lIndex); + String innerClass = outClass + "$" + cls.substring(lIndex+1); + tempClass = Class.forName(outClass); + Class[] declaredClasses = tempClass.getDeclaredClasses(); + for (Class declaredClass : declaredClasses) { + if (declaredClass.getName().equals(innerClass)) { + wantClass = declaredClass; + break; + } + } + } + } + Assert.notNull(wantClass,"classNotFound"); + AbstractEnum e ; + try { + e = (AbstractEnum) wantClass.getDeclaredField("inst").get(null); + } catch (Exception e1) { + e = (AbstractEnum) wantClass.getDeclaredField("instance").get(null); + } + for (Object v : e.mapAll.values()) { + AbstractEnum.EnumBean bean = (AbstractEnum.EnumBean) v; + SwMap row = new SwMap(); + row.put("value", bean.value.toString()); + row.put("name", bean.name); + list.add(row); + } + } catch (Exception ue) { + return SwListData.create(new ArrayList(), 0); + } + return SwListData.create(list, 0); + } + }