diff --git a/ruoyi-ui/src/api/benyi/microcourse.js b/ruoyi-ui/src/api/benyi/microcourse.js
index 44421114d..84816477f 100644
--- a/ruoyi-ui/src/api/benyi/microcourse.js
+++ b/ruoyi-ui/src/api/benyi/microcourse.js
@@ -9,6 +9,14 @@ export function listMicrocourse(query) {
})
}
+// 查询流程下拉树结构
+export function treeselect() {
+ return request({
+ url: '/benyi/microcourse/treeselect',
+ method: 'get'
+ })
+}
+
// 查询微型课程详细
export function getMicrocourse(id) {
return request({
diff --git a/ruoyi-ui/src/views/benyi/microcoursestudy/index.vue b/ruoyi-ui/src/views/benyi/microcoursestudy/index.vue
new file mode 100644
index 000000000..66c3101be
--- /dev/null
+++ b/ruoyi-ui/src/views/benyi/microcoursestudy/index.vue
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeSelect.java b/ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeSelect.java
index 3061da598..5bc313a5f 100644
--- a/ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeSelect.java
+++ b/ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeSelect.java
@@ -4,10 +4,7 @@ import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
import com.fasterxml.jackson.annotation.JsonInclude;
-import com.ruoyi.project.benyi.domain.ByAssessmentcontent;
-import com.ruoyi.project.benyi.domain.ByDayFlowDetail;
-import com.ruoyi.project.benyi.domain.ByMath;
-import com.ruoyi.project.benyi.domain.ByTheme;
+import com.ruoyi.project.benyi.domain.*;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysMenu;
@@ -68,6 +65,14 @@ public class TreeSelect implements Serializable
this.children = bytheme.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
+ //下拉树构造器
+ public TreeSelect(ByMicrocourse byMicrocourse) {
+
+ this.id = byMicrocourse.getId();
+ this.label = byMicrocourse.getTitle();
+ this.children = byMicrocourse.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
+ }
+
//下拉树构造器
public TreeSelect(ByMath bymath) {
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByMicrocourseController.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByMicrocourseController.java
index 9a1de0c04..81db4be5f 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByMicrocourseController.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByMicrocourseController.java
@@ -44,6 +44,16 @@ public class ByMicrocourseController extends BaseController {
return getDataTable(list);
}
+ /**
+ * 查询微型课程列表
+ */
+ @Log(title = "微型课程学习", businessType = BusinessType.QUERY)
+ @GetMapping("/treeselect")
+ public AjaxResult treeselect(ByMicrocourse byMicrocourse) {
+ List list = byMicrocourseService.selectByMicrocourseListTree(byMicrocourse);
+ return AjaxResult.success(byMicrocourseService.buildMicrocourseTreeSelect(list));
+ }
+
/**
* 导出微型课程列表
*/
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByMicrocourse.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByMicrocourse.java
index 6a915c52a..6a86ea8c8 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByMicrocourse.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByMicrocourse.java
@@ -5,6 +5,9 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* 微型课程对象 by_microcourse
*
@@ -55,6 +58,16 @@ public class ByMicrocourse extends BaseEntity {
@Excel(name = "序号")
private Long sort;
+ /**
+ * 树状父类ID
+ */
+ private Long parentId;
+
+ /**
+ * 树状子类
+ */
+ private List children = new ArrayList();
+
public void setId(Long id) {
this.id = id;
}
@@ -119,6 +132,22 @@ public class ByMicrocourse extends BaseEntity {
return sort;
}
+ public Long getParentId() {
+ return parentId;
+ }
+
+ public void setParentId(Long parentId) {
+ this.parentId = parentId;
+ }
+
+ public List getChildren() {
+ return children;
+ }
+
+ public void setChildren(List children) {
+ this.children = children;
+ }
+
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
@@ -131,6 +160,7 @@ public class ByMicrocourse extends BaseEntity {
.append("upanddown", getUpanddown())
.append("sort", getSort())
.append("createTime", getCreateTime())
+ .append("parentid", getParentId())
.toString();
}
}
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByMicrocourseMapper.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByMicrocourseMapper.java
index b13acc160..f04f10bb6 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByMicrocourseMapper.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByMicrocourseMapper.java
@@ -27,6 +27,14 @@ public interface ByMicrocourseMapper {
*/
public List selectByMicrocourseList(ByMicrocourse byMicrocourse);
+ /**
+ * 查询微型课程列表
+ *
+ * @param byMicrocourse 微型课程
+ * @return 微型课程集合
+ */
+ public List selectByMicrocourseListTree(ByMicrocourse byMicrocourse);
+
/**
* 新增微型课程
*
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByMicrocourseService.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByMicrocourseService.java
index 445eecbfe..db82b932e 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByMicrocourseService.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByMicrocourseService.java
@@ -2,7 +2,9 @@ package com.ruoyi.project.benyi.service;
import java.util.List;
+import com.ruoyi.framework.web.domain.TreeSelect;
import com.ruoyi.project.benyi.domain.ByMicrocourse;
+import com.ruoyi.project.benyi.domain.ByTheme;
/**
* 微型课程Service接口
@@ -27,6 +29,30 @@ public interface IByMicrocourseService {
*/
public List selectByMicrocourseList(ByMicrocourse byMicrocourse);
+ /**
+ * 查询微型课程列表
+ *
+ * @param byMicrocourse 微型课程
+ * @return 微型课程集合
+ */
+ public List selectByMicrocourseListTree(ByMicrocourse byMicrocourse);
+
+ /**
+ * 构建前端所需要树结构
+ *
+ * @param byMicrocourses 部门列表
+ * @return 树结构列表
+ */
+ public List buildMicrocourseDetailTree(List byMicrocourses);
+
+ /**
+ * 构建前端所需要下拉树结构
+ *
+ * @param byMicrocourses 部门列表
+ * @return 下拉树结构列表
+ */
+ public List buildMicrocourseTreeSelect(List byMicrocourses);
+
/**
* 新增微型课程
*
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByMicrocourseServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByMicrocourseServiceImpl.java
index 331dcb55d..096f6f4fe 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByMicrocourseServiceImpl.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByMicrocourseServiceImpl.java
@@ -1,8 +1,14 @@
package com.ruoyi.project.benyi.service.impl;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
+import java.util.stream.Collectors;
import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.web.domain.TreeSelect;
+import com.ruoyi.project.benyi.domain.ByTheme;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.project.benyi.mapper.ByMicrocourseMapper;
@@ -42,6 +48,100 @@ public class ByMicrocourseServiceImpl implements IByMicrocourseService {
return byMicrocourseMapper.selectByMicrocourseList(byMicrocourse);
}
+ /**
+ * 查询微型课程列表
+ *
+ * @param byMicrocourse 微型课程
+ * @return 微型课程集合
+ */
+ @Override
+ public List selectByMicrocourseListTree(ByMicrocourse byMicrocourse){
+ return byMicrocourseMapper.selectByMicrocourseListTree(byMicrocourse);
+ }
+
+ /**
+ * 构建前端所需要树结构
+ *
+ * @param byMicrocourses 部门列表
+ * @return 树结构列表
+ */
+ @Override
+ public List buildMicrocourseDetailTree(List byMicrocourses) {
+ //System.out.println("start---");
+ List returnList = new ArrayList();
+ List tempList = new ArrayList();
+ for (ByMicrocourse item : byMicrocourses) {
+ tempList.add(item.getId());
+ }
+ for (Iterator iterator = byMicrocourses.iterator(); iterator.hasNext(); ) {
+ ByMicrocourse item = (ByMicrocourse) iterator.next();
+ //System.out.println("test==="+!tempList.contains(item.getParentId()));
+ // 如果是顶级节点, 遍历该父节点的所有子节点
+ if (!tempList.contains(item.getParentId())) {
+ recursionFn(byMicrocourses, item);
+ returnList.add(item);
+ }
+ }
+ if (returnList.isEmpty()) {
+ returnList = byMicrocourses;
+ }
+ return returnList;
+ }
+
+ /**
+ * 构建前端所需要下拉树结构
+ *
+ * @param byMicrocourses 部门列表
+ * @return 下拉树结构列表
+ */
+ @Override
+ public List buildMicrocourseTreeSelect(List byMicrocourses) {
+ List byMicrocourseTrees = buildMicrocourseDetailTree(byMicrocourses);
+ return byMicrocourseTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
+ }
+
+ /**
+ * 递归列表
+ */
+ private void recursionFn(List list, ByMicrocourse t) {
+ // 得到子节点列表
+ List childList = getChildList(list, t);
+ t.setChildren(childList);
+ for (ByMicrocourse tChild : childList) {
+ if (hasChild(list, tChild)) {
+ // 判断是否有子节点
+ Iterator it = childList.iterator();
+ while (it.hasNext()) {
+ ByMicrocourse n = (ByMicrocourse) it.next();
+ recursionFn(list, n);
+ }
+ }
+ }
+ }
+
+ /**
+ * 得到子节点列表
+ */
+ private List getChildList(List list, ByMicrocourse t) {
+ List tlist = new ArrayList();
+ Iterator it = list.iterator();
+ while (it.hasNext()) {
+ ByMicrocourse n = (ByMicrocourse) it.next();
+ if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getId().longValue()) {
+ //System.out.println("parentid="+n.getParentId().longValue()+"---"+t.getId().longValue());
+ tlist.add(n);
+ }
+ }
+ return tlist;
+ }
+
+ /**
+ * 判断是否有子节点
+ */
+ private boolean hasChild(List list, ByMicrocourse t) {
+ return getChildList(list, t).size() > 0 ? true : false;
+ }
+
/**
* 新增微型课程
*
diff --git a/ruoyi/src/main/resources/mybatis/benyi/ByMicrocourseMapper.xml b/ruoyi/src/main/resources/mybatis/benyi/ByMicrocourseMapper.xml
index 98f264865..3c9603ba7 100644
--- a/ruoyi/src/main/resources/mybatis/benyi/ByMicrocourseMapper.xml
+++ b/ruoyi/src/main/resources/mybatis/benyi/ByMicrocourseMapper.xml
@@ -14,12 +14,27 @@
+
select id, title, author, contents, type, scpoe, upanddown, sort, create_time from by_microcourse
+
+ select dict_value+9999 id, 0 parent_id,dict_label title,dict_sort sort from sys_dict_data where dict_type='sys_yebjlx' and dict_label !='托班(2-3岁)'
+ union all
+ select id, scpoe+9999, title, sort from by_microcourse
+
+
+
+