浏览代码

查询配置老师端首页入口

cy 3 年之前
父节点
当前提交
ee5f74ede8

+ 8 - 0
cms/src/main/java/com/ym/mec/cms/controller/NewsController.java

@@ -38,6 +38,8 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.web.WebFeignService;
 import com.yonge.log.model.AuditLogAnnotation;
 
+import javax.validation.constraints.NotNull;
+
 @RestController
 @RequestMapping("news")
 @Api(tags = "资讯服务")
@@ -182,4 +184,10 @@ public class NewsController extends BaseController {
 		return succeed(sysNewsInformationService.deleteWithLogical(id));
 	}
 
+	@ApiOperation("查询资讯详情")
+	@ApiImplicitParam(name = "id", value = "资讯ID编号", required = true, dataType = "Long")
+	@GetMapping("/list/tree")
+	public Object listWithTree(Integer id) {
+		return succeed(sysNewsTypeService.listWithTree(id));
+	}
 }

+ 2 - 1
cms/src/main/java/com/ym/mec/cms/dal/dao/SysNewsInformationDao.java

@@ -6,6 +6,7 @@ import java.util.Map;
 import com.ym.mec.cms.dal.entity.SysNewsInformation;
 import com.ym.mec.cms.dto.SysNewsInformationDto;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 public interface SysNewsInformationDao extends BaseDAO<Long, SysNewsInformation> {
 
@@ -14,7 +15,7 @@ public interface SysNewsInformationDao extends BaseDAO<Long, SysNewsInformation>
 	 * @param type
 	 * @return
 	 */
-	List<SysNewsInformation> queryByType(Integer type);
+	List<SysNewsInformation> queryByType(@Param("type") Integer type);
 
 	/**
 	 * 逻辑删除

+ 22 - 1
cms/src/main/java/com/ym/mec/cms/dal/entity/SysNewsType.java

@@ -4,6 +4,8 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import com.ym.mec.common.entity.BaseEntity;
 
+import java.util.List;
+
 /**
  * 对应数据库表(sys_news_type):
  */
@@ -26,7 +28,26 @@ public class SysNewsType extends BaseEntity {
 	
 	/**  */
 	private java.util.Date updateTime;
-	
+
+	private List<SysNewsType> children;
+	private List<SysNewsInformation> informationList;
+
+	public List<SysNewsInformation> getInformationList() {
+		return informationList;
+	}
+
+	public void setInformationList(List<SysNewsInformation> informationList) {
+		this.informationList = informationList;
+	}
+
+	public List<SysNewsType> getChildren() {
+		return children;
+	}
+
+	public void setChildren(List<SysNewsType> children) {
+		this.children = children;
+	}
+
 	public void setId(Integer id){
 		this.id = id;
 	}

+ 2 - 0
cms/src/main/java/com/ym/mec/cms/service/SysNewsTypeService.java

@@ -12,4 +12,6 @@ public interface SysNewsTypeService extends BaseService<Integer, SysNewsType> {
 
 	//根据父级查询子集
 	List<SysNewsTypeTree> queryByParentId(Integer parentId);
+
+	List<SysNewsType> listWithTree(Integer id);
 }

+ 69 - 33
cms/src/main/java/com/ym/mec/cms/service/impl/SysNewsTypeServiceImpl.java

@@ -1,7 +1,11 @@
 package com.ym.mec.cms.service.impl;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
+import com.ym.mec.cms.dal.dao.SysNewsInformationDao;
+import com.ym.mec.cms.dal.entity.SysNewsInformation;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -13,37 +17,69 @@ import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
 @Service
-public class SysNewsTypeServiceImpl extends BaseServiceImpl<Integer, SysNewsType>  implements SysNewsTypeService {
-	
-	@Autowired
-	private SysNewsTypeDao sysNewsTypeDao;
-
-	@Override
-	public BaseDAO<Integer, SysNewsType> getDAO() {
-		return sysNewsTypeDao;
-	}
-
-	@Override
-	public List<SysNewsTypeTree> queryTree(Integer parentId) {
-		if(parentId == null){
-			parentId = 0 ;
-		}
-		List<SysNewsTypeTree> sysNewsTypeList = queryByParentId(parentId);
-		if(sysNewsTypeList != null && sysNewsTypeList.size() > 0){
-			for(SysNewsTypeTree type : sysNewsTypeList){
-				type.setSubTypeList(queryTree(type.getId()));
-			}
-		}
-		
-		return sysNewsTypeList;
-	}
-
-	@Override
-	public List<SysNewsTypeTree> queryByParentId(Integer parentId) {
-		if(parentId == null){
-			parentId = 0 ;
-		}
-		return sysNewsTypeDao.queryByParentId(parentId);
-	}
-	
+public class SysNewsTypeServiceImpl extends BaseServiceImpl<Integer, SysNewsType> implements SysNewsTypeService {
+    @Autowired
+    private SysNewsTypeDao sysNewsTypeDao;
+    @Autowired
+    private SysNewsInformationDao informationDao;
+
+    @Override
+    public BaseDAO<Integer, SysNewsType> getDAO() {
+        return sysNewsTypeDao;
+    }
+
+    @Override
+    public List<SysNewsTypeTree> queryTree(Integer parentId) {
+        if (parentId == null) {
+            parentId = 0;
+        }
+        List<SysNewsTypeTree> sysNewsTypeList = queryByParentId(parentId);
+        if (sysNewsTypeList != null && sysNewsTypeList.size() > 0) {
+            for (SysNewsTypeTree type : sysNewsTypeList) {
+                type.setSubTypeList(queryTree(type.getId()));
+            }
+        }
+
+        return sysNewsTypeList;
+    }
+
+    @Override
+    public List<SysNewsTypeTree> queryByParentId(Integer parentId) {
+        if (parentId == null) {
+            parentId = 0;
+        }
+        return sysNewsTypeDao.queryByParentId(parentId);
+    }
+
+    public List<SysNewsType> listWithTree(Integer id) {
+        SysNewsType newsType = sysNewsTypeDao.get(id);
+        List<SysNewsType> all = sysNewsTypeDao.findAll(null);
+
+        all.forEach(e -> {
+            List<SysNewsInformation> list = informationDao.queryByType(e.getId());
+            if (CollectionUtils.isNotEmpty(list)) {
+                e.setInformationList(list);
+            }
+        });
+
+        List<SysNewsType> treeMenus = all.stream().filter((categoryEntity) -> {
+            return categoryEntity.getParentId() == newsType.getParentId();
+        }).map((menu) -> {
+            menu.setChildren(getChildren(menu, all));
+            return menu;
+        }).filter(e -> {
+            return e.getId().equals(id);
+        }).collect(Collectors.toList());
+        return treeMenus;
+    }
+
+    private List<SysNewsType> getChildren(SysNewsType rootMenu, List<SysNewsType> allMenus) {
+        List<SysNewsType> childrenList = allMenus.stream().filter(categoryEntity -> {
+            return categoryEntity.getParentId().equals(rootMenu.getId());
+        }).map(menu -> {
+            menu.setChildren(getChildren(menu, allMenus));
+            return menu;
+        }).collect(Collectors.toList());
+        return childrenList;
+    }
 }