diff --git a/backend/pom.xml b/backend/pom.xml index b2216cd9b2..3e84f3d27a 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -351,6 +351,13 @@ c3p0 0.9.1.2 + + + io.dataease + dataease-plugin-xpack + 1.0 + diff --git a/backend/src/main/java/io/dataease/auth/api/dto/DynamicMenuDto.java b/backend/src/main/java/io/dataease/auth/api/dto/DynamicMenuDto.java index 5b68491943..e83e0f1ced 100644 --- a/backend/src/main/java/io/dataease/auth/api/dto/DynamicMenuDto.java +++ b/backend/src/main/java/io/dataease/auth/api/dto/DynamicMenuDto.java @@ -29,6 +29,8 @@ public class DynamicMenuDto implements Serializable { private Integer type; + private Boolean isPlugin; + private List children; } diff --git a/backend/src/main/java/io/dataease/auth/server/AuthServer.java b/backend/src/main/java/io/dataease/auth/server/AuthServer.java index ce306b470b..51621b4df7 100644 --- a/backend/src/main/java/io/dataease/auth/server/AuthServer.java +++ b/backend/src/main/java/io/dataease/auth/server/AuthServer.java @@ -13,9 +13,11 @@ import io.dataease.auth.util.RsaUtil; import io.dataease.commons.utils.BeanUtils; import io.dataease.commons.utils.CodingUtil; import io.dataease.commons.utils.ServletUtils; -/*import io.dataease.plugins.config.SpringContextUtil; -import io.dataease.plugins.xpack.dto.response.SysSettingDto; -import io.dataease.plugins.xpack.service.DePluginXpackService;*/ + +import io.dataease.plugins.config.SpringContextUtil; + +import io.dataease.plugins.xpack.display.dto.response.SysSettingDto; +import io.dataease.plugins.xpack.display.service.DisPlayXpackService; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; @@ -108,14 +110,15 @@ public class AuthServer implements AuthApi { SysUserEntity userById = authUserService.getUserById(4L); String nickName = userById.getNickName(); // System.out.println(nickName); - /* Map beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType(DePluginXpackService.class); + Map beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType(DisPlayXpackService.class); for (Map.Entry entry : beansOfType.entrySet()) { Object key = entry.getKey(); - DePluginXpackService value = (DePluginXpackService)entry.getValue(); + DisPlayXpackService value = (DisPlayXpackService)entry.getValue(); List sysSettingDtos = value.systemSettings(); + String name = entry.getValue().getClass().getName(); System.out.println("key: "+ key + ", value: "+ name); - }*/ + } return "apple"; } } diff --git a/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java index 7254206150..c234f58b2e 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java @@ -5,6 +5,11 @@ import io.dataease.auth.entity.SysUserEntity; import io.dataease.base.mapper.ext.AuthMapper; import io.dataease.auth.service.AuthUserService; import io.dataease.commons.constants.AuthConstants; +import io.dataease.plugins.common.dto.PluginSysMenu; +import io.dataease.plugins.common.service.PluginMenuService; +import io.dataease.plugins.config.SpringContextUtil; +import io.dataease.plugins.util.PluginUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; @@ -53,6 +58,14 @@ public class AuthUserServiceImpl implements AuthUserService { @Override public List permissions(Long userId){ List permissions = authMapper.permissions(userId); + List pluginSysMenus = PluginUtils.pluginMenus(); + if (CollectionUtils.isNotEmpty(pluginSysMenus)) { + List menuIds = authMapper.userMenuIds(userId); + List pluginPermissions = pluginSysMenus.stream(). + filter(sysMenu -> menuIds.contains(sysMenu.getMenuId())) + .map(menu -> menu.getPermission()).collect(Collectors.toList()); + permissions.addAll(pluginPermissions); + } return permissions.stream().filter(StringUtils::isNotEmpty).collect(Collectors.toList()); } diff --git a/backend/src/main/java/io/dataease/auth/service/impl/DynamicMenuServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/DynamicMenuServiceImpl.java index fd2318c068..60f5e4114a 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/DynamicMenuServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/DynamicMenuServiceImpl.java @@ -6,6 +6,9 @@ import io.dataease.auth.service.DynamicMenuService; import io.dataease.base.domain.SysMenu; import io.dataease.base.domain.SysMenuExample; import io.dataease.base.mapper.SysMenuMapper; +import io.dataease.plugins.common.dto.PluginSysMenu; +import io.dataease.plugins.util.PluginUtils; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -25,6 +28,12 @@ public class DynamicMenuServiceImpl implements DynamicMenuService { sysMenuExample.setOrderByClause(" menu_sort "); List sysMenus = sysMenuMapper.selectByExample(sysMenuExample); List dynamicMenuDtos = sysMenus.stream().map(this::convert).collect(Collectors.toList()); + //增加插件中的菜单 + List pluginSysMenus = PluginUtils.pluginMenus(); + if (CollectionUtils.isNotEmpty(pluginSysMenus) ) { + List pluginDtos = pluginSysMenus.stream().map(this::convert).collect(Collectors.toList()); + dynamicMenuDtos.addAll(pluginDtos); + } List result = buildTree(dynamicMenuDtos); return result; } @@ -44,6 +53,25 @@ public class DynamicMenuServiceImpl implements DynamicMenuService { dynamicMenuDto.setMeta(menuMeta); dynamicMenuDto.setPermission(sysMenu.getPermission()); dynamicMenuDto.setHidden(sysMenu.getHidden()); + dynamicMenuDto.setIsPlugin(false); + return dynamicMenuDto; + } + private DynamicMenuDto convert(PluginSysMenu sysMenu){ + DynamicMenuDto dynamicMenuDto = new DynamicMenuDto(); + dynamicMenuDto.setId(sysMenu.getMenuId()); + dynamicMenuDto.setPid(sysMenu.getPid()); + dynamicMenuDto.setName(sysMenu.getName()); + dynamicMenuDto.setPath(sysMenu.getPath()); + dynamicMenuDto.setRedirect(null); + dynamicMenuDto.setType(sysMenu.getType()); + dynamicMenuDto.setComponent(sysMenu.getComponent()); + MenuMeta menuMeta = new MenuMeta(); + menuMeta.setTitle(sysMenu.getTitle()); + menuMeta.setIcon(sysMenu.getIcon()); + dynamicMenuDto.setMeta(menuMeta); + dynamicMenuDto.setPermission(sysMenu.getPermission()); + dynamicMenuDto.setHidden(sysMenu.getHidden()); + dynamicMenuDto.setIsPlugin(true); return dynamicMenuDto; } diff --git a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java index 97df62a17d..8e345c500e 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java @@ -47,7 +47,7 @@ public class ShiroServiceImpl implements ShiroService { filterChainDefinitionMap.put("/system/ui/**", ANON); - filterChainDefinitionMap.put("/PluginDemo.js", ANON); + filterChainDefinitionMap.put("/SystemParam.js", ANON); filterChainDefinitionMap.put("/DeXPack.js", ANON); filterChainDefinitionMap.put("/api/auth/test", ANON); diff --git a/backend/src/main/java/io/dataease/base/domain/DatasetTable.java b/backend/src/main/java/io/dataease/base/domain/DatasetTable.java index 9a0590bba7..e88c0febff 100644 --- a/backend/src/main/java/io/dataease/base/domain/DatasetTable.java +++ b/backend/src/main/java/io/dataease/base/domain/DatasetTable.java @@ -21,6 +21,8 @@ public class DatasetTable implements Serializable { private Long createTime; + private String qrtzInstance; + private String syncStatus; private String info; diff --git a/backend/src/main/java/io/dataease/base/domain/DatasetTableExample.java b/backend/src/main/java/io/dataease/base/domain/DatasetTableExample.java index b229db8021..b0dad0931d 100644 --- a/backend/src/main/java/io/dataease/base/domain/DatasetTableExample.java +++ b/backend/src/main/java/io/dataease/base/domain/DatasetTableExample.java @@ -644,6 +644,76 @@ public class DatasetTableExample { return (Criteria) this; } + public Criteria andQrtzInstanceIsNull() { + addCriterion("qrtz_instance is null"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceIsNotNull() { + addCriterion("qrtz_instance is not null"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceEqualTo(String value) { + addCriterion("qrtz_instance =", value, "qrtzInstance"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceNotEqualTo(String value) { + addCriterion("qrtz_instance <>", value, "qrtzInstance"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceGreaterThan(String value) { + addCriterion("qrtz_instance >", value, "qrtzInstance"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceGreaterThanOrEqualTo(String value) { + addCriterion("qrtz_instance >=", value, "qrtzInstance"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceLessThan(String value) { + addCriterion("qrtz_instance <", value, "qrtzInstance"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceLessThanOrEqualTo(String value) { + addCriterion("qrtz_instance <=", value, "qrtzInstance"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceLike(String value) { + addCriterion("qrtz_instance like", value, "qrtzInstance"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceNotLike(String value) { + addCriterion("qrtz_instance not like", value, "qrtzInstance"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceIn(List values) { + addCriterion("qrtz_instance in", values, "qrtzInstance"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceNotIn(List values) { + addCriterion("qrtz_instance not in", values, "qrtzInstance"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceBetween(String value1, String value2) { + addCriterion("qrtz_instance between", value1, value2, "qrtzInstance"); + return (Criteria) this; + } + + public Criteria andQrtzInstanceNotBetween(String value1, String value2) { + addCriterion("qrtz_instance not between", value1, value2, "qrtzInstance"); + return (Criteria) this; + } + public Criteria andSyncStatusIsNull() { addCriterion("sync_status is null"); return (Criteria) this; diff --git a/backend/src/main/java/io/dataease/base/domain/MyPlugin.java b/backend/src/main/java/io/dataease/base/domain/MyPlugin.java index 2dd3204176..ec73b4cc75 100644 --- a/backend/src/main/java/io/dataease/base/domain/MyPlugin.java +++ b/backend/src/main/java/io/dataease/base/domain/MyPlugin.java @@ -21,6 +21,8 @@ public class MyPlugin implements Serializable { private String creator; + private Boolean loadMybatis; + private Long releaseTime; private Long installTime; diff --git a/backend/src/main/java/io/dataease/base/domain/MyPluginExample.java b/backend/src/main/java/io/dataease/base/domain/MyPluginExample.java index c723bbeee0..b7dc903668 100644 --- a/backend/src/main/java/io/dataease/base/domain/MyPluginExample.java +++ b/backend/src/main/java/io/dataease/base/domain/MyPluginExample.java @@ -624,6 +624,66 @@ public class MyPluginExample { return (Criteria) this; } + public Criteria andLoadMybatisIsNull() { + addCriterion("load_mybatis is null"); + return (Criteria) this; + } + + public Criteria andLoadMybatisIsNotNull() { + addCriterion("load_mybatis is not null"); + return (Criteria) this; + } + + public Criteria andLoadMybatisEqualTo(Boolean value) { + addCriterion("load_mybatis =", value, "loadMybatis"); + return (Criteria) this; + } + + public Criteria andLoadMybatisNotEqualTo(Boolean value) { + addCriterion("load_mybatis <>", value, "loadMybatis"); + return (Criteria) this; + } + + public Criteria andLoadMybatisGreaterThan(Boolean value) { + addCriterion("load_mybatis >", value, "loadMybatis"); + return (Criteria) this; + } + + public Criteria andLoadMybatisGreaterThanOrEqualTo(Boolean value) { + addCriterion("load_mybatis >=", value, "loadMybatis"); + return (Criteria) this; + } + + public Criteria andLoadMybatisLessThan(Boolean value) { + addCriterion("load_mybatis <", value, "loadMybatis"); + return (Criteria) this; + } + + public Criteria andLoadMybatisLessThanOrEqualTo(Boolean value) { + addCriterion("load_mybatis <=", value, "loadMybatis"); + return (Criteria) this; + } + + public Criteria andLoadMybatisIn(List values) { + addCriterion("load_mybatis in", values, "loadMybatis"); + return (Criteria) this; + } + + public Criteria andLoadMybatisNotIn(List values) { + addCriterion("load_mybatis not in", values, "loadMybatis"); + return (Criteria) this; + } + + public Criteria andLoadMybatisBetween(Boolean value1, Boolean value2) { + addCriterion("load_mybatis between", value1, value2, "loadMybatis"); + return (Criteria) this; + } + + public Criteria andLoadMybatisNotBetween(Boolean value1, Boolean value2) { + addCriterion("load_mybatis not between", value1, value2, "loadMybatis"); + return (Criteria) this; + } + public Criteria andReleaseTimeIsNull() { addCriterion("release_time is null"); return (Criteria) this; diff --git a/backend/src/main/java/io/dataease/base/domain/QrtzSchedulerState.java b/backend/src/main/java/io/dataease/base/domain/QrtzSchedulerState.java new file mode 100644 index 0000000000..2f12a0640b --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/QrtzSchedulerState.java @@ -0,0 +1,17 @@ +package io.dataease.base.domain; + +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class QrtzSchedulerState extends QrtzSchedulerStateKey implements Serializable { + private Long lastCheckinTime; + + private Long checkinInterval; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/domain/QrtzSchedulerStateExample.java b/backend/src/main/java/io/dataease/base/domain/QrtzSchedulerStateExample.java new file mode 100644 index 0000000000..4d94ea4067 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/QrtzSchedulerStateExample.java @@ -0,0 +1,460 @@ +package io.dataease.base.domain; + +import java.util.ArrayList; +import java.util.List; + +public class QrtzSchedulerStateExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public QrtzSchedulerStateExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andSchedNameIsNull() { + addCriterion("SCHED_NAME is null"); + return (Criteria) this; + } + + public Criteria andSchedNameIsNotNull() { + addCriterion("SCHED_NAME is not null"); + return (Criteria) this; + } + + public Criteria andSchedNameEqualTo(String value) { + addCriterion("SCHED_NAME =", value, "schedName"); + return (Criteria) this; + } + + public Criteria andSchedNameNotEqualTo(String value) { + addCriterion("SCHED_NAME <>", value, "schedName"); + return (Criteria) this; + } + + public Criteria andSchedNameGreaterThan(String value) { + addCriterion("SCHED_NAME >", value, "schedName"); + return (Criteria) this; + } + + public Criteria andSchedNameGreaterThanOrEqualTo(String value) { + addCriterion("SCHED_NAME >=", value, "schedName"); + return (Criteria) this; + } + + public Criteria andSchedNameLessThan(String value) { + addCriterion("SCHED_NAME <", value, "schedName"); + return (Criteria) this; + } + + public Criteria andSchedNameLessThanOrEqualTo(String value) { + addCriterion("SCHED_NAME <=", value, "schedName"); + return (Criteria) this; + } + + public Criteria andSchedNameLike(String value) { + addCriterion("SCHED_NAME like", value, "schedName"); + return (Criteria) this; + } + + public Criteria andSchedNameNotLike(String value) { + addCriterion("SCHED_NAME not like", value, "schedName"); + return (Criteria) this; + } + + public Criteria andSchedNameIn(List values) { + addCriterion("SCHED_NAME in", values, "schedName"); + return (Criteria) this; + } + + public Criteria andSchedNameNotIn(List values) { + addCriterion("SCHED_NAME not in", values, "schedName"); + return (Criteria) this; + } + + public Criteria andSchedNameBetween(String value1, String value2) { + addCriterion("SCHED_NAME between", value1, value2, "schedName"); + return (Criteria) this; + } + + public Criteria andSchedNameNotBetween(String value1, String value2) { + addCriterion("SCHED_NAME not between", value1, value2, "schedName"); + return (Criteria) this; + } + + public Criteria andInstanceNameIsNull() { + addCriterion("INSTANCE_NAME is null"); + return (Criteria) this; + } + + public Criteria andInstanceNameIsNotNull() { + addCriterion("INSTANCE_NAME is not null"); + return (Criteria) this; + } + + public Criteria andInstanceNameEqualTo(String value) { + addCriterion("INSTANCE_NAME =", value, "instanceName"); + return (Criteria) this; + } + + public Criteria andInstanceNameNotEqualTo(String value) { + addCriterion("INSTANCE_NAME <>", value, "instanceName"); + return (Criteria) this; + } + + public Criteria andInstanceNameGreaterThan(String value) { + addCriterion("INSTANCE_NAME >", value, "instanceName"); + return (Criteria) this; + } + + public Criteria andInstanceNameGreaterThanOrEqualTo(String value) { + addCriterion("INSTANCE_NAME >=", value, "instanceName"); + return (Criteria) this; + } + + public Criteria andInstanceNameLessThan(String value) { + addCriterion("INSTANCE_NAME <", value, "instanceName"); + return (Criteria) this; + } + + public Criteria andInstanceNameLessThanOrEqualTo(String value) { + addCriterion("INSTANCE_NAME <=", value, "instanceName"); + return (Criteria) this; + } + + public Criteria andInstanceNameLike(String value) { + addCriterion("INSTANCE_NAME like", value, "instanceName"); + return (Criteria) this; + } + + public Criteria andInstanceNameNotLike(String value) { + addCriterion("INSTANCE_NAME not like", value, "instanceName"); + return (Criteria) this; + } + + public Criteria andInstanceNameIn(List values) { + addCriterion("INSTANCE_NAME in", values, "instanceName"); + return (Criteria) this; + } + + public Criteria andInstanceNameNotIn(List values) { + addCriterion("INSTANCE_NAME not in", values, "instanceName"); + return (Criteria) this; + } + + public Criteria andInstanceNameBetween(String value1, String value2) { + addCriterion("INSTANCE_NAME between", value1, value2, "instanceName"); + return (Criteria) this; + } + + public Criteria andInstanceNameNotBetween(String value1, String value2) { + addCriterion("INSTANCE_NAME not between", value1, value2, "instanceName"); + return (Criteria) this; + } + + public Criteria andLastCheckinTimeIsNull() { + addCriterion("LAST_CHECKIN_TIME is null"); + return (Criteria) this; + } + + public Criteria andLastCheckinTimeIsNotNull() { + addCriterion("LAST_CHECKIN_TIME is not null"); + return (Criteria) this; + } + + public Criteria andLastCheckinTimeEqualTo(Long value) { + addCriterion("LAST_CHECKIN_TIME =", value, "lastCheckinTime"); + return (Criteria) this; + } + + public Criteria andLastCheckinTimeNotEqualTo(Long value) { + addCriterion("LAST_CHECKIN_TIME <>", value, "lastCheckinTime"); + return (Criteria) this; + } + + public Criteria andLastCheckinTimeGreaterThan(Long value) { + addCriterion("LAST_CHECKIN_TIME >", value, "lastCheckinTime"); + return (Criteria) this; + } + + public Criteria andLastCheckinTimeGreaterThanOrEqualTo(Long value) { + addCriterion("LAST_CHECKIN_TIME >=", value, "lastCheckinTime"); + return (Criteria) this; + } + + public Criteria andLastCheckinTimeLessThan(Long value) { + addCriterion("LAST_CHECKIN_TIME <", value, "lastCheckinTime"); + return (Criteria) this; + } + + public Criteria andLastCheckinTimeLessThanOrEqualTo(Long value) { + addCriterion("LAST_CHECKIN_TIME <=", value, "lastCheckinTime"); + return (Criteria) this; + } + + public Criteria andLastCheckinTimeIn(List values) { + addCriterion("LAST_CHECKIN_TIME in", values, "lastCheckinTime"); + return (Criteria) this; + } + + public Criteria andLastCheckinTimeNotIn(List values) { + addCriterion("LAST_CHECKIN_TIME not in", values, "lastCheckinTime"); + return (Criteria) this; + } + + public Criteria andLastCheckinTimeBetween(Long value1, Long value2) { + addCriterion("LAST_CHECKIN_TIME between", value1, value2, "lastCheckinTime"); + return (Criteria) this; + } + + public Criteria andLastCheckinTimeNotBetween(Long value1, Long value2) { + addCriterion("LAST_CHECKIN_TIME not between", value1, value2, "lastCheckinTime"); + return (Criteria) this; + } + + public Criteria andCheckinIntervalIsNull() { + addCriterion("CHECKIN_INTERVAL is null"); + return (Criteria) this; + } + + public Criteria andCheckinIntervalIsNotNull() { + addCriterion("CHECKIN_INTERVAL is not null"); + return (Criteria) this; + } + + public Criteria andCheckinIntervalEqualTo(Long value) { + addCriterion("CHECKIN_INTERVAL =", value, "checkinInterval"); + return (Criteria) this; + } + + public Criteria andCheckinIntervalNotEqualTo(Long value) { + addCriterion("CHECKIN_INTERVAL <>", value, "checkinInterval"); + return (Criteria) this; + } + + public Criteria andCheckinIntervalGreaterThan(Long value) { + addCriterion("CHECKIN_INTERVAL >", value, "checkinInterval"); + return (Criteria) this; + } + + public Criteria andCheckinIntervalGreaterThanOrEqualTo(Long value) { + addCriterion("CHECKIN_INTERVAL >=", value, "checkinInterval"); + return (Criteria) this; + } + + public Criteria andCheckinIntervalLessThan(Long value) { + addCriterion("CHECKIN_INTERVAL <", value, "checkinInterval"); + return (Criteria) this; + } + + public Criteria andCheckinIntervalLessThanOrEqualTo(Long value) { + addCriterion("CHECKIN_INTERVAL <=", value, "checkinInterval"); + return (Criteria) this; + } + + public Criteria andCheckinIntervalIn(List values) { + addCriterion("CHECKIN_INTERVAL in", values, "checkinInterval"); + return (Criteria) this; + } + + public Criteria andCheckinIntervalNotIn(List values) { + addCriterion("CHECKIN_INTERVAL not in", values, "checkinInterval"); + return (Criteria) this; + } + + public Criteria andCheckinIntervalBetween(Long value1, Long value2) { + addCriterion("CHECKIN_INTERVAL between", value1, value2, "checkinInterval"); + return (Criteria) this; + } + + public Criteria andCheckinIntervalNotBetween(Long value1, Long value2) { + addCriterion("CHECKIN_INTERVAL not between", value1, value2, "checkinInterval"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/domain/QrtzSchedulerStateKey.java b/backend/src/main/java/io/dataease/base/domain/QrtzSchedulerStateKey.java new file mode 100644 index 0000000000..40062d56bd --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/QrtzSchedulerStateKey.java @@ -0,0 +1,13 @@ +package io.dataease.base.domain; + +import java.io.Serializable; +import lombok.Data; + +@Data +public class QrtzSchedulerStateKey implements Serializable { + private String schedName; + + private String instanceName; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/DatasetTableMapper.xml b/backend/src/main/java/io/dataease/base/mapper/DatasetTableMapper.xml index f465f58ec3..35c7c22c34 100644 --- a/backend/src/main/java/io/dataease/base/mapper/DatasetTableMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/DatasetTableMapper.xml @@ -10,6 +10,7 @@ + @@ -74,7 +75,8 @@ - id, `name`, scene_id, data_source_id, `type`, `mode`, create_by, create_time, sync_status + id, `name`, scene_id, data_source_id, `type`, `mode`, create_by, create_time, qrtz_instance, + sync_status info @@ -130,12 +132,12 @@ insert into dataset_table (id, `name`, scene_id, data_source_id, `type`, `mode`, - create_by, create_time, sync_status, - info) + create_by, create_time, qrtz_instance, + sync_status, info) values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{sceneId,jdbcType=VARCHAR}, #{dataSourceId,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, #{mode,jdbcType=INTEGER}, - #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT}, #{syncStatus,jdbcType=VARCHAR}, - #{info,jdbcType=LONGVARCHAR}) + #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT}, #{qrtzInstance,jdbcType=VARCHAR}, + #{syncStatus,jdbcType=VARCHAR}, #{info,jdbcType=LONGVARCHAR}) insert into dataset_table @@ -164,6 +166,9 @@ create_time, + + qrtz_instance, + sync_status, @@ -196,6 +201,9 @@ #{createTime,jdbcType=BIGINT}, + + #{qrtzInstance,jdbcType=VARCHAR}, + #{syncStatus,jdbcType=VARCHAR}, @@ -237,6 +245,9 @@ create_time = #{record.createTime,jdbcType=BIGINT}, + + qrtz_instance = #{record.qrtzInstance,jdbcType=VARCHAR}, + sync_status = #{record.syncStatus,jdbcType=VARCHAR}, @@ -258,6 +269,7 @@ `mode` = #{record.mode,jdbcType=INTEGER}, create_by = #{record.createBy,jdbcType=VARCHAR}, create_time = #{record.createTime,jdbcType=BIGINT}, + qrtz_instance = #{record.qrtzInstance,jdbcType=VARCHAR}, sync_status = #{record.syncStatus,jdbcType=VARCHAR}, info = #{record.info,jdbcType=LONGVARCHAR} @@ -274,6 +286,7 @@ `mode` = #{record.mode,jdbcType=INTEGER}, create_by = #{record.createBy,jdbcType=VARCHAR}, create_time = #{record.createTime,jdbcType=BIGINT}, + qrtz_instance = #{record.qrtzInstance,jdbcType=VARCHAR}, sync_status = #{record.syncStatus,jdbcType=VARCHAR} @@ -303,6 +316,9 @@ create_time = #{createTime,jdbcType=BIGINT}, + + qrtz_instance = #{qrtzInstance,jdbcType=VARCHAR}, + sync_status = #{syncStatus,jdbcType=VARCHAR}, @@ -321,6 +337,7 @@ `mode` = #{mode,jdbcType=INTEGER}, create_by = #{createBy,jdbcType=VARCHAR}, create_time = #{createTime,jdbcType=BIGINT}, + qrtz_instance = #{qrtzInstance,jdbcType=VARCHAR}, sync_status = #{syncStatus,jdbcType=VARCHAR}, info = #{info,jdbcType=LONGVARCHAR} where id = #{id,jdbcType=VARCHAR} @@ -334,6 +351,7 @@ `mode` = #{mode,jdbcType=INTEGER}, create_by = #{createBy,jdbcType=VARCHAR}, create_time = #{createTime,jdbcType=BIGINT}, + qrtz_instance = #{qrtzInstance,jdbcType=VARCHAR}, sync_status = #{syncStatus,jdbcType=VARCHAR} where id = #{id,jdbcType=VARCHAR} diff --git a/backend/src/main/java/io/dataease/base/mapper/MyPluginMapper.xml b/backend/src/main/java/io/dataease/base/mapper/MyPluginMapper.xml index 7381c8fb44..d5cfca94b2 100644 --- a/backend/src/main/java/io/dataease/base/mapper/MyPluginMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/MyPluginMapper.xml @@ -10,6 +10,7 @@ + @@ -75,8 +76,8 @@ - plugin_id, `name`, `free`, cost, descript, version, install_type, creator, release_time, - install_time, module_name, bean_name, icon + plugin_id, `name`, `free`, cost, descript, version, install_type, creator, load_mybatis, + release_time, install_time, module_name, bean_name, icon + select + + distinct + + + from qrtz_scheduler_state + + + + + order by ${orderByClause} + + + + + delete from qrtz_scheduler_state + where SCHED_NAME = #{schedName,jdbcType=VARCHAR} + and INSTANCE_NAME = #{instanceName,jdbcType=VARCHAR} + + + delete from qrtz_scheduler_state + + + + + + insert into qrtz_scheduler_state (SCHED_NAME, INSTANCE_NAME, LAST_CHECKIN_TIME, + CHECKIN_INTERVAL) + values (#{schedName,jdbcType=VARCHAR}, #{instanceName,jdbcType=VARCHAR}, #{lastCheckinTime,jdbcType=BIGINT}, + #{checkinInterval,jdbcType=BIGINT}) + + + insert into qrtz_scheduler_state + + + SCHED_NAME, + + + INSTANCE_NAME, + + + LAST_CHECKIN_TIME, + + + CHECKIN_INTERVAL, + + + + + #{schedName,jdbcType=VARCHAR}, + + + #{instanceName,jdbcType=VARCHAR}, + + + #{lastCheckinTime,jdbcType=BIGINT}, + + + #{checkinInterval,jdbcType=BIGINT}, + + + + + + update qrtz_scheduler_state + + + SCHED_NAME = #{record.schedName,jdbcType=VARCHAR}, + + + INSTANCE_NAME = #{record.instanceName,jdbcType=VARCHAR}, + + + LAST_CHECKIN_TIME = #{record.lastCheckinTime,jdbcType=BIGINT}, + + + CHECKIN_INTERVAL = #{record.checkinInterval,jdbcType=BIGINT}, + + + + + + + + update qrtz_scheduler_state + set SCHED_NAME = #{record.schedName,jdbcType=VARCHAR}, + INSTANCE_NAME = #{record.instanceName,jdbcType=VARCHAR}, + LAST_CHECKIN_TIME = #{record.lastCheckinTime,jdbcType=BIGINT}, + CHECKIN_INTERVAL = #{record.checkinInterval,jdbcType=BIGINT} + + + + + + update qrtz_scheduler_state + + + LAST_CHECKIN_TIME = #{lastCheckinTime,jdbcType=BIGINT}, + + + CHECKIN_INTERVAL = #{checkinInterval,jdbcType=BIGINT}, + + + where SCHED_NAME = #{schedName,jdbcType=VARCHAR} + and INSTANCE_NAME = #{instanceName,jdbcType=VARCHAR} + + + update qrtz_scheduler_state + set LAST_CHECKIN_TIME = #{lastCheckinTime,jdbcType=BIGINT}, + CHECKIN_INTERVAL = #{checkinInterval,jdbcType=BIGINT} + where SCHED_NAME = #{schedName,jdbcType=VARCHAR} + and INSTANCE_NAME = #{instanceName,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.java index 418ac6375f..00014f651a 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.java +++ b/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.java @@ -16,6 +16,8 @@ public interface AuthMapper { List permissions(@Param("userId") Long userId); + List userMenuIds(@Param("userId") Long userId); + SysUserEntity findUser(@Param("userId") Long userId); diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.xml index cd85cc1166..155f9033c2 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.xml @@ -42,6 +42,13 @@ where sur.user_id = #{userId} + +