diff --git a/ruoyi-ui/src/api/classroom/vod/subject.js b/ruoyi-ui/src/api/classroom/vod/subject.js
new file mode 100644
index 00000000..2df5deb9
--- /dev/null
+++ b/ruoyi-ui/src/api/classroom/vod/subject.js
@@ -0,0 +1,28 @@
+import request from '@/utils/request'
+
+const api_name = '/classroom-service-vod/admin/vod/subject'
+
+export default {
+ //课程分类列表
+ getChildList(id) {
+ return request({
+ url: `${api_name}/getChildSubject/${id}`,
+ method: 'get'
+ })
+ },
+
+ addSubject(pid, subjectName) {
+ return request({
+ url: `${api_name}/addSubject/${pid}`,
+ method: 'post',
+ params:subjectName
+ })
+ },
+
+ delSubject(id) {
+ return request({
+ url: `${api_name}/delSubject/${id}`,
+ method: 'delete',
+ })
+ }
+}
diff --git a/ruoyi-ui/src/views/classroom/vod/subject/list.vue b/ruoyi-ui/src/views/classroom/vod/subject/list.vue
new file mode 100644
index 00000000..0ad5397c
--- /dev/null
+++ b/ruoyi-ui/src/views/classroom/vod/subject/list.vue
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+
+
+ 添加
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+ 点击上传
+ 只能上传xls文件,且不超过500kb
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/classroom/vod/teacher/form.vue b/ruoyi-ui/src/views/classroom/vod/teacher/form.vue
index ddcae6ec..47875f02 100644
--- a/ruoyi-ui/src/views/classroom/vod/teacher/form.vue
+++ b/ruoyi-ui/src/views/classroom/vod/teacher/form.vue
@@ -3,16 +3,16 @@
-
+
-
+
-
+
-
+
-
+
-
+
保存
@@ -69,6 +70,8 @@ export default {
avatar: null
},
+ onlyRead: false,
+
fileList: [],
rules: {
@@ -102,6 +105,7 @@ export default {
if (this.$route.query.id) {
const id = this.$route.query.id
this.fetchDataById(id)
+ this.onlyRead = this.$route.query.onlyRead
}
},
diff --git a/ruoyi-ui/src/views/classroom/vod/teacher/list.vue b/ruoyi-ui/src/views/classroom/vod/teacher/list.vue
index 6c7fd0c7..55fb585c 100644
--- a/ruoyi-ui/src/views/classroom/vod/teacher/list.vue
+++ b/ruoyi-ui/src/views/classroom/vod/teacher/list.vue
@@ -2,8 +2,8 @@
-
-
+
+
@@ -34,7 +34,7 @@
-
+
数据列表
添加
@@ -67,6 +67,9 @@
+
+ 查看
+
修改
diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiBeautyPicture.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiBeautyPicture.java
index f423bb7a..1238f595 100644
--- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiBeautyPicture.java
+++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiBeautyPicture.java
@@ -1,8 +1,13 @@
package com.xjs.apitools.domain;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
+import java.util.Date;
/**
* api mm图片实体
@@ -11,24 +16,35 @@ import java.io.Serializable;
* @since 2022-01-19
*/
@Data
+@TableName("api_beauty_picture")
public class ApiBeautyPicture implements Serializable {
private static final long serialVersionUID = 1L;
+ @TableId
+ private Long id;
+
+
/**
* 福利图片链接
*/
+ @TableField("url")
private String imageUrl;
/**
* 福利图片尺寸
*/
+ @TableField("size")
private String imageSize;
/**
* 福利图片文件大小
*/
+ @TableField("length")
private String imageFileLength;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Date createTime;
}
diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/mapper/BeautyPictureMapper.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/mapper/BeautyPictureMapper.java
new file mode 100644
index 00000000..293e0ebb
--- /dev/null
+++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/mapper/BeautyPictureMapper.java
@@ -0,0 +1,16 @@
+package com.xjs.apitools.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xjs.apitools.domain.ApiBeautyPicture;
+
+import java.util.List;
+
+/**
+ * @author xiejs
+ * @since 2022-07-02
+ */
+public interface BeautyPictureMapper extends BaseMapper {
+
+ List getRandomPicture();
+
+}
diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/BeautyPictureService.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/BeautyPictureService.java
new file mode 100644
index 00000000..5491e50f
--- /dev/null
+++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/BeautyPictureService.java
@@ -0,0 +1,17 @@
+package com.xjs.apitools.service;
+
+import com.xjs.apitools.domain.ApiBeautyPicture;
+
+import java.util.List;
+
+/**
+ * @author xiejs
+ * @since 2022-07-02
+ */
+public interface BeautyPictureService {
+ /**
+ * 获取随机的图片
+ * @return list
+ */
+ List getRandomPicture();
+}
diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/impl/ApiToolsServiceImpl.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/impl/ApiToolsServiceImpl.java
index d137f8df..f7836b3d 100644
--- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/impl/ApiToolsServiceImpl.java
+++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/impl/ApiToolsServiceImpl.java
@@ -4,21 +4,27 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.ChineseDate;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.utils.StringUtils;
import com.xjs.apitools.domain.*;
import com.xjs.apitools.factory.ApiToolsFactory;
import com.xjs.apitools.factory.impl.*;
+import com.xjs.apitools.mapper.BeautyPictureMapper;
import com.xjs.apitools.service.ApiToolsService;
import com.xjs.exception.ApiException;
import com.xjs.utils.WeekUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
+import java.util.Optional;
import java.util.stream.Collectors;
/**
@@ -35,6 +41,9 @@ public class ApiToolsServiceImpl implements ApiToolsService {
*/
public static final String KB = "KB";
+ @Resource
+ private BeautyPictureMapper beautyPictureMapper;
+
private ApiToolsFactory holidayFactory;
private ApiToolsFactory mobileBelongFactory;
private ApiToolsFactory nowWeatherFactory;
@@ -166,9 +175,9 @@ public class ApiToolsServiceImpl implements ApiToolsService {
@Override
public List getBeautyPictureList() {
- List apiBeautyPictureList = beautyPictureFactory.apiDataList();
+ List apiBeautyPictureList = Optional.ofNullable(beautyPictureFactory.apiDataList()).orElseGet(ArrayList::new);
if (CollUtil.isEmpty(apiBeautyPictureList)) {
- throw new ApiException("获取的mm图片数据为空");
+ return apiBeautyPictureList;
}
apiBeautyPictureList.forEach(bp -> {
String imageFileLength = bp.getImageFileLength();
@@ -176,8 +185,15 @@ public class ApiToolsServiceImpl implements ApiToolsService {
BigDecimal decimal = new BigDecimal(imageFileLength);
BigDecimal divide = decimal.divide(new BigDecimal(1024), 0, RoundingMode.HALF_UP);
bp.setImageFileLength(divide.toPlainString() + KB);
+
+ //保存到数据库
+ List pictureList = beautyPictureMapper.selectList(new LambdaQueryWrapper().eq(ApiBeautyPicture::getImageUrl, bp.getImageUrl()));
+ if (CollectionUtils.isEmpty(pictureList)) {
+ beautyPictureMapper.insert(bp);
+ }
}
});
+
return apiBeautyPictureList;
}
diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/impl/BeautyPictureServiceImpl.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/impl/BeautyPictureServiceImpl.java
new file mode 100644
index 00000000..55803190
--- /dev/null
+++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/impl/BeautyPictureServiceImpl.java
@@ -0,0 +1,27 @@
+package com.xjs.apitools.service.impl;
+
+import com.xjs.apitools.domain.ApiBeautyPicture;
+import com.xjs.apitools.mapper.BeautyPictureMapper;
+import com.xjs.apitools.service.BeautyPictureService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author xiejs
+ * @since 2022-07-02
+ */
+@Service
+public class BeautyPictureServiceImpl implements BeautyPictureService {
+
+ @Resource
+ private BeautyPictureMapper beautyPictureMapper;
+
+ @Override
+ public List getRandomPicture() {
+ List beautyPictureList = beautyPictureMapper.getRandomPicture();
+
+ return beautyPictureList;
+ }
+}
diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/controller/IndexController.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/controller/IndexController.java
index fdc89f4a..5843b905 100644
--- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/controller/IndexController.java
+++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/controller/IndexController.java
@@ -10,6 +10,7 @@ import com.ruoyi.system.api.domain.SysOperLog;
import com.ruoyi.system.api.model.LoginUser;
import com.xjs.apitools.domain.ApiBeautyPicture;
import com.xjs.apitools.service.ApiToolsService;
+import com.xjs.apitools.service.BeautyPictureService;
import com.xjs.business.english.RemoteEnglishFeign;
import com.xjs.business.english.domain.EnglishWordDTO;
import com.xjs.business.log.RemoteLogFeign;
@@ -78,6 +79,8 @@ public class IndexController {
private ApiToolsService apiToolsService;
@Autowired
private IPService ipService;
+ @Autowired
+ private BeautyPictureService beautyPictureService;
@GetMapping("showData")
@ApiOperation("展示数据")
@@ -174,11 +177,13 @@ public class IndexController {
.map(ApiBeautyPicture::getImageUrl).collect(Collectors.toList()), executor);
CompletableFuture> twoFuture = CompletableFuture.supplyAsync(() ->
- apiToolsService.getBeautyPictureList().stream()
+ //apiToolsService.getBeautyPictureList().stream()
+ beautyPictureService.getRandomPicture().stream()
.map(ApiBeautyPicture::getImageUrl).collect(Collectors.toList()), executor);
CompletableFuture> threeFuture = CompletableFuture.supplyAsync(() ->
- apiToolsService.getBeautyPictureList().stream()
+ //apiToolsService.getBeautyPictureList().stream()
+ beautyPictureService.getRandomPicture().stream()
.map(ApiBeautyPicture::getImageUrl).collect(Collectors.toList()), executor);
diff --git a/xjs-business/xjs-business-openapi/src/main/resources/mapper/openapi/ApiBeautyPictureMapper.xml b/xjs-business/xjs-business-openapi/src/main/resources/mapper/openapi/ApiBeautyPictureMapper.xml
new file mode 100644
index 00000000..2e5cf63a
--- /dev/null
+++ b/xjs-business/xjs-business-openapi/src/main/resources/mapper/openapi/ApiBeautyPictureMapper.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/controller/SubjectController.java b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/controller/SubjectController.java
new file mode 100644
index 00000000..285a2a80
--- /dev/null
+++ b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/controller/SubjectController.java
@@ -0,0 +1,90 @@
+package com.xjs.classroom.vod.controller;
+
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.xjs.classroom.model.vod.Subject;
+import com.xjs.classroom.vod.service.ISubjectService;
+import com.xjs.exception.BusinessException;
+import com.xjs.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ *
+ * 课程科目 前端控制器
+ *
+ *
+ * @author xiejs
+ * @since 2022-06-30
+ */
+@RestController
+@RequestMapping("/admin/vod/subject")
+@Api(tags = "课程科目接口")
+public class SubjectController {
+
+ @Autowired
+ private ISubjectService subjectService;
+
+ //课程分类列表
+ //懒加载,每次查询一层数据
+ @ApiOperation("课程分类列表")
+ @GetMapping("getChildSubject/{id}")
+ public Result> getChildSubject(@PathVariable Long id) {
+ List list = subjectService.selectSubjectList(id);
+ return Result.ok(list);
+ }
+
+ @ApiOperation("课程分类添加")
+ @PostMapping("addSubject/{pid}")
+ public Result addSubject(@PathVariable Long pid, @RequestParam("subjectName") String subjectName) {
+ if (pid == null) {
+ pid = 0L;
+ }
+ Subject subject = new Subject();
+ subject.setParentId(pid);
+ subject.setTitle(subjectName);
+ subjectService.save(subject);
+
+ return Result.ok(null);
+ }
+
+ @ApiOperation("课程分类删除")
+ @DeleteMapping("delSubject/{id}")
+ public Result delSubject(@PathVariable("id") Long id) {
+ Subject subject_p = subjectService.getById(id);
+
+ List list = subjectService.list(new LambdaQueryWrapper().eq(Subject::getParentId, subject_p.getId()));
+ if (CollUtil.isEmpty(list)) {
+ subjectService.removeById(id);
+ return Result.ok(null);
+ }else {
+ throw new BusinessException("存在子节点");
+ }
+
+ }
+
+ //课程分类导出
+ @ApiOperation("课程分类导出")
+ @GetMapping("exportData")
+ public void exportData(HttpServletResponse response) {
+ subjectService.exportData(response);
+ }
+
+ //课程分类导入
+ @ApiOperation("课程分类导入")
+ @PostMapping("importData")
+ public Result importData(MultipartFile file) {
+ subjectService.importData(file);
+ return Result.ok(null);
+ }
+
+
+}
+
diff --git a/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/listener/SubjectListener.java b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/listener/SubjectListener.java
new file mode 100644
index 00000000..e19f2e10
--- /dev/null
+++ b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/listener/SubjectListener.java
@@ -0,0 +1,34 @@
+package com.xjs.classroom.vod.listener;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.xjs.classroom.model.vod.Subject;
+import com.xjs.classroom.vo.vod.SubjectEeVo;
+import com.xjs.classroom.vod.mapper.SubjectMapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+public class SubjectListener extends AnalysisEventListener {
+
+ //注入mapper
+ @Resource
+ private SubjectMapper subjectMapper;
+
+ //一行一行,从第二行
+ @Override
+ public void invoke(SubjectEeVo subjectEeVo, AnalysisContext analysisContext) {
+ Subject subject = new Subject();
+ // SubjectEeVo -- Subject
+ BeanUtils.copyProperties(subjectEeVo,subject);
+ //添加
+ subjectMapper.insert(subject);
+ }
+
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+
+ }
+}
diff --git a/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/mapper/SubjectMapper.java b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/mapper/SubjectMapper.java
new file mode 100644
index 00000000..49e0c544
--- /dev/null
+++ b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/mapper/SubjectMapper.java
@@ -0,0 +1,16 @@
+package com.xjs.classroom.vod.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xjs.classroom.model.vod.Subject;
+
+/**
+ *
+ * 课程科目 Mapper 接口
+ *
+ *
+ * @author xiejs
+ * @since 2022-06-30
+ */
+public interface SubjectMapper extends BaseMapper {
+
+}
diff --git a/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/mapper/xml/SubjectMapper.xml b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/mapper/xml/SubjectMapper.xml
new file mode 100644
index 00000000..b1b9706f
--- /dev/null
+++ b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/mapper/xml/SubjectMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/service/ISubjectService.java b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/service/ISubjectService.java
new file mode 100644
index 00000000..e1315027
--- /dev/null
+++ b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/service/ISubjectService.java
@@ -0,0 +1,32 @@
+package com.xjs.classroom.vod.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xjs.classroom.model.vod.Subject;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ *
+ * 课程科目 服务类
+ *
+ *
+ * @author xiejs
+ * @since 2022-06-30
+ */
+public interface ISubjectService extends IService {
+
+ /**
+ * 查询科目集合
+ * @param id
+ * @return
+ */
+ List selectSubjectList(Long id);
+
+ //课程分类导出
+ void exportData(HttpServletResponse response);
+
+ //课程分类导入
+ void importData(MultipartFile file);
+}
diff --git a/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/service/impl/SubjectServiceImpl.java b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/service/impl/SubjectServiceImpl.java
new file mode 100644
index 00000000..325cfd58
--- /dev/null
+++ b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/main/java/com/xjs/classroom/vod/service/impl/SubjectServiceImpl.java
@@ -0,0 +1,112 @@
+package com.xjs.classroom.vod.service.impl;
+
+import com.alibaba.excel.EasyExcel;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xjs.classroom.model.vod.Subject;
+import com.xjs.classroom.vo.vod.SubjectEeVo;
+import com.xjs.classroom.vod.listener.SubjectListener;
+import com.xjs.classroom.vod.mapper.SubjectMapper;
+import com.xjs.classroom.vod.service.ISubjectService;
+import com.xjs.exception.BusinessException;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * 课程科目 服务实现类
+ *
+ *
+ * @author xiejs
+ * @since 2022-06-30
+ */
+@Service
+public class SubjectServiceImpl extends ServiceImpl implements ISubjectService {
+
+ @Autowired
+ private SubjectListener subjectListener;
+
+ @Override
+ public List selectSubjectList(Long id) {
+
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+
+ wrapper.eq(Subject::getParentId, id);
+
+ List subjectList = baseMapper.selectList(wrapper);
+ //subjectList遍历,得到每个subject对象,判断是否有下一层数据,有hasChildren=true
+ for (Subject subject : subjectList) {
+ //获取subject的id值
+ Long subjectId = subject.getId();
+ //查询
+ boolean isChild = this.isChildren(subjectId);
+ //封装到对象里面
+ subject.setHasChildren(isChild);
+ }
+ return subjectList;
+ }
+
+ //课程分类导出
+ @Override
+ public void exportData(HttpServletResponse response) {
+ try {
+ //设置下载信息
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
+ String fileName = URLEncoder.encode("课程分类", "UTF-8");
+ response.setHeader("Content-disposition", "attachment;filename="+ fileName + ".xlsx");
+
+ //查询课程分类表所有数据
+ List subjectList = baseMapper.selectList(null);
+
+ //List --- List
+ List subjectEeVoList = new ArrayList<>();
+ for (Subject subject: subjectList) {
+ SubjectEeVo subjectEeVo = new SubjectEeVo();
+// subjectEeVo.setId(subject.getId());
+// subjectEeVo.setParentId(subject.getParentId());
+ BeanUtils.copyProperties(subject,subjectEeVo);
+ subjectEeVoList.add(subjectEeVo);
+ }
+
+ //EasyExcel写操作
+ EasyExcel.write(response.getOutputStream(), SubjectEeVo.class)
+ .sheet("课程分类")
+ .doWrite(subjectEeVoList);
+ }catch(Exception e) {
+ throw new BusinessException("导出失败");
+ }
+ }
+
+ //课程分类导入
+ @Override
+ public void importData(MultipartFile file) {
+ try {
+ EasyExcel.read(file.getInputStream(),
+ SubjectEeVo.class,
+ subjectListener).sheet().doRead();
+ } catch (IOException e) {
+ throw new BusinessException("导入失败");
+ }
+ }
+
+
+ //判断是否有下一层数据
+ private boolean isChildren(Long subjectId) {
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("parent_id", subjectId);
+ Long count = baseMapper.selectCount(wrapper);
+ // 1>0 true 0>0 false
+ return count > 0;
+ }
+}
diff --git a/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/test/java/CodeGet.java b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/test/java/CodeGet.java
index fdf84e87..99a6b83e 100644
--- a/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/test/java/CodeGet.java
+++ b/xjs-business/xjs-project-classroom/classroom-service/classroom-service-vod/src/test/java/CodeGet.java
@@ -8,7 +8,7 @@ public class CodeGet {
public static void main(String[] args) {
- FastAutoGenerator.create("jdbc:mysql://localhost:3306/xjs-srb-core?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8",
+ FastAutoGenerator.create("jdbc:mysql://localhost:3306/xjs-classroom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8",
"root", "root")
.globalConfig(builder -> {
builder.author("xiejs") // 设置作者
@@ -22,7 +22,7 @@ public class CodeGet {
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D:\\Dev\\IdeaPerject\\GitHub\\Cloud\\xjs-business\\xjs-project-classroom\\classroom-service\\classroom-service-vod\\src\\main\\resources\\mapper")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
- builder.addInclude("integral_grade")
+ builder.addInclude("subject")
.entityBuilder()
.enableLombok()
.logicDeleteColumnName("is_deleted")