|
@@ -3,14 +3,15 @@ package cn.cslg.pas.service.business;
|
|
import cn.cslg.pas.common.dto.business.EventDTO;
|
|
import cn.cslg.pas.common.dto.business.EventDTO;
|
|
import cn.cslg.pas.common.model.cronModel.GroupConfig;
|
|
import cn.cslg.pas.common.model.cronModel.GroupConfig;
|
|
import cn.cslg.pas.common.model.cronModel.GroupVO;
|
|
import cn.cslg.pas.common.model.cronModel.GroupVO;
|
|
-import cn.cslg.pas.common.model.cronModel.SqlObject;
|
|
|
|
import cn.cslg.pas.common.model.request.*;
|
|
import cn.cslg.pas.common.model.request.*;
|
|
|
|
|
|
import cn.cslg.pas.common.utils.parseQueryToTree.expressManager;
|
|
import cn.cslg.pas.common.utils.parseQueryToTree.expressManager;
|
|
import cn.cslg.pas.common.utils.parseQueryToTree.operateNode;
|
|
import cn.cslg.pas.common.utils.parseQueryToTree.operateNode;
|
|
import cn.cslg.pas.common.utils.parseQueryToTree.treeNode;
|
|
import cn.cslg.pas.common.utils.parseQueryToTree.treeNode;
|
|
|
|
+import cn.cslg.pas.common.vo.business.EventVO;
|
|
import cn.cslg.pas.domain.business.AssoEventFile;
|
|
import cn.cslg.pas.domain.business.AssoEventFile;
|
|
import cn.cslg.pas.domain.business.Event;
|
|
import cn.cslg.pas.domain.business.Event;
|
|
|
|
+import cn.cslg.pas.exception.XiaoShiException;
|
|
import cn.cslg.pas.factorys.businessFactory.Business;
|
|
import cn.cslg.pas.factorys.businessFactory.Business;
|
|
import cn.cslg.pas.factorys.reGroupFactory.QueryGroupFactory;
|
|
import cn.cslg.pas.factorys.reGroupFactory.QueryGroupFactory;
|
|
import cn.cslg.pas.factorys.reGroupFactory.QueryGroupImp;
|
|
import cn.cslg.pas.factorys.reGroupFactory.QueryGroupImp;
|
|
@@ -33,105 +34,118 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@Slf4j
|
|
@Slf4j
|
|
-public class EventService extends ServiceImpl<EventMapper, Event> implements Business {
|
|
|
|
|
|
+public class EventService extends ServiceImpl<EventMapper, Event> implements Business {
|
|
@Autowired
|
|
@Autowired
|
|
- private EventMapper eventMapper;
|
|
|
|
|
|
+ private EventMapper eventMapper;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private FormatQueryService formatQueryService;
|
|
private FormatQueryService formatQueryService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private FileManagerService fileManagerService;
|
|
private FileManagerService fileManagerService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private AssoEventFileService assoEventFileService;
|
|
private AssoEventFileService assoEventFileService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private QueryGroupFactory queryGroupFactory;
|
|
private QueryGroupFactory queryGroupFactory;
|
|
- public String getEvent(String sql){
|
|
|
|
|
|
+
|
|
|
|
+ public String getEvent(String sql) {
|
|
eventMapper.getEvent(sql);
|
|
eventMapper.getEvent(sql);
|
|
- return "";
|
|
|
|
|
|
+ return "";
|
|
}
|
|
}
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public Object queryMessage(QueryRequest queryRequest) throws Exception {
|
|
public Object queryMessage(QueryRequest queryRequest) throws Exception {
|
|
- //合成检索式
|
|
|
|
- StringRequest stringRequest =null;
|
|
|
|
- if(queryRequest instanceof MapRequest){
|
|
|
|
|
|
+ //合成检索式
|
|
|
|
+ StringRequest stringRequest = null;
|
|
|
|
+ if (queryRequest instanceof MapRequest) {
|
|
|
|
|
|
|
|
+ } else {
|
|
|
|
+ stringRequest = (StringRequest) queryRequest;
|
|
}
|
|
}
|
|
- else {
|
|
|
|
- stringRequest =(StringRequest)queryRequest;
|
|
|
|
- }
|
|
|
|
- String condition =stringRequest.getSearchQuery();
|
|
|
|
- //将检索式转换为二叉树
|
|
|
|
- treeNode tree = expressManager.getInstance().Parse(condition, false);
|
|
|
|
- //格式化检索式
|
|
|
|
- String sql = formatQueryService.ToString((operateNode) tree);
|
|
|
|
- //格式化排序
|
|
|
|
- if(queryRequest.getOrderDTOList()!=null&&queryRequest.getOrderDTOList().size()!=0) {
|
|
|
|
|
|
+ String condition = stringRequest.getSearchQuery();
|
|
|
|
+
|
|
|
|
+ //将检索式转换为二叉树
|
|
|
|
+ treeNode tree = expressManager.getInstance().Parse(condition, false);
|
|
|
|
+
|
|
|
|
+ //格式化检索式
|
|
|
|
+ String sql = formatQueryService.ToString((operateNode) tree);
|
|
|
|
+
|
|
|
|
+ //格式化排序
|
|
|
|
+ if (queryRequest.getOrderDTOList() != null && queryRequest.getOrderDTOList().size() != 0) {
|
|
String orderSql = formatQueryService.orderToString(queryRequest.getOrderDTOList());
|
|
String orderSql = formatQueryService.orderToString(queryRequest.getOrderDTOList());
|
|
- sql+=orderSql;
|
|
|
|
|
|
+ sql += orderSql;
|
|
}
|
|
}
|
|
|
|
+
|
|
//格式化 分页信息
|
|
//格式化 分页信息
|
|
- if(queryRequest.getSize()!=null&&queryRequest.getCurrent()!=null) {
|
|
|
|
- Long size =queryRequest.getSize();
|
|
|
|
- Long current =queryRequest.getCurrent();
|
|
|
|
- String page= " limit "+((current-1)*size)+","+size;
|
|
|
|
- sql +=page;
|
|
|
|
|
|
+ if (queryRequest.getSize() != null && queryRequest.getCurrent() != null) {
|
|
|
|
+ Long size = queryRequest.getSize();
|
|
|
|
+ Long current = queryRequest.getCurrent();
|
|
|
|
+ String page = " limit " + ((current - 1) * size) + "," + size;
|
|
|
|
+ sql += page;
|
|
}
|
|
}
|
|
|
|
+
|
|
//根据sql查询事件信息
|
|
//根据sql查询事件信息
|
|
- List<Integer> ids = eventMapper.getEvent(sql);
|
|
|
|
|
|
+ List<EventVO> eventVOS = eventMapper.getEvent(sql);
|
|
|
|
|
|
- System.out.println(ids);
|
|
|
|
|
|
+ //装载事件信息
|
|
|
|
+ this.loadEvent(eventVOS);
|
|
return "";
|
|
return "";
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Integer addMessage(Object object, List<MultipartFile> files) {
|
|
public Integer addMessage(Object object, List<MultipartFile> files) {
|
|
- EventDTO eventDTO =(EventDTO)object;
|
|
|
|
- //检查事件格式 TODO
|
|
|
|
|
|
+ EventDTO eventDTO = (EventDTO) object;
|
|
|
|
+ //检查事件格式
|
|
|
|
+ if(eventDTO.getScenarioId()==null){
|
|
|
|
+ throw new XiaoShiException("参数错误");
|
|
|
|
+ }
|
|
|
|
+
|
|
//根据名称查询是否重复
|
|
//根据名称查询是否重复
|
|
eventDTO.setName(eventDTO.getName().trim());
|
|
eventDTO.setName(eventDTO.getName().trim());
|
|
- String name = eventDTO.getName();
|
|
|
|
- LambdaQueryWrapper<Event> queryWrapper =new LambdaQueryWrapper<>();
|
|
|
|
- queryWrapper.eq(Event::getName,name);
|
|
|
|
- List<Event> events =this.list(queryWrapper);
|
|
|
|
- if(events==null||events.size()==0){
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
- Event event =new Event();
|
|
|
|
- BeanUtils.copyProperties(eventDTO,event);
|
|
|
|
|
|
+ String name = eventDTO.getName();
|
|
|
|
+ LambdaQueryWrapper<Event> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ queryWrapper.eq(Event::getName, name);
|
|
|
|
+ List<Event> events = this.list(queryWrapper);
|
|
|
|
+ if (events != null && events.size() != 0) {
|
|
|
|
+ throw new XiaoShiException("参数错误");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //事件入库
|
|
|
|
+ Event event = new Event();
|
|
|
|
+ BeanUtils.copyProperties(eventDTO, event);
|
|
event.insert();
|
|
event.insert();
|
|
- if (files != null && files.size() != 0)
|
|
|
|
- {
|
|
|
|
|
|
+ if (files != null && files.size() != 0) {
|
|
try {
|
|
try {
|
|
List<String> guids = fileManagerService.uploadFileGetGuid(files);
|
|
List<String> guids = fileManagerService.uploadFileGetGuid(files);
|
|
- List<AssoEventFile> assoEventFiles =new ArrayList<>();
|
|
|
|
- guids.forEach(item->{
|
|
|
|
- AssoEventFile assoEventFile =new AssoEventFile();
|
|
|
|
|
|
+ List<AssoEventFile> assoEventFiles = new ArrayList<>();
|
|
|
|
+ guids.forEach(item -> {
|
|
|
|
+ AssoEventFile assoEventFile = new AssoEventFile();
|
|
assoEventFile.setEventId(event.getId());
|
|
assoEventFile.setEventId(event.getId());
|
|
assoEventFile.setFileGuid(item);
|
|
assoEventFile.setFileGuid(item);
|
|
assoEventFile.setCreateId(1);
|
|
assoEventFile.setCreateId(1);
|
|
assoEventFiles.add(assoEventFile);
|
|
assoEventFiles.add(assoEventFile);
|
|
});
|
|
});
|
|
- if(assoEventFiles!=null&&assoEventFiles.size()!=0){
|
|
|
|
|
|
+ if (assoEventFiles != null && assoEventFiles.size() != 0) {
|
|
assoEventFileService.saveBatch(assoEventFiles);
|
|
assoEventFileService.saveBatch(assoEventFiles);
|
|
}
|
|
}
|
|
- }
|
|
|
|
- catch (Exception e){
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
return event.getId();
|
|
return event.getId();
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public Object deleteMessage(List<Integer> ids) {
|
|
public Object deleteMessage(List<Integer> ids) {
|
|
- //根据事件id删除事件
|
|
|
|
|
|
+ //根据事件id删除事件
|
|
this.removeBatchByIds(ids);
|
|
this.removeBatchByIds(ids);
|
|
//根据事件id删除事件和文件关联
|
|
//根据事件id删除事件和文件关联
|
|
- LambdaQueryWrapper<AssoEventFile> queryWrapper =new LambdaQueryWrapper<>();
|
|
|
|
- queryWrapper.in(AssoEventFile::getId,ids);
|
|
|
|
- List<AssoEventFile> assoEventFiles =assoEventFileService.list(queryWrapper);
|
|
|
|
- List<String> guids =assoEventFiles.stream().map(AssoEventFile::getFileGuid).collect(Collectors.toList());
|
|
|
|
|
|
+ LambdaQueryWrapper<AssoEventFile> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ queryWrapper.in(AssoEventFile::getId, ids);
|
|
|
|
+ List<AssoEventFile> assoEventFiles = assoEventFileService.list(queryWrapper);
|
|
|
|
+ List<String> guids = assoEventFiles.stream().map(AssoEventFile::getFileGuid).collect(Collectors.toList());
|
|
//TODO 根据guid删除文件
|
|
//TODO 根据guid删除文件
|
|
//删除事件和文件关联表
|
|
//删除事件和文件关联表
|
|
assoEventFiles.remove(queryWrapper);
|
|
assoEventFiles.remove(queryWrapper);
|
|
@@ -140,53 +154,56 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bu
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Object updateMessage(Object object, List<MultipartFile> files) {
|
|
public Object updateMessage(Object object, List<MultipartFile> files) {
|
|
- EventDTO eventDTO =(EventDTO)object;
|
|
|
|
|
|
+ EventDTO eventDTO = (EventDTO) object;
|
|
//检查事件格式 TODO
|
|
//检查事件格式 TODO
|
|
//根据名称查询是否重复
|
|
//根据名称查询是否重复
|
|
eventDTO.setName(eventDTO.getName().trim());
|
|
eventDTO.setName(eventDTO.getName().trim());
|
|
- String name = eventDTO.getName();
|
|
|
|
- LambdaQueryWrapper<Event> queryWrapper =new LambdaQueryWrapper<>();
|
|
|
|
- queryWrapper.eq(Event::getName,name);
|
|
|
|
- List<Event> events =this.list(queryWrapper);
|
|
|
|
- if(events==null||events.size()==0){
|
|
|
|
|
|
+ String name = eventDTO.getName();
|
|
|
|
+ LambdaQueryWrapper<Event> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ queryWrapper.eq(Event::getName, name);
|
|
|
|
+ List<Event> events = this.list(queryWrapper);
|
|
|
|
+ if (events == null || events.size() == 0) {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
- Event event =new Event();
|
|
|
|
- BeanUtils.copyProperties(eventDTO,event);
|
|
|
|
|
|
+ Event event = new Event();
|
|
|
|
+ BeanUtils.copyProperties(eventDTO, event);
|
|
event.insert();
|
|
event.insert();
|
|
- if (files != null && files.size() != 0)
|
|
|
|
- {
|
|
|
|
|
|
+ if (files != null && files.size() != 0) {
|
|
try {
|
|
try {
|
|
List<String> guids = fileManagerService.uploadFileGetGuid(files);
|
|
List<String> guids = fileManagerService.uploadFileGetGuid(files);
|
|
- List<AssoEventFile> assoEventFiles =new ArrayList<>();
|
|
|
|
- guids.forEach(item->{
|
|
|
|
- AssoEventFile assoEventFile =new AssoEventFile();
|
|
|
|
|
|
+ List<AssoEventFile> assoEventFiles = new ArrayList<>();
|
|
|
|
+ guids.forEach(item -> {
|
|
|
|
+ AssoEventFile assoEventFile = new AssoEventFile();
|
|
assoEventFile.setEventId(event.getId());
|
|
assoEventFile.setEventId(event.getId());
|
|
assoEventFile.setFileGuid(item);
|
|
assoEventFile.setFileGuid(item);
|
|
assoEventFile.setCreateId(1);
|
|
assoEventFile.setCreateId(1);
|
|
assoEventFiles.add(assoEventFile);
|
|
assoEventFiles.add(assoEventFile);
|
|
});
|
|
});
|
|
- if(assoEventFiles!=null&&assoEventFiles.size()!=0){
|
|
|
|
|
|
+ if (assoEventFiles != null && assoEventFiles.size() != 0) {
|
|
assoEventFileService.saveBatch(assoEventFiles);
|
|
assoEventFileService.saveBatch(assoEventFiles);
|
|
}
|
|
}
|
|
- }
|
|
|
|
- catch (Exception e){
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
return event.getId();
|
|
return event.getId();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 查询事件分组信息
|
|
|
|
+ * @param groupRequest
|
|
|
|
+ * @return
|
|
|
|
+ * @throws Exception
|
|
|
|
+ */
|
|
public GroupVO getGroup(GroupRequest groupRequest) throws Exception {
|
|
public GroupVO getGroup(GroupRequest groupRequest) throws Exception {
|
|
//合成检索式
|
|
//合成检索式
|
|
- StringGroupRequest stringGroupRequest =null;
|
|
|
|
- if(groupRequest instanceof MapGroupRequest){
|
|
|
|
|
|
+ StringGroupRequest stringGroupRequest = null;
|
|
|
|
+ if (groupRequest instanceof MapGroupRequest) {
|
|
|
|
|
|
|
|
+ } else {
|
|
|
|
+ stringGroupRequest = (StringGroupRequest) groupRequest;
|
|
}
|
|
}
|
|
- else {
|
|
|
|
- stringGroupRequest =(StringGroupRequest)groupRequest;
|
|
|
|
- }
|
|
|
|
- String condition =stringGroupRequest.getSearchQuery();
|
|
|
|
|
|
+ String condition = stringGroupRequest.getSearchQuery();
|
|
|
|
|
|
//将检索式转换为二叉树
|
|
//将检索式转换为二叉树
|
|
treeNode tree = expressManager.getInstance().Parse(condition, false);
|
|
treeNode tree = expressManager.getInstance().Parse(condition, false);
|
|
@@ -195,36 +212,49 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bu
|
|
String sql = formatQueryService.ToString((operateNode) tree);
|
|
String sql = formatQueryService.ToString((operateNode) tree);
|
|
|
|
|
|
//格式化 分组
|
|
//格式化 分组
|
|
- String json = CommonService.readJsonFile("event_group.json");
|
|
|
|
- List<GroupConfig> groupConfigs = JSON.parseArray(json,GroupConfig.class);
|
|
|
|
- GroupConfig groupConfig = groupConfigs.stream().filter(item->item.getField().equals(groupRequest.getGroupBy())).findFirst().orElse(null);
|
|
|
|
- if(groupConfig!=null){
|
|
|
|
- sql+=" group by "+groupConfig.getSqlField()+" ";
|
|
|
|
|
|
+ String json = CommonService.readJsonFile("event_group.json");
|
|
|
|
+ List<GroupConfig> groupConfigs = JSON.parseArray(json, GroupConfig.class);
|
|
|
|
+ GroupConfig groupConfig = groupConfigs.stream().filter(item -> item.getField().equals(groupRequest.getGroupBy())).findFirst().orElse(null);
|
|
|
|
+ if (groupConfig != null) {
|
|
|
|
+ sql += " group by " + groupConfig.getSqlField() + " ";
|
|
}
|
|
}
|
|
|
|
|
|
//格式化排序
|
|
//格式化排序
|
|
- if(groupRequest.getOrderDTOList()!=null&&groupRequest.getOrderDTOList().size()!=0) {
|
|
|
|
|
|
+ if (groupRequest.getOrderDTOList() != null && groupRequest.getOrderDTOList().size() != 0) {
|
|
String orderSql = formatQueryService.orderToString(groupRequest.getOrderDTOList());
|
|
String orderSql = formatQueryService.orderToString(groupRequest.getOrderDTOList());
|
|
- sql+=orderSql;
|
|
|
|
|
|
+ sql += orderSql;
|
|
}
|
|
}
|
|
|
|
|
|
//格式化 分页信息
|
|
//格式化 分页信息
|
|
- if(groupRequest.getSize()!=null&&groupRequest.getCurrent()!=null) {
|
|
|
|
- Long size =groupRequest.getSize();
|
|
|
|
- Long current =groupRequest.getCurrent();
|
|
|
|
- String page= " limit "+((current-1)*size)+","+size;
|
|
|
|
- sql +=page;
|
|
|
|
|
|
+ if (groupRequest.getSize() != null && groupRequest.getCurrent() != null) {
|
|
|
|
+ Long size = groupRequest.getSize();
|
|
|
|
+ Long current = groupRequest.getCurrent();
|
|
|
|
+ String page = " limit " + ((current - 1) * size) + "," + size;
|
|
|
|
+ sql += page;
|
|
}
|
|
}
|
|
|
|
|
|
//返回分组数据
|
|
//返回分组数据
|
|
- QueryGroupImp queryGroupImp = queryGroupFactory.getClass(groupConfig.getGroupClass());
|
|
|
|
- List<String> strs = queryGroupImp.getGroup(sql,"event",groupConfig.getSqlField());
|
|
|
|
|
|
+ QueryGroupImp queryGroupImp = queryGroupFactory.getClass(groupConfig.getGroupClass());
|
|
|
|
+ List<String> strs = queryGroupImp.getGroup(sql, "event", groupConfig.getSqlField());
|
|
|
|
|
|
- //装载数据
|
|
|
|
- GroupVO groupVO =new GroupVO();
|
|
|
|
|
|
+ //装载数据
|
|
|
|
+ GroupVO groupVO = new GroupVO();
|
|
groupVO.setField(groupRequest.getGroupBy());
|
|
groupVO.setField(groupRequest.getGroupBy());
|
|
groupVO.setValues(strs);
|
|
groupVO.setValues(strs);
|
|
return groupVO;
|
|
return groupVO;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ private void loadEvent(List<EventVO> eventVO){
|
|
|
|
+ //查询创建人名称
|
|
|
|
+
|
|
|
|
+ //查询客户名称
|
|
|
|
+
|
|
|
|
+ //查询应用场景
|
|
|
|
+
|
|
|
|
+ //装载文件信息
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|