|
@@ -3,14 +3,20 @@ package com.jkcredit.sysnews.service.navigationBar;
|
|
import com.jkcredit.sysnews.mapper.NavigationBarMapper;
|
|
import com.jkcredit.sysnews.mapper.NavigationBarMapper;
|
|
import com.jkcredit.sysnews.model.dto.navigationBar.NavigationBarDto;
|
|
import com.jkcredit.sysnews.model.dto.navigationBar.NavigationBarDto;
|
|
import com.jkcredit.sysnews.model.po.navigationBar.NavigationBarPo;
|
|
import com.jkcredit.sysnews.model.po.navigationBar.NavigationBarPo;
|
|
|
|
+import com.jkcredit.sysnews.model.vo.navigationBar.NavigationBarTreeVo;
|
|
|
|
+import com.jkcredit.sysnews.model.vo.navigationBar.NavigationBarVo;
|
|
import com.jkcredit.sysnews.service.base.BaseService;
|
|
import com.jkcredit.sysnews.service.base.BaseService;
|
|
|
|
+import com.jkcredit.sysnews.spi.lang.constant.CommonConstant;
|
|
import com.jkcredit.sysnews.spi.lang.exception.ServiceException;
|
|
import com.jkcredit.sysnews.spi.lang.exception.ServiceException;
|
|
|
|
+import com.jkcredit.sysnews.util.AssertUtils;
|
|
import com.jkcredit.sysnews.util.BeanUtil;
|
|
import com.jkcredit.sysnews.util.BeanUtil;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
@@ -43,4 +49,95 @@ public class NavigationBarServiceImpl extends BaseService implements NavigationB
|
|
throw new ServiceException("新增菜单栏失败");
|
|
throw new ServiceException("新增菜单栏失败");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<NavigationBarTreeVo> getNavigationBars(NavigationBarDto navigationBarDto) {
|
|
|
|
+ try {
|
|
|
|
+ List<NavigationBarPo> navigationBarPoList = navigationBarMapper.getNavigationBars(navigationBarDto);
|
|
|
|
+ List<NavigationBarTreeVo> navigationBarTreeVoList = new ArrayList<>();
|
|
|
|
+ for (NavigationBarPo navigationBarPo : navigationBarPoList) {
|
|
|
|
+ NavigationBarTreeVo navigationBarTreeVo = new NavigationBarTreeVo();
|
|
|
|
+ BeanUtil.copyProperties(navigationBarTreeVo, navigationBarPo);
|
|
|
|
+ navigationBarTreeVoList.add(navigationBarTreeVo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<NavigationBarTreeVo> resultList = new ArrayList<>();
|
|
|
|
+ for (NavigationBarTreeVo vo : navigationBarTreeVoList) {
|
|
|
|
+ if (vo.getLevel().equals(1)) {
|
|
|
|
+ vo.setChildList(getChildrenNode(vo.getId(), navigationBarTreeVoList));
|
|
|
|
+ resultList.add(vo);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return resultList;
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("获取菜单栏失败,失败原因:{}", e.getMessage());
|
|
|
|
+ throw new ServiceException("获取菜单栏失败");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 获取子节点的递归方法
|
|
|
|
+ private static List<NavigationBarTreeVo> getChildrenNode(Long id, List<NavigationBarTreeVo> nodeList) {
|
|
|
|
+ List<NavigationBarTreeVo> list = new ArrayList<>();
|
|
|
|
+ for (NavigationBarTreeVo node : nodeList) {
|
|
|
|
+ if (node.getParentId().equals(id)) {
|
|
|
|
+ // 递归获取子节点
|
|
|
|
+ node.setChildList(getChildrenNode(node.getId(), nodeList));
|
|
|
|
+ list.add(node);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = ServiceException.class)
|
|
|
|
+ public void editNavigationBar(NavigationBarDto dto) {
|
|
|
|
+ try {
|
|
|
|
+ validate(dto);
|
|
|
|
+ NavigationBarPo navigationBarPo = navigationBarMapper.getNavigationBarById(dto.getId());
|
|
|
|
+ if (!StringUtils.isBlank(dto.getName())) {
|
|
|
|
+ navigationBarPo.setName(dto.getName());
|
|
|
|
+ }
|
|
|
|
+ if (!StringUtils.isBlank(dto.getGoPageUrl())) {
|
|
|
|
+ navigationBarPo.setGoPageUrl(dto.getGoPageUrl());
|
|
|
|
+ }
|
|
|
|
+ if (dto.getHomePageFlag() != null) {
|
|
|
|
+ navigationBarPo.setHomePageFlag(dto.getHomePageFlag());
|
|
|
|
+ }
|
|
|
|
+ if (dto.getHomePageOrder() != null) {
|
|
|
|
+ navigationBarPo.setHomePageOrder(dto.getHomePageOrder());
|
|
|
|
+ }
|
|
|
|
+ navigationBarPo.setUpdateTime(new Date());
|
|
|
|
+ navigationBarMapper.updateById(navigationBarPo);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("编辑导航栏失败,失败原因:{}", e.getMessage());
|
|
|
|
+ throw new ServiceException("编辑导航栏失败");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = ServiceException.class)
|
|
|
|
+ public void deleteNavigationBar(Long id) {
|
|
|
|
+ List<NavigationBarPo> navigationBarPoList = navigationBarMapper.getNavigationBarByParentId(id);
|
|
|
|
+ if (navigationBarPoList.size() != 0) {
|
|
|
|
+ throw new ServiceException("此导航栏目录下有子导航,不允许删除!");
|
|
|
|
+ }
|
|
|
|
+ try {
|
|
|
|
+ NavigationBarPo navigationBarPo = navigationBarMapper.getNavigationBarById(id);
|
|
|
|
+ navigationBarPo.setUpdateTime(new Date());
|
|
|
|
+ navigationBarPo.setActivated(CommonConstant.ACTIVATED_DELETED);
|
|
|
|
+ navigationBarMapper.updateById(navigationBarPo);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("删除导航栏失败,失败原因:{}", e.getMessage());
|
|
|
|
+ throw new ServiceException("删除导航栏失败");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public NavigationBarVo getNavigationBarById(Long id) {
|
|
|
|
+ AssertUtils.assertNotNull(id, "id不能为空");
|
|
|
|
+ NavigationBarPo navigationBarPo = navigationBarMapper.getNavigationBarById(id);
|
|
|
|
+ NavigationBarVo navigationBarVo = new NavigationBarVo();
|
|
|
|
+ BeanUtil.copyProperties(navigationBarVo, navigationBarPo);
|
|
|
|
+ return navigationBarVo;
|
|
|
|
+ }
|
|
}
|
|
}
|