From 3bbcdf6522ca766d3cb9118a1a59254e2dd63faf Mon Sep 17 00:00:00 2001 From: yaoq Date: Thu, 22 Sep 2022 16:28:25 +0800 Subject: [PATCH] =?UTF-8?q?canal=E9=9B=86=E6=88=90=E3=80=81=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/bpm/web/canal/FilePathConfig.java | 22 ++++ .../cc/smtweb/system/bpm/web/common/BpmConst.java | 9 +- .../cc/smtweb/system/bpm/web/common/BpmEnum.java | 47 ++++++++ .../bpm/web/engine/dynPage/DynPageTreeHandler.java | 2 +- .../smtweb/system/bpm/web/login/LoginHelper.java | 8 +- .../user/dataRightGroup/DataRightGroupHandler.java | 44 +++++++ .../user/dataRightGroup/IDataRightTreeFactory.java | 43 +++++++ .../user/dataRightGroup/IDataRightTreeWorker.java | 21 ++++ .../dataRightGroup/impl/DeptDataRightTreeWork.java | 56 +++++++++ .../impl/PartyDataRightTreeWork.java | 55 +++++++++ .../system/bpm/web/sys/user/menu/MenuHandler.java | 3 +- .../system/bpm/web/sys/user/party/PartyCache.java | 6 + .../system/bpm/web/sys/user/role/RoleHandler.java | 11 +- .../system/bpm/web/sys/user/user/UserHandler.java | 5 +- .../system/canal/example/ClientInstance.java | 1 + .../system/canal/file/common/AbstractFileWork.java | 10 ++ .../src/main/resources/config/field-mapping.json | 126 ++++++++++++++++++++- .../cc/smtweb/framework/core/common/SwConsts.java | 1 - .../cc/smtweb/framework/core/common/SwEnum.java | 30 ----- 19 files changed, 452 insertions(+), 48 deletions(-) create mode 100644 smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/canal/FilePathConfig.java create mode 100644 smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/common/BpmEnum.java create mode 100644 smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/IDataRightTreeFactory.java create mode 100644 smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/IDataRightTreeWorker.java create mode 100644 smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/impl/DeptDataRightTreeWork.java create mode 100644 smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/impl/PartyDataRightTreeWork.java diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/canal/FilePathConfig.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/canal/FilePathConfig.java new file mode 100644 index 0000000..18bde5f --- /dev/null +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/canal/FilePathConfig.java @@ -0,0 +1,22 @@ +package cc.smtweb.system.bpm.web.canal; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; + +/** + * @Author yaoq + * @Date 2022年07月20日 10:38 + * @Description + */ +@Configuration +public class FilePathConfig { + + @Value("${canal.file.path}") + private String path; + + public String getPath() { + return path; + } +} + + diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/common/BpmConst.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/common/BpmConst.java index eaa44e4..40217f5 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/common/BpmConst.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/common/BpmConst.java @@ -6,10 +6,11 @@ package cc.smtweb.system.bpm.web.common; * @Desc: bpm模块的常量 */ public interface BpmConst { + + String DEF_PWD = "abc@123456"; //初始密码 + interface DataRight { - public final static String CUR_VALUE = "_CURRENT";//本区划、本机构、本部门 - public final static String ALL_DEPT = "_ALL_DEPT";//全部门权限 - public final static int V_SELF = 0;//不含下级 - public final static int V_INCLUDE_CHILDREN = 1;//含下级 + public final static Long CUR_VALUE = 999L;//本机构,本部门 + public final static Long ALL_DEPT = 998L;//全部门权限 } } diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/common/BpmEnum.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/common/BpmEnum.java new file mode 100644 index 0000000..b19f7c9 --- /dev/null +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/common/BpmEnum.java @@ -0,0 +1,47 @@ +package cc.smtweb.system.bpm.web.common; + +import cc.smtweb.framework.core.common.IntEnum; +import cc.smtweb.framework.core.common.StrEnum; + +/** + * Created by Akmm at 2022/3/23 9:39 + * 系统的一些枚举变量 + */ +public interface BpmEnum { + + // 权限类型 + class MenuRightType extends StrEnum { + public static MenuFuncRight instance = new MenuFuncRight(); + public static StrEnumBean DATA = instance.addEnum("data", "数据权限"); + public static StrEnumBean FUNC = instance.addEnum("func", "功能权限"); + public static StrEnumBean FIELD = instance.addEnum("field", "字段权限"); + } + + class MenuType extends IntEnum { + public static MenuType instance = new MenuType(); + public static IntEnumBean DESIGN = instance.addEnum(0, "设计器页面"); + public static IntEnumBean CUSTOM = instance.addEnum(1, "自定义页面"); + public static IntEnumBean LINK = instance.addEnum(2, "外部链接"); + } + + // 功能权限枚举 + class MenuFuncRight extends StrEnum { + public static MenuFuncRight instance = new MenuFuncRight(); + public static StrEnumBean READ = instance.addEnum("read", "查看"); + public static StrEnumBean WRITE = instance.addEnum("write", "修改"); + } + + class UserStatu extends IntEnum { + public static UserStatu instance = new UserStatu(); + public static IntEnumBean NOACT = instance.addEnum(0, "未激活"); + public static IntEnumBean NORMAL = instance.addEnum(1, "已激活"); + public static IntEnumBean LOCK = instance.addEnum(2, "已锁定"); + public static IntEnumBean STOP = instance.addEnum(9, "已停用"); + } + + class DataRightType extends StrEnum { + public static DataRightType instance = new DataRightType(); + public static StrEnumBean PARTY = instance.addEnum("party", "机构权限"); + public static StrEnumBean DEPT = instance.addEnum("dept", "部门权限"); + } +} diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageTreeHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageTreeHandler.java index 4ca2394..5c778d2 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageTreeHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageTreeHandler.java @@ -21,7 +21,7 @@ import java.util.List; public class DynPageTreeHandler extends AbstractTreeHandler { protected long pageId; //过滤条件 - private SwMap filter; + protected SwMap filter; //对应的数据集定义 private PageDataset pageDataSet; diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/login/LoginHelper.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/login/LoginHelper.java index 56275cf..42da608 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/login/LoginHelper.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/login/LoginHelper.java @@ -6,6 +6,8 @@ import cc.smtweb.framework.core.common.SwEnum; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.exception.BizException; import cc.smtweb.framework.core.session.UserSession; +import cc.smtweb.system.bpm.web.common.BpmConst; +import cc.smtweb.system.bpm.web.common.BpmEnum; import cc.smtweb.system.bpm.web.sys.user.user.User; import cc.smtweb.system.bpm.web.sys.user.user.UserCache; import cc.smtweb.system.bpm.web.sys.user.user.UserParty; @@ -63,7 +65,7 @@ public class LoginHelper { throw new BizException("账号或者密码出错"); } - if (SwEnum.UserStatu.NORMAL.value != user.getStatu()) { + if (BpmEnum.UserStatu.NORMAL.value != user.getStatu()) { throw new BizException("账户状态异常"); } } @@ -130,7 +132,7 @@ public class LoginHelper { // throw new BizException("账号或者密码出错"); // } // -// if (SwEnum.UserStatu.NORMAL.value != user.getStatu()) { +// if (BpmEnum.UserStatu.NORMAL.value != user.getStatu()) { // throw new BizException("账户状态异常"); // } // @@ -154,7 +156,7 @@ public class LoginHelper { * @throws Exception */ public static void checkPwdLevel(String pwd) throws Exception { - if (SwConsts.DEF_PWD.equals(pwd)) return; + if (BpmConst.DEF_PWD.equals(pwd)) return; } diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/DataRightGroupHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/DataRightGroupHandler.java index 82bc9fe..6c1d21c 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/DataRightGroupHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/DataRightGroupHandler.java @@ -2,11 +2,16 @@ package cc.smtweb.system.bpm.web.sys.user.dataRightGroup; import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.db.impl.DefaultEntity; +import cc.smtweb.framework.core.exception.SwException; import cc.smtweb.framework.core.util.JsonUtil; import cc.smtweb.system.bpm.web.design.form.define.PageDataset; import cc.smtweb.system.bpm.web.engine.dynPage.DynPageLoadHandler; import cc.smtweb.system.bpm.web.engine.dynPage.DynPageSaveHandler; +import cc.smtweb.system.bpm.web.engine.dynPage.DynPageTreeHandler; +import cc.smtweb.system.bpm.web.sys.user.dataRight.DataRightDefine; +import cc.smtweb.system.bpm.web.sys.user.dataRight.DataRightDefineCache; +import java.util.List; import java.util.Map; /** @@ -15,6 +20,7 @@ import java.util.Map; * @Desc: */ public class DataRightGroupHandler { + private final static String drgValueTree = "drgValueTree"; static class DrgSaveHandler extends DynPageSaveHandler { @@ -29,9 +35,47 @@ public class DataRightGroupHandler { static class DrgLoadHandle extends DynPageLoadHandler { @Override + public DynPageTreeHandler getTreeWorker(SwMap filter, PageDataset pageDataSet) { + if (pageDataSet.name.equals("drgValueTree")) { + return new DrgValueTreeHandler(form.getId(), filter, pageDataSet); + } + return super.getTreeWorker(filter, pageDataSet); + } + + @Override protected void afterLoadBean(PageDataset dataset, SwMap bean) { super.afterLoadBean(dataset, bean); bean.put("sdrg_content", JsonUtil.parseList(bean.readString("sdrg_content"), Map.class)); } } + + static class DrgValueTreeHandler extends DynPageTreeHandler { + + public DrgValueTreeHandler(long pageId, SwMap filter, PageDataset pageDataSet) { + super(pageId, filter, pageDataSet); + } + + @Override + protected List getChildren(long id) { + DataRightDefine define = DataRightDefineCache.getInstance().get(filter.readLong("type")); + if (define == null) return null; + IDataRightTreeWorker worker; + try { + worker = IDataRightTreeFactory.getInstance().getWork(define.getCode()); + } catch (Exception e) { + throw new SwException(e); + } + return worker.getChildren(id); + } + + @Override + protected long getId(SwMap bean) { + return bean.readLong("id"); + } + + @Override + protected String getText(SwMap bean) { + return bean.readString("text"); + } + } } diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/IDataRightTreeFactory.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/IDataRightTreeFactory.java new file mode 100644 index 0000000..1ed9369 --- /dev/null +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/IDataRightTreeFactory.java @@ -0,0 +1,43 @@ +package cc.smtweb.system.bpm.web.sys.user.dataRightGroup; + +import cc.smtweb.framework.core.exception.SwException; +import cc.smtweb.system.bpm.web.common.BpmEnum; +import cc.smtweb.system.bpm.web.sys.user.dataRightGroup.impl.DeptDataRightTreeWork; +import cc.smtweb.system.bpm.web.sys.user.dataRightGroup.impl.PartyDataRightTreeWork; + +import java.util.HashMap; +import java.util.Map; + +/** + * @Author yaoq + * @Date 2022年09月20日 9:26 + * @Description + */ +public class IDataRightTreeFactory { + + private volatile static IDataRightTreeFactory instance = null; + + public static IDataRightTreeFactory getInstance() { + if (instance == null) { + synchronized (IDataRightTreeFactory.class) { + if (instance == null) instance = new IDataRightTreeFactory(); + } + } + return instance; + } + + private Map> mapWorks; + + + private IDataRightTreeFactory() { + mapWorks = new HashMap<>(); + mapWorks.put(BpmEnum.DataRightType.PARTY.value, PartyDataRightTreeWork.class); + mapWorks.put(BpmEnum.DataRightType.DEPT.value, DeptDataRightTreeWork.class); + } + + public IDataRightTreeWorker getWork(String key) throws Exception { + Class cls = mapWorks.get(key); + if (cls == null) throw new SwException("暂不支持[" + key + "]类型权限!"); + return cls.newInstance(); + } +} diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/IDataRightTreeWorker.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/IDataRightTreeWorker.java new file mode 100644 index 0000000..fe07d55 --- /dev/null +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/IDataRightTreeWorker.java @@ -0,0 +1,21 @@ +package cc.smtweb.system.bpm.web.sys.user.dataRightGroup; + +import cc.smtweb.framework.core.common.SwMap; + +import java.util.List; + +/** + * Created by Akmm at 2016/9/13 11:52 + * 数据权限类定义 + */ +public interface IDataRightTreeWorker { + + List getExtraValues(); + + SwMap buildExtraValue(long key, String value); + + List getChildren(long id); + + //获取值的显示文本 + String getText(long value); +} diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/impl/DeptDataRightTreeWork.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/impl/DeptDataRightTreeWork.java new file mode 100644 index 0000000..fe61b4f --- /dev/null +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/impl/DeptDataRightTreeWork.java @@ -0,0 +1,56 @@ +package cc.smtweb.system.bpm.web.sys.user.dataRightGroup.impl; + +import cc.smtweb.framework.core.common.SwMap; +import cc.smtweb.framework.core.util.CommUtil; +import cc.smtweb.system.bpm.web.common.BpmConst; +import cc.smtweb.system.bpm.web.sys.user.dataRightGroup.IDataRightTreeWorker; +import cc.smtweb.system.bpm.web.sys.user.dept.Dept; +import cc.smtweb.system.bpm.web.sys.user.dept.DeptCache; +import cc.smtweb.system.bpm.web.sys.user.party.PartyCache; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * @Author yaoq + * @Date 2022年09月22日 15:48 + * @Description + */ +public class DeptDataRightTreeWork implements IDataRightTreeWorker { + + @Override + public SwMap buildExtraValue(long key, String value) { + SwMap swMap = new SwMap(); + swMap.put("id", key); + swMap.put("text", value); + return swMap; + } + + @Override + public List getExtraValues() { + List list = new ArrayList<>(); + list.add(buildExtraValue(BpmConst.DataRight.ALL_DEPT, "所有部门")); + list.add(buildExtraValue(BpmConst.DataRight.CUR_VALUE, "所属部门")); + return list; + } + + @Override + public List getChildren(long id) { + List list = new ArrayList<>(); + list.addAll(getExtraValues()); + Collection depts = DeptCache.getInstance().getAll(); + if (CommUtil.isEmpty(depts)) return list; + depts.forEach(dept -> { + list.add(buildExtraValue(dept.getId(), dept.getName())); + }); + return list; + } + + @Override + public String getText(long value) { + if (BpmConst.DataRight.CUR_VALUE == value) return "所属部门"; + if (BpmConst.DataRight.ALL_DEPT == value) return "所有部门"; + return PartyCache.getInstance().getNameById(value); + } +} diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/impl/PartyDataRightTreeWork.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/impl/PartyDataRightTreeWork.java new file mode 100644 index 0000000..a9c1c88 --- /dev/null +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/dataRightGroup/impl/PartyDataRightTreeWork.java @@ -0,0 +1,55 @@ +package cc.smtweb.system.bpm.web.sys.user.dataRightGroup.impl; + +import cc.smtweb.framework.core.common.SwMap; +import cc.smtweb.framework.core.util.CommUtil; +import cc.smtweb.system.bpm.web.common.BpmConst; +import cc.smtweb.system.bpm.web.sys.user.dataRightGroup.IDataRightTreeWorker; +import cc.smtweb.system.bpm.web.sys.user.party.Party; +import cc.smtweb.system.bpm.web.sys.user.party.PartyCache; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +/** + * @Author yaoq + * @Date 2022年09月22日 15:48 + * @Description + */ +public class PartyDataRightTreeWork implements IDataRightTreeWorker { + + @Override + public SwMap buildExtraValue(long key, String value) { + SwMap swMap = new SwMap(); + swMap.put("id", key); + swMap.put("text", value); + return swMap; + } + + @Override + public List getExtraValues() { + List list = new ArrayList<>(); + list.add(buildExtraValue(BpmConst.DataRight.CUR_VALUE, "所属机构")); + return list; + } + + @Override + public List getChildren(long id) { + long key = id; + if (key <= 0) key = -1; + Set partys = PartyCache.getInstance().getChildren(key); + List list = new ArrayList<>(); + list.addAll(getExtraValues()); + if (CommUtil.isEmpty(partys)) return list; + partys.forEach(party -> { + list.add(buildExtraValue(party.getId(), party.getName())); + }); + return list; + } + + @Override + public String getText(long value) { + if (BpmConst.DataRight.CUR_VALUE == value) return "所属机构"; + return PartyCache.getInstance().getNameById(value); + } +} diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menu/MenuHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menu/MenuHandler.java index be2da7b..5ea62b3 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menu/MenuHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/menu/MenuHandler.java @@ -8,6 +8,7 @@ import cc.smtweb.framework.core.db.vo.ModelProject; import cc.smtweb.framework.core.util.CommUtil; import cc.smtweb.framework.core.util.JsonUtil; import cc.smtweb.framework.core.util.StringUtil; +import cc.smtweb.system.bpm.web.common.BpmEnum; import cc.smtweb.system.bpm.web.design.db.ModelCatalogTreeHelper; import cc.smtweb.system.bpm.web.design.db.ModelProjectCache; import cc.smtweb.system.bpm.web.design.form.define.PageDataset; @@ -223,7 +224,7 @@ public class MenuHandler { protected void afterQuery(List listData) { super.afterQuery(listData); listData.forEach(row -> { - row.put("sm_type_text", SwEnum.MenuType.instance.getName(row.readInt("sm_type"))); + row.put("sm_type_text", BpmEnum.MenuType.instance.getName(row.readInt("sm_type"))); }); } } diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/party/PartyCache.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/party/PartyCache.java index 0e5f3f3..9ae69fd 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/party/PartyCache.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/party/PartyCache.java @@ -48,4 +48,10 @@ public class PartyCache extends AbstractEntityCache { Set children = getChildren(key); return CommUtil.isEmpty(children); } + + public final String getNameById(Long id) { + Party party = get(id); + if (party == null) return ""; + return party.getName(); + } } diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/role/RoleHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/role/RoleHandler.java index ccc534a..43699a2 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/role/RoleHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/role/RoleHandler.java @@ -7,6 +7,7 @@ import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.exception.BizException; import cc.smtweb.framework.core.mvc.service.SwListData; import cc.smtweb.framework.core.util.StringUtil; +import cc.smtweb.system.bpm.web.common.BpmEnum; import cc.smtweb.system.bpm.web.design.form.ModelForm; import cc.smtweb.system.bpm.web.design.form.ModelFormCache; import cc.smtweb.system.bpm.web.design.form.define.PageDataset; @@ -83,7 +84,7 @@ public class RoleHandler { right.setFunc(formData.readStringSet("func")); right.setData(formData.readListMap("data")); if (item.getMenu() > 0L) - right.setField(MenuCache.getInstance().get(item.getMenu()).getRightSet(SwEnum.MenuRightType.FIELD.value), formData.readStringSet("write"), formData.readStringSet("read")); + right.setField(MenuCache.getInstance().get(item.getMenu()).getRightSet(BpmEnum.MenuRightType.FIELD.value), formData.readStringSet("write"), formData.readStringSet("read")); rc.saveItem(right); } role.setPrivilege(rc.toContentStr()); @@ -168,7 +169,7 @@ public class RoleHandler { Menu menu = MenuCache.getInstance().get(item.getMenu()); if (menu == null) return SwListData.create(list, 0); ModelForm mf = ModelFormCache.getInstance().get(menu.getPageId()); - for (String f : menu.getRightSet(SwEnum.MenuRightType.FIELD.value)) { + for (String f : menu.getRightSet(BpmEnum.MenuRightType.FIELD.value)) { String name = getFieldName(mf, f); if (name == null) continue; SwMap row = new SwMap(); @@ -202,11 +203,11 @@ public class RoleHandler { if (item == null) return SwListData.create(list, 0); Menu menu = MenuCache.getInstance().get(item.getMenu()); if (menu == null) return SwListData.create(list, 0); - for (String f : menu.getRightSet(SwEnum.MenuRightType.FUNC.value)) { + for (String f : menu.getRightSet(BpmEnum.MenuRightType.FUNC.value)) { if (StringUtil.isEmpty(f)) continue; SwMap row = new SwMap(); row.put("f_id", f); - row.put("f_name", SwEnum.MenuFuncRight.instance.getName(f)); + row.put("f_name", BpmEnum.MenuFuncRight.instance.getName(f)); list.add(row); } return SwListData.create(list, 0); @@ -238,7 +239,7 @@ public class RoleHandler { RoleRightContent rc = new RoleRightContent(role.getPrivilege()); Map data = rc.getDataRight(item.getId()); - for (String f : menu.getRightSet(SwEnum.MenuRightType.DATA.value)) { + for (String f : menu.getRightSet(BpmEnum.MenuRightType.DATA.value)) { if (StringUtil.isEmpty(f)) continue; SwMap row = new SwMap(); row.put("key", f); diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/user/UserHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/user/UserHandler.java index e234923..68d7496 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/user/UserHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/user/UserHandler.java @@ -13,6 +13,7 @@ import cc.smtweb.framework.core.mvc.service.AbstractHandler; import cc.smtweb.framework.core.util.CommUtil; import cc.smtweb.framework.core.util.DateUtil; import cc.smtweb.framework.core.util.StringUtil; +import cc.smtweb.system.bpm.web.common.BpmConst; import cc.smtweb.system.bpm.web.design.form.define.PageDataset; import cc.smtweb.system.bpm.web.engine.dynPage.DynPageDelHandler; import cc.smtweb.system.bpm.web.engine.dynPage.DynPageListHandler; @@ -100,7 +101,7 @@ public class UserHandler { } if (bean.isNew()) { ((User) bean).setCreate(DateUtil.nowDateTimeLong()); - ((User) bean).setPwd(LoginHelper.encodePwd(bean.getEntityId(), SwConsts.DEF_PWD)); + ((User) bean).setPwd(LoginHelper.encodePwd(bean.getEntityId(), BpmConst.DEF_PWD)); } Set up = UserPartyCache.getInstance().getIdByUser(bean.getEntityId()); @@ -224,7 +225,7 @@ public class UserHandler { Set idList = params.readLongSet("ids"); Set userList = UserCache.getInstance().getUserList(idList); userList.forEach(user -> { - user.setPwd(LoginHelper.encodePwd(user.getId(), SwConsts.DEF_PWD)); + user.setPwd(LoginHelper.encodePwd(user.getId(), BpmConst.DEF_PWD)); }); DbEngine.getInstance().doTrans(new IDbWorker() { @Override diff --git a/smtweb-framework/canal/client/src/main/java/cc/smtweb/system/canal/example/ClientInstance.java b/smtweb-framework/canal/client/src/main/java/cc/smtweb/system/canal/example/ClientInstance.java index e2fccd4..4c8b146 100644 --- a/smtweb-framework/canal/client/src/main/java/cc/smtweb/system/canal/example/ClientInstance.java +++ b/smtweb-framework/canal/client/src/main/java/cc/smtweb/system/canal/example/ClientInstance.java @@ -308,6 +308,7 @@ public class ClientInstance { if (!path.endsWith("/")) { path = path + "/"; } + path = path + "increment/"; File file = new File(path + "/" + DateUtil.toLongDateTimeString(null) + ".cf"); if (!file.getParentFile().exists()) { // 如果父目录不存在,创建父目录 file.getParentFile().mkdirs(); diff --git a/smtweb-framework/canal/file/src/main/java/cc/smtweb/system/canal/file/common/AbstractFileWork.java b/smtweb-framework/canal/file/src/main/java/cc/smtweb/system/canal/file/common/AbstractFileWork.java index e4d3e7f..21551e6 100644 --- a/smtweb-framework/canal/file/src/main/java/cc/smtweb/system/canal/file/common/AbstractFileWork.java +++ b/smtweb-framework/canal/file/src/main/java/cc/smtweb/system/canal/file/common/AbstractFileWork.java @@ -46,6 +46,7 @@ public abstract class AbstractFileWork { if (!path.endsWith("/")) { path = path + "/"; } + path = path + "increment/"; log.debug("[解析canal文件] path:" + path); File dir = new File(path); File[] fs = dir.listFiles(new FileFilter() { @@ -175,11 +176,20 @@ public abstract class AbstractFileWork { getDbEngine().update("delete from " + canalVO.getTableName() + " where " + canalVO.getIdField() + " = ? ", canalVO.getId()); } + /** + * @Author yaoq + * @Date j 9:55 + * @Params sql + * @Return java.util.Map + * @Description 解析mysql create 语句, 转换成 {filed,type} 格式 + */ protected Map decodeCreateSql(String sql) { Map map = new HashMap<>(); String data = sql.substring(sql.indexOf("(") + 1, sql.lastIndexOf(")")).trim().replaceAll("`", ""); String[] rows = data.split(","); for (String row : rows) { + //索引不管 + if (row.contains("INDEX")) continue; if (row.contains("PRIMARY KEY")) { map.put(idField, row.substring(row.indexOf("(") + 1, row.lastIndexOf(")"))); continue; diff --git a/smtweb-framework/canal/file/src/main/resources/config/field-mapping.json b/smtweb-framework/canal/file/src/main/resources/config/field-mapping.json index 3cf4824..e548da5 100644 --- a/smtweb-framework/canal/file/src/main/resources/config/field-mapping.json +++ b/smtweb-framework/canal/file/src/main/resources/config/field-mapping.json @@ -1 +1,125 @@ -[{"type":"kbsql","fields":[{"INT":"INT"},{"BIGINT":"BIGINT"},{"INTEGER":"INTEGER"},{"NUMERIC":"NUMERIC"},{"TINYINT":"TINYINT"},{"SMALLINT":"SMALLINT"},{"CHAR":"CHAR"},{"TEXT":"TEXT"},{"BLOB":"BLOB"},{"CLOB":"CLOB"},{"VARCHAR":"VARCHAR2"}]},{"type":"dmsql","fields":[{"INT":"INT"},{"BIGINT":"BIGINT"},{"INTEGER":"INTEGER"},{"NUMERIC":"NUMERIC"},{"TINYINT":"TINYINT"},{"SMALLINT":"SMALLINT"},{"CHAR":"CHAR"},{"TEXT":"TEXT"},{"BLOB":"BLOB"},{"CLOB":"CLOB"},{"VARCHAR":"VARCHAR2"}]},{"type":"oracle","fields":[{"INT":"INT"},{"BIGINT":"BIGINT"},{"INTEGER":"INTEGER"},{"NUMERIC":"NUMERIC"},{"TINYINT":"TINYINT"},{"SMALLINT":"SMALLINT"},{"CHAR":"CHAR"},{"TEXT":"VARCHAR2"},{"BLOB":"BLOB"},{"CLOB":"CLOB"},{"VARCHAR":"VARCHAR2"}]}] +[ + { + "type": "kbsql", + "fields": [ + { + "INT": "INT" + }, + { + "BIGINT": "BIGINT" + }, + { + "INTEGER": "INTEGER" + }, + { + "NUMERIC": "NUMERIC" + }, + { + "TINYINT": "TINYINT" + }, + { + "SMALLINT": "SMALLINT" + }, + { + "CHAR": "CHAR" + }, + { + "TEXT": "TEXT" + }, + { + "MEDIUMTEXT": "TEXT" + }, + { + "BLOB": "BLOB" + }, + { + "CLOB": "CLOB" + }, + { + "VARCHAR": "VARCHAR2" + } + ] + }, + { + "type": "dmsql", + "fields": [ + { + "INT": "INT" + }, + { + "BIGINT": "BIGINT" + }, + { + "INTEGER": "INTEGER" + }, + { + "NUMERIC": "NUMERIC" + }, + { + "TINYINT": "TINYINT" + }, + { + "SMALLINT": "SMALLINT" + }, + { + "CHAR": "CHAR" + }, + { + "TEXT": "TEXT" + }, + { + "MEDIUMTEXT": "TEXT" + }, + { + "BLOB": "BLOB" + }, + { + "CLOB": "CLOB" + }, + { + "VARCHAR": "VARCHAR2" + } + ] + }, + { + "type": "oracle", + "fields": [ + { + "INT": "INT" + }, + { + "BIGINT": "BIGINT" + }, + { + "INTEGER": "INTEGER" + }, + { + "NUMERIC": "NUMERIC" + }, + { + "TINYINT": "TINYINT" + }, + { + "SMALLINT": "SMALLINT" + }, + { + "CHAR": "CHAR" + }, + { + "TEXT": "VARCHAR2" + }, + { + "MEDIUMTEXT": "VARCHAR2" + }, + { + "BLOB": "BLOB" + }, + { + "CLOB": "CLOB" + }, + { + "VARCHAR": "VARCHAR2" + } + ] + } +] diff --git a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/common/SwConsts.java b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/common/SwConsts.java index 6ed9dd0..8a191ff 100644 --- a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/common/SwConsts.java +++ b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/common/SwConsts.java @@ -57,7 +57,6 @@ public interface SwConsts { String TEXT_SUFFIX = "_text"; String NAME_ID = "id"; - String DEF_PWD = "abc@123456"; //初始密码 String LOGIN_VERIFY_CODE = "_VERIFY_CODE"; String _LOGIN_USER_ID_IN_SESSION = "_LOGIN_USER_ID_IN_SESSION"; diff --git a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/common/SwEnum.java b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/common/SwEnum.java index 5ef00aa..795d691 100644 --- a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/common/SwEnum.java +++ b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/common/SwEnum.java @@ -355,36 +355,6 @@ public interface SwEnum { public static StrEnumBean FLOW_LT_MS = instance.addEnum("FLOW_LT_MS", "左树-主子列表(含编辑卡片、工作流)"); } - // 权限类型 - class MenuRightType extends StrEnum { - public static MenuFuncRight instance = new MenuFuncRight(); - public static StrEnumBean DATA = instance.addEnum("data", "数据权限"); - public static StrEnumBean FUNC = instance.addEnum("func", "功能权限"); - public static StrEnumBean FIELD = instance.addEnum("field", "字段权限"); - } - - class MenuType extends IntEnum { - public static MenuType instance = new MenuType(); - public static IntEnumBean DESIGN = instance.addEnum(0, "设计器页面"); - public static IntEnumBean CUSTOM = instance.addEnum(1, "自定义页面"); - public static IntEnumBean LINK = instance.addEnum(2, "外部链接"); - } - - // 功能权限枚举 - class MenuFuncRight extends StrEnum { - public static MenuFuncRight instance = new MenuFuncRight(); - public static StrEnumBean READ = instance.addEnum("read", "查看"); - public static StrEnumBean WRITE = instance.addEnum("write", "修改"); - } - - class UserStatu extends IntEnum { - public static UserStatu instance = new UserStatu(); - public static IntEnumBean NOACT = instance.addEnum(0, "未激活"); - public static IntEnumBean NORMAL = instance.addEnum(1, "已激活"); - public static IntEnumBean LOCK = instance.addEnum(2, "已锁定"); - public static IntEnumBean STOP = instance.addEnum(9, "已停用"); - } - // 用户等级 class UserLevel extends IntEnum { public static UserLevel instance = new UserLevel();