2021-04-19 11:51:22 +08:00
|
|
|
|
package io.dataease.service.panel;
|
|
|
|
|
|
|
|
|
|
import io.dataease.base.domain.*;
|
|
|
|
|
import io.dataease.base.mapper.PanelTemplateMapper;
|
|
|
|
|
import io.dataease.base.mapper.ext.ExtPanelTemplateMapper;
|
2021-05-25 18:58:47 +08:00
|
|
|
|
import io.dataease.commons.constants.CommonConstants;
|
|
|
|
|
import io.dataease.commons.utils.AuthUtils;
|
2021-04-19 11:51:22 +08:00
|
|
|
|
import io.dataease.commons.utils.BeanUtils;
|
|
|
|
|
import io.dataease.controller.request.panel.PanelTemplateRequest;
|
|
|
|
|
import io.dataease.dto.panel.PanelTemplateDTO;
|
2021-06-24 13:49:01 +08:00
|
|
|
|
import io.dataease.exception.DataEaseException;
|
2021-05-25 18:58:47 +08:00
|
|
|
|
import io.dataease.i18n.Translator;
|
2021-04-19 11:51:22 +08:00
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
2021-05-25 18:58:47 +08:00
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
2021-04-19 11:51:22 +08:00
|
|
|
|
import org.springframework.util.Assert;
|
2021-05-25 18:58:47 +08:00
|
|
|
|
import org.springframework.util.CollectionUtils;
|
2021-04-19 11:51:22 +08:00
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
import java.util.UUID;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Author: wangjiahao
|
|
|
|
|
* Date: 2021-03-05
|
|
|
|
|
* Description:
|
|
|
|
|
*/
|
|
|
|
|
@Service
|
|
|
|
|
public class PanelTemplateService {
|
|
|
|
|
|
|
|
|
|
private Logger LOGGER = LoggerFactory.getLogger(this.getClass());
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private PanelTemplateMapper panelTemplateMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
private ExtPanelTemplateMapper extPanelTemplateMapper;
|
|
|
|
|
|
|
|
|
|
public List<PanelTemplateDTO> templateList(PanelTemplateRequest panelTemplateRequest) {
|
2021-06-02 17:45:37 +08:00
|
|
|
|
panelTemplateRequest.setWithBlobs("N");
|
2021-04-19 11:51:22 +08:00
|
|
|
|
List<PanelTemplateDTO> panelTemplateList = extPanelTemplateMapper.panelTemplateList(panelTemplateRequest);
|
|
|
|
|
if(panelTemplateRequest.getWithChildren()){
|
|
|
|
|
getTreeChildren(panelTemplateList);
|
|
|
|
|
}
|
|
|
|
|
return panelTemplateList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void getTreeChildren(List<PanelTemplateDTO> parentPanelTemplateDTO){
|
|
|
|
|
Optional.ofNullable(parentPanelTemplateDTO).ifPresent(parent -> parent.forEach(panelTemplateDTO -> {
|
|
|
|
|
List<PanelTemplateDTO> panelTemplateDTOChildren = extPanelTemplateMapper.panelTemplateList(new PanelTemplateRequest(panelTemplateDTO.getId()));
|
|
|
|
|
panelTemplateDTO.setChildren(panelTemplateDTOChildren);
|
|
|
|
|
getTreeChildren(panelTemplateDTOChildren);
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<PanelTemplateDTO> getSystemTemplateType(PanelTemplateRequest panelTemplateRequest){
|
|
|
|
|
return extPanelTemplateMapper.panelTemplateList(panelTemplateRequest);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-05-25 18:58:47 +08:00
|
|
|
|
@Transactional
|
2021-04-19 11:51:22 +08:00
|
|
|
|
public PanelTemplateDTO save(PanelTemplateRequest request) {
|
|
|
|
|
if (StringUtils.isEmpty(request.getId())) {
|
2021-05-25 18:58:47 +08:00
|
|
|
|
request.setId(UUID.randomUUID().toString());
|
|
|
|
|
request.setCreateTime(System.currentTimeMillis());
|
|
|
|
|
request.setCreateBy(AuthUtils.getUser().getUsername());
|
|
|
|
|
//如果level 是0(第一级)指的是分类目录 设置父级为对应的templateType
|
2021-04-21 18:48:57 +08:00
|
|
|
|
if(request.getLevel()==0){
|
|
|
|
|
request.setPid(request.getTemplateType());
|
2021-05-25 18:58:47 +08:00
|
|
|
|
String nameCheckResult = this.nameCheck(CommonConstants.OPT_TYPE.INSERT,request.getName(),request.getPid(),null);
|
|
|
|
|
if(CommonConstants.CHECK_RESULT.EXIST_ALL.equals(nameCheckResult)){
|
2021-06-24 13:49:01 +08:00
|
|
|
|
DataEaseException.throwException(Translator.get("i18n_same_folder_can_not_repeat"));
|
2021-05-25 18:58:47 +08:00
|
|
|
|
}
|
|
|
|
|
}else{//模板插入 相同文件夹同名的模板进行覆盖(先删除)
|
|
|
|
|
PanelTemplateExample exampleDelete = new PanelTemplateExample();
|
|
|
|
|
exampleDelete.createCriteria().andPidEqualTo(request.getPid()).andNameEqualTo(request.getName());
|
|
|
|
|
panelTemplateMapper.deleteByExample(exampleDelete);
|
2021-04-21 18:48:57 +08:00
|
|
|
|
}
|
2021-04-19 11:51:22 +08:00
|
|
|
|
panelTemplateMapper.insert(request);
|
|
|
|
|
} else {
|
2021-05-25 18:58:47 +08:00
|
|
|
|
String nameCheckResult = this.nameCheck(CommonConstants.OPT_TYPE.UPDATE,request.getName(),request.getPid(),request.getId());
|
|
|
|
|
if(CommonConstants.CHECK_RESULT.EXIST_ALL.equals(nameCheckResult)){
|
2021-06-24 13:49:01 +08:00
|
|
|
|
DataEaseException.throwException(Translator.get("i18n_same_folder_can_not_repeat"));
|
2021-05-25 18:58:47 +08:00
|
|
|
|
}
|
2021-04-19 11:51:22 +08:00
|
|
|
|
panelTemplateMapper.updateByPrimaryKeySelective(request);
|
|
|
|
|
}
|
|
|
|
|
PanelTemplateDTO panelTemplateDTO = new PanelTemplateDTO();
|
|
|
|
|
BeanUtils.copyBean(panelTemplateDTO, request);
|
|
|
|
|
panelTemplateDTO.setLabel(request.getName());
|
|
|
|
|
return panelTemplateDTO;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-05-25 18:58:47 +08:00
|
|
|
|
//名称检查
|
|
|
|
|
public String nameCheck(String optType,String name,String pid,String id){
|
|
|
|
|
PanelTemplateExample example = new PanelTemplateExample();
|
|
|
|
|
if(CommonConstants.OPT_TYPE.INSERT.equals(optType)){
|
|
|
|
|
example.createCriteria().andPidEqualTo(pid).andNameEqualTo(name);
|
|
|
|
|
|
|
|
|
|
}else if(CommonConstants.OPT_TYPE.UPDATE.equals(optType)){
|
|
|
|
|
example.createCriteria().andPidEqualTo(pid).andNameEqualTo(name).andIdNotEqualTo(id);
|
|
|
|
|
}
|
|
|
|
|
List<PanelTemplate> panelTemplates = panelTemplateMapper.selectByExample(example);
|
|
|
|
|
if(CollectionUtils.isEmpty(panelTemplates)){
|
|
|
|
|
return CommonConstants.CHECK_RESULT.NONE;
|
|
|
|
|
}else{
|
|
|
|
|
return CommonConstants.CHECK_RESULT.EXIST_ALL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String nameCheck(PanelTemplateRequest request){
|
|
|
|
|
return nameCheck(request.getOptType(),request.getName(),request.getPid(),request.getId());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-04-19 18:20:15 +08:00
|
|
|
|
public void delete(String id){
|
2021-04-19 11:51:22 +08:00
|
|
|
|
Assert.notNull(id, "id cannot be null");
|
2021-04-19 18:20:15 +08:00
|
|
|
|
panelTemplateMapper.deleteByPrimaryKey(id);
|
2021-04-19 11:51:22 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public PanelTemplateWithBLOBs findOne(String panelId){
|
|
|
|
|
return panelTemplateMapper.selectByPrimaryKey(panelId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<PanelTemplateDTO> find(PanelTemplateRequest panelTemplateRequest){
|
|
|
|
|
List<PanelTemplateDTO> panelTemplateList = extPanelTemplateMapper.panelTemplateList(panelTemplateRequest);
|
|
|
|
|
return panelTemplateList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|