package jnpf.base.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import jnpf.base.entity.DictionaryDataEntity; import jnpf.base.entity.PortalManageEntity; import jnpf.base.entity.SystemEntity; import jnpf.base.mapper.PortalManageMapper; import jnpf.base.model.portalManage.PortalManagePage; import jnpf.base.model.portalManage.PortalManagePageDO; import jnpf.base.model.portalManage.PortalManagePrimary; import jnpf.base.model.portalManage.PortalManageVO; import jnpf.base.service.DictionaryDataService; import jnpf.base.service.PortalManageService; import jnpf.base.service.SuperServiceImpl; import jnpf.base.service.SystemService; import jnpf.exception.WorkFlowException; import jnpf.permission.entity.UserEntity; import jnpf.permission.service.UserService; import jnpf.util.StringUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *

* 门户管理 服务实现类 *

* * @author YanYu * @since 2023-02-16 */ @Service public class PortalManageServiceImpl extends SuperServiceImpl implements PortalManageService { @Autowired private UserService userService; @Autowired private PortalManageMapper portalManageMapper; @Autowired private DictionaryDataService dictionaryDataService; @Autowired private SystemService systemService; @Override public void checkCreUp(PortalManageEntity creUpEntity) throws Exception{ // 当ID为空时,为添加方法 PortalManagePrimary primary = new PortalManagePrimary( creUpEntity.getPlatform(), creUpEntity.getPortalId(), creUpEntity.getSystemId()); if(creUpEntity.getId() == null){ if(count(primary.getQuery()) > 0) throw new Exception("此系统与平台下门户已存在"); } // if(creUpEntity.getHomePageMark() == 1) { // primary.getQuery().lambda().eq(PortalManageEntity::getEnabledMark, 1); // PortalManageEntity one = getOne(primary.getQuery()); // if(one != null && !one.getId().equals(creUpEntity.getId())){ // throw new Exception("已存在默认首页,不允许被保存"); // } // } } @Override public PortalManageVO convertVO(PortalManageEntity entity){ PortalManageVO vo = new PortalManageVO(); BeanUtils.copyProperties(entity, vo); vo.setId(entity.getId()); // 父类id声明泛型,会拷贝失败 // 创建人 UserEntity creatorUser = userService.getInfo(entity.getCreatorUserId()); vo.setCreatorUser(creatorUser != null ? creatorUser.getRealName() + "/" + creatorUser.getAccount() : entity.getCreatorUserId()); // 修改人 UserEntity lastModifyUser = userService.getInfo(entity.getCreatorUserId()); vo.setLastModifyUser(lastModifyUser != null ? lastModifyUser.getRealName() + "/" + lastModifyUser.getAccount() : ""); // 门户名称 vo.setFullName(portalManageMapper.getPortalFullName(entity.getPortalId())); String categoryId = portalManageMapper.getPortalCategoryId(entity.getPortalId()); DictionaryDataEntity dicInfo = dictionaryDataService.getInfo(portalManageMapper.getPortalCategoryId(entity.getPortalId())); String categoryName = dicInfo==null ?"":dicInfo.getFullName(); vo.setCategoryId(categoryId); vo.setCategoryName(categoryName); vo.setPlatform(entity.getPlatform()); vo.setSystemId(entity.getSystemId()); return vo; } @Override public List getList(PortalManagePrimary primary) { return list(primary.getQuery()).stream().map(this::convertVO).collect(Collectors.toList()); } @Override public List getListByEnable(PortalManagePrimary primary) { primary.getQuery().lambda().eq(PortalManageEntity::getEnabledMark, 1); return getList(primary); } @Override public PageDTO getPage(PortalManagePage pmPage) { String keyword = pmPage.getKeyword(); if (StringUtil.isNotEmpty(keyword)) { pmPage.setKeyword("%" + keyword + "%"); } PageDTO pageDto = portalManageMapper.selectPortalManageDoPage(pmPage.getPageDto(), pmPage); pmPage.setTotal(pageDto.getTotal()); return pageDto; } @Override public List getSelectList(PortalManagePage pmPage) { List list = portalManageMapper.selectPortalManageDoList(pmPage); return list; } @Override public List selectPortalBySystemIds(List systemIds, List collect) { if (collect == null) { return new ArrayList<>(); } if (systemIds.size() == 0) { systemIds.add(""); } return portalManageMapper.selectPortalBySystemIds(systemIds, collect); } @Override public void createBatch(List primaryLit) throws Exception { List list = new ArrayList<>(); for (PortalManagePrimary primary : primaryLit) { if(list(primary.getQuery()).size() < 1){ PortalManageEntity entity = primary.getEntity(); SystemEntity info = systemService.getInfo(entity.getSystemId()); if(info == null){ throw new WorkFlowException("找不到该应用"); } list.add(primary.getEntity()); } } saveBatch(list); } }