forked from github/dataease
Merge branch 'dev' into pr@dev@fixrowpermissions
This commit is contained in:
commit
fba54de4d2
@ -4,11 +4,11 @@ ARG IMAGE_TAG
|
||||
|
||||
RUN mkdir -p /opt/apps /opt/dataease/data/feature/full /opt/dataease/drivers /opt/dataease/plugins/default
|
||||
|
||||
ADD core/mapFiles/* /opt/dataease/data/feature/full/
|
||||
ADD core/mapFiles/full/ /opt/dataease/data/feature/full/
|
||||
|
||||
ADD core/drivers/* /opt/dataease/drivers/
|
||||
|
||||
ADD plugins/default/* /opt/dataease/plugins/default/
|
||||
ADD plugins/default/ /opt/dataease/plugins/default/
|
||||
|
||||
ADD core/backend/target/backend-$IMAGE_TAG.jar /opt/apps
|
||||
|
||||
|
@ -53,16 +53,12 @@ DataEase 是开源的数据可视化分析工具,帮助用户快速分析数
|
||||
<img src="https://dataease.io/images/dataSource/kylin.jpg" alt="Kylin" border="0" width="180" height="107"/>
|
||||
</p>
|
||||
|
||||
> 更多数据源支持持续增加中...
|
||||
|
||||
## DataEase 模板市场
|
||||
|
||||
- [模板市场](https://dataease.io/templates/)
|
||||
|
||||

|
||||
|
||||
> 更多优质模板持续增加中...
|
||||
|
||||
## 快速开始
|
||||
|
||||
**在线体验**
|
||||
@ -97,7 +93,7 @@ curl -sSL https://dataease.oss-cn-hangzhou.aliyuncs.com/quick_start.sh | bash
|
||||
- 图库:[Apache ECharts](https://github.com/apache/echarts)、[AntV](https://antv.vision/zh)
|
||||
- 后端:[Spring Boot](https://spring.io/projects/spring-boot)
|
||||
- 中间件:[MySQL](https://www.mysql.com/)
|
||||
- 数据处理:[Kettle](https://github.com/pentaho/pentaho-kettle)、[Apache Doris](https://github.com/apache/incubator-doris/)
|
||||
- 数据处理:[Kettle](https://github.com/pentaho/pentaho-kettle)、[Apache Doris](https://github.com/apache/doris/)
|
||||
- 基础设施:[Docker](https://www.docker.com/)
|
||||
|
||||
## Star History
|
||||
@ -108,7 +104,6 @@ curl -sSL https://dataease.oss-cn-hangzhou.aliyuncs.com/quick_start.sh | bash
|
||||
|
||||
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fdataease%2Fdataease?ref=badge_large)
|
||||
|
||||
|
||||
## License
|
||||
|
||||
Copyright (c) 2014-2023 [FIT2CLOUD 飞致云](https://fit2cloud.com/), All rights reserved.
|
||||
|
@ -3,7 +3,7 @@ package io.dataease.auth.aop;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import io.dataease.auth.annotation.SqlInjectValidator;
|
||||
import io.dataease.commons.exception.DEException;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
@ -35,10 +35,10 @@ public class SqlInjectAop {
|
||||
if (args == null || args.length == 0) {
|
||||
return point.proceed();
|
||||
}
|
||||
BaseGridRequest request = null;
|
||||
KeywordRequest request = null;
|
||||
for (int i = 0; i < args.length; i++) {
|
||||
if (args[i] instanceof BaseGridRequest) {
|
||||
request = (BaseGridRequest) args[i];
|
||||
if (args[i] instanceof KeywordRequest) {
|
||||
request = (KeywordRequest) args[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -8,8 +8,8 @@ import io.dataease.commons.constants.DePermissionType;
|
||||
import io.dataease.commons.constants.ResourceAuthLevel;
|
||||
import io.dataease.commons.utils.PageUtils;
|
||||
import io.dataease.commons.utils.Pager;
|
||||
import io.dataease.controller.dataset.request.DatasetTaskGridRequest;
|
||||
import io.dataease.controller.request.dataset.DataSetTaskRequest;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.dto.dataset.DataSetTaskDTO;
|
||||
import io.dataease.plugins.common.base.domain.DatasetTableTask;
|
||||
import io.dataease.service.dataset.DataSetTableTaskLogService;
|
||||
@ -77,7 +77,7 @@ public class DataSetTableTaskController {
|
||||
|
||||
@ApiOperation("分页查询")
|
||||
@PostMapping("/pageList/{goPage}/{pageSize}")
|
||||
public Pager<List<DataSetTaskDTO>> taskList(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody BaseGridRequest request) {
|
||||
public Pager<List<DataSetTaskDTO>> taskList(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody DatasetTaskGridRequest request) {
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
|
||||
Pager<List<DataSetTaskDTO>> listPager = PageUtils.setPageInfo(page, dataSetTableTaskService.taskList4User(request));
|
||||
|
@ -4,16 +4,15 @@ import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
|
||||
import io.dataease.auth.annotation.DePermission;
|
||||
import io.dataease.plugins.common.base.domain.DatasetTableTaskLog;
|
||||
import io.dataease.commons.constants.DePermissionType;
|
||||
import io.dataease.commons.constants.ResourceAuthLevel;
|
||||
import io.dataease.commons.utils.PageUtils;
|
||||
import io.dataease.commons.utils.Pager;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.controller.dataset.request.DataSetTaskInstanceGridRequest;
|
||||
import io.dataease.dto.dataset.DataSetTaskLogDTO;
|
||||
import io.dataease.plugins.common.base.domain.DatasetTableTaskLog;
|
||||
import io.dataease.service.dataset.DataSetTableTaskLogService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -41,14 +40,14 @@ public class DataSetTableTaskLogController {
|
||||
|
||||
@ApiOperation("分页查询")
|
||||
@PostMapping("list/{type}/{goPage}/{pageSize}")
|
||||
public Pager<List<DataSetTaskLogDTO>> list(@RequestBody BaseGridRequest request, @PathVariable String type, @PathVariable int goPage, @PathVariable int pageSize) {
|
||||
public Pager<List<DataSetTaskLogDTO>> list(@RequestBody DataSetTaskInstanceGridRequest request, @PathVariable String type, @PathVariable int goPage, @PathVariable int pageSize) {
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
return PageUtils.setPageInfo(page, dataSetTableTaskLogService.listTaskLog(request, type));
|
||||
}
|
||||
|
||||
@ApiOperation("分页查询")
|
||||
@PostMapping("listForDataset/{type}/{goPage}/{pageSize}")
|
||||
public Pager<List<DataSetTaskLogDTO>> listForDataset(@RequestBody BaseGridRequest request, @PathVariable String type, @PathVariable int goPage, @PathVariable int pageSize) {
|
||||
public Pager<List<DataSetTaskLogDTO>> listForDataset(@RequestBody DataSetTaskInstanceGridRequest request, @PathVariable String type, @PathVariable int goPage, @PathVariable int pageSize) {
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
return PageUtils.setPageInfo(page, dataSetTableTaskLogService.listTaskLog(request, type));
|
||||
}
|
||||
@ -56,7 +55,7 @@ public class DataSetTableTaskLogController {
|
||||
|
||||
@ApiOperation("导出同步日志")
|
||||
@PostMapping("export")
|
||||
public void export(@RequestBody BaseGridRequest request) throws Exception{
|
||||
public void export(@RequestBody DataSetTaskInstanceGridRequest request) throws Exception {
|
||||
dataSetTableTaskLogService.exportExcel(request);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,20 @@
|
||||
package io.dataease.controller.dataset.request;
|
||||
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class DataSetTaskInstanceGridRequest extends KeywordRequest {
|
||||
|
||||
private String id;
|
||||
|
||||
private List<String> lastExecStatus;
|
||||
|
||||
private Long[] lastExecTime;
|
||||
|
||||
private List<String> tableId;
|
||||
|
||||
private List<String> excludedIdList;
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package io.dataease.controller.dataset.request;
|
||||
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class DatasetTaskGridRequest extends KeywordRequest {
|
||||
|
||||
private List<String> rate;
|
||||
|
||||
private List<String> status;
|
||||
|
||||
private List<String> lastExecStatus;
|
||||
|
||||
private List<String> tableId;
|
||||
|
||||
private Long[] lastExecTime;
|
||||
|
||||
private String id;
|
||||
|
||||
private Long userId;
|
||||
}
|
@ -7,7 +7,7 @@ import io.dataease.auth.annotation.SqlInjectValidator;
|
||||
import io.dataease.commons.utils.PageUtils;
|
||||
import io.dataease.commons.utils.Pager;
|
||||
import io.dataease.controller.handler.annotation.I18n;
|
||||
import io.dataease.controller.sys.request.KeyGridRequest;
|
||||
import io.dataease.controller.request.panel.AppLogGridRequest;
|
||||
import io.dataease.dto.appTemplateMarket.AppLogGridDTO;
|
||||
import io.dataease.service.panel.applog.AppLogService;
|
||||
import io.swagger.annotations.Api;
|
||||
@ -38,7 +38,7 @@ public class AppLogController {
|
||||
})
|
||||
@SqlInjectValidator(value = {"apply_time"})
|
||||
public Pager<List<AppLogGridDTO>> logGrid(@PathVariable int goPage, @PathVariable int pageSize,
|
||||
@RequestBody KeyGridRequest request) {
|
||||
@RequestBody AppLogGridRequest request) {
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
return PageUtils.setPageInfo(page, appLogService.query(request));
|
||||
}
|
||||
|
@ -2,16 +2,14 @@ package io.dataease.controller.panel.api;
|
||||
|
||||
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
|
||||
import io.dataease.auth.annotation.DePermission;
|
||||
import io.dataease.auth.annotation.SqlInjectValidator;
|
||||
import io.dataease.plugins.common.base.domain.PanelShare;
|
||||
import io.dataease.commons.constants.DePermissionType;
|
||||
import io.dataease.controller.request.panel.PanelShareFineDto;
|
||||
import io.dataease.controller.request.panel.PanelShareRemoveRequest;
|
||||
import io.dataease.controller.request.panel.PanelShareSearchRequest;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.dto.panel.PanelShareDto;
|
||||
import io.dataease.dto.panel.PanelShareOutDTO;
|
||||
import io.dataease.dto.panel.PanelSharePo;
|
||||
import io.dataease.plugins.common.base.domain.PanelShare;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@ -31,8 +29,7 @@ public interface ShareApi {
|
||||
|
||||
@ApiOperation("查询分享给我")
|
||||
@PostMapping("/treeList")
|
||||
@SqlInjectValidator(value = {"s.create_time"})
|
||||
List<PanelShareDto> treeList(BaseGridRequest request);
|
||||
List<PanelShareDto> treeList();
|
||||
|
||||
@ApiOperation("查询我分享的")
|
||||
@PostMapping("/shareOut")
|
||||
|
@ -2,15 +2,12 @@ package io.dataease.controller.panel.api;
|
||||
|
||||
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
|
||||
import io.dataease.auth.annotation.DePermission;
|
||||
import io.dataease.auth.annotation.SqlInjectValidator;
|
||||
import io.dataease.commons.constants.DePermissionType;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.dto.panel.PanelStoreDto;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.util.List;
|
||||
@ -32,8 +29,7 @@ public interface StoreApi {
|
||||
|
||||
@ApiOperation("查询收藏")
|
||||
@PostMapping("/list")
|
||||
@SqlInjectValidator(value = {"s.create_time"})
|
||||
List<PanelStoreDto> list(@RequestBody BaseGridRequest request);
|
||||
List<PanelStoreDto> list();
|
||||
|
||||
|
||||
@ApiOperation("移除收藏")
|
||||
|
@ -1,14 +1,13 @@
|
||||
package io.dataease.controller.panel.server;
|
||||
|
||||
import io.dataease.plugins.common.base.domain.PanelShare;
|
||||
import io.dataease.controller.panel.api.ShareApi;
|
||||
import io.dataease.controller.request.panel.PanelShareFineDto;
|
||||
import io.dataease.controller.request.panel.PanelShareRemoveRequest;
|
||||
import io.dataease.controller.request.panel.PanelShareSearchRequest;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.dto.panel.PanelShareDto;
|
||||
import io.dataease.dto.panel.PanelShareOutDTO;
|
||||
import io.dataease.dto.panel.PanelSharePo;
|
||||
import io.dataease.plugins.common.base.domain.PanelShare;
|
||||
import io.dataease.service.panel.ShareService;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@ -24,8 +23,8 @@ public class ShareServer implements ShareApi {
|
||||
private ShareService shareService;
|
||||
|
||||
@Override
|
||||
public List<PanelShareDto> treeList(@RequestBody BaseGridRequest request) {
|
||||
return shareService.queryTree(request);
|
||||
public List<PanelShareDto> treeList() {
|
||||
return shareService.queryTree();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,7 +1,6 @@
|
||||
package io.dataease.controller.panel.server;
|
||||
|
||||
import io.dataease.controller.panel.api.StoreApi;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.dto.panel.PanelStoreDto;
|
||||
import io.dataease.service.panel.StoreService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -21,8 +20,8 @@ public class StoreServer implements StoreApi {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PanelStoreDto> list(BaseGridRequest request) {
|
||||
return storeService.query(request);
|
||||
public List<PanelStoreDto> list() {
|
||||
return storeService.query();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -0,0 +1,11 @@
|
||||
package io.dataease.controller.request.panel;
|
||||
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AppLogGridRequest extends KeywordRequest {
|
||||
private Long[] applyTime;
|
||||
|
||||
private Long userId;
|
||||
}
|
@ -3,10 +3,10 @@ package io.dataease.controller.sys;
|
||||
import io.dataease.auth.annotation.SqlInjectValidator;
|
||||
import io.dataease.commons.utils.BeanUtils;
|
||||
import io.dataease.controller.ResultHolder;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.controller.sys.response.DeptNodeResponse;
|
||||
import io.dataease.controller.sys.response.DeptTreeNode;
|
||||
import io.dataease.plugins.common.base.domain.SysDept;
|
||||
import io.dataease.plugins.xpack.dept.dto.request.XpackDeptGridRequest;
|
||||
import io.dataease.service.sys.DeptService;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -42,7 +42,7 @@ public class SysDeptController extends ResultHolder {
|
||||
|
||||
@PostMapping("/search")
|
||||
@SqlInjectValidator({"name"})
|
||||
public List<DeptNodeResponse> search(@RequestBody BaseGridRequest request){
|
||||
public List<DeptNodeResponse> search(@RequestBody XpackDeptGridRequest request){
|
||||
List<SysDept> nodes = deptService.nodesTreeByCondition(request);
|
||||
List<DeptNodeResponse> nodeResponses = nodes.stream().map(node -> {
|
||||
DeptNodeResponse deptNodeResponse = BeanUtils.copyBean(new DeptNodeResponse(), node);
|
||||
|
@ -7,7 +7,7 @@ import io.dataease.auth.annotation.SqlInjectValidator;
|
||||
import io.dataease.commons.utils.PageUtils;
|
||||
import io.dataease.commons.utils.Pager;
|
||||
import io.dataease.controller.handler.annotation.I18n;
|
||||
import io.dataease.controller.sys.request.KeyGridRequest;
|
||||
import io.dataease.controller.sys.request.LogGridRequest;
|
||||
import io.dataease.dto.SysLogGridDTO;
|
||||
import io.dataease.dto.log.FolderItem;
|
||||
import io.dataease.service.sys.log.LogService;
|
||||
@ -39,8 +39,7 @@ public class SysLogController {
|
||||
})
|
||||
@SqlInjectValidator(value = {"time"})
|
||||
public Pager<List<SysLogGridDTO>> logGrid(@PathVariable int goPage, @PathVariable int pageSize,
|
||||
@RequestBody KeyGridRequest request) {
|
||||
request = logService.logRetentionProxy(request);
|
||||
@RequestBody LogGridRequest request) {
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
return PageUtils.setPageInfo(page, logService.query(request));
|
||||
}
|
||||
@ -54,7 +53,7 @@ public class SysLogController {
|
||||
@ApiOperation("导出操作日志")
|
||||
@PostMapping("/export")
|
||||
@ApiImplicitParam(name = "request", value = "查询条件", required = true)
|
||||
public void export(@RequestBody KeyGridRequest request) throws Exception {
|
||||
public void export(@RequestBody LogGridRequest request) throws Exception {
|
||||
logService.exportExcel(request);
|
||||
}
|
||||
}
|
||||
|
@ -1,15 +1,12 @@
|
||||
package io.dataease.controller.sys;
|
||||
|
||||
|
||||
import io.dataease.plugins.common.base.domain.SysMenu;
|
||||
import io.dataease.commons.utils.BeanUtils;
|
||||
|
||||
import io.dataease.controller.handler.annotation.I18n;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.controller.sys.request.MenuCreateRequest;
|
||||
import io.dataease.controller.sys.request.MenuDeleteRequest;
|
||||
import io.dataease.controller.sys.response.MenuNodeResponse;
|
||||
import io.dataease.controller.sys.response.MenuTreeNode;
|
||||
import io.dataease.plugins.common.base.domain.SysMenu;
|
||||
import io.dataease.service.sys.MenuService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@ -21,6 +18,7 @@ import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ApiIgnore
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@ -34,61 +32,44 @@ public class SysMenuController {
|
||||
@ApiOperation("查询跟节点菜单")
|
||||
@I18n
|
||||
@PostMapping("/childNodes/{pid}")
|
||||
public List<MenuNodeResponse> childNodes(@PathVariable("pid") Long pid){
|
||||
public List<MenuNodeResponse> childNodes(@PathVariable("pid") Long pid) {
|
||||
List<SysMenu> nodes = menuService.nodesByPid(pid);
|
||||
nodes = nodes.stream().filter(node -> !node.getHidden()).collect(Collectors.toList());
|
||||
return menuService.convert(nodes);
|
||||
}
|
||||
|
||||
@ApiOperation("搜索菜单树")
|
||||
@I18n
|
||||
@PostMapping("/search")
|
||||
public List<MenuNodeResponse> search(@RequestBody BaseGridRequest request) {
|
||||
List<SysMenu> nodes = menuService.nodesTreeByCondition(request);
|
||||
List<MenuNodeResponse> nodeResponses = nodes.stream().map(node -> {
|
||||
MenuNodeResponse menuNodeResponse = BeanUtils.copyBean(new MenuNodeResponse(), node);
|
||||
menuNodeResponse.setHasChildren(node.getSubCount() > 0);
|
||||
menuNodeResponse.setTop(node.getPid() == menuService.MENU_ROOT_PID);
|
||||
return menuNodeResponse;
|
||||
}).collect(Collectors.toList());
|
||||
return nodeResponses;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ApiOperation("新增菜单")
|
||||
@PostMapping("/create")
|
||||
public void create(@RequestBody MenuCreateRequest request){
|
||||
public void create(@RequestBody MenuCreateRequest request) {
|
||||
menuService.add(request);
|
||||
}
|
||||
|
||||
@ApiOperation("删除菜单")
|
||||
@PostMapping("/delete")
|
||||
public void delete(@RequestBody MenuDeleteRequest request){
|
||||
public void delete(@RequestBody MenuDeleteRequest request) {
|
||||
menuService.delete(request);
|
||||
}
|
||||
|
||||
@ApiOperation("更新菜单")
|
||||
@PostMapping("/update")
|
||||
public void update(@RequestBody MenuCreateRequest menu){
|
||||
public void update(@RequestBody MenuCreateRequest menu) {
|
||||
menuService.update(menu);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@PostMapping("/childMenus/{pid}")
|
||||
public Set<Long> childMenus(@PathVariable Long pid){
|
||||
public Set<Long> childMenus(@PathVariable Long pid) {
|
||||
List<MenuNodeResponse> children = menuService.children(pid);
|
||||
Set<Long> sets = children.stream().map(MenuNodeResponse::getMenuId).collect(Collectors.toSet());
|
||||
sets.add(pid);
|
||||
return sets;
|
||||
}
|
||||
|
||||
@PostMapping("/nodesByMenuId/{menuId}")
|
||||
public List<MenuTreeNode> nodesByMenuId(@PathVariable("menuId") Long menuId) {
|
||||
return menuService.searchTree(menuId);
|
||||
return menuService.searchTree(menuId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -6,8 +6,8 @@ import io.dataease.auth.annotation.SqlInjectValidator;
|
||||
import io.dataease.commons.utils.DeFileUtils;
|
||||
import io.dataease.commons.utils.PageUtils;
|
||||
import io.dataease.commons.utils.Pager;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.plugins.common.base.domain.MyPlugin;
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import io.dataease.service.sys.PluginService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@ -33,7 +33,7 @@ public class SysPluginController {
|
||||
@PostMapping("/pluginGrid/{goPage}/{pageSize}")
|
||||
@RequiresPermissions("plugin:read")
|
||||
@SqlInjectValidator(value = {"install_time"})
|
||||
public Pager<List<MyPlugin>> pluginGrid(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody BaseGridRequest request) {
|
||||
public Pager<List<MyPlugin>> pluginGrid(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody KeywordRequest request) {
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
return PageUtils.setPageInfo(page, pluginService.query(request));
|
||||
}
|
||||
|
@ -14,15 +14,13 @@ import io.dataease.commons.constants.ResourceAuthLevel;
|
||||
import io.dataease.commons.constants.SysLogConstants;
|
||||
import io.dataease.commons.exception.DEException;
|
||||
import io.dataease.commons.utils.AuthUtils;
|
||||
import io.dataease.commons.utils.BeanUtils;
|
||||
import io.dataease.commons.utils.PageUtils;
|
||||
import io.dataease.commons.utils.Pager;
|
||||
import io.dataease.controller.response.ExistLdapUser;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.controller.sys.request.KeyGridRequest;
|
||||
import io.dataease.controller.sys.request.SysUserCreateRequest;
|
||||
import io.dataease.controller.sys.request.SysUserPwdRequest;
|
||||
import io.dataease.controller.sys.request.SysUserStateRequest;
|
||||
import io.dataease.controller.sys.request.UserGridRequest;
|
||||
import io.dataease.controller.sys.response.AuthBindDTO;
|
||||
import io.dataease.controller.sys.response.RoleUserItem;
|
||||
import io.dataease.controller.sys.response.SysUserGridResponse;
|
||||
@ -31,6 +29,7 @@ import io.dataease.i18n.Translator;
|
||||
import io.dataease.plugins.common.base.domain.SysRole;
|
||||
import io.dataease.plugins.common.base.domain.SysUser;
|
||||
import io.dataease.plugins.common.base.domain.SysUserAssist;
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import io.dataease.service.sys.SysRoleService;
|
||||
import io.dataease.service.sys.SysUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
@ -81,7 +80,7 @@ public class SysUserController {
|
||||
})
|
||||
@SqlInjectValidator(value = {"create_time", "u.enabled", "nick_name", "u.dept_id"})
|
||||
public Pager<List<SysUserGridResponse>> userGrid(@PathVariable int goPage, @PathVariable int pageSize,
|
||||
@RequestBody KeyGridRequest request) {
|
||||
@RequestBody UserGridRequest request) {
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
List<SysUserGridResponse> users = sysUserService.query(request);
|
||||
users.forEach(user -> {
|
||||
@ -95,9 +94,8 @@ public class SysUserController {
|
||||
@ApiIgnore
|
||||
@PostMapping("/userLists")
|
||||
@SqlInjectValidator({"nick_name", "create_time"})
|
||||
public List<SysUserGridResponse> userLists(@RequestBody BaseGridRequest request) {
|
||||
KeyGridRequest keyGridRequest = BeanUtils.copyBean(new KeyGridRequest(), request);
|
||||
List<SysUserGridResponse> users = sysUserService.query(keyGridRequest);
|
||||
public List<SysUserGridResponse> userLists(@RequestBody UserGridRequest request) {
|
||||
List<SysUserGridResponse> users = sysUserService.query(request);
|
||||
if (CollectionUtils.isEmpty(users)) return users;
|
||||
users.forEach(user -> {
|
||||
user.setPassword(null);
|
||||
@ -113,7 +111,7 @@ public class SysUserController {
|
||||
@ApiImplicitParam(name = "request", value = "查询条件", required = true)
|
||||
})
|
||||
@SqlInjectValidator(value = {"create_time", "u.enabled", "nick_name", "u.dept_id"})
|
||||
public Pager<List<SysUserGridResponse>> userGrids(@PathVariable String datasetId, @RequestBody KeyGridRequest request) {
|
||||
public Pager<List<SysUserGridResponse>> userGrids(@PathVariable String datasetId, @RequestBody UserGridRequest request) {
|
||||
return userGrid(0, 0, request);
|
||||
}
|
||||
|
||||
@ -234,12 +232,11 @@ public class SysUserController {
|
||||
@ApiImplicitParam(paramType = "path", name = "pageSize", value = "页容量", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "request", value = "查询条件", required = true)
|
||||
})
|
||||
@SqlInjectValidator({"create_time", "update_time"})
|
||||
public Pager<List<SysRole>> roleGrid(@PathVariable int goPage, @PathVariable int pageSize,
|
||||
@RequestBody BaseGridRequest request) {
|
||||
@SqlInjectValidator({"create_time"})
|
||||
public Pager<List<SysRole>> roleGrid(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody KeywordRequest request) {
|
||||
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
Pager<List<SysRole>> listPager = PageUtils.setPageInfo(page, sysRoleService.query(request));
|
||||
return listPager;
|
||||
return PageUtils.setPageInfo(page, sysRoleService.query(request));
|
||||
}
|
||||
|
||||
@ApiOperation("已同步用户")
|
||||
|
@ -1,52 +0,0 @@
|
||||
package io.dataease.controller.sys.base;
|
||||
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
|
||||
@ApiModel("查询条件")
|
||||
public class BaseGridRequest implements Serializable {
|
||||
|
||||
@ApiModelProperty("条件集合")
|
||||
private List<ConditionEntity> conditions;
|
||||
|
||||
public List<ConditionEntity> getConditions() {
|
||||
return conditions;
|
||||
}
|
||||
|
||||
public void setConditions(List<ConditionEntity> conditions) {
|
||||
this.conditions = conditions;
|
||||
}
|
||||
|
||||
public List<String> getOrders() {
|
||||
return orders;
|
||||
}
|
||||
|
||||
public void setOrders(List<String> orders) {
|
||||
this.orders = orders;
|
||||
}
|
||||
|
||||
@ApiModelProperty("排序描述")
|
||||
private List<String> orders;
|
||||
|
||||
public GridExample convertExample(){
|
||||
GridExample gridExample = new GridExample();
|
||||
if (CollectionUtils.isNotEmpty(conditions)) {
|
||||
GridExample.Criteria criteria = gridExample.createCriteria();
|
||||
conditions.forEach(criteria::addCondition);
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(orders)){
|
||||
String orderByClause = String.join(", ", orders);
|
||||
gridExample.setOrderByClause(orderByClause);
|
||||
}
|
||||
|
||||
return gridExample;
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
package io.dataease.controller.sys.base;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class ConditionEntity implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "字段")
|
||||
private String field;
|
||||
|
||||
@ApiModelProperty(value = "操作符")
|
||||
private String operator;
|
||||
|
||||
@ApiModelProperty(value = "字段值")
|
||||
private Object value;
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
package io.dataease.controller.sys.request;
|
||||
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class KeyGridRequest extends BaseGridRequest implements Serializable {
|
||||
@ApiModelProperty("关键字")
|
||||
private String keyWord;
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package io.dataease.controller.sys.request;
|
||||
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class LogGridRequest extends KeywordRequest {
|
||||
|
||||
private List<String> optypeList;
|
||||
|
||||
private List<Long> userIdList;
|
||||
|
||||
private Long[] timeList;
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
package io.dataease.controller.sys.request;
|
||||
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@ -9,7 +9,7 @@ import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@ApiModel("消息条件")
|
||||
public class MsgRequest extends BaseGridRequest implements Serializable {
|
||||
public class MsgRequest extends KeywordRequest implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1920091635946508658L;
|
||||
|
||||
|
@ -0,0 +1,19 @@
|
||||
package io.dataease.controller.sys.request;
|
||||
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class UserGridRequest extends KeywordRequest {
|
||||
|
||||
@ApiModelProperty("角色ID列表")
|
||||
private List<Long> roleIdList;
|
||||
@ApiModelProperty("组织ID列表")
|
||||
private List<Long> deptIdList;
|
||||
@ApiModelProperty("状态")
|
||||
private List<Integer> enabledList;
|
||||
|
||||
}
|
@ -1,9 +1,10 @@
|
||||
package io.dataease.ext;
|
||||
|
||||
import io.dataease.controller.request.panel.AppLogGridRequest;
|
||||
import io.dataease.dto.appTemplateMarket.AppLogGridDTO;
|
||||
import io.dataease.service.panel.applog.AppLogQueryParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ExtAppLogMapper {
|
||||
List<AppLogGridDTO> query(AppLogQueryParam example);
|
||||
List<AppLogGridDTO> query(AppLogGridRequest request);
|
||||
}
|
||||
|
@ -14,7 +14,7 @@
|
||||
<result column="panel_privileges" property="panelPrivileges"/>
|
||||
<result column="datasource_privileges" property="datasourcePrivileges"/>
|
||||
</resultMap>
|
||||
<select id="query" parameterType="io.dataease.service.panel.applog.AppLogQueryParam" resultMap="BaseResultMapDTO">
|
||||
<select id="query" parameterType="io.dataease.controller.request.panel.AppLogGridRequest" resultMap="BaseResultMapDTO">
|
||||
select
|
||||
logInfo.*,
|
||||
get_auths(logInfo.dataset_group_id,'dataset',#{userId}) as `dataset_privileges`,
|
||||
@ -53,27 +53,34 @@
|
||||
left join panel_app_template on panel_app_template_log.app_template_id = panel_app_template.id
|
||||
) t
|
||||
where 1=1
|
||||
<if test="extendCondition != null">
|
||||
<if test="keyword != null">
|
||||
and
|
||||
(
|
||||
t.app_name like concat('%', #{extendCondition} , '%')
|
||||
t.app_name like concat('%', #{keyword} , '%')
|
||||
or
|
||||
t.panel_name like concat('%', #{extendCondition} , '%')
|
||||
t.panel_name like concat('%', #{keyword} , '%')
|
||||
or
|
||||
t.dataset_group_name like concat('%', #{extendCondition} , '%')
|
||||
t.dataset_group_name like concat('%', #{keyword} , '%')
|
||||
or
|
||||
t.datasource_name like concat('%', #{extendCondition} , '%')
|
||||
t.datasource_name like concat('%', #{keyword} , '%')
|
||||
)
|
||||
</if>
|
||||
) logInfo
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.gridCondition"/>
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
order by apply_time desc
|
||||
<if test="applyTime != null and applyTime.length > 1">
|
||||
and (apply_time between #{applyTime.[0]} and #{applyTime.[1]}
|
||||
</if>
|
||||
|
||||
<choose>
|
||||
<when test="orders!=null and orders.size > 0">
|
||||
order by
|
||||
<foreach collection="orders" item="item" open='' separator=',' close=''>
|
||||
${item}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
order by apply_time desc
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -1,8 +1,9 @@
|
||||
package io.dataease.ext;
|
||||
|
||||
import io.dataease.controller.dataset.request.DataSetTaskInstanceGridRequest;
|
||||
import io.dataease.controller.dataset.request.DatasetTaskGridRequest;
|
||||
import io.dataease.dto.dataset.DataSetTaskDTO;
|
||||
import io.dataease.dto.dataset.DataSetTaskLogDTO;
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@ -14,15 +15,15 @@ import java.util.List;
|
||||
*/
|
||||
@Mapper
|
||||
public interface ExtDataSetTaskMapper {
|
||||
List<DataSetTaskLogDTO> listTaskLog(GridExample example);
|
||||
List<DataSetTaskLogDTO> listTaskLog(DataSetTaskInstanceGridRequest request);
|
||||
|
||||
List<DataSetTaskLogDTO> listUserTaskLog(GridExample example);
|
||||
List<DataSetTaskLogDTO> listUserTaskLog(DataSetTaskInstanceGridRequest request);
|
||||
|
||||
List<DataSetTaskDTO> taskList(GridExample example);
|
||||
List<DataSetTaskDTO> taskList(DatasetTaskGridRequest request);
|
||||
|
||||
List<DataSetTaskDTO> userTaskList(GridExample example);
|
||||
List<DataSetTaskDTO> userTaskList(DatasetTaskGridRequest request);
|
||||
|
||||
List<DataSetTaskDTO> taskWithTriggers(GridExample example);
|
||||
List<DataSetTaskDTO> taskWithTriggers(DatasetTaskGridRequest request);
|
||||
|
||||
List<DataSetTaskDTO> findByPanelId(@Param("panelId") String panelId);
|
||||
|
||||
|
@ -21,15 +21,32 @@
|
||||
FROM dataset_table_task_log
|
||||
LEFT JOIN dataset_table_task ON dataset_table_task_log.task_id = dataset_table_task.id
|
||||
LEFT JOIN dataset_table ON dataset_table_task_log.table_id = dataset_table.id
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.gridCondition"/>
|
||||
|
||||
where 1=1
|
||||
<if test="id != null">
|
||||
and dataset_table_task.id = #{id}
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
<if test="lastExecStatus != null and lastExecStatus.size() > 0">
|
||||
and dataset_table_task_log.status in
|
||||
<foreach collection="lastExecStatus" open="(" close=")" separator="," item="status">
|
||||
#{status}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
ORDER BY dataset_table_task_log.create_time desc
|
||||
<if test="tableId != null and tableId.size() > 0">
|
||||
and dataset_table.id in
|
||||
<foreach collection="tableId" open="(" close=")" separator="," item="tid">
|
||||
#{tid}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="lastExecTime != null and lastExecTime.length > 1">
|
||||
and (dataset_table_task.last_exec_time between #{lastExecTime.[0]} and #{lastExecTime.[1]})
|
||||
</if>
|
||||
|
||||
<if test="keyword != null">
|
||||
and dataset_table_task.name like concat('%', #{keyword}, '%')
|
||||
</if>
|
||||
|
||||
ORDER BY dataset_table_task_log.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="listUserTaskLog" resultMap="BaseResult"
|
||||
@ -38,82 +55,132 @@
|
||||
FROM dataset_table_task_log
|
||||
LEFT JOIN dataset_table_task ON dataset_table_task_log.task_id = dataset_table_task.id
|
||||
LEFT JOIN dataset_table ON dataset_table_task_log.table_id = dataset_table.id
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.taskListGridCondition"/>
|
||||
where 1=1
|
||||
<if test="id != null">
|
||||
and dataset_table_task.id = #{id}
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
<if test="lastExecStatus != null and lastExecStatus.size() > 0">
|
||||
and dataset_table_task_log.status in
|
||||
<foreach collection="lastExecStatus" open="(" close=")" separator="," item="status">
|
||||
#{status}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
ORDER BY dataset_table_task_log.create_time desc
|
||||
<if test="tableId != null and tableId.size() > 0">
|
||||
and dataset_table.id in
|
||||
<foreach collection="tableId" open="(" close=")" separator="," item="tid">
|
||||
#{tid}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="lastExecTime != null and lastExecTime.length > 1">
|
||||
and (dataset_table_task.last_exec_time between #{lastExecTime.[0]} and #{lastExecTime.[1]})
|
||||
</if>
|
||||
|
||||
<if test="keyword != null">
|
||||
and dataset_table_task.name like concat('%', #{keyword}, '%')
|
||||
</if>
|
||||
|
||||
ORDER BY dataset_table_task_log.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="taskList" resultMap="TaskResult" parameterType="io.dataease.ext.query.GridExample">
|
||||
<select id="taskList" resultMap="TaskResult" parameterType="io.dataease.controller.dataset.request.DatasetTaskGridRequest">
|
||||
SELECT dataset_table.name as table_name, 'grant,manage,use' as `privileges`,dataset_table_task.* ,
|
||||
qrtz_triggers.NEXT_FIRE_TIME
|
||||
FROM dataset_table_task
|
||||
left join dataset_table on dataset_table.id=dataset_table_task.table_id
|
||||
left join qrtz_triggers on dataset_table_task.id=qrtz_triggers.TRIGGER_NAME
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.gridCondition"/>
|
||||
where 1=1
|
||||
<if test="rate != null and rate.size() > 0">
|
||||
and dataset_table_task.rate in
|
||||
<foreach collection="rate" open="(" close=")" item="rateItem" separator=",">
|
||||
#{rateItem}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
<if test="status != null and status.size() > 0">
|
||||
and dataset_table_task.status in
|
||||
<foreach collection="status" open="(" close=")" item="statusItem" separator=",">
|
||||
#{statusItem}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
order by dataset_table_task.create_time desc
|
||||
<if test="lastExecStatus != null and lastExecStatus.size() > 0" >
|
||||
and dataset_table_task.last_exec_status in
|
||||
<foreach collection="lastExecStatus" open="(" close=")" item="lastExecStatusItem" separator=",">
|
||||
#{lastExecStatusItem}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="tableId != null and tableId.size() > 0">
|
||||
and dataset_table.id in
|
||||
<foreach collection="tableId" open="(" close=")" separator="," item="tid">
|
||||
#{tid}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="id != null">
|
||||
and dataset_table_task.id = #{id}
|
||||
</if>
|
||||
<if test="lastExecTime != null and lastExecTime.length > 1">
|
||||
and (dataset_table_task.last_exec_time between #{lastExecTime.[0]} and #{lastExecTime.[1]})
|
||||
</if>
|
||||
<if test="keyword != null">
|
||||
and dataset_table_task.name like concat('%', #{keyword}, '%')
|
||||
</if>
|
||||
order by dataset_table_task.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="userTaskList" resultMap="TaskResult" parameterType="io.dataease.ext.query.GridExample">
|
||||
SELECT dataset_table.name as table_name, get_auths(dataset_table_task.table_id,'dataset', #{extendCondition}) as
|
||||
<select id="userTaskList" resultMap="TaskResult" parameterType="io.dataease.controller.dataset.request.DatasetTaskGridRequest">
|
||||
SELECT dataset_table.name as table_name, get_auths(dataset_table_task.table_id,'dataset', #{userId}) as
|
||||
`privileges`,dataset_table_task.* , qrtz_triggers.NEXT_FIRE_TIME
|
||||
FROM dataset_table_task
|
||||
left join dataset_table on dataset_table.id=dataset_table_task.table_id
|
||||
left join qrtz_triggers on dataset_table_task.id=qrtz_triggers.TRIGGER_NAME
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.taskListGridCondition"/>
|
||||
|
||||
where 1=1
|
||||
<if test="rate != null and rate.size() > 0">
|
||||
and dataset_table_task.rate in
|
||||
<foreach collection="rate" open="(" close=")" item="rateItem" separator=",">
|
||||
#{rateItem}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
<if test="status != null and status.size() > 0">
|
||||
and dataset_table_task.status in
|
||||
<foreach collection="status" open="(" close=")" item="statusItem" separator=",">
|
||||
#{statusItem}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
order by dataset_table_task.create_time desc
|
||||
<if test="lastExecStatus != null and lastExecStatus.size() > 0">
|
||||
and dataset_table_task.last_exec_status in
|
||||
<foreach collection="lastExecStatus" open="(" close=")" item="lastExecStatusItem" separator=",">
|
||||
#{lastExecStatusItem}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="id != null">
|
||||
and dataset_table_task.id = #{id}
|
||||
</if>
|
||||
<if test="tableId != null and tableId.size() > 0">
|
||||
and dataset_table.id in
|
||||
<foreach collection="tableId" open="(" close=")" separator="," item="tid">
|
||||
#{tid}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="lastExecTime != null and lastExecTime.length > 1">
|
||||
and (dataset_table_task.last_exec_time between #{lastExecTime.[0]} and #{lastExecTime.[1]})
|
||||
</if>
|
||||
<if test="keyword != null">
|
||||
and dataset_table_task.name like concat('%', #{keyword}, '%')
|
||||
</if>
|
||||
order by dataset_table_task.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="userTaskList_COUNT" resultType="LONG">
|
||||
SELECT count(0)
|
||||
FROM dataset_table_task
|
||||
left join dataset_table on dataset_table.id=dataset_table_task.table_id
|
||||
left join qrtz_triggers on dataset_table_task.id=qrtz_triggers.TRIGGER_NAME
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.taskListGridCondition"/>
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
order by dataset_table_task.create_time desc
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="taskWithTriggers" resultMap="TaskResult" parameterType="io.dataease.ext.query.GridExample">
|
||||
SELECT dataset_table.name as table_name, get_auths(dataset_table_task.table_id,'dataset', #{extendCondition}) as
|
||||
|
||||
<select id="taskWithTriggers" resultMap="TaskResult" parameterType="io.dataease.controller.dataset.request.DatasetTaskGridRequest">
|
||||
SELECT dataset_table.name as table_name, get_auths(dataset_table_task.table_id,'dataset', #{userId}) as
|
||||
`privileges`,dataset_table_task.* , qrtz_triggers.NEXT_FIRE_TIME
|
||||
FROM dataset_table_task
|
||||
left join dataset_table on dataset_table.id=dataset_table_task.table_id
|
||||
left join qrtz_triggers on dataset_table_task.id=qrtz_triggers.TRIGGER_NAME
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.gridCondition"/>
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
order by dataset_table_task.create_time desc
|
||||
<if test="id != null">
|
||||
and dataset_table_task.id = #{id}
|
||||
</if>
|
||||
order by dataset_table_task.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="findByPanelId" resultMap="TaskResult">
|
||||
|
@ -1,16 +1,14 @@
|
||||
package io.dataease.ext;
|
||||
|
||||
import io.dataease.controller.request.DatasourceUnionRequest;
|
||||
import io.dataease.dto.RelationDTO;
|
||||
import io.dataease.dto.DatasourceDTO;
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.dto.RelationDTO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ExtDataSourceMapper {
|
||||
|
||||
// List<DatasourceDTO> query(GridExample example);
|
||||
|
||||
List<DatasourceDTO> queryUnion(DatasourceUnionRequest request);
|
||||
|
||||
@ -20,5 +18,5 @@ public interface ExtDataSourceMapper {
|
||||
|
||||
DatasourceDTO queryDetails(@Param("datasourceId") String datasourceId, @Param("userId") String userId);
|
||||
|
||||
List<RelationDTO> queryDatasourceRelation(@Param("datasourceId") String datasourceId, @Param("userId")Long userId);
|
||||
List<RelationDTO> queryDatasourceRelation(@Param("datasourceId") String datasourceId, @Param("userId") Long userId);
|
||||
}
|
||||
|
@ -18,52 +18,7 @@
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<select id="query" parameterType="io.dataease.ext.query.GridExample" resultMap="BaseResultMapDTO">
|
||||
select datasource.*,
|
||||
authInfo.privileges as `privileges`
|
||||
from (select GET_V_AUTH_MODEL_ID_P_USE (#{extendCondition}, 'link') cids) t,datasource
|
||||
left join (
|
||||
SELECT
|
||||
auth_source,
|
||||
group_concat( DISTINCT sys_auth_detail.privilege_extend ) as `privileges`
|
||||
FROM
|
||||
(
|
||||
`sys_auth`
|
||||
LEFT JOIN `sys_auth_detail` ON ((
|
||||
`sys_auth`.`id` = `sys_auth_detail`.`auth_id`
|
||||
)))
|
||||
WHERE
|
||||
sys_auth_detail.privilege_value = 1
|
||||
AND sys_auth.auth_source_type = 'link'
|
||||
AND (
|
||||
(
|
||||
sys_auth.auth_target_type = 'dept'
|
||||
AND sys_auth.auth_target IN ( SELECT dept_id FROM sys_user WHERE user_id = #{extendCondition} )
|
||||
)
|
||||
OR (
|
||||
sys_auth.auth_target_type = 'user'
|
||||
AND sys_auth.auth_target = #{extendCondition}
|
||||
)
|
||||
OR (
|
||||
sys_auth.auth_target_type = 'role'
|
||||
AND sys_auth.auth_target IN ( SELECT role_id FROM sys_users_roles WHERE user_id = #{extendCondition} )
|
||||
)
|
||||
)
|
||||
GROUP BY
|
||||
`sys_auth`.`auth_source`
|
||||
) authInfo
|
||||
on datasource.id = authInfo.auth_source
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.gridCondition"/>
|
||||
</if>
|
||||
and FIND_IN_SET(datasource.id,cids)
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
order by update_time desc
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
<select id="queryUnion" resultMap="BaseResultMapDTO">
|
||||
select datasource.*,
|
||||
|
@ -1,10 +1,13 @@
|
||||
package io.dataease.ext;
|
||||
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.controller.request.BaseTreeRequest;
|
||||
import io.dataease.controller.sys.request.SimpleTreeNode;
|
||||
import io.dataease.dto.SysDeptDTO;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
import io.dataease.plugins.xpack.dept.dto.request.XpackDeptGridRequest;
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -27,7 +30,7 @@ public interface ExtDeptMapper {
|
||||
|
||||
List<SimpleTreeNode> allNodes();
|
||||
|
||||
List<SimpleTreeNode> nodesByExample(GridExample example);
|
||||
List<SimpleTreeNode> nodesByExample(XpackDeptGridRequest request);
|
||||
|
||||
List<SysDeptDTO> searchTree(BaseTreeRequest request);
|
||||
|
||||
|
@ -12,9 +12,14 @@
|
||||
</select>
|
||||
|
||||
|
||||
<select id="nodesByExample" parameterType="io.dataease.ext.query.GridExample" resultMap="simpleNode">
|
||||
select dept_id as id, pid from sys_dept
|
||||
<include refid="io.dataease.ext.query.GridSql.gridCondition" />
|
||||
<select id="nodesByExample" parameterType="io.dataease.plugins.xpack.dept.dto.request.XpackDeptGridRequest" resultMap="simpleNode">
|
||||
select dept_id as id, pid from sys_dept where 1=1
|
||||
<if test="pid != null">
|
||||
and pid = #{pid}
|
||||
</if>
|
||||
<if test="keyword != null">
|
||||
and name like concat('%', #{keyword}, '%')
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
package io.dataease.ext;
|
||||
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.dto.panel.PanelStoreDto;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ExtPanelStoreMapper {
|
||||
|
||||
List<PanelStoreDto> query(GridExample example);
|
||||
List<PanelStoreDto> query(@Param("uid") Long uid);
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="io.dataease.ext.ExtPanelStoreMapper">
|
||||
|
||||
<resultMap id="panelStoreMap" type="io.dataease.dto.panel.PanelStoreDto" >
|
||||
<resultMap id="panelStoreMap" type="io.dataease.dto.panel.PanelStoreDto">
|
||||
<id column="store_id" property="storeId"></id>
|
||||
<result column="panel_group_id" property="panelGroupId"></result>
|
||||
<result column="name" property="name"></result>
|
||||
@ -10,26 +10,14 @@
|
||||
</resultMap>
|
||||
|
||||
|
||||
|
||||
|
||||
<select id="query" parameterType="io.dataease.ext.query.GridExample" resultMap="panelStoreMap">
|
||||
select s.store_id,s.panel_group_id, g.name ,g.status
|
||||
from panel_store s
|
||||
inner join panel_group g on g.id = s.panel_group_id
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.gridCondition" />
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
order by s.create_time desc
|
||||
</if>
|
||||
<select id="query" parameterType="java.lang.Long" resultMap="panelStoreMap">
|
||||
select s.store_id, s.panel_group_id, g.name, g.status
|
||||
from panel_store s
|
||||
inner join panel_group g on g.id = s.panel_group_id
|
||||
where s.user_id = #{uid}
|
||||
order by s.create_time desc
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
|
@ -1,16 +1,15 @@
|
||||
package io.dataease.ext;
|
||||
|
||||
import io.dataease.controller.sys.request.LogGridRequest;
|
||||
import io.dataease.dto.log.FolderItem;
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.plugins.common.base.domain.SysLogWithBLOBs;
|
||||
import io.dataease.service.sys.log.LogQueryParam;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ExtSysLogMapper {
|
||||
|
||||
List<SysLogWithBLOBs> query(LogQueryParam example);
|
||||
List<SysLogWithBLOBs> query(LogGridRequest request);
|
||||
|
||||
List<FolderItem> idAndName(@Param("ids") List<String> ids, @Param("type") Integer type);
|
||||
}
|
||||
|
@ -3,51 +3,59 @@
|
||||
<mapper namespace="io.dataease.ext.ExtSysLogMapper">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<select id="query" parameterType="io.dataease.service.sys.log.LogQueryParam" resultMap="io.dataease.plugins.common.base.mapper.SysLogMapper.ResultMapWithBLOBs">
|
||||
<select id="query" parameterType="io.dataease.controller.sys.request.LogGridRequest"
|
||||
resultMap="io.dataease.plugins.common.base.mapper.SysLogMapper.ResultMapWithBLOBs">
|
||||
select * from
|
||||
(select * from sys_log where 1 = 1
|
||||
<if test="extendCondition != null">
|
||||
and
|
||||
(
|
||||
nick_name like concat('%', #{extendCondition} , '%')
|
||||
or
|
||||
source_name like concat('%', #{extendCondition} , '%')
|
||||
or
|
||||
position like concat('%', #{extendCondition} , '%')
|
||||
<if test="unionIds != null">
|
||||
or
|
||||
concat(operate_type, '-', source_type) in
|
||||
<foreach collection="unionIds" item="id" index="index" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
)
|
||||
</if>
|
||||
) t
|
||||
(select * from sys_log where 1 = 1
|
||||
<if test="keyword != null">
|
||||
and
|
||||
(
|
||||
nick_name like concat('%', #{keyword} , '%')
|
||||
or
|
||||
source_name like concat('%', #{keyword} , '%')
|
||||
or
|
||||
position like concat('%', #{keyword} , '%')
|
||||
)
|
||||
</if>
|
||||
) t
|
||||
where 1 = 1
|
||||
<if test="optypeList != null and optypeList.size() > 0">
|
||||
and concat(operate_type, '-', source_type) in
|
||||
<foreach collection="optypeList" item="operate" open='(' separator=',' close=')'>
|
||||
#{operate}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="userIdList != null and userIdList.size() > 0">
|
||||
and user_id in
|
||||
<foreach collection="userIdList" item="userId" open='(' separator=',' close=')'>
|
||||
#{userId}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="timeList != null and timeList.length > 1">
|
||||
and (time between #{timeList.[0]} and #{timeList.[1]})
|
||||
</if>
|
||||
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.gridCondition" />
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
order by time desc
|
||||
</if>
|
||||
<choose>
|
||||
<when test="orders!=null and orders.size > 0">
|
||||
order by
|
||||
<foreach collection="orders" item="item" open='' separator=',' close=''>
|
||||
${item}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
order by time desc
|
||||
</otherwise>
|
||||
</choose>
|
||||
</select>
|
||||
|
||||
|
||||
<select id="idAndName" resultType="io.dataease.dto.log.FolderItem" >
|
||||
<select id="idAndName" resultType="io.dataease.dto.log.FolderItem">
|
||||
select
|
||||
<if test="type == 1">
|
||||
id, name
|
||||
from datasource
|
||||
<where>
|
||||
id in
|
||||
id in
|
||||
<foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
@ -57,23 +65,23 @@
|
||||
<if test="type == 2">
|
||||
id, name
|
||||
from (
|
||||
select id, name from dataset_group
|
||||
<where>
|
||||
id in
|
||||
<foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</where>
|
||||
select id, name from dataset_group
|
||||
<where>
|
||||
id in
|
||||
<foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</where>
|
||||
|
||||
union all
|
||||
union all
|
||||
|
||||
select id, name from dataset_table
|
||||
<where>
|
||||
id in
|
||||
<foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</where>
|
||||
select id, name from dataset_table
|
||||
<where>
|
||||
id in
|
||||
<foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</where>
|
||||
|
||||
) dataset
|
||||
|
||||
@ -175,9 +183,9 @@
|
||||
<if test="type == 11">
|
||||
menu_id as id ,title as name
|
||||
from (
|
||||
select menu_id, title from sys_menu
|
||||
union all
|
||||
select menu_id, title from plugin_sys_menu
|
||||
select menu_id, title from sys_menu
|
||||
union all
|
||||
select menu_id, title from plugin_sys_menu
|
||||
) plugin_union
|
||||
<where>
|
||||
menu_id in
|
||||
|
@ -1,8 +1,7 @@
|
||||
package io.dataease.ext;
|
||||
|
||||
import io.dataease.plugins.common.base.domain.SysMenu;
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.controller.sys.request.SimpleTreeNode;
|
||||
import io.dataease.plugins.common.base.domain.SysMenu;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -10,7 +9,6 @@ public interface ExtSysMenuMapper {
|
||||
|
||||
List<SimpleTreeNode> allNodes();
|
||||
|
||||
List<SimpleTreeNode> nodesByExample(GridExample example);
|
||||
|
||||
List<SysMenu> querySysMenu();
|
||||
}
|
||||
|
@ -14,11 +14,7 @@
|
||||
</select>
|
||||
|
||||
|
||||
<select id="nodesByExample" parameterType="io.dataease.ext.query.GridExample" resultMap="simpleNode">
|
||||
select menu_id as id, pid from sys_menu
|
||||
<include refid="io.dataease.ext.query.GridSql.gridCondition" />
|
||||
and hidden != 1
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<select id="querySysMenu" resultMap="ExtBaseResultMap">
|
||||
|
@ -1,11 +1,13 @@
|
||||
package io.dataease.ext;
|
||||
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.plugins.common.base.domain.MyPlugin;
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ExtSysPluginMapper {
|
||||
|
||||
List<MyPlugin> query(GridExample example);
|
||||
List<MyPlugin> query(KeywordRequest request);
|
||||
|
||||
int updateVersion(String version);
|
||||
}
|
||||
|
@ -3,22 +3,19 @@
|
||||
<mapper namespace="io.dataease.ext.ExtSysPluginMapper">
|
||||
|
||||
|
||||
<select id="query" parameterType="io.dataease.ext.query.GridExample" resultMap="io.dataease.plugins.common.base.mapper.MyPluginMapper.BaseResultMap">
|
||||
<select id="query" parameterType="io.dataease.plugins.common.request.KeywordRequest" resultMap="io.dataease.plugins.common.base.mapper.MyPluginMapper.BaseResultMap">
|
||||
select *
|
||||
from my_plugin
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.gridCondition" />
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
order by install_time desc
|
||||
<if test="keyword != null">
|
||||
where name like concat('%', #{keyword} , '%')
|
||||
</if>
|
||||
order by install_time desc
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<update id="updateVersion" parameterType="java.lang.String">
|
||||
update my_plugin set version = #{version} where store = 'default'
|
||||
</update>
|
||||
|
||||
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
package io.dataease.ext;
|
||||
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.controller.sys.response.RoleUserItem;
|
||||
import io.dataease.plugins.common.base.domain.SysRole;
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
@ -12,7 +12,7 @@ import java.util.Map;
|
||||
public interface ExtSysRoleMapper {
|
||||
|
||||
|
||||
List<SysRole> query(GridExample example);
|
||||
List<SysRole> query(KeywordRequest request);
|
||||
|
||||
int deleteRoleMenu(@Param("roleId") Long roleId);
|
||||
|
||||
|
@ -9,18 +9,22 @@
|
||||
<result property="name" column="name"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="query" parameterType="io.dataease.ext.query.GridExample" resultMap="io.dataease.plugins.common.base.mapper.SysRoleMapper.BaseResultMap">
|
||||
select r.*
|
||||
from sys_role r
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.gridCondition" />
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
order by r.update_time desc
|
||||
<select id="query" parameterType="io.dataease.plugins.common.request.KeywordRequest" resultMap="io.dataease.plugins.common.base.mapper.SysRoleMapper.BaseResultMap">
|
||||
select r.* from sys_role r
|
||||
<if test="keyword != null">
|
||||
where name like concat('%', #{keyword} , '%')
|
||||
</if>
|
||||
<choose>
|
||||
<when test="orders!=null and orders.size > 0">
|
||||
order by
|
||||
<foreach collection="orders" item="item" open='' separator=',' close=''>
|
||||
${item}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
order by create_time desc
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
</select>
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
package io.dataease.ext;
|
||||
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.controller.sys.request.UserGridRequest;
|
||||
import io.dataease.controller.sys.response.SysUserGridResponse;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ExtSysUserMapper {
|
||||
List<SysUserGridResponse> query(GridExample example);
|
||||
List<SysUserGridResponse> query(UserGridRequest request);
|
||||
|
||||
List<String> ldapUserNames(Integer from);
|
||||
|
||||
|
@ -33,7 +33,7 @@
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="query" parameterType="io.dataease.ext.query.GridExample" resultMap="BaseResultMap">
|
||||
<select id="query" parameterType="io.dataease.controller.sys.request.UserGridRequest" resultMap="BaseResultMap">
|
||||
SELECT DISTINCT
|
||||
u.*,
|
||||
u.user_id AS id,
|
||||
@ -42,26 +42,50 @@
|
||||
FROM
|
||||
(
|
||||
select * from sys_user
|
||||
<if test="extendCondition != null">
|
||||
<if test="keyword != null">
|
||||
where
|
||||
nick_name like concat('%', #{extendCondition} , '%')
|
||||
nick_name like concat('%', #{keyword} , '%')
|
||||
or
|
||||
email like concat('%', #{extendCondition} , '%')
|
||||
email like concat('%', #{keyword} , '%')
|
||||
</if>
|
||||
) u
|
||||
LEFT JOIN sys_dept d ON d.dept_id = u.dept_id
|
||||
LEFT JOIN sys_users_roles sur ON sur.user_id = u.user_id
|
||||
LEFT JOIN sys_role r ON r.role_id = sur.role_id
|
||||
where 1 = 1
|
||||
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.ext.query.GridSql.gridCondition"/>
|
||||
<if test="roleIdList != null and roleIdList.size() > 0">
|
||||
and r.role_id in
|
||||
<foreach collection="roleIdList" item="roleId" open='(' separator=',' close=')'>
|
||||
#{roleId}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
<if test="deptIdList != null and deptIdList.size() > 0">
|
||||
and d.dept_id in
|
||||
<foreach collection="deptIdList" item="deptId" open='(' separator=',' close=')'>
|
||||
#{deptId}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="orderByClause == null">
|
||||
order by u.update_time desc
|
||||
<if test="enabledList != null and enabledList.size() > 0">
|
||||
and u.enabled in
|
||||
<foreach collection="enabledList" item="en" open='(' separator=',' close=')'>
|
||||
#{en}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<choose>
|
||||
<when test="orders!=null and orders.size > 0">
|
||||
order by
|
||||
<foreach collection="orders" item="item" open='' separator=',' close=''>
|
||||
${item}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
order by u.update_time desc
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<select id="queryRole" resultMap="sysUserRole">
|
||||
|
@ -1,303 +0,0 @@
|
||||
package io.dataease.ext.query;
|
||||
|
||||
import io.dataease.controller.sys.base.ConditionEntity;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class GridExample {
|
||||
protected String orderByClause;
|
||||
|
||||
protected boolean distinct;
|
||||
|
||||
protected List<Criteria> oredCriteria;
|
||||
|
||||
protected String extendCondition;
|
||||
|
||||
public GridExample() {
|
||||
oredCriteria = new ArrayList<Criteria>();
|
||||
}
|
||||
|
||||
public String getExtendCondition() {
|
||||
return extendCondition;
|
||||
}
|
||||
|
||||
public void setExtendCondition(String extendCondition) {
|
||||
this.extendCondition = extendCondition;
|
||||
}
|
||||
|
||||
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<Criteria> 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<Criterion> criteria;
|
||||
|
||||
protected GeneratedCriteria() {
|
||||
super();
|
||||
criteria = new ArrayList<Criterion>();
|
||||
}
|
||||
|
||||
public boolean isValid() {
|
||||
return criteria.size() > 0;
|
||||
}
|
||||
|
||||
public List<Criterion> getAllCriteria() {
|
||||
return criteria;
|
||||
}
|
||||
|
||||
public List<Criterion> 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 addNotNullCriterion(String condition) {
|
||||
criteria.add(new Criterion(condition, null));
|
||||
}
|
||||
|
||||
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 addSqlCriterion(String condition, Object value, String property) {
|
||||
if (value == null) {
|
||||
throw new RuntimeException("Value for " + property + " cannot be null");
|
||||
}
|
||||
Criterion criterion = new Criterion(condition, value);
|
||||
criterion.sqlValue = true;
|
||||
criteria.add(criterion);
|
||||
}
|
||||
|
||||
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 addCondition(ConditionEntity conditionEntity){
|
||||
String field = conditionEntity.getField();
|
||||
Object value = conditionEntity.getValue();
|
||||
String operator = conditionEntity.getOperator();
|
||||
if (StringUtils.isEmpty(operator))
|
||||
operator = "like";
|
||||
switch (operator){
|
||||
case "eq":
|
||||
addCriterion(field+" = ", value, field);
|
||||
break;
|
||||
case "ne":
|
||||
addCriterion(field+" <> ", value, field);
|
||||
break;
|
||||
case "like":
|
||||
addCriterion(field+" like ", "%"+value+"%", field);
|
||||
break;
|
||||
case "not like":
|
||||
addCriterion(field+" not like ", "%"+value+"%", field);
|
||||
break;
|
||||
case "in":
|
||||
List<Object> invalues = (List<Object>)value;
|
||||
addCriterion(field+" in", invalues, field);
|
||||
break;
|
||||
case "not in":
|
||||
List<Object> notinvalues = (List<Object>)value;
|
||||
addCriterion(field+" not in", notinvalues, field);
|
||||
break;
|
||||
case "between":
|
||||
List<Object> values = (List<Object>)value;
|
||||
Object v1 = values.get(0);
|
||||
Object v2 = values.get(1);
|
||||
addCriterion(field+" between", v1, v2, field);
|
||||
break;
|
||||
case "gt":
|
||||
addCriterion(field+" > ", value, field);
|
||||
break;
|
||||
case "ge":
|
||||
addCriterion(field+" >= ", value, field);
|
||||
break;
|
||||
case "lt":
|
||||
addCriterion(field+" < ", value, field);
|
||||
break;
|
||||
case "le":
|
||||
addCriterion(field+" <= ", value, field);
|
||||
break;
|
||||
case "not null":
|
||||
addNotNullCriterion(field + " is not null ");
|
||||
break;
|
||||
case "extra":
|
||||
addCriterion(field);
|
||||
break;
|
||||
case "sql in":
|
||||
addCriterion(field+" in ", value, field);
|
||||
break;
|
||||
}
|
||||
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;
|
||||
|
||||
public boolean isSqlValue() {
|
||||
return sqlValue;
|
||||
}
|
||||
|
||||
public void setSqlValue(boolean sqlValue) {
|
||||
this.sqlValue = sqlValue;
|
||||
}
|
||||
|
||||
private boolean sqlValue;
|
||||
|
||||
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 == null){
|
||||
this.noValue = true;
|
||||
}else 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);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
package io.dataease.ext.query;
|
||||
|
||||
public interface GridSql {
|
||||
}
|
@ -1,67 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="io.dataease.ext.query.GridSql">
|
||||
|
||||
<sql id="gridCondition">
|
||||
<where>
|
||||
<foreach collection="oredCriteria" item="criteria" separator="or">
|
||||
<if test="criteria.valid">
|
||||
<trim prefix="(" prefixOverrides="and" suffix=")">
|
||||
<foreach collection="criteria.criteria" item="criterion">
|
||||
<choose>
|
||||
<when test="criterion.noValue">
|
||||
and ${criterion.condition}
|
||||
</when>
|
||||
<when test="criterion.singleValue">
|
||||
and ${criterion.condition} #{criterion.value}
|
||||
</when>
|
||||
<when test="criterion.betweenValue">
|
||||
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
|
||||
</when>
|
||||
<when test="criterion.listValue">
|
||||
and ${criterion.condition}
|
||||
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
|
||||
#{listItem}
|
||||
</foreach>
|
||||
</when>
|
||||
</choose>
|
||||
</foreach>
|
||||
</trim>
|
||||
</if>
|
||||
</foreach>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
|
||||
<sql id="taskListGridCondition">
|
||||
<where>
|
||||
dataset_table.id in (SELECT `sys_auth`.`auth_source` FROM `sys_auth` LEFT JOIN `sys_auth_detail` ON `sys_auth`.`id` = `sys_auth_detail`.`auth_id` LEFT JOIN `dataset_table` ON `dataset_table`.`id` = `sys_auth`.`auth_source` WHERE `sys_auth_detail`.`privilege_type` = '1' and `sys_auth_detail`.`privilege_value` = '1'and `sys_auth`.`auth_source_type` = 'dataset' AND ((`sys_auth`.`auth_target_type` = 'dept' AND `sys_auth`.`auth_target` in ( SELECT dept_id FROM `sys_user` WHERE `sys_user`.`user_id` = #{extendCondition} )) OR (sys_auth.auth_target_type = 'user'AND sys_auth.auth_target = #{extendCondition} ) OR (sys_auth.auth_target_type = 'role' AND `sys_auth`.`auth_target` in ( SELECT role_id FROM `sys_users_roles` WHERE `sys_users_roles`.`user_id` = #{extendCondition} )) OR (1 = ( SELECT is_admin FROM `sys_user` WHERE `sys_user`.`user_id` = #{extendCondition} )))) and
|
||||
<foreach collection="oredCriteria" item="criteria" separator="or">
|
||||
<if test="criteria.valid">
|
||||
<trim prefix="(" prefixOverrides="and" suffix=")">
|
||||
<foreach collection="criteria.criteria" item="criterion">
|
||||
<choose>
|
||||
<when test="criterion.noValue">
|
||||
and ${criterion.condition}
|
||||
</when>
|
||||
<when test="criterion.singleValue">
|
||||
and ${criterion.condition} #{criterion.value}
|
||||
</when>
|
||||
<when test="criterion.betweenValue">
|
||||
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
|
||||
</when>
|
||||
<when test="criterion.listValue">
|
||||
and ${criterion.condition}
|
||||
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
|
||||
#{listItem}
|
||||
</foreach>
|
||||
</when>
|
||||
</choose>
|
||||
</foreach>
|
||||
</trim>
|
||||
</if>
|
||||
</foreach>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
</mapper>
|
@ -1,8 +1,8 @@
|
||||
package io.dataease.plugins.config;
|
||||
|
||||
import io.dataease.commons.utils.LogUtil;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.plugins.common.base.domain.MyPlugin;
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import io.dataease.service.sys.PluginService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
@ -37,11 +37,11 @@ public class PluginRunner implements ApplicationRunner {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void run(ApplicationArguments args) {
|
||||
// 执行加载插件逻辑
|
||||
BaseGridRequest request = new BaseGridRequest();
|
||||
pluginService.systemUpgrade();
|
||||
KeywordRequest request = new KeywordRequest();
|
||||
List<MyPlugin> plugins = pluginService.query(request);
|
||||
if (CollectionUtils.isEmpty(plugins)) return;
|
||||
Map<Boolean, List<MyPlugin>> groupMap = plugins.stream().collect(Collectors.groupingBy(this::isDiscard));
|
||||
|
@ -8,8 +8,6 @@ import io.dataease.commons.constants.ResourceAuthLevel;
|
||||
import io.dataease.commons.utils.PageUtils;
|
||||
import io.dataease.commons.utils.Pager;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.plugins.common.entity.XpackConditionEntity;
|
||||
import io.dataease.plugins.common.entity.XpackGridRequest;
|
||||
import io.dataease.plugins.config.SpringContextUtil;
|
||||
import io.dataease.plugins.xpack.auth.dto.request.DataSetColumnPermissionsDTO;
|
||||
import io.dataease.plugins.xpack.auth.dto.request.DatasetColumnPermissions;
|
||||
@ -19,8 +17,9 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ApiIgnore
|
||||
@RestController
|
||||
@RequestMapping("plugin/dataset/columnPermissions")
|
||||
@ -36,15 +35,15 @@ public class ColumnPermissionsController {
|
||||
request.setAuthTargetId(datasetColumnPermissions.getAuthTargetId());
|
||||
request.setDatasetId(datasetColumnPermissions.getDatasetId());
|
||||
List<DataSetColumnPermissionsDTO> columnPermissionsDTOS = columnPermissionService.searchPermissions(request);
|
||||
if(StringUtils.isEmpty(datasetColumnPermissions.getId())){
|
||||
if(!CollectionUtils.isEmpty(columnPermissionsDTOS)){
|
||||
if (StringUtils.isEmpty(datasetColumnPermissions.getId())) {
|
||||
if (!CollectionUtils.isEmpty(columnPermissionsDTOS)) {
|
||||
throw new Exception(Translator.get("i18n_cp_exist"));
|
||||
}
|
||||
}else {
|
||||
if(!CollectionUtils.isEmpty(columnPermissionsDTOS) && columnPermissionsDTOS.size() > 1){
|
||||
} else {
|
||||
if (!CollectionUtils.isEmpty(columnPermissionsDTOS) && columnPermissionsDTOS.size() > 1) {
|
||||
throw new Exception(Translator.get("i18n_cp_exist"));
|
||||
}
|
||||
if(columnPermissionsDTOS.size() == 1 && !columnPermissionsDTOS.get(0).getId().equalsIgnoreCase(datasetColumnPermissions.getId())){
|
||||
if (columnPermissionsDTOS.size() == 1 && !columnPermissionsDTOS.get(0).getId().equalsIgnoreCase(datasetColumnPermissions.getId())) {
|
||||
throw new Exception(Translator.get("i18n_cp_exist"));
|
||||
}
|
||||
}
|
||||
@ -56,7 +55,7 @@ public class ColumnPermissionsController {
|
||||
@PostMapping("/list")
|
||||
public List<DataSetColumnPermissionsDTO> searchPermissions(@RequestBody DataSetColumnPermissionsDTO request) {
|
||||
ColumnPermissionService columnPermissionService = SpringContextUtil.getBean(ColumnPermissionService.class);
|
||||
return columnPermissionService.searchPermissions(request);
|
||||
return columnPermissionService.searchPermissions(request);
|
||||
}
|
||||
|
||||
@DePermission(type = DePermissionType.DATASET, value = "datasetId", level = ResourceAuthLevel.DATASET_LEVEL_MANAGE)
|
||||
@ -70,17 +69,11 @@ public class ColumnPermissionsController {
|
||||
@DePermission(type = DePermissionType.DATASET, level = ResourceAuthLevel.DATASET_LEVEL_MANAGE)
|
||||
@ApiOperation("分页查询")
|
||||
@PostMapping("/pageList/{datasetId}/{goPage}/{pageSize}")
|
||||
public Pager<List<DataSetColumnPermissionsDTO>> rowPermissions(@PathVariable String datasetId, @PathVariable int goPage, @PathVariable int pageSize, @RequestBody XpackGridRequest request) {
|
||||
public Pager<List<DataSetColumnPermissionsDTO>> rowPermissions(@PathVariable String datasetId, @PathVariable int goPage, @PathVariable int pageSize) {
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
ColumnPermissionService columnPermissionService = SpringContextUtil.getBean(ColumnPermissionService.class);
|
||||
List<XpackConditionEntity> conditionEntities = request.getConditions() == null ? new ArrayList<>() : request.getConditions();
|
||||
XpackConditionEntity entity = new XpackConditionEntity();
|
||||
entity.setField("dataset_column_permissions.dataset_id");
|
||||
entity.setOperator("eq");
|
||||
entity.setValue(datasetId);
|
||||
conditionEntities.add(entity);
|
||||
request.setConditions(conditionEntities);
|
||||
return PageUtils.setPageInfo(page, columnPermissionService.queryPermissions(request));
|
||||
|
||||
return PageUtils.setPageInfo(page, columnPermissionService.queryPermissions(datasetId));
|
||||
}
|
||||
|
||||
@DePermission(type = DePermissionType.DATASET, value = "datasetId", level = ResourceAuthLevel.DATASET_LEVEL_MANAGE)
|
||||
|
@ -20,7 +20,6 @@ import io.dataease.commons.utils.Pager;
|
||||
import io.dataease.controller.sys.response.DeptNodeResponse;
|
||||
import io.dataease.dto.SysLogDTO;
|
||||
import io.dataease.listener.util.CacheUtils;
|
||||
import io.dataease.plugins.common.entity.XpackGridRequest;
|
||||
import io.dataease.plugins.config.SpringContextUtil;
|
||||
import io.dataease.plugins.xpack.dept.dto.request.*;
|
||||
import io.dataease.plugins.xpack.dept.dto.response.DeptUserItemDTO;
|
||||
@ -33,7 +32,6 @@ import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.CacheEvict;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
@ -64,17 +62,16 @@ public class XDeptServer {
|
||||
|
||||
@ApiOperation("搜索组织树")
|
||||
@PostMapping("/search")
|
||||
public List<DeptNodeResponse> search(@RequestBody XpackGridRequest request){
|
||||
public List<DeptNodeResponse> search(@RequestBody XpackDeptGridRequest request){
|
||||
DeptXpackService deptService = SpringContextUtil.getBean(DeptXpackService.class);
|
||||
List<XpackSysDept> nodes = deptService.nodesTreeByCondition(request);
|
||||
List<DeptNodeResponse> nodeResponses = nodes.stream().map(node -> {
|
||||
return nodes.stream().map(node -> {
|
||||
DeptNodeResponse deptNodeResponse = BeanUtils.copyBean(new DeptNodeResponse(), node);
|
||||
deptNodeResponse.setHasChildren(node.getSubCount() > 0);
|
||||
deptNodeResponse.setLeaf(node.getSubCount() == 0);
|
||||
deptNodeResponse.setTop(node.getPid() == 0L);
|
||||
return deptNodeResponse;
|
||||
}).collect(Collectors.toList());
|
||||
return nodeResponses;
|
||||
}
|
||||
|
||||
@ApiIgnore
|
||||
|
@ -14,8 +14,6 @@ import io.dataease.commons.utils.*;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.plugins.common.entity.GlobalTaskEntity;
|
||||
import io.dataease.plugins.common.entity.GlobalTaskInstance;
|
||||
import io.dataease.plugins.common.entity.XpackConditionEntity;
|
||||
import io.dataease.plugins.common.entity.XpackGridRequest;
|
||||
import io.dataease.plugins.config.SpringContextUtil;
|
||||
import io.dataease.plugins.xpack.email.dto.request.*;
|
||||
import io.dataease.plugins.xpack.email.dto.response.XpackTaskEntity;
|
||||
@ -62,19 +60,17 @@ public class XEmailTaskServer {
|
||||
@PostMapping("/queryTasks/{goPage}/{pageSize}")
|
||||
@SqlInjectValidator(value = {"create_time"})
|
||||
public Pager<List<XpackTaskGridDTO>> queryTask(@PathVariable int goPage, @PathVariable int pageSize,
|
||||
@RequestBody XpackGridRequest request) {
|
||||
@RequestBody XpackEmailTaskGridRequest request) {
|
||||
EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class);
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
CurrentUserDto user = AuthUtils.getUser();
|
||||
if (!user.getIsAdmin()) {
|
||||
Long userId = user.getUserId();
|
||||
XpackConditionEntity condition = new XpackConditionEntity();
|
||||
condition.setField("u.user_id");
|
||||
condition.setOperator("eq");
|
||||
condition.setValue(userId);
|
||||
List<XpackConditionEntity> conditions = CollectionUtils.isEmpty(request.getConditions()) ? new ArrayList<>() : request.getConditions();
|
||||
conditions.add(condition);
|
||||
request.setConditions(conditions);
|
||||
List<Long> userIdList = request.getUserIdList();
|
||||
if (userIdList == null) {
|
||||
userIdList = new ArrayList<>();
|
||||
}
|
||||
userIdList.add(user.getUserId());
|
||||
request.setUserIdList(userIdList);
|
||||
}
|
||||
|
||||
List<XpackTaskGridDTO> tasks = emailXpackService.taskGrid(request);
|
||||
@ -100,8 +96,7 @@ public class XEmailTaskServer {
|
||||
});
|
||||
}
|
||||
|
||||
Pager<List<XpackTaskGridDTO>> listPager = PageUtils.setPageInfo(page, tasks);
|
||||
return listPager;
|
||||
return PageUtils.setPageInfo(page, tasks);
|
||||
}
|
||||
|
||||
@RequiresPermissions("task-email:edit")
|
||||
@ -110,7 +105,7 @@ public class XEmailTaskServer {
|
||||
EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class);
|
||||
XpackTaskEntity xpackTaskEntity = emailXpackService.taskDetail(taskId);
|
||||
GlobalTaskEntity globalTaskEntity = BeanUtils.copyBean(new GlobalTaskEntity(), xpackTaskEntity);
|
||||
Boolean invalid = false;
|
||||
boolean invalid = false;
|
||||
if (CronUtils.taskExpire(globalTaskEntity.getEndTime())) {
|
||||
globalTaskEntity.setEndTime(null);
|
||||
invalid = true;
|
||||
@ -325,12 +320,11 @@ public class XEmailTaskServer {
|
||||
|
||||
@PostMapping("/queryInstancies/{goPage}/{pageSize}")
|
||||
public Pager<List<XpackTaskInstanceDTO>> instancesGrid(@PathVariable int goPage, @PathVariable int pageSize,
|
||||
@RequestBody XpackGridRequest request) {
|
||||
@RequestBody XpackEmailInstanceGridRequest request) {
|
||||
EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class);
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
List<XpackTaskInstanceDTO> instances = emailXpackService.taskInstanceGrid(request);
|
||||
Pager<List<XpackTaskInstanceDTO>> listPager = PageUtils.setPageInfo(page, instances);
|
||||
return listPager;
|
||||
return PageUtils.setPageInfo(page, instances);
|
||||
}
|
||||
|
||||
@PostMapping("/execInfo/{instanceId}")
|
||||
@ -342,7 +336,7 @@ public class XEmailTaskServer {
|
||||
|
||||
@RequiresPermissions("task-email:read")
|
||||
@PostMapping("/export")
|
||||
public void export(@RequestBody XpackGridRequest request) throws Exception {
|
||||
public void export(@RequestBody XpackEmailInstanceGridRequest request) throws Exception {
|
||||
Pager<List<XpackTaskInstanceDTO>> listPager = instancesGrid(0, 0, request);
|
||||
List<XpackTaskInstanceDTO> instanceDTOS = listPager.getListObject();
|
||||
ExcelSheetModel excelSheetModel = excelSheetModel(instanceDTOS);
|
||||
|
@ -16,7 +16,7 @@ import io.dataease.commons.utils.PageUtils;
|
||||
import io.dataease.commons.utils.Pager;
|
||||
import io.dataease.dto.SysLogDTO;
|
||||
import io.dataease.listener.util.CacheUtils;
|
||||
import io.dataease.plugins.common.entity.XpackGridRequest;
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import io.dataease.plugins.config.SpringContextUtil;
|
||||
import io.dataease.plugins.xpack.role.dto.request.RoleUserMappingRequest;
|
||||
import io.dataease.plugins.xpack.role.dto.request.RoleUserRequest;
|
||||
@ -31,12 +31,14 @@ import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import static io.dataease.commons.constants.SysLogConstants.OPERATE_TYPE;
|
||||
import static io.dataease.commons.constants.SysLogConstants.SOURCE_TYPE;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static io.dataease.commons.constants.SysLogConstants.OPERATE_TYPE;
|
||||
import static io.dataease.commons.constants.SysLogConstants.SOURCE_TYPE;
|
||||
|
||||
@Api(tags = "xpack:角色管理")
|
||||
@RequestMapping("/plugin/role")
|
||||
@RestController
|
||||
@ -49,11 +51,11 @@ public class XRoleServer {
|
||||
@ApiOperation("新增角色")
|
||||
@PostMapping("/create")
|
||||
@DeLog(
|
||||
operatetype = SysLogConstants.OPERATE_TYPE.CREATE,
|
||||
sourcetype = SysLogConstants.SOURCE_TYPE.ROLE,
|
||||
value = "roleId"
|
||||
operatetype = SysLogConstants.OPERATE_TYPE.CREATE,
|
||||
sourcetype = SysLogConstants.SOURCE_TYPE.ROLE,
|
||||
value = "roleId"
|
||||
)
|
||||
public void create(@RequestBody XpackRoleDto role){
|
||||
public void create(@RequestBody XpackRoleDto role) {
|
||||
RoleXpackService roleXpackService = SpringContextUtil.getBean(RoleXpackService.class);
|
||||
roleXpackService.save(role);
|
||||
}
|
||||
@ -63,10 +65,10 @@ public class XRoleServer {
|
||||
@ApiOperation("删除角色")
|
||||
@PostMapping("/delete/{roleId}")
|
||||
@DeLog(
|
||||
operatetype = SysLogConstants.OPERATE_TYPE.DELETE,
|
||||
sourcetype = SysLogConstants.SOURCE_TYPE.ROLE
|
||||
operatetype = SysLogConstants.OPERATE_TYPE.DELETE,
|
||||
sourcetype = SysLogConstants.SOURCE_TYPE.ROLE
|
||||
)
|
||||
public void delete(@PathVariable("roleId") Long roleId){
|
||||
public void delete(@PathVariable("roleId") Long roleId) {
|
||||
RoleXpackService roleXpackService = SpringContextUtil.getBean(RoleXpackService.class);
|
||||
extAuthService.clearRoleResource(roleId);
|
||||
roleXpackService.delete(roleId);
|
||||
@ -77,11 +79,11 @@ public class XRoleServer {
|
||||
@ApiOperation("更新角色")
|
||||
@PostMapping("/update")
|
||||
@DeLog(
|
||||
operatetype = SysLogConstants.OPERATE_TYPE.MODIFY,
|
||||
sourcetype = SysLogConstants.SOURCE_TYPE.ROLE,
|
||||
value = "roleId"
|
||||
operatetype = SysLogConstants.OPERATE_TYPE.MODIFY,
|
||||
sourcetype = SysLogConstants.SOURCE_TYPE.ROLE,
|
||||
value = "roleId"
|
||||
)
|
||||
public void update(@RequestBody XpackRoleDto role){
|
||||
public void update(@RequestBody XpackRoleDto role) {
|
||||
RoleXpackService roleXpackService = SpringContextUtil.getBean(RoleXpackService.class);
|
||||
roleXpackService.update(role);
|
||||
}
|
||||
@ -90,16 +92,15 @@ public class XRoleServer {
|
||||
@ApiOperation("分页查询")
|
||||
@PostMapping("/roleGrid/{goPage}/{pageSize}")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(paramType = "path", name = "goPage", value = "页码", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(paramType = "path", name = "pageSize", value = "页容量", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "request", value = "查询条件", required = true)
|
||||
@ApiImplicitParam(paramType = "path", name = "goPage", value = "页码", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(paramType = "path", name = "pageSize", value = "页容量", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "request", value = "查询条件", required = true)
|
||||
})
|
||||
@SqlInjectValidator(value = {"create_time", "name"})
|
||||
public Pager<List<XpackRoleDto>> roleGrid(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody XpackGridRequest request) {
|
||||
public Pager<List<XpackRoleDto>> roleGrid(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody KeywordRequest request) {
|
||||
RoleXpackService roleXpackService = SpringContextUtil.getBean(RoleXpackService.class);
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
Pager<List<XpackRoleDto>> listPager = PageUtils.setPageInfo(page, roleXpackService.query(request));
|
||||
return listPager;
|
||||
return PageUtils.setPageInfo(page, roleXpackService.query(request));
|
||||
}
|
||||
|
||||
@ApiIgnore
|
||||
@ -112,9 +113,9 @@ public class XRoleServer {
|
||||
@RequiresPermissions({"role:read", "user:read"})
|
||||
@ApiOperation("查询角色下用户")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(paramType = "path", name = "goPage", value = "页码", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(paramType = "path", name = "pageSize", value = "页容量", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "request", value = "查询条件", required = true)
|
||||
@ApiImplicitParam(paramType = "path", name = "goPage", value = "页码", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(paramType = "path", name = "pageSize", value = "页容量", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "request", value = "查询条件", required = true)
|
||||
})
|
||||
@PostMapping("/userGrid/{goPage}/{pageSize}")
|
||||
public Pager<List<RoleUserItem>> userGrid(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody RoleUserRequest request) {
|
||||
@ -134,7 +135,7 @@ public class XRoleServer {
|
||||
})
|
||||
@PostMapping("/userGrid/{datasetId}")
|
||||
public Pager<List<RoleUserItem>> userGrids(@PathVariable String datasetId, @RequestBody RoleUserRequest request) {
|
||||
return userGrid(0,0, request);
|
||||
return userGrid(0, 0, request);
|
||||
}
|
||||
|
||||
@RequiresPermissions({"role:edit", "user:edit"})
|
||||
@ -146,7 +147,7 @@ public class XRoleServer {
|
||||
request.getUserIds().forEach(userId -> {
|
||||
SysLogDTO sysLogDTO = DeLogUtils.buildBindRoleUserLog(request.getRoleId(), userId, OPERATE_TYPE.BIND, SOURCE_TYPE.ROLE);
|
||||
DeLogUtils.save(sysLogDTO);
|
||||
CacheUtils.remove( AuthConstants.USER_CACHE_NAME, "user" + userId);
|
||||
CacheUtils.remove(AuthConstants.USER_CACHE_NAME, "user" + userId);
|
||||
});
|
||||
}
|
||||
roleXpackService.addUser(request);
|
||||
@ -162,7 +163,7 @@ public class XRoleServer {
|
||||
request.getUserIds().forEach(userId -> {
|
||||
SysLogDTO sysLogDTO = DeLogUtils.buildBindRoleUserLog(request.getRoleId(), userId, OPERATE_TYPE.UNBIND, SOURCE_TYPE.ROLE);
|
||||
DeLogUtils.save(sysLogDTO);
|
||||
CacheUtils.remove( AuthConstants.USER_CACHE_NAME, "user" + userId);
|
||||
CacheUtils.remove(AuthConstants.USER_CACHE_NAME, "user" + userId);
|
||||
});
|
||||
}
|
||||
roleXpackService.batchDelUser(request);
|
||||
|
@ -19,13 +19,12 @@ import io.dataease.commons.constants.*;
|
||||
import io.dataease.commons.exception.DEException;
|
||||
import io.dataease.commons.utils.*;
|
||||
import io.dataease.controller.ResultHolder;
|
||||
import io.dataease.controller.dataset.request.DataSetTaskInstanceGridRequest;
|
||||
import io.dataease.controller.request.dataset.DataSetExportRequest;
|
||||
import io.dataease.controller.request.dataset.DataSetGroupRequest;
|
||||
import io.dataease.controller.request.dataset.DataSetTableRequest;
|
||||
import io.dataease.controller.request.dataset.DataSetTaskRequest;
|
||||
import io.dataease.controller.response.DataSetDetail;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.controller.sys.base.ConditionEntity;
|
||||
import io.dataease.dto.SysLogDTO;
|
||||
import io.dataease.dto.dataset.*;
|
||||
import io.dataease.dto.dataset.union.UnionDTO;
|
||||
@ -794,14 +793,9 @@ public class DataSetTableService {
|
||||
logger.error(e.getMessage());
|
||||
DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage());
|
||||
}
|
||||
BaseGridRequest request = new BaseGridRequest();
|
||||
ConditionEntity entity2 = new ConditionEntity();
|
||||
entity2.setField("dataset_table_task_log.table_id");
|
||||
entity2.setOperator("eq");
|
||||
entity2.setValue(dataSetTableRequest.getId());
|
||||
List<ConditionEntity> conditionEntities = new ArrayList<>();
|
||||
conditionEntities.add(entity2);
|
||||
request.setConditions(conditionEntities);
|
||||
DataSetTaskInstanceGridRequest request = new DataSetTaskInstanceGridRequest();
|
||||
request.setTableId(List.of(dataSetTableRequest.getId()));
|
||||
|
||||
List<DataSetTaskLogDTO> dataSetTaskLogDTOS = dataSetTableTaskLogService.listTaskLog(request, "excel");
|
||||
if (CollectionUtils.isNotEmpty(dataSetTaskLogDTOS)) {
|
||||
dataSetTaskLogDTOS.get(0).getStatus().equalsIgnoreCase(JobStatus.Underway.name());
|
||||
@ -2445,7 +2439,8 @@ public class DataSetTableService {
|
||||
fields.add(tableFiled);
|
||||
}
|
||||
String json = JSON.toJSONString(noModelDataListener.getData());
|
||||
List<List<String>> data = JSON.parseObject(json, new TypeReference< List<List<String>>>(){});
|
||||
List<List<String>> data = JSON.parseObject(json, new TypeReference<List<List<String>>>() {
|
||||
});
|
||||
data = (isPreview && noModelDataListener.getData().size() > 1000 ? new ArrayList<>(data.subList(0, 1000)) : data);
|
||||
if (isPreview) {
|
||||
for (List<String> datum : data) {
|
||||
@ -3103,51 +3098,52 @@ public class DataSetTableService {
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
public class NoModelDataListener extends AnalysisEventListener<Map<Integer, String>> {
|
||||
private List<List<String>> data = new ArrayList<>();
|
||||
private List<String> header = new ArrayList<>();
|
||||
@Data
|
||||
public class NoModelDataListener extends AnalysisEventListener<Map<Integer, String>> {
|
||||
private List<List<String>> data = new ArrayList<>();
|
||||
private List<String> header = new ArrayList<>();
|
||||
|
||||
|
||||
@Override
|
||||
public void invokeHead(Map<Integer, CellData> headMap, AnalysisContext context) {
|
||||
super.invokeHead(headMap, context);
|
||||
for (Integer key : headMap.keySet()) {
|
||||
CellData cellData = headMap.get(key);
|
||||
String value = cellData.getStringValue();
|
||||
if (StringUtils.isEmpty(value)) {
|
||||
value = "none_" + key;
|
||||
}
|
||||
header.add(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invoke(Map<Integer, String> dataMap, AnalysisContext context) {
|
||||
List<String> line = new ArrayList<>();
|
||||
for (Integer key : dataMap.keySet()) {
|
||||
String value = dataMap.get(key);
|
||||
if (StringUtils.isEmpty(value)) {
|
||||
value = "";
|
||||
}
|
||||
line.add(value);
|
||||
};
|
||||
int size = line.size();
|
||||
if(size < header.size()){
|
||||
for (int i = 0; i < header.size() - size; i++) {
|
||||
line.add("");
|
||||
@Override
|
||||
public void invokeHead(Map<Integer, CellData> headMap, AnalysisContext context) {
|
||||
super.invokeHead(headMap, context);
|
||||
for (Integer key : headMap.keySet()) {
|
||||
CellData cellData = headMap.get(key);
|
||||
String value = cellData.getStringValue();
|
||||
if (StringUtils.isEmpty(value)) {
|
||||
value = "none_" + key;
|
||||
}
|
||||
header.add(value);
|
||||
}
|
||||
}
|
||||
data.add(line);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
|
||||
}
|
||||
@Override
|
||||
public void invoke(Map<Integer, String> dataMap, AnalysisContext context) {
|
||||
List<String> line = new ArrayList<>();
|
||||
for (Integer key : dataMap.keySet()) {
|
||||
String value = dataMap.get(key);
|
||||
if (StringUtils.isEmpty(value)) {
|
||||
value = "";
|
||||
}
|
||||
line.add(value);
|
||||
}
|
||||
;
|
||||
int size = line.size();
|
||||
if (size < header.size()) {
|
||||
for (int i = 0; i < header.size() - size; i++) {
|
||||
line.add("");
|
||||
}
|
||||
}
|
||||
data.add(line);
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
data.clear();
|
||||
header.clear();
|
||||
@Override
|
||||
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
data.clear();
|
||||
header.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,20 +1,16 @@
|
||||
package io.dataease.service.dataset;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import io.dataease.commons.constants.SysLogConstants;
|
||||
import io.dataease.commons.utils.ServletUtils;
|
||||
import io.dataease.exception.DataEaseException;
|
||||
import io.dataease.ext.ExtDataSetTaskMapper;
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.commons.utils.AuthUtils;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.controller.sys.base.ConditionEntity;
|
||||
import io.dataease.commons.utils.ServletUtils;
|
||||
import io.dataease.controller.dataset.request.DataSetTaskInstanceGridRequest;
|
||||
import io.dataease.dto.dataset.DataSetTaskDTO;
|
||||
import io.dataease.dto.dataset.DataSetTaskLogDTO;
|
||||
import io.dataease.exception.DataEaseException;
|
||||
import io.dataease.ext.ExtDataSetTaskMapper;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.plugins.common.base.domain.DatasetTableTaskLog;
|
||||
import io.dataease.plugins.common.base.domain.DatasetTableTaskLogExample;
|
||||
import io.dataease.plugins.common.base.domain.SysLogWithBLOBs;
|
||||
import io.dataease.plugins.common.base.mapper.DatasetTableTaskLogMapper;
|
||||
import io.dataease.plugins.common.base.mapper.DatasetTableTaskMapper;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
@ -33,7 +29,6 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.OutputStream;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
@ -53,7 +48,7 @@ public class DataSetTableTaskLogService {
|
||||
private DatasetTableTaskMapper datasetTableTaskMapper;
|
||||
|
||||
public DatasetTableTaskLog save(DatasetTableTaskLog datasetTableTaskLog, Boolean hasTask) {
|
||||
if(hasTask && datasetTableTaskMapper.selectByPrimaryKey(datasetTableTaskLog.getTaskId()) == null){
|
||||
if (hasTask && datasetTableTaskMapper.selectByPrimaryKey(datasetTableTaskLog.getTaskId()) == null) {
|
||||
return datasetTableTaskLog;
|
||||
}
|
||||
if (StringUtils.isEmpty(datasetTableTaskLog.getId())) {
|
||||
@ -70,7 +65,7 @@ public class DataSetTableTaskLogService {
|
||||
datasetTableTaskLogMapper.deleteByPrimaryKey(id);
|
||||
}
|
||||
|
||||
public void exportExcel(BaseGridRequest request) throws Exception {
|
||||
public void exportExcel(DataSetTaskInstanceGridRequest request) throws Exception {
|
||||
HttpServletResponse response = ServletUtils.response();
|
||||
OutputStream outputStream = response.getOutputStream();
|
||||
try {
|
||||
@ -81,7 +76,7 @@ public class DataSetTableTaskLogService {
|
||||
row[1] = item.getDatasetName();
|
||||
row[2] = DateUtil.formatDateTime(new Date(item.getStartTime()));
|
||||
row[3] = item.getEndTime() != null ? DateUtil.formatDateTime(new Date(item.getEndTime())) : "";
|
||||
row[4] = Translator.get("I18N_TASK_LOG_" + item.getStatus().toUpperCase()) ;
|
||||
row[4] = Translator.get("I18N_TASK_LOG_" + item.getStatus().toUpperCase());
|
||||
return row;
|
||||
}).collect(Collectors.toList());
|
||||
String[] headArr = {Translator.get("I18N_TASK_NAME"), Translator.get("I18N_DATASET"), Translator.get("I18N_START_TIME"), Translator.get("I18N_END_TIME"), Translator.get("I18N_STATUS")};
|
||||
@ -127,7 +122,7 @@ public class DataSetTableTaskLogService {
|
||||
//文件名称
|
||||
String fileName = "DataEase " + Translator.get("I18N_SYNC_LOG");
|
||||
String encodeFileName = URLEncoder.encode(fileName, "UTF-8");
|
||||
response.setHeader("Content-disposition", "attachment;filename="+encodeFileName+".xls");
|
||||
response.setHeader("Content-disposition", "attachment;filename=" + encodeFileName + ".xls");
|
||||
wb.write(outputStream);
|
||||
outputStream.flush();
|
||||
outputStream.close();
|
||||
@ -137,48 +132,22 @@ public class DataSetTableTaskLogService {
|
||||
}
|
||||
|
||||
|
||||
public List<DataSetTaskLogDTO> listTaskLog(BaseGridRequest request, String type) {
|
||||
List<ConditionEntity> conditionEntities = request.getConditions();
|
||||
if(!type.equalsIgnoreCase("excel")){
|
||||
ConditionEntity entity = new ConditionEntity();
|
||||
entity.setField("task_id");
|
||||
entity.setOperator("not in");
|
||||
List<String>status = new ArrayList<>();status.add("初始导入");status.add("替换");status.add("追加");
|
||||
entity.setValue(status);
|
||||
if(CollectionUtils.isEmpty(conditionEntities)){
|
||||
conditionEntities = new ArrayList<>();
|
||||
}
|
||||
conditionEntities.add(entity);
|
||||
public List<DataSetTaskLogDTO> listTaskLog(DataSetTaskInstanceGridRequest request, String type) {
|
||||
if (!type.equalsIgnoreCase("excel")) {
|
||||
request.setExcludedIdList(List.of("初始导入", "替换", "追加"));
|
||||
}
|
||||
|
||||
ConditionEntity entity2 = new ConditionEntity();
|
||||
entity2.setField("1");
|
||||
entity2.setOperator("eq");
|
||||
entity2.setValue("1");
|
||||
conditionEntities.add(entity2);
|
||||
conditionEntities = conditionEntities.stream().map(conditionEntity -> {
|
||||
if(conditionEntity.getField().equals("dataset_table_task.last_exec_status")){
|
||||
conditionEntity.setField("dataset_table_task_log.status");
|
||||
}
|
||||
return conditionEntity;
|
||||
}).collect(Collectors.toList());
|
||||
request.setConditions(conditionEntities);
|
||||
|
||||
GridExample gridExample = request.convertExample();
|
||||
gridExample.setExtendCondition(AuthUtils.getUser().getUserId().toString());
|
||||
|
||||
if(AuthUtils.getUser().getIsAdmin()){
|
||||
List<DataSetTaskLogDTO> dataSetTaskLogDTOS = extDataSetTaskMapper.listTaskLog(gridExample);
|
||||
if (AuthUtils.getUser().getIsAdmin()) {
|
||||
List<DataSetTaskLogDTO> dataSetTaskLogDTOS = extDataSetTaskMapper.listTaskLog(request);
|
||||
dataSetTaskLogDTOS.forEach(dataSetTaskLogDTO -> {
|
||||
if(StringUtils.isEmpty(dataSetTaskLogDTO.getName())){
|
||||
if (StringUtils.isEmpty(dataSetTaskLogDTO.getName())) {
|
||||
dataSetTaskLogDTO.setName(dataSetTaskLogDTO.getTaskId());
|
||||
}
|
||||
});
|
||||
return dataSetTaskLogDTOS;
|
||||
}else {
|
||||
List<DataSetTaskLogDTO> dataSetTaskLogDTOS = extDataSetTaskMapper.listUserTaskLog(gridExample);
|
||||
} else {
|
||||
List<DataSetTaskLogDTO> dataSetTaskLogDTOS = extDataSetTaskMapper.listUserTaskLog(request);
|
||||
dataSetTaskLogDTOS.forEach(dataSetTaskLogDTO -> {
|
||||
if(StringUtils.isEmpty(dataSetTaskLogDTO.getName())){
|
||||
if (StringUtils.isEmpty(dataSetTaskLogDTO.getName())) {
|
||||
dataSetTaskLogDTO.setName(dataSetTaskLogDTO.getTaskId());
|
||||
}
|
||||
});
|
||||
@ -187,38 +156,38 @@ public class DataSetTableTaskLogService {
|
||||
|
||||
}
|
||||
|
||||
public void deleteByTaskId(String taskId){
|
||||
public void deleteByTaskId(String taskId) {
|
||||
DatasetTableTaskLogExample datasetTableTaskLogExample = new DatasetTableTaskLogExample();
|
||||
DatasetTableTaskLogExample.Criteria criteria = datasetTableTaskLogExample.createCriteria();
|
||||
criteria.andTaskIdEqualTo(taskId);
|
||||
datasetTableTaskLogMapper.deleteByExample(datasetTableTaskLogExample);
|
||||
}
|
||||
|
||||
public List<DatasetTableTaskLog> getByTableId(String datasetId){
|
||||
public List<DatasetTableTaskLog> getByTableId(String datasetId) {
|
||||
DatasetTableTaskLogExample datasetTableTaskLogExample = new DatasetTableTaskLogExample();
|
||||
DatasetTableTaskLogExample.Criteria criteria = datasetTableTaskLogExample.createCriteria();
|
||||
criteria.andTableIdEqualTo(datasetId);
|
||||
return datasetTableTaskLogMapper.selectByExampleWithBLOBs(datasetTableTaskLogExample);
|
||||
}
|
||||
|
||||
public List<DatasetTableTaskLog> select(DatasetTableTaskLog datasetTableTaskLog){
|
||||
public List<DatasetTableTaskLog> select(DatasetTableTaskLog datasetTableTaskLog) {
|
||||
DatasetTableTaskLogExample example = getDatasetTableTaskLogExample(datasetTableTaskLog);
|
||||
example.setOrderByClause("create_time desc");
|
||||
return datasetTableTaskLogMapper.selectByExampleWithBLOBs(example);
|
||||
}
|
||||
|
||||
public DataSetTaskDTO lastExecStatus(DataSetTaskDTO dataSetTaskDTO){
|
||||
public DataSetTaskDTO lastExecStatus(DataSetTaskDTO dataSetTaskDTO) {
|
||||
DatasetTableTaskLogExample example = new DatasetTableTaskLogExample();
|
||||
DatasetTableTaskLogExample.Criteria criteria = example.createCriteria();
|
||||
if(StringUtils.isNotEmpty(dataSetTaskDTO.getTableId())){
|
||||
if (StringUtils.isNotEmpty(dataSetTaskDTO.getTableId())) {
|
||||
criteria.andTableIdEqualTo(dataSetTaskDTO.getTableId());
|
||||
}
|
||||
if(StringUtils.isNotEmpty(dataSetTaskDTO.getId())){
|
||||
if (StringUtils.isNotEmpty(dataSetTaskDTO.getId())) {
|
||||
criteria.andTaskIdEqualTo(dataSetTaskDTO.getId());
|
||||
}
|
||||
example.setOrderByClause("create_time desc");
|
||||
List<DatasetTableTaskLog> datasetTableTaskLogs = datasetTableTaskLogMapper.selectByExampleWithBLOBs(example);
|
||||
if(CollectionUtils.isNotEmpty(datasetTableTaskLogs)){
|
||||
List<DatasetTableTaskLog> datasetTableTaskLogs = datasetTableTaskLogMapper.selectByExampleWithBLOBs(example);
|
||||
if (CollectionUtils.isNotEmpty(datasetTableTaskLogs)) {
|
||||
dataSetTaskDTO.setLastExecStatus(datasetTableTaskLogs.get(0).getStatus());
|
||||
dataSetTaskDTO.setLastExecTime(datasetTableTaskLogs.get(0).getCreateTime());
|
||||
dataSetTaskDTO.setMsg(datasetTableTaskLogs.get(0).getInfo());
|
||||
@ -229,13 +198,13 @@ public class DataSetTableTaskLogService {
|
||||
private DatasetTableTaskLogExample getDatasetTableTaskLogExample(DatasetTableTaskLog datasetTableTaskLog) {
|
||||
DatasetTableTaskLogExample example = new DatasetTableTaskLogExample();
|
||||
DatasetTableTaskLogExample.Criteria criteria = example.createCriteria();
|
||||
if(StringUtils.isNotEmpty(datasetTableTaskLog.getStatus())){
|
||||
if (StringUtils.isNotEmpty(datasetTableTaskLog.getStatus())) {
|
||||
criteria.andStatusEqualTo(datasetTableTaskLog.getStatus());
|
||||
}
|
||||
if(StringUtils.isNotEmpty(datasetTableTaskLog.getTableId())){
|
||||
if (StringUtils.isNotEmpty(datasetTableTaskLog.getTableId())) {
|
||||
criteria.andTableIdEqualTo(datasetTableTaskLog.getTableId());
|
||||
}
|
||||
if(StringUtils.isNotEmpty(datasetTableTaskLog.getTaskId())){
|
||||
if (StringUtils.isNotEmpty(datasetTableTaskLog.getTaskId())) {
|
||||
criteria.andTaskIdEqualTo(datasetTableTaskLog.getTaskId());
|
||||
}
|
||||
return example;
|
||||
|
@ -1,17 +1,15 @@
|
||||
package io.dataease.service.dataset;
|
||||
|
||||
import io.dataease.ext.ExtDataSetTaskMapper;
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.commons.constants.JobStatus;
|
||||
import io.dataease.commons.constants.ScheduleType;
|
||||
import io.dataease.commons.constants.TaskStatus;
|
||||
import io.dataease.commons.constants.TriggerType;
|
||||
import io.dataease.commons.utils.AuthUtils;
|
||||
import io.dataease.controller.dataset.request.DatasetTaskGridRequest;
|
||||
import io.dataease.controller.request.dataset.DataSetTaskRequest;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.controller.sys.base.ConditionEntity;
|
||||
import io.dataease.dto.dataset.DataSetTaskDTO;
|
||||
import io.dataease.exception.DataEaseException;
|
||||
import io.dataease.ext.ExtDataSetTaskMapper;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.plugins.common.base.domain.*;
|
||||
import io.dataease.plugins.common.base.mapper.DatasetTableMapper;
|
||||
@ -24,10 +22,10 @@ import org.quartz.CronExpression;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @Author gin
|
||||
@ -152,7 +150,7 @@ public class DataSetTableTaskService {
|
||||
|
||||
@Transactional
|
||||
public void batchDelete(List<String> ids) {
|
||||
if (CollectionUtils.isNotEmpty(ids)){
|
||||
if (CollectionUtils.isNotEmpty(ids)) {
|
||||
for (int i = 0; i < ids.size(); i++) {
|
||||
String id = ids.get(i);
|
||||
DatasetTableTask datasetTableTask = datasetTableTaskMapper.selectByPrimaryKey(id);
|
||||
@ -195,12 +193,9 @@ public class DataSetTableTaskService {
|
||||
|
||||
public void checkTaskIsStopped(final DatasetTableTask datasetTableTask) {
|
||||
if (StringUtils.isNotEmpty(datasetTableTask.getEnd()) && datasetTableTask.getEnd().equalsIgnoreCase("1")) {
|
||||
BaseGridRequest request = new BaseGridRequest();
|
||||
ConditionEntity conditionEntity = new ConditionEntity();
|
||||
conditionEntity.setField("dataset_table_task.id");
|
||||
conditionEntity.setOperator("eq");
|
||||
conditionEntity.setValue(datasetTableTask.getId());
|
||||
request.setConditions(Collections.singletonList(conditionEntity));
|
||||
DatasetTaskGridRequest request = new DatasetTaskGridRequest();
|
||||
request.setId(datasetTableTask.getId());
|
||||
|
||||
List<DataSetTaskDTO> dataSetTaskDTOS = taskWithTriggers(request);
|
||||
if (CollectionUtils.isEmpty(dataSetTaskDTOS)) {
|
||||
return;
|
||||
@ -231,12 +226,8 @@ public class DataSetTableTaskService {
|
||||
} else {
|
||||
recore.setLastExecStatus(lastExecStatus.name());
|
||||
if (StringUtils.isNotEmpty(datasetTableTask.getEnd()) && datasetTableTask.getEnd().equalsIgnoreCase("1")) {
|
||||
BaseGridRequest request = new BaseGridRequest();
|
||||
ConditionEntity conditionEntity = new ConditionEntity();
|
||||
conditionEntity.setField("dataset_table_task.id");
|
||||
conditionEntity.setOperator("eq");
|
||||
conditionEntity.setValue(datasetTableTask.getId());
|
||||
request.setConditions(Collections.singletonList(conditionEntity));
|
||||
DatasetTaskGridRequest request = new DatasetTaskGridRequest();
|
||||
request.setId(datasetTableTask.getId());
|
||||
List<DataSetTaskDTO> dataSetTaskDTOS = taskWithTriggers(request);
|
||||
if (CollectionUtils.isEmpty(dataSetTaskDTOS)) {
|
||||
return;
|
||||
@ -264,40 +255,26 @@ public class DataSetTableTaskService {
|
||||
}
|
||||
|
||||
public List<DataSetTaskDTO> list(DatasetTableTask datasetTableTask) {
|
||||
BaseGridRequest request = new BaseGridRequest();
|
||||
List<ConditionEntity> conditionEntities = new ArrayList<>();
|
||||
if(datasetTableTask != null && StringUtils.isNotEmpty(datasetTableTask.getTableId())){
|
||||
ConditionEntity entity = new ConditionEntity();
|
||||
entity.setField("table_id");
|
||||
entity.setOperator("eq");
|
||||
entity.setValue(datasetTableTask.getTableId());
|
||||
conditionEntities.add(entity);
|
||||
DatasetTaskGridRequest request = new DatasetTaskGridRequest();
|
||||
if (datasetTableTask != null && StringUtils.isNotEmpty(datasetTableTask.getTableId())) {
|
||||
request.setTableId(List.of(datasetTableTask.getTableId()));
|
||||
}
|
||||
request.setConditions(conditionEntities);
|
||||
GridExample gridExample = request.convertExample();
|
||||
return extDataSetTaskMapper.taskList(gridExample);
|
||||
return extDataSetTaskMapper.taskList(request);
|
||||
}
|
||||
|
||||
public List<DataSetTaskDTO> taskList4User(BaseGridRequest request) {
|
||||
List<ConditionEntity> conditionEntities = request.getConditions() == null ? new ArrayList<>() : new ArrayList(request.getConditions());
|
||||
ConditionEntity entity = new ConditionEntity();
|
||||
entity.setField("1");
|
||||
entity.setOperator("eq");
|
||||
entity.setValue("1");
|
||||
conditionEntities.add(entity);
|
||||
request.setConditions(conditionEntities);
|
||||
GridExample gridExample = request.convertExample();
|
||||
gridExample.setExtendCondition(AuthUtils.getUser().getUserId().toString());
|
||||
public List<DataSetTaskDTO> taskList4User(DatasetTaskGridRequest request) {
|
||||
request.setUserId(null);
|
||||
if (AuthUtils.getUser().getIsAdmin()) {
|
||||
return extDataSetTaskMapper.taskList(gridExample);
|
||||
return extDataSetTaskMapper.taskList(request);
|
||||
} else {
|
||||
return extDataSetTaskMapper.userTaskList(gridExample);
|
||||
request.setUserId(AuthUtils.getUser().getUserId());
|
||||
return extDataSetTaskMapper.userTaskList(request);
|
||||
}
|
||||
}
|
||||
|
||||
public List<DataSetTaskDTO> taskWithTriggers(BaseGridRequest request) {
|
||||
GridExample gridExample = request.convertExample();
|
||||
return extDataSetTaskMapper.taskWithTriggers(gridExample);
|
||||
public List<DataSetTaskDTO> taskWithTriggers(DatasetTaskGridRequest request) {
|
||||
request.setUserId(AuthUtils.getUser().getUserId());
|
||||
return extDataSetTaskMapper.taskWithTriggers(request);
|
||||
}
|
||||
|
||||
private void checkName(DataSetTaskRequest dataSetTaskRequest) {
|
||||
@ -335,7 +312,7 @@ public class DataSetTableTaskService {
|
||||
|
||||
public void execTask(DatasetTableTask datasetTableTask) throws Exception {
|
||||
execNow(datasetTableTask);
|
||||
if(datasetTableTask.getRate().equalsIgnoreCase(ScheduleType.SIMPLE.toString())){
|
||||
if (datasetTableTask.getRate().equalsIgnoreCase(ScheduleType.SIMPLE.toString())) {
|
||||
scheduleService.addSchedule(datasetTableTask);
|
||||
}
|
||||
if (!datasetTableTask.getRate().equalsIgnoreCase(ScheduleType.SIMPLE.toString())) {
|
||||
@ -344,16 +321,9 @@ public class DataSetTableTaskService {
|
||||
}
|
||||
|
||||
public DataSetTaskDTO detail(String id) {
|
||||
BaseGridRequest request = new BaseGridRequest();
|
||||
List<ConditionEntity> conditionEntities = request.getConditions() == null ? new ArrayList<>() : new ArrayList(request.getConditions());
|
||||
ConditionEntity entity = new ConditionEntity();
|
||||
entity.setField("dataset_table_task.id");
|
||||
entity.setOperator("eq");
|
||||
entity.setValue(id);
|
||||
conditionEntities.add(entity);
|
||||
request.setConditions(conditionEntities);
|
||||
GridExample gridExample = request.convertExample();
|
||||
List<DataSetTaskDTO> dataSetTaskDTOS = extDataSetTaskMapper.taskList(gridExample);
|
||||
DatasetTaskGridRequest request = new DatasetTaskGridRequest();
|
||||
request.setId(id);
|
||||
List<DataSetTaskDTO> dataSetTaskDTOS = extDataSetTaskMapper.taskList(request);
|
||||
if (CollectionUtils.isNotEmpty(dataSetTaskDTOS)) {
|
||||
return dataSetTaskDTOS.get(0);
|
||||
}
|
||||
|
@ -13,7 +13,6 @@ import io.dataease.controller.request.panel.PanelShareFineDto;
|
||||
import io.dataease.controller.request.panel.PanelShareRemoveRequest;
|
||||
import io.dataease.controller.request.panel.PanelShareRequest;
|
||||
import io.dataease.controller.request.panel.PanelShareSearchRequest;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.dto.panel.PanelShareDto;
|
||||
import io.dataease.dto.panel.PanelShareOutDTO;
|
||||
import io.dataease.dto.panel.PanelSharePo;
|
||||
@ -338,7 +337,7 @@ public class ShareService {
|
||||
return extPanelShareMapper.queryOut(username);
|
||||
}
|
||||
|
||||
public List<PanelShareDto> queryTree(BaseGridRequest request) {
|
||||
public List<PanelShareDto> queryTree() {
|
||||
CurrentUserDto user = AuthUtils.getUser();
|
||||
Long userId = user.getUserId();
|
||||
Long deptId = user.getDeptId();
|
||||
|
@ -1,18 +1,14 @@
|
||||
package io.dataease.service.panel;
|
||||
|
||||
import io.dataease.ext.ExtPanelStoreMapper;
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.commons.utils.AuthUtils;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.controller.sys.base.ConditionEntity;
|
||||
import io.dataease.dto.panel.PanelStoreDto;
|
||||
import io.dataease.ext.ExtPanelStoreMapper;
|
||||
import io.dataease.plugins.common.base.domain.PanelStore;
|
||||
import io.dataease.plugins.common.base.domain.PanelStoreExample;
|
||||
import io.dataease.plugins.common.base.mapper.PanelStoreMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@ -40,17 +36,9 @@ public class StoreService {
|
||||
panelStoreMapper.deleteByExample(panelStoreExample);
|
||||
}
|
||||
|
||||
public List<PanelStoreDto> query(BaseGridRequest request) {
|
||||
public List<PanelStoreDto> query() {
|
||||
Long userId = AuthUtils.getUser().getUserId();
|
||||
ConditionEntity condition = new ConditionEntity();
|
||||
condition.setField("s.user_id");
|
||||
condition.setOperator("eq");
|
||||
condition.setValue(userId);
|
||||
request.setConditions(new ArrayList<ConditionEntity>() {{
|
||||
add(condition);
|
||||
}});
|
||||
GridExample example = request.convertExample();
|
||||
return extPanelStoreMapper.query(example);
|
||||
return extPanelStoreMapper.query(userId);
|
||||
}
|
||||
|
||||
public Long count(String panelId) {
|
||||
|
@ -1,12 +0,0 @@
|
||||
package io.dataease.service.panel.applog;
|
||||
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class AppLogQueryParam extends GridExample {
|
||||
private String userId;
|
||||
|
||||
}
|
@ -1,12 +1,9 @@
|
||||
package io.dataease.service.panel.applog;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import io.dataease.commons.utils.AuthUtils;
|
||||
import io.dataease.controller.sys.request.KeyGridRequest;
|
||||
import io.dataease.dto.SysLogDTO;
|
||||
import io.dataease.controller.request.panel.AppLogGridRequest;
|
||||
import io.dataease.dto.appTemplateMarket.AppLogGridDTO;
|
||||
import io.dataease.ext.ExtAppLogMapper;
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.plugins.common.base.mapper.PanelAppTemplateLogMapper;
|
||||
import io.dataease.service.dataset.DataSetGroupService;
|
||||
import io.dataease.service.datasource.DatasourceService;
|
||||
@ -21,7 +18,6 @@ import java.util.List;
|
||||
@Service
|
||||
public class AppLogService {
|
||||
|
||||
private Gson gson = new Gson();
|
||||
@Resource
|
||||
private PanelAppTemplateLogMapper appLogMapper;
|
||||
@Resource
|
||||
@ -34,17 +30,9 @@ public class AppLogService {
|
||||
private DatasourceService datasourceService;
|
||||
|
||||
|
||||
public List<AppLogGridDTO> query(KeyGridRequest request) {
|
||||
GridExample gridExample = request.convertExample();
|
||||
gridExample.setExtendCondition(request.getKeyWord());
|
||||
AppLogQueryParam logQueryParam = gson.fromJson(gson.toJson(gridExample), AppLogQueryParam.class);
|
||||
logQueryParam.setUserId(String.valueOf(AuthUtils.getUser().getUserId()));
|
||||
List<AppLogGridDTO> voLogs = extAppLogMapper.query(logQueryParam);
|
||||
return voLogs;
|
||||
}
|
||||
|
||||
public void saveLog(SysLogDTO sysLogDTO) {
|
||||
|
||||
public List<AppLogGridDTO> query(AppLogGridRequest request) {
|
||||
request.setUserId(AuthUtils.getUser().getUserId());
|
||||
return extAppLogMapper.query(request);
|
||||
}
|
||||
|
||||
|
||||
|
@ -24,6 +24,8 @@ import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Author: wangjiahao
|
||||
@ -65,9 +67,12 @@ public class StaticResourceService {
|
||||
LogUtil.error(e.getMessage(), e);
|
||||
return false;
|
||||
}
|
||||
if (image == null || image.getWidth() <= 0 || image.getHeight() <= 0) {
|
||||
Pattern pattern = Pattern.compile("\\.(png|jpg|jpeg|gif)$");
|
||||
Matcher matcher = pattern.matcher(file.getOriginalFilename().toLowerCase());
|
||||
if (image == null || image.getWidth() <= 0 || image.getHeight() <= 0 || !matcher.find()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1,23 +1,25 @@
|
||||
package io.dataease.service.sys;
|
||||
|
||||
import io.dataease.ext.*;
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.commons.utils.BeanUtils;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.controller.sys.request.DeptCreateRequest;
|
||||
import io.dataease.controller.sys.request.DeptDeleteRequest;
|
||||
import io.dataease.controller.sys.request.DeptStatusRequest;
|
||||
import io.dataease.controller.sys.request.SimpleTreeNode;
|
||||
import io.dataease.controller.sys.response.DeptTreeNode;
|
||||
import io.dataease.ext.ExtDeptMapper;
|
||||
import io.dataease.plugins.common.base.domain.SysDept;
|
||||
import io.dataease.plugins.common.base.domain.SysDeptExample;
|
||||
import io.dataease.plugins.common.base.mapper.SysDeptMapper;
|
||||
import io.dataease.plugins.xpack.dept.dto.request.XpackDeptGridRequest;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import java.util.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@ -31,12 +33,12 @@ public class DeptService {
|
||||
@Autowired(required = false)
|
||||
private ExtDeptMapper extDeptMapper;
|
||||
|
||||
public List<SysDept> nodesByPid(Long pid){
|
||||
public List<SysDept> nodesByPid(Long pid) {
|
||||
SysDeptExample example = new SysDeptExample();
|
||||
SysDeptExample.Criteria criteria = example.createCriteria();
|
||||
if (ObjectUtils.isEmpty(pid)){
|
||||
if (ObjectUtils.isEmpty(pid)) {
|
||||
criteria.andPidEqualTo(0L);
|
||||
}else {
|
||||
} else {
|
||||
criteria.andPidEqualTo(pid);
|
||||
}
|
||||
example.setOrderByClause("dept_sort");
|
||||
@ -44,10 +46,10 @@ public class DeptService {
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public boolean add(DeptCreateRequest deptCreateRequest){
|
||||
public boolean add(DeptCreateRequest deptCreateRequest) {
|
||||
SysDept sysDept = BeanUtils.copyBean(new SysDept(), deptCreateRequest);
|
||||
|
||||
if (deptCreateRequest.isTop()){
|
||||
if (deptCreateRequest.isTop()) {
|
||||
sysDept.setPid(DEPT_ROOT_PID);
|
||||
}
|
||||
long now = System.currentTimeMillis();
|
||||
@ -59,24 +61,24 @@ public class DeptService {
|
||||
try {
|
||||
int insert = sysDeptMapper.insert(sysDept);
|
||||
Long pid;
|
||||
if (!(pid = sysDept.getPid()).equals(DEPT_ROOT_PID)){
|
||||
if (!(pid = sysDept.getPid()).equals(DEPT_ROOT_PID)) {
|
||||
//这里需要更新上级节点SubCount
|
||||
extDeptMapper.incrementalSubcount(pid);
|
||||
}
|
||||
if (insert == 1){
|
||||
if (insert == 1) {
|
||||
return true;
|
||||
}
|
||||
}catch (Exception e){
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public int batchDelete(List<DeptDeleteRequest> requests){
|
||||
public int batchDelete(List<DeptDeleteRequest> requests) {
|
||||
List<Long> ids = requests.stream().map(request -> {
|
||||
Long pid = request.getPid();
|
||||
if (!pid.equals(DEPT_ROOT_PID)){
|
||||
if (!pid.equals(DEPT_ROOT_PID)) {
|
||||
extDeptMapper.decreasingSubcount(pid);
|
||||
}
|
||||
return request.getDeptId();
|
||||
@ -85,9 +87,9 @@ public class DeptService {
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public int update(DeptCreateRequest deptCreateRequest){
|
||||
public int update(DeptCreateRequest deptCreateRequest) {
|
||||
SysDept sysDept = BeanUtils.copyBean(new SysDept(), deptCreateRequest);
|
||||
if (deptCreateRequest.isTop()){
|
||||
if (deptCreateRequest.isTop()) {
|
||||
sysDept.setPid(DEPT_ROOT_PID);
|
||||
}
|
||||
sysDept.setUpdateTime(System.currentTimeMillis());
|
||||
@ -97,34 +99,34 @@ public class DeptService {
|
||||
//如果PID发生了改变
|
||||
//判断oldPid是否是跟节点PID ? nothing : parent.subcount-1
|
||||
//判断newPid是否是跟节点PID ? nothing : parent.subcount+1
|
||||
if (!sysDept.getPid().equals(dept_old.getPid())){
|
||||
if (!sysDept.getPid().equals(dept_old.getPid())) {
|
||||
Long oldPid = dept_old.getPid();
|
||||
if (!oldPid.equals(DEPT_ROOT_PID)){
|
||||
if (!oldPid.equals(DEPT_ROOT_PID)) {
|
||||
extDeptMapper.decreasingSubcount(oldPid);
|
||||
}
|
||||
if (!sysDept.getPid().equals(DEPT_ROOT_PID)){
|
||||
if (!sysDept.getPid().equals(DEPT_ROOT_PID)) {
|
||||
extDeptMapper.incrementalSubcount(sysDept.getPid());
|
||||
}
|
||||
}
|
||||
return sysDeptMapper.updateByPrimaryKeySelective(sysDept);
|
||||
}
|
||||
|
||||
public int updateStatus(DeptStatusRequest request){
|
||||
public int updateStatus(DeptStatusRequest request) {
|
||||
Long deptId = request.getDeptId();
|
||||
SysDept sysDept = new SysDept();
|
||||
sysDept.setDeptId(deptId);
|
||||
return sysDeptMapper.updateByPrimaryKeySelective(sysDept);
|
||||
}
|
||||
|
||||
public List<SysDept> nodesTreeByCondition(BaseGridRequest request){
|
||||
public List<SysDept> nodesTreeByCondition(XpackDeptGridRequest request) {
|
||||
List<SimpleTreeNode> allNodes = allNodes();
|
||||
List<SimpleTreeNode> targetNodes = nodeByCondition(request);
|
||||
if(CollectionUtils.isEmpty(targetNodes)){
|
||||
if (CollectionUtils.isEmpty(targetNodes)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<Long> ids = upTree(allNodes, targetNodes);
|
||||
SysDeptExample example = new SysDeptExample();
|
||||
if (CollectionUtils.isNotEmpty(ids)){
|
||||
if (CollectionUtils.isNotEmpty(ids)) {
|
||||
SysDeptExample.Criteria criteria = example.createCriteria();
|
||||
criteria.andDeptIdIn(ids);
|
||||
}
|
||||
@ -132,14 +134,15 @@ public class DeptService {
|
||||
return sysDeptMapper.selectByExample(example);
|
||||
}
|
||||
|
||||
public List<DeptTreeNode> searchTree(Long deptId){
|
||||
public List<DeptTreeNode> searchTree(Long deptId) {
|
||||
List<SysDept> roots = nodesByPid(0L);
|
||||
if (deptId.equals(DEPT_ROOT_PID)) return roots.stream().map(this::format).collect(Collectors.toList());
|
||||
SysDept sysDept = sysDeptMapper.selectByPrimaryKey(deptId);
|
||||
if (roots.stream().anyMatch(node -> node.getDeptId().equals(deptId))) return roots.stream().map(this::format).collect(Collectors.toList());
|
||||
if (roots.stream().anyMatch(node -> node.getDeptId().equals(deptId)))
|
||||
return roots.stream().map(this::format).collect(Collectors.toList());
|
||||
SysDept current = sysDept;
|
||||
DeptTreeNode currentNode = format(sysDept);
|
||||
while (!current.getPid().equals(DEPT_ROOT_PID)){
|
||||
while (!current.getPid().equals(DEPT_ROOT_PID)) {
|
||||
SysDept parent = sysDeptMapper.selectByPrimaryKey(current.getPid()); //pid上有索引 所以效率不会太差
|
||||
DeptTreeNode parentNode = format(parent);
|
||||
parentNode.setChildren(currentNode.toList());
|
||||
@ -151,7 +154,7 @@ public class DeptService {
|
||||
return roots.stream().map(node -> node.getDeptId().equals(targetRootNode.getId()) ? targetRootNode : format(node)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private DeptTreeNode format(SysDept sysDept){
|
||||
private DeptTreeNode format(SysDept sysDept) {
|
||||
DeptTreeNode deptTreeNode = new DeptTreeNode();
|
||||
deptTreeNode.setId(sysDept.getDeptId());
|
||||
deptTreeNode.setLabel(sysDept.getName());
|
||||
@ -159,22 +162,23 @@ public class DeptService {
|
||||
return deptTreeNode;
|
||||
}
|
||||
|
||||
private List<SimpleTreeNode> allNodes(){
|
||||
private List<SimpleTreeNode> allNodes() {
|
||||
return extDeptMapper.allNodes();
|
||||
}
|
||||
|
||||
private List<SimpleTreeNode> nodeByCondition(BaseGridRequest request){
|
||||
GridExample gridExample = request.convertExample();
|
||||
return extDeptMapper.nodesByExample(gridExample);
|
||||
private List<SimpleTreeNode> nodeByCondition(XpackDeptGridRequest request) {
|
||||
|
||||
return extDeptMapper.nodesByExample(request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 找出目标节点所在路径上的所有节点 向上找
|
||||
* @param allNodes 所有节点
|
||||
*
|
||||
* @param allNodes 所有节点
|
||||
* @param targetNodes 目标节点
|
||||
* @return
|
||||
*/
|
||||
private List<Long> upTree(List<SimpleTreeNode> allNodes, List<SimpleTreeNode> targetNodes){
|
||||
private List<Long> upTree(List<SimpleTreeNode> allNodes, List<SimpleTreeNode> targetNodes) {
|
||||
final Map<Long, SimpleTreeNode> map = allNodes.stream().collect(Collectors.toMap(SimpleTreeNode::getId, node -> node));
|
||||
return targetNodes.parallelStream().flatMap(targetNode -> {
|
||||
//向上逐级找爹
|
||||
|
@ -1,7 +1,6 @@
|
||||
package io.dataease.service.sys;
|
||||
|
||||
import io.dataease.commons.utils.BeanUtils;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.controller.sys.request.MenuCreateRequest;
|
||||
import io.dataease.controller.sys.request.MenuDeleteRequest;
|
||||
import io.dataease.controller.sys.request.SimpleTreeNode;
|
||||
@ -168,28 +167,10 @@ public class MenuService {
|
||||
}
|
||||
|
||||
|
||||
public List<SysMenu> nodesTreeByCondition(BaseGridRequest request) {
|
||||
List<SimpleTreeNode> allNodes = allNodes();
|
||||
List<SimpleTreeNode> targetNodes = nodeByCondition(request);
|
||||
if (org.apache.commons.collections.CollectionUtils.isEmpty(targetNodes)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<Long> ids = upTree(allNodes, targetNodes);
|
||||
SysMenuExample example = new SysMenuExample();
|
||||
if (org.apache.commons.collections.CollectionUtils.isNotEmpty(ids)) {
|
||||
SysMenuExample.Criteria criteria = example.createCriteria();
|
||||
criteria.andMenuIdIn(ids);
|
||||
}
|
||||
return sysMenuMapper.selectByExample(example);
|
||||
}
|
||||
|
||||
public List<SimpleTreeNode> allNodes() {
|
||||
return extSysMenuMapper.allNodes();
|
||||
}
|
||||
|
||||
public List<SimpleTreeNode> nodeByCondition(BaseGridRequest request) {
|
||||
return extSysMenuMapper.nodesByExample(request.convertExample());
|
||||
}
|
||||
|
||||
/**
|
||||
* 找出目标节点所在路径上的所有节点 向上找
|
||||
|
@ -3,20 +3,19 @@ package io.dataease.service.sys;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.util.ZipUtil;
|
||||
import com.google.gson.Gson;
|
||||
import io.dataease.commons.utils.IPUtils;
|
||||
import io.dataease.dto.MyPluginDTO;
|
||||
import io.dataease.ext.ExtSysPluginMapper;
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.commons.constants.AuthConstants;
|
||||
import io.dataease.commons.exception.DEException;
|
||||
import io.dataease.commons.utils.CodingUtil;
|
||||
import io.dataease.commons.utils.DeFileUtils;
|
||||
import io.dataease.commons.utils.IPUtils;
|
||||
import io.dataease.commons.utils.LogUtil;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.dto.MyPluginDTO;
|
||||
import io.dataease.ext.ExtSysPluginMapper;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.listener.util.CacheUtils;
|
||||
import io.dataease.plugins.common.base.domain.MyPlugin;
|
||||
import io.dataease.plugins.common.base.mapper.MyPluginMapper;
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import io.dataease.plugins.config.LoadjarUtil;
|
||||
import io.dataease.plugins.entity.PluginOperate;
|
||||
import io.dataease.service.datasource.DatasourceService;
|
||||
@ -65,9 +64,12 @@ public class PluginService {
|
||||
private String version;
|
||||
|
||||
|
||||
public List<MyPlugin> query(BaseGridRequest request) {
|
||||
GridExample gridExample = request.convertExample();
|
||||
return extSysPluginMapper.query(gridExample);
|
||||
public List<MyPlugin> query(KeywordRequest request) {
|
||||
return extSysPluginMapper.query(request);
|
||||
}
|
||||
|
||||
public void systemUpgrade() {
|
||||
extSysPluginMapper.updateVersion(version);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -207,11 +209,9 @@ public class PluginService {
|
||||
* @return
|
||||
*/
|
||||
public boolean pluginExist(MyPlugin myPlugin) {
|
||||
GridExample gridExample = new GridExample();
|
||||
List<MyPlugin> plugins = extSysPluginMapper.query(gridExample);
|
||||
return plugins.stream().anyMatch(plugin -> {
|
||||
return StringUtils.equals(myPlugin.getName(), plugin.getName()) || StringUtils.equals(myPlugin.getModuleName(), plugin.getModuleName());
|
||||
});
|
||||
KeywordRequest request = new KeywordRequest();
|
||||
List<MyPlugin> plugins = extSysPluginMapper.query(request);
|
||||
return plugins.stream().anyMatch(plugin -> StringUtils.equals(myPlugin.getName(), plugin.getName()) || StringUtils.equals(myPlugin.getModuleName(), plugin.getModuleName()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,10 +1,10 @@
|
||||
package io.dataease.service.sys;
|
||||
|
||||
|
||||
import io.dataease.ext.ExtSysRoleMapper;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.controller.sys.response.RoleUserItem;
|
||||
import io.dataease.ext.ExtSysRoleMapper;
|
||||
import io.dataease.plugins.common.base.domain.SysRole;
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -16,10 +16,9 @@ public class SysRoleService {
|
||||
@Resource
|
||||
private ExtSysRoleMapper extSysRoleMapper;
|
||||
|
||||
public List<SysRole> query(BaseGridRequest request) {
|
||||
List<SysRole> result = extSysRoleMapper.query(request.convertExample());
|
||||
public List<SysRole> query(KeywordRequest request) {
|
||||
|
||||
return result;
|
||||
return extSysRoleMapper.query(request);
|
||||
}
|
||||
|
||||
public List<RoleUserItem> allRoles() {
|
||||
|
@ -12,7 +12,6 @@ import io.dataease.controller.sys.request.*;
|
||||
import io.dataease.controller.sys.response.SysUserGridResponse;
|
||||
import io.dataease.controller.sys.response.SysUserRole;
|
||||
import io.dataease.ext.ExtSysUserMapper;
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.plugins.common.base.domain.*;
|
||||
import io.dataease.plugins.common.base.mapper.SysUserAssistMapper;
|
||||
@ -65,12 +64,11 @@ public class SysUserService {
|
||||
private AuthUserService authUserService;
|
||||
|
||||
|
||||
public List<SysUserGridResponse> query(KeyGridRequest request) {
|
||||
String keyWord = request.getKeyWord();
|
||||
GridExample gridExample = request.convertExample();
|
||||
gridExample.setExtendCondition(keyWord);
|
||||
List<SysUserGridResponse> lists = extSysUserMapper.query(gridExample);
|
||||
public List<SysUserGridResponse> query(UserGridRequest request) {
|
||||
|
||||
List<SysUserGridResponse> lists = extSysUserMapper.query(request);
|
||||
lists.forEach(item -> {
|
||||
item.setPassword("");
|
||||
List<SysUserRole> roles = item.getRoles();
|
||||
List<Long> roleIds = roles.stream().filter(ObjectUtils::isNotEmpty).map(SysUserRole::getRoleId).collect(Collectors.toList());
|
||||
item.setRoleIds(roleIds);
|
||||
|
@ -1,12 +0,0 @@
|
||||
package io.dataease.service.sys.log;
|
||||
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class LogQueryParam extends GridExample {
|
||||
|
||||
private List<String> unionIds;
|
||||
}
|
@ -2,7 +2,6 @@ package io.dataease.service.sys.log;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import io.dataease.auth.api.dto.CurrentUserDto;
|
||||
import io.dataease.commons.constants.ParamConstants;
|
||||
@ -11,14 +10,12 @@ import io.dataease.commons.utils.AuthUtils;
|
||||
import io.dataease.commons.utils.BeanUtils;
|
||||
import io.dataease.commons.utils.IPUtils;
|
||||
import io.dataease.commons.utils.ServletUtils;
|
||||
import io.dataease.controller.sys.base.ConditionEntity;
|
||||
import io.dataease.controller.sys.request.KeyGridRequest;
|
||||
import io.dataease.controller.sys.request.LogGridRequest;
|
||||
import io.dataease.dto.SysLogDTO;
|
||||
import io.dataease.dto.SysLogGridDTO;
|
||||
import io.dataease.dto.log.FolderItem;
|
||||
import io.dataease.exception.DataEaseException;
|
||||
import io.dataease.ext.ExtSysLogMapper;
|
||||
import io.dataease.ext.query.GridExample;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.plugins.common.base.domain.SysLogExample;
|
||||
import io.dataease.plugins.common.base.domain.SysLogWithBLOBs;
|
||||
@ -35,7 +32,10 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.OutputStream;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@ -95,100 +95,10 @@ public class LogService {
|
||||
}
|
||||
|
||||
|
||||
public KeyGridRequest logRetentionProxy(KeyGridRequest request) {
|
||||
String value = systemParameterService.getValue(ParamConstants.BASIC.LOG_TIME_OUT.getValue());
|
||||
value = StringUtils.isBlank(value) ? LOG_RETENTION : value;
|
||||
int logRetention = Integer.parseInt(value);
|
||||
Calendar instance = Calendar.getInstance();
|
||||
public List<SysLogGridDTO> query(LogGridRequest request) {
|
||||
|
||||
Calendar startInstance = (Calendar) instance.clone();
|
||||
startInstance.add(Calendar.DATE, -logRetention);
|
||||
startInstance.set(Calendar.HOUR_OF_DAY, 0);
|
||||
startInstance.set(Calendar.MINUTE, 0);
|
||||
startInstance.set(Calendar.SECOND, 0);
|
||||
long startTime = startInstance.getTimeInMillis();
|
||||
|
||||
Calendar endInstance = (Calendar) instance.clone();
|
||||
endInstance.add(Calendar.DATE, 1);
|
||||
endInstance.set(Calendar.HOUR_OF_DAY, 0);
|
||||
endInstance.set(Calendar.MINUTE, 0);
|
||||
endInstance.set(Calendar.SECOND, 0);
|
||||
long endTime = endInstance.getTimeInMillis();
|
||||
|
||||
|
||||
List<ConditionEntity> conditions = request.getConditions();
|
||||
if (CollectionUtils.isNotEmpty(conditions) && conditions.stream().anyMatch(condition -> StringUtils.equals("time", condition.getField()))) {
|
||||
conditions.forEach(condition -> {
|
||||
if (StringUtils.equals("time", condition.getField()) && startTime > ((List<Long>) condition.getValue()).get(0)) {
|
||||
((List<Long>) condition.getValue()).set(0, startTime);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
ConditionEntity conditionEntity = new ConditionEntity();
|
||||
conditionEntity.setField("time");
|
||||
conditionEntity.setOperator("between");
|
||||
List<Long> times = new ArrayList<>();
|
||||
times.add(startTime);
|
||||
times.add(endTime);
|
||||
conditionEntity.setValue(times);
|
||||
conditions.add(conditionEntity);
|
||||
}
|
||||
return request;
|
||||
}
|
||||
|
||||
|
||||
public List<SysLogGridDTO> query(KeyGridRequest request) {
|
||||
|
||||
|
||||
request = detailRequest(request);
|
||||
String keyWord = request.getKeyWord();
|
||||
List<String> ids = null;
|
||||
GridExample gridExample = request.convertExample();
|
||||
gridExample.setExtendCondition(keyWord);
|
||||
|
||||
LogQueryParam logQueryParam = gson.fromJson(gson.toJson(gridExample), LogQueryParam.class);
|
||||
if (StringUtils.isNotBlank(keyWord)) {
|
||||
List<FolderItem> types = types();
|
||||
ids = types.stream().filter(item -> item.getName().toLowerCase().contains(keyWord.toLowerCase())).map(FolderItem::getId).collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(ids))
|
||||
logQueryParam.setUnionIds(ids);
|
||||
}
|
||||
List<SysLogWithBLOBs> voLogs = extSysLogMapper.query(logQueryParam);
|
||||
List<SysLogGridDTO> dtos = voLogs.stream().map(this::convertDTO).collect(Collectors.toList());
|
||||
return dtos;
|
||||
}
|
||||
|
||||
private KeyGridRequest detailRequest(KeyGridRequest request) {
|
||||
List<ConditionEntity> conditions = request.getConditions();
|
||||
if (CollectionUtils.isNotEmpty(conditions)) {
|
||||
|
||||
ConditionEntity uninCondition = null;
|
||||
int matchIndex = -1;
|
||||
for (int i = 0; i < conditions.size(); i++) {
|
||||
ConditionEntity conditionEntity = conditions.get(i);
|
||||
String field = conditionEntity.getField();
|
||||
Object value = conditionEntity.getValue();
|
||||
|
||||
if (StringUtils.isNotBlank(field) && StringUtils.equals("optype", field) && ObjectUtils.isNotEmpty(value)) {
|
||||
matchIndex = i;
|
||||
uninCondition = new ConditionEntity();
|
||||
|
||||
List<String> values = (List<String>) value;
|
||||
uninCondition.setField("concat(operate_type, '-de-', source_type)");
|
||||
|
||||
List<String> uninValue = values.stream().map(v -> v.replace("-", "-de-")).collect(Collectors.toList());
|
||||
|
||||
uninCondition.setValue(uninValue);
|
||||
uninCondition.setOperator(conditionEntity.getOperator());
|
||||
}
|
||||
}
|
||||
if (matchIndex >= 0) {
|
||||
conditions.remove(matchIndex);
|
||||
|
||||
if (ObjectUtils.isNotEmpty(uninCondition)) conditions.add(uninCondition);
|
||||
}
|
||||
}
|
||||
return request;
|
||||
List<SysLogWithBLOBs> voLogs = extSysLogMapper.query(request);
|
||||
return voLogs.stream().map(this::convertDTO).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
@ -350,24 +260,12 @@ public class LogService {
|
||||
}
|
||||
|
||||
|
||||
public void exportExcel(KeyGridRequest request) throws Exception {
|
||||
request = logRetentionProxy(request);
|
||||
request = detailRequest(request);
|
||||
String keyWord = request.getKeyWord();
|
||||
List<String> ids = null;
|
||||
public void exportExcel(LogGridRequest request) throws Exception {
|
||||
|
||||
HttpServletResponse response = ServletUtils.response();
|
||||
OutputStream outputStream = response.getOutputStream();
|
||||
try {
|
||||
GridExample gridExample = request.convertExample();
|
||||
gridExample.setExtendCondition(keyWord);
|
||||
LogQueryParam logQueryParam = gson.fromJson(gson.toJson(gridExample), LogQueryParam.class);
|
||||
if (StringUtils.isNotBlank(keyWord)) {
|
||||
List<FolderItem> types = types();
|
||||
ids = types.stream().filter(item -> item.getName().toLowerCase().contains(keyWord.toLowerCase())).map(FolderItem::getId).collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(ids))
|
||||
logQueryParam.setUnionIds(ids);
|
||||
}
|
||||
List<SysLogWithBLOBs> lists = extSysLogMapper.query(logQueryParam);
|
||||
List<SysLogWithBLOBs> lists = extSysLogMapper.query(request);
|
||||
List<String[]> details = lists.stream().map(item -> {
|
||||
String operateTypeName = SysLogConstants.operateTypeName(item.getOperateType());
|
||||
String sourceTypeName = SysLogConstants.sourceTypeName(item.getSourceType());
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "dataease",
|
||||
"version": "1.18.10",
|
||||
"version": "1.18.11",
|
||||
"description": "dataease front",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
@ -88,7 +88,7 @@
|
||||
"vuedraggable": "^2.24.3",
|
||||
"vuex": "3.1.0",
|
||||
"webpack": "^4.46.0",
|
||||
"xlsx": "^0.17.0",
|
||||
"xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz",
|
||||
"xss": "^1.0.14"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
@ -53,12 +53,4 @@ export function treeByMenuId(menuId) {
|
||||
})
|
||||
}
|
||||
|
||||
export function queryCondition(data) {
|
||||
return request({
|
||||
url: '/api/menu/search',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { addMenu, editMenu, delMenu, getMenusTree, getChild, treeByMenuId, queryCondition }
|
||||
export default { addMenu, editMenu, delMenu, getMenusTree, getChild, treeByMenuId }
|
||||
|
28
core/frontend/src/utils/GridConditionUtil.js
Normal file
28
core/frontend/src/utils/GridConditionUtil.js
Normal file
@ -0,0 +1,28 @@
|
||||
export const buildParam = (conditions, keyword) => {
|
||||
const result = {}
|
||||
conditions.forEach(condition => {
|
||||
const key = condition.field
|
||||
const val = condition.value
|
||||
const keyArray = key.split('.')
|
||||
const len = keyArray.length
|
||||
const fieldKey = keyArray[len - 1]
|
||||
result[formatField(fieldKey)] = val
|
||||
})
|
||||
if (keyword === 0 || !!keyword) {
|
||||
result['keyword'] = keyword
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
const formatField = fieldText => {
|
||||
const array = fieldText.split('_')
|
||||
let result = ''
|
||||
for (let index = 0; index < array.length; index++) {
|
||||
let temp = array[index]
|
||||
if (index) {
|
||||
temp = temp.substr(0, 1).toLocaleUpperCase() + temp.substr(1)
|
||||
}
|
||||
result += temp
|
||||
}
|
||||
return result
|
||||
}
|
@ -110,7 +110,7 @@
|
||||
<el-col style="width: 130px!important;">
|
||||
<el-upload
|
||||
action=""
|
||||
accept=".jpeg,.jpg,.png,.gif,.svg"
|
||||
accept=".jpeg,.jpg,.png,.gif"
|
||||
class="avatar-uploader"
|
||||
list-type="picture-card"
|
||||
:class="{disabled:uploadDisabled}"
|
||||
|
@ -334,6 +334,10 @@ export function baseTablePivot(s2, container, chart, action, headerAction, table
|
||||
|
||||
const columns = []
|
||||
const meta = []
|
||||
const fieldMap = fields.reduce((pre, next) => {
|
||||
pre[next['dataeaseName']] = next['name']
|
||||
return pre
|
||||
}, {})
|
||||
|
||||
// add drill list
|
||||
if (chart.drill) {
|
||||
@ -486,10 +490,10 @@ export function baseTablePivot(s2, container, chart, action, headerAction, table
|
||||
// hover
|
||||
const size = customAttr?.size
|
||||
if (size?.tableRowTooltip?.show) {
|
||||
s2.on(S2Event.ROW_CELL_HOVER, event => showTooltip(s2, event))
|
||||
s2.on(S2Event.ROW_CELL_HOVER, event => showTooltip(s2, event, fieldMap))
|
||||
}
|
||||
if (size?.tableColTooltip?.show) {
|
||||
s2.on(S2Event.COL_CELL_HOVER, event => showTooltip(s2, event))
|
||||
s2.on(S2Event.COL_CELL_HOVER, event => showTooltip(s2, event, fieldMap))
|
||||
}
|
||||
// theme
|
||||
const customTheme = getCustomTheme(chart)
|
||||
@ -703,10 +707,13 @@ function mappingColor(value, defaultColor, field, type) {
|
||||
return color
|
||||
}
|
||||
|
||||
function showTooltip(s2Instance, event) {
|
||||
function showTooltip(s2Instance, event, fieldMap) {
|
||||
const cell = s2Instance.getCell(event.target)
|
||||
const content = cell.actualText
|
||||
|
||||
const meta = cell.getMeta()
|
||||
let content = meta.value
|
||||
if (fieldMap?.[content]) {
|
||||
content = fieldMap?.[content]
|
||||
}
|
||||
s2Instance.showTooltip({
|
||||
position: {
|
||||
x: event.clientX,
|
||||
|
@ -1048,14 +1048,7 @@ export default {
|
||||
},
|
||||
listTaskLog(loading = true) {
|
||||
const params = {
|
||||
conditions: [
|
||||
{
|
||||
field: 'dataset_table_task_log.table_id',
|
||||
operator: 'eq',
|
||||
value: this.table.id
|
||||
}
|
||||
],
|
||||
orders: []
|
||||
tableId: [this.table.id]
|
||||
}
|
||||
post(
|
||||
'/dataset/taskLog/listForDataset/' +
|
||||
|
@ -866,7 +866,7 @@ export default {
|
||||
}
|
||||
},
|
||||
listTaskLog(loading = true) {
|
||||
const params = { 'conditions': [{ 'field': 'dataset_table_task_log.table_id', 'operator': 'eq', 'value': this.table.id }], 'orders': [] }
|
||||
const params = { 'tableId': [this.table.id], 'orders': [] }
|
||||
post('/dataset/taskLog/listForDataset/' + this.table.type + '/' + this.page.currentPage + '/' + this.page.pageSize, params, loading).then(response => {
|
||||
this.taskLogData = response.data.listObject
|
||||
this.page.total = response.data.itemCount
|
||||
|
@ -86,7 +86,7 @@
|
||||
<el-col style="width: 148px!important;height: 148px!important;overflow: hidden">
|
||||
<el-upload
|
||||
action=""
|
||||
accept=".jpeg,.jpg,.png,.gif,.svg"
|
||||
accept=".jpeg,.jpg,.png,.gif"
|
||||
class="avatar-uploader"
|
||||
list-type="picture-card"
|
||||
:class="{disabled:uploadDisabled}"
|
||||
|
@ -94,12 +94,7 @@ export default {
|
||||
searchWithKey(index) {
|
||||
this.timeMachine = setTimeout(() => {
|
||||
if (index === this.changeIndex) {
|
||||
const condition = {
|
||||
field: 'name',
|
||||
operator: 'like',
|
||||
value: this.keyWord
|
||||
}
|
||||
this.search(condition)
|
||||
this.search()
|
||||
}
|
||||
this.destroyTimeMachine()
|
||||
}, 1500)
|
||||
@ -124,25 +119,25 @@ export default {
|
||||
},
|
||||
|
||||
// 加载表格数据
|
||||
search(condition) {
|
||||
search() {
|
||||
this.treeData = []
|
||||
let param = {}
|
||||
if (condition && condition.value) {
|
||||
param = { conditions: [condition] }
|
||||
if (this.keyWord) {
|
||||
param = { keyword: this.keyWord }
|
||||
} else {
|
||||
param = { conditions: [this.defaultCondition] }
|
||||
param = { pid: 0 }
|
||||
}
|
||||
if (!this.sharesLoad) {
|
||||
this.queryShareNodeIds(() => {
|
||||
this.sharesLoad = true
|
||||
this.loadTreeData(param, condition)
|
||||
this.loadTreeData(param)
|
||||
})
|
||||
} else {
|
||||
this.loadTreeData(param, condition)
|
||||
this.loadTreeData(param)
|
||||
}
|
||||
},
|
||||
|
||||
loadTreeData(param, condition) {
|
||||
loadTreeData(param) {
|
||||
loadTable(param).then(res => {
|
||||
let data = res.data
|
||||
data = data.map(obj => {
|
||||
@ -154,7 +149,7 @@ export default {
|
||||
|
||||
this.setCheckExpandNodes(data)
|
||||
this.expandNodeIds = []
|
||||
if (condition && condition.value) {
|
||||
if (this.keyWord) {
|
||||
this.treeData = this.buildTree(data)
|
||||
this.$nextTick(() => {
|
||||
this.expandResult(this.treeData)
|
||||
|
@ -28,7 +28,6 @@
|
||||
|
||||
<script>
|
||||
import { roleGrid } from '@/api/system/user'
|
||||
import { formatCondition } from '@/utils/index'
|
||||
import { loadShares } from '@/api/panel/share'
|
||||
export default {
|
||||
name: 'GrantRole',
|
||||
@ -70,9 +69,8 @@ export default {
|
||||
this.columnLabel = this.defaultHeadName
|
||||
},
|
||||
|
||||
search(condition) {
|
||||
const temp = formatCondition(condition)
|
||||
const param = temp || {}
|
||||
search() {
|
||||
const param = {}
|
||||
roleGrid(1, 0, param).then(response => {
|
||||
const data = response.data
|
||||
this.data = data.listObject
|
||||
|
@ -208,8 +208,8 @@ export default {
|
||||
},
|
||||
formatCondition() {
|
||||
const fildMap = {
|
||||
optype: this.activeType,
|
||||
'user_id': this.activeUser
|
||||
optypeList: this.activeType,
|
||||
userIdList: this.activeUser
|
||||
}
|
||||
const conditions = []
|
||||
Object.keys(fildMap).forEach((ele) => {
|
||||
@ -228,7 +228,7 @@ export default {
|
||||
max = +max + 24 * 3600 * 1000
|
||||
}
|
||||
conditions.push({
|
||||
field: 'time',
|
||||
field: 'timeList',
|
||||
operator: 'between',
|
||||
value: [+min, +max]
|
||||
})
|
||||
|
@ -146,6 +146,7 @@ import GridTable from '@/components/gridTable/index.vue'
|
||||
import filterUser from './FilterUser'
|
||||
import _ from 'lodash'
|
||||
import keyEnter from '@/components/msgCfm/keyEnter.js'
|
||||
import { buildParam } from '@/utils/GridConditionUtil'
|
||||
import {
|
||||
addOrder,
|
||||
formatOrders
|
||||
@ -197,13 +198,8 @@ export default {
|
||||
})
|
||||
},
|
||||
exportData() {
|
||||
const param = {
|
||||
orders: formatOrders(this.orderConditions),
|
||||
conditions: [...this.cacheCondition]
|
||||
}
|
||||
if (this.nickName) {
|
||||
param.keyWord = this.nickName
|
||||
}
|
||||
const param = buildParam(this.cacheCondition, this.nickName)
|
||||
param.orders = formatOrders(this.orderConditions)
|
||||
|
||||
exportExcel(param).then((res) => {
|
||||
const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
|
||||
@ -289,13 +285,9 @@ export default {
|
||||
this.$refs.filterUser.init()
|
||||
},
|
||||
search() {
|
||||
const param = {
|
||||
orders: formatOrders(this.orderConditions),
|
||||
conditions: [...this.cacheCondition]
|
||||
}
|
||||
if (this.nickName) {
|
||||
param.keyWord = this.nickName
|
||||
}
|
||||
const param = buildParam(this.cacheCondition, this.nickName)
|
||||
param.orders = formatOrders(this.orderConditions)
|
||||
|
||||
const { currentPage, pageSize } = this.paginationConfig
|
||||
logGrid(currentPage, pageSize, param).then((response) => {
|
||||
this.data = response.data.listObject
|
||||
|
@ -219,13 +219,7 @@ export default {
|
||||
search() {
|
||||
const param = {}
|
||||
if (this.name) {
|
||||
param.conditions = [
|
||||
{
|
||||
field: 'name',
|
||||
operator: 'like',
|
||||
value: this.name
|
||||
}
|
||||
]
|
||||
param.keyword = this.name
|
||||
}
|
||||
pluginLists(0, 0, param).then((response) => {
|
||||
this.data = response.data.listObject.filter(item => item.pluginId > 1)
|
||||
|
@ -350,7 +350,7 @@ import filterUser from './FilterUser.vue'
|
||||
import msgCfm from '@/components/msgCfm/index'
|
||||
import _ from 'lodash'
|
||||
import keyEnter from '@/components/msgCfm/keyEnter.js'
|
||||
|
||||
import { buildParam } from '@/utils/GridConditionUtil'
|
||||
export default {
|
||||
name: 'DatasetTaskList',
|
||||
components: { GridTable, filterUser },
|
||||
@ -502,23 +502,12 @@ export default {
|
||||
},
|
||||
search(showLoading = true) {
|
||||
const { taskId, name } = this.transCondition
|
||||
const param = {
|
||||
orders: formatOrders(this.orderConditions),
|
||||
conditions: [...this.cacheCondition]
|
||||
}
|
||||
if (this.nickName) {
|
||||
param.conditions.push({
|
||||
field: `dataset_table_task.name`,
|
||||
operator: 'like',
|
||||
value: this.nickName
|
||||
})
|
||||
}
|
||||
|
||||
const param = buildParam(this.cacheCondition, this.nickName)
|
||||
param.orders = formatOrders(this.orderConditions)
|
||||
|
||||
if (taskId && this.nickName === name) {
|
||||
param.conditions.push({
|
||||
operator: 'eq',
|
||||
value: taskId,
|
||||
field: 'dataset_table_task.id'
|
||||
})
|
||||
param['id'] = taskId
|
||||
}
|
||||
const { currentPage, pageSize } = this.paginationConfig
|
||||
datasetTaskList(currentPage, pageSize, param, showLoading).then(
|
||||
|
@ -315,7 +315,7 @@ export default {
|
||||
'dataset_table_task.rate': this.active.rate,
|
||||
'dataset_table_task.status': this.active.status,
|
||||
'dataset_table_task.last_exec_status': this.active.execStatus,
|
||||
'dataset_table.id': this.activeDataset
|
||||
'dataset_table.tableId': this.activeDataset
|
||||
}
|
||||
const conditions = []
|
||||
Object.keys(fildMap).forEach((ele) => {
|
||||
|
@ -308,7 +308,7 @@ export default {
|
||||
formatCondition() {
|
||||
const fildMap = {
|
||||
'dataset_table_task.last_exec_status': this.active.execStatus,
|
||||
'dataset_table.id': this.activeDataset
|
||||
'dataset_table.tableId': this.activeDataset
|
||||
}
|
||||
const conditions = []
|
||||
Object.keys(fildMap).forEach((ele) => {
|
||||
|
@ -179,7 +179,7 @@ import GridTable from '@/components/gridTable/index.vue'
|
||||
import filterUser from './FilterUserRecord.vue'
|
||||
import _ from 'lodash'
|
||||
import keyEnter from '@/components/msgCfm/keyEnter.js'
|
||||
|
||||
import { buildParam } from '@/utils/GridConditionUtil'
|
||||
export default {
|
||||
name: 'TaskRecord',
|
||||
components: { GridTable, filterUser },
|
||||
@ -258,23 +258,10 @@ export default {
|
||||
},
|
||||
exportData() {
|
||||
const { taskId, name } = this.transCondition
|
||||
const param = {
|
||||
orders: formatOrders(this.orderConditions),
|
||||
conditions: [...this.cacheCondition]
|
||||
}
|
||||
if (this.nickName) {
|
||||
param.conditions.push({
|
||||
field: `dataset_table_task.name`,
|
||||
operator: 'like',
|
||||
value: this.nickName
|
||||
})
|
||||
}
|
||||
const param = buildParam(this.cacheCondition, this.nickName)
|
||||
param.orders = formatOrders(this.orderConditions)
|
||||
if (taskId && this.nickName === name) {
|
||||
param.conditions.push({
|
||||
operator: 'eq',
|
||||
value: taskId,
|
||||
field: 'dataset_table_task.id'
|
||||
})
|
||||
param.id = taskId
|
||||
}
|
||||
exportExcel(param).then((res) => {
|
||||
const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
|
||||
@ -368,23 +355,10 @@ export default {
|
||||
this.lastRequestComplete = false
|
||||
}
|
||||
const { taskId, name } = this.transCondition
|
||||
const param = {
|
||||
orders: formatOrders(this.orderConditions),
|
||||
conditions: [...this.cacheCondition]
|
||||
}
|
||||
if (this.nickName) {
|
||||
param.conditions.push({
|
||||
field: `dataset_table_task.name`,
|
||||
operator: 'like',
|
||||
value: this.nickName
|
||||
})
|
||||
}
|
||||
const param = buildParam(this.cacheCondition, this.nickName)
|
||||
param.orders = formatOrders(this.orderConditions)
|
||||
if (taskId && this.nickName === name) {
|
||||
param.conditions.push({
|
||||
operator: 'eq',
|
||||
value: taskId,
|
||||
field: 'dataset_table_task.id'
|
||||
})
|
||||
param.id = taskId
|
||||
}
|
||||
post(
|
||||
'/dataset/taskLog/list/notexcel/' +
|
||||
@ -405,23 +379,10 @@ export default {
|
||||
},
|
||||
search(condition, showLoading = true) {
|
||||
const { taskId, name } = this.transCondition
|
||||
const param = {
|
||||
orders: formatOrders(this.orderConditions),
|
||||
conditions: [...this.cacheCondition]
|
||||
}
|
||||
if (this.nickName) {
|
||||
param.conditions.push({
|
||||
field: `dataset_table_task.name`,
|
||||
operator: 'like',
|
||||
value: this.nickName
|
||||
})
|
||||
}
|
||||
const param = buildParam(this.cacheCondition, this.nickName)
|
||||
param.orders = formatOrders(this.orderConditions)
|
||||
if (taskId && this.nickName === name) {
|
||||
param.conditions.push({
|
||||
operator: 'eq',
|
||||
value: taskId,
|
||||
field: 'dataset_table_task.id'
|
||||
})
|
||||
param.id = taskId
|
||||
}
|
||||
post(
|
||||
'/dataset/taskLog/list/notexcel/' +
|
||||
|
@ -322,9 +322,9 @@ export default {
|
||||
},
|
||||
formatCondition() {
|
||||
const fildMap = {
|
||||
'r.role_id': this.activeRole,
|
||||
'd.dept_id': this.activeDept,
|
||||
'u.enabled': this.activeStatus
|
||||
'r.role_id_list': this.activeRole,
|
||||
'd.dept_id_list': this.activeDept,
|
||||
'u.enabled_list': this.activeStatus
|
||||
}
|
||||
const conditions = []
|
||||
Object.keys(fildMap).forEach((ele) => {
|
||||
|
@ -126,8 +126,8 @@
|
||||
@current-change="handleCurrentChange"
|
||||
>
|
||||
<el-table-column
|
||||
prop="username"
|
||||
key="username"
|
||||
prop="username"
|
||||
label="ID"
|
||||
/>
|
||||
<el-table-column
|
||||
@ -139,8 +139,8 @@
|
||||
/>
|
||||
<!-- <el-table-column prop="gender" :label="$t('commons.gender')" width="60" /> -->
|
||||
<el-table-column
|
||||
prop="from"
|
||||
key="from"
|
||||
prop="from"
|
||||
:label="$t('user.source')"
|
||||
width="80"
|
||||
>
|
||||
@ -261,7 +261,10 @@
|
||||
popper-class="reset-pwd"
|
||||
trigger="click"
|
||||
>
|
||||
<svg-icon class="reset-pwd-icon" icon-class="icon_info_filled" />
|
||||
<svg-icon
|
||||
class="reset-pwd-icon"
|
||||
icon-class="icon_info_filled"
|
||||
/>
|
||||
<div class="tips">{{ $t('user.recover_pwd') }}</div>
|
||||
<div class="editer-form-title">
|
||||
<span
|
||||
@ -333,6 +336,7 @@ import { columnOptions } from './options'
|
||||
import DeLayoutContent from '@/components/business/DeLayoutContent'
|
||||
import { addOrder, formatOrders } from '@/utils/index'
|
||||
import { pluginLoaded, defaultPwd } from '@/api/user'
|
||||
import { buildParam } from '@/utils/GridConditionUtil'
|
||||
import bus from '@/utils/bus'
|
||||
import { Base64 } from 'js-base64'
|
||||
/* import { ldapStatus, pluginLoaded } from '@/api/user' */
|
||||
@ -568,17 +572,9 @@ export default {
|
||||
})
|
||||
},
|
||||
search() {
|
||||
const param = {
|
||||
orders: formatOrders(this.orderConditions),
|
||||
conditions: [...this.cacheCondition]
|
||||
}
|
||||
if (this.nickName) {
|
||||
param.conditions.push({
|
||||
field: `concat(nick_name, ',' , email)`,
|
||||
operator: 'like',
|
||||
value: this.nickName
|
||||
})
|
||||
}
|
||||
const param = buildParam(this.cacheCondition, this.nickName)
|
||||
param.orders = formatOrders(this.orderConditions)
|
||||
|
||||
const { currentPage, pageSize } = this.paginationConfig
|
||||
userLists(currentPage, pageSize, param).then((response) => {
|
||||
this.data = response.data.listObject
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "dataease-mobile",
|
||||
"version": "1.18.10",
|
||||
"version": "1.18.11",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"serve": "npm run dev:h5",
|
||||
|
2
pom.xml
2
pom.xml
@ -9,7 +9,7 @@
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<dataease.version>1.18.10</dataease.version>
|
||||
<dataease.version>1.18.11</dataease.version>
|
||||
</properties>
|
||||
|
||||
<name>dataease</name>
|
||||
|
@ -1,17 +0,0 @@
|
||||
package io.dataease.plugins.common.entity;
|
||||
|
||||
import io.dataease.plugins.common.annotation.PluginResultMap;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@PluginResultMap
|
||||
public class XpackConditionEntity implements Serializable {
|
||||
|
||||
private String field;
|
||||
|
||||
private String operator;
|
||||
|
||||
private Object value;
|
||||
}
|
@ -1,271 +0,0 @@
|
||||
package io.dataease.plugins.common.entity;
|
||||
|
||||
import io.dataease.plugins.common.annotation.PluginResultMap;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@PluginResultMap
|
||||
public class XpackGridExample {
|
||||
|
||||
protected String orderByClause;
|
||||
|
||||
protected boolean distinct;
|
||||
|
||||
protected List<Criteria> oredCriteria;
|
||||
|
||||
protected String extendCondition;
|
||||
|
||||
public XpackGridExample() {
|
||||
oredCriteria = new ArrayList<Criteria>();
|
||||
}
|
||||
|
||||
public String getExtendCondition() {
|
||||
return extendCondition;
|
||||
}
|
||||
|
||||
public void setExtendCondition(String extendCondition) {
|
||||
this.extendCondition = extendCondition;
|
||||
}
|
||||
|
||||
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<Criteria> 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<Criterion> criteria;
|
||||
|
||||
protected GeneratedCriteria() {
|
||||
super();
|
||||
criteria = new ArrayList<Criterion>();
|
||||
}
|
||||
|
||||
public boolean isValid() {
|
||||
return criteria.size() > 0;
|
||||
}
|
||||
|
||||
public List<Criterion> getAllCriteria() {
|
||||
return criteria;
|
||||
}
|
||||
|
||||
public List<Criterion> 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 addCondition(XpackConditionEntity conditionEntity){
|
||||
String field = conditionEntity.getField();
|
||||
Object value = conditionEntity.getValue();
|
||||
String operator = conditionEntity.getOperator();
|
||||
if (StringUtils.isEmpty(operator))
|
||||
operator = "like";
|
||||
switch (operator){
|
||||
case "eq":
|
||||
addCriterion(field+" = ", value, field);
|
||||
break;
|
||||
case "ne":
|
||||
addCriterion(field+" <> ", value, field);
|
||||
break;
|
||||
case "like":
|
||||
addCriterion(field+" like ", "%"+value+"%", field);
|
||||
break;
|
||||
case "not like":
|
||||
addCriterion(field+" not like ", "%"+value+"%", field);
|
||||
break;
|
||||
case "in":
|
||||
List<Object> invalues = (List<Object>)value;
|
||||
addCriterion(field+" in", invalues, field);
|
||||
break;
|
||||
case "not in":
|
||||
List<Object> notinvalues = (List<Object>)value;
|
||||
addCriterion(field+" not in", notinvalues, field);
|
||||
break;
|
||||
case "between":
|
||||
List<Object> values = (List<Object>)value;
|
||||
Object v1 = values.get(0);
|
||||
Object v2 = values.get(1);
|
||||
addCriterion(field+" between", v1, v2, field);
|
||||
break;
|
||||
case "gt":
|
||||
addCriterion(field+" > ", value, field);
|
||||
break;
|
||||
case "ge":
|
||||
addCriterion(field+" >= ", value, field);
|
||||
break;
|
||||
case "lt":
|
||||
addCriterion(field+" < ", value, field);
|
||||
break;
|
||||
case "le":
|
||||
addCriterion(field+" <= ", value, field);
|
||||
break;
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
package io.dataease.plugins.common.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class XpackGridRequest implements Serializable {
|
||||
|
||||
private List<XpackConditionEntity> conditions;
|
||||
|
||||
private List<String> orders;
|
||||
|
||||
public XpackGridExample convertExample(){
|
||||
XpackGridExample gridExample = new XpackGridExample();
|
||||
if (!CollectionUtils.isEmpty(conditions)){
|
||||
XpackGridExample.Criteria criteria = gridExample.createCriteria();
|
||||
conditions.forEach(criteria::addCondition);
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(orders)) {
|
||||
String orderByClause = String.join(", ", orders);
|
||||
gridExample.setOrderByClause(orderByClause);
|
||||
}
|
||||
|
||||
return gridExample;
|
||||
}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
package io.dataease.plugins.common.mapper;
|
||||
|
||||
public interface PluginGridSql {
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="io.dataease.plugins.common.mapper.PluginGridSql">
|
||||
|
||||
<sql id="gridCondition">
|
||||
<where>
|
||||
<foreach collection="oredCriteria" item="criteria" separator="or">
|
||||
<if test="criteria.valid">
|
||||
<trim prefix="(" prefixOverrides="and" suffix=")">
|
||||
<foreach collection="criteria.criteria" item="criterion">
|
||||
<choose>
|
||||
<when test="criterion.noValue">
|
||||
and ${criterion.condition}
|
||||
</when>
|
||||
<when test="criterion.singleValue">
|
||||
and ${criterion.condition} #{criterion.value}
|
||||
</when>
|
||||
<when test="criterion.betweenValue">
|
||||
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
|
||||
</when>
|
||||
<when test="criterion.listValue">
|
||||
and ${criterion.condition}
|
||||
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
|
||||
#{listItem}
|
||||
</foreach>
|
||||
</when>
|
||||
</choose>
|
||||
</foreach>
|
||||
</trim>
|
||||
</if>
|
||||
</foreach>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
</mapper>
|
@ -0,0 +1,16 @@
|
||||
package io.dataease.plugins.common.request;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class KeywordRequest implements Serializable {
|
||||
@ApiModelProperty("关键字")
|
||||
private String keyword;
|
||||
|
||||
@ApiModelProperty("排序描述")
|
||||
private List<String> orders;
|
||||
}
|
@ -1,11 +1,8 @@
|
||||
package io.dataease.plugins.datasource.service;
|
||||
|
||||
import io.dataease.plugins.common.dto.datasource.DataSourceType;
|
||||
import io.dataease.plugins.common.entity.XpackGridRequest;
|
||||
import io.dataease.plugins.common.service.PluginComponentService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public abstract class DatasourceService extends PluginComponentService {
|
||||
|
||||
abstract public DataSourceType getDataSourceType();
|
||||
|
@ -43,7 +43,7 @@
|
||||
<dependency>
|
||||
<groupId>com.itextpdf</groupId>
|
||||
<artifactId>itextpdf</artifactId>
|
||||
<version>5.5.9</version>
|
||||
<version>5.5.13.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.pdfbox</groupId>
|
||||
|
@ -1,6 +1,5 @@
|
||||
package io.dataease.plugins.xpack.auth.service;
|
||||
|
||||
import io.dataease.plugins.common.entity.XpackGridRequest;
|
||||
import io.dataease.plugins.common.service.PluginComponentService;
|
||||
import io.dataease.plugins.xpack.auth.dto.request.DataSetColumnPermissionsDTO;
|
||||
import io.dataease.plugins.xpack.auth.dto.request.DatasetColumnPermissions;
|
||||
@ -9,9 +8,9 @@ import java.util.List;
|
||||
|
||||
public abstract class ColumnPermissionService extends PluginComponentService {
|
||||
public abstract List<DataSetColumnPermissionsDTO> searchPermissions(DataSetColumnPermissionsDTO request);
|
||||
public abstract List<DataSetColumnPermissionsDTO> queryPermissions(XpackGridRequest arg0) ;
|
||||
public abstract List<DataSetColumnPermissionsDTO> queryPermissions(String tableId) ;
|
||||
public abstract DatasetColumnPermissions save(DatasetColumnPermissions datasetColumnPermissions);
|
||||
public abstract void delete(String id);
|
||||
public abstract List<? extends Object> authObjs(DataSetColumnPermissionsDTO request);
|
||||
public abstract List<?> authObjs(DataSetColumnPermissionsDTO request);
|
||||
public abstract DataSetColumnPermissionsDTO permissionInfo(DataSetColumnPermissionsDTO datasetRowPermissions);
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package io.dataease.plugins.xpack.auth.service;
|
||||
|
||||
import io.dataease.plugins.common.entity.XpackGridRequest;
|
||||
import io.dataease.plugins.common.service.PluginComponentService;
|
||||
import io.dataease.plugins.xpack.auth.dto.request.DataSetRowPermissionsDTO;
|
||||
import io.dataease.plugins.xpack.auth.dto.request.DatasetRowPermissions;
|
||||
@ -9,7 +8,7 @@ import java.util.List;
|
||||
|
||||
public abstract class RowPermissionService extends PluginComponentService {
|
||||
public abstract List<DataSetRowPermissionsDTO> searchRowPermissions(DataSetRowPermissionsDTO request);
|
||||
public abstract List<DataSetRowPermissionsDTO> queryRowPermissions(XpackGridRequest arg0) ;
|
||||
public abstract List<DataSetRowPermissionsDTO> queryRowPermissions(String tableId) ;
|
||||
public abstract void save(DatasetRowPermissions datasetRowPermissions);
|
||||
public abstract void delete(String id);
|
||||
public abstract List<? extends Object> authObjs(DataSetRowPermissionsDTO request);
|
||||
|
@ -0,0 +1,10 @@
|
||||
package io.dataease.plugins.xpack.dept.dto.request;
|
||||
|
||||
import io.dataease.plugins.common.request.KeywordRequest;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class XpackDeptGridRequest extends KeywordRequest {
|
||||
|
||||
private Long pid = 0L;
|
||||
}
|
@ -1,18 +1,18 @@
|
||||
package io.dataease.plugins.xpack.dept.service;
|
||||
|
||||
import io.dataease.plugins.common.entity.XpackGridRequest;
|
||||
import io.dataease.plugins.common.service.PluginMenuService;
|
||||
import io.dataease.plugins.xpack.dept.dto.request.*;
|
||||
import io.dataease.plugins.xpack.dept.dto.response.DeptUserItemDTO;
|
||||
import io.dataease.plugins.xpack.dept.dto.response.XpackDeptTreeNode;
|
||||
import io.dataease.plugins.xpack.dept.dto.response.XpackSysDept;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public abstract class DeptXpackService extends PluginMenuService {
|
||||
|
||||
public abstract List<XpackSysDept> nodesByPid(Long pid);
|
||||
|
||||
public abstract List<XpackSysDept> nodesTreeByCondition(XpackGridRequest request);
|
||||
public abstract List<XpackSysDept> nodesTreeByCondition(XpackDeptGridRequest request);
|
||||
|
||||
public abstract List<XpackDeptTreeNode> searchTree(Long deptId);
|
||||
|
||||
@ -23,8 +23,11 @@ public abstract class DeptXpackService extends PluginMenuService {
|
||||
public abstract int batchDelete(List<XpackDeleteDept> requests);
|
||||
|
||||
public abstract void move(XpackMoveDept xpackMoveDept);
|
||||
|
||||
public abstract void bindUser(XpackDeptBindRequest request);
|
||||
|
||||
public abstract void unBindUsers(XpackDeptBindRequest request);
|
||||
|
||||
public abstract List<DeptUserItemDTO> queryBinded(XpackDeptUserRequest request, boolean isPage);
|
||||
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user