diff --git a/src/main/java/com/teaching/backend/controller/chapter/ChapterController.java b/src/main/java/com/teaching/backend/controller/chapter/ChapterController.java new file mode 100644 index 0000000..83069df --- /dev/null +++ b/src/main/java/com/teaching/backend/controller/chapter/ChapterController.java @@ -0,0 +1,79 @@ +package com.teaching.backend.controller.chapter; + +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ResultUtils; +import com.teaching.backend.model.entity.chapter.Chapter; +import com.teaching.backend.model.vo.chapter.ChapterVo; +import com.teaching.backend.service.chapter.IChapterService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.LinkedList; +import java.util.List; + +@Api(tags = "课程章节管理接口") +@RestController +@RequestMapping("/chapter") +public class ChapterController { + + @Autowired + private IChapterService chapterService; + @ApiOperation("查看所有章节") + @GetMapping("/list") + public BaseResponse> AllList(){ + List list = chapterService.list(); + return ResultUtils.success(list); + } + @ApiOperation("添加章节") + @PostMapping("/add") + public BaseResponse addChapter(@RequestBody Chapter chapter){ + chapter.setNumshow(chapterService.updateNumShow(chapter)); + System.out.println("-=-=--=-000"+chapter.getNumshow()); + boolean save = chapterService.save(chapter); + return ResultUtils.success(save); + } + @ApiOperation("删除章节信息") + @DeleteMapping("/{id}") + public BaseResponse delete(@PathVariable String id){ + Boolean chapter = chapterService.deleteAfterUpdate(id); + return ResultUtils.success(chapter); + } + + + @ApiOperation("更新章节") + @PutMapping + public BaseResponse updateChapter(@RequestBody Chapter chapter){ + System.out.println(chapter); + boolean b = chapterService.updateById(chapter); + return ResultUtils.success(b); + } + @ApiOperation("查看所有章节linkedlist") + @GetMapping("/listall/{courseid}") + public BaseResponse> getAll(@PathVariable String courseid){ + LinkedList list =chapterService.getCourseChapter(courseid); + System.out.println(list); + return ResultUtils.success(list); + } + + + @ApiOperation("章节顺序linkedlist") + @GetMapping("/aaa/{courseid}") + public BaseResponse> get(@PathVariable String courseid){ + LinkedList list =chapterService.getChapterSection(courseid); + System.out.println(list); + return ResultUtils.success(list); + } + + + @ApiOperation("计算章的个数") + @GetMapping("/count/{courseid}") + public BaseResponse getChapterCount(@PathVariable String courseid){ + LinkedList list =chapterService.getCourseChapter(courseid); + Long count=list.stream() + .filter( str -> !str.getNumshow().contains("-")) + .count(); + return ResultUtils.success(count); + } +} diff --git a/src/main/java/com/teaching/backend/controller/courses/CoursesController.java b/src/main/java/com/teaching/backend/controller/courses/CoursesController.java index 6b8414b..243ead4 100644 --- a/src/main/java/com/teaching/backend/controller/courses/CoursesController.java +++ b/src/main/java/com/teaching/backend/controller/courses/CoursesController.java @@ -77,6 +77,9 @@ public class CoursesController { @ValidateParams({"id"}) @GetMapping("/{id}") public BaseResponse getByIdCourse(@PathVariable String id){ + if(id==null){ + throw new BusinessException(ErrorCode.PARAMS_ERROR,"课程id为空"); + } Courses course = coursesService.getById(id); CoursesDTO coursesDTO = new CoursesDTO(); BeanUtils.copyProperties(course,coursesDTO); diff --git a/src/main/java/com/teaching/backend/controller/know/KnowRelationshipController.java b/src/main/java/com/teaching/backend/controller/know/KnowRelationshipController.java new file mode 100644 index 0000000..bf7ee78 --- /dev/null +++ b/src/main/java/com/teaching/backend/controller/know/KnowRelationshipController.java @@ -0,0 +1,42 @@ +package com.teaching.backend.controller.know; + + +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ResultUtils; +import com.teaching.backend.model.entity.know.Know; +import com.teaching.backend.model.entity.know.KnowRelationship; +import com.teaching.backend.service.know.IKnowRelationshipService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + *

+ * 前端控制器 + *

+ * + * @author author + * @since 2024-06-20 + */ +@Api(tags = "知识点章节关系") +@RestController +@RequestMapping("/know-relationship") +public class KnowRelationshipController { + + @Autowired + private IKnowRelationshipService knowRelationshipService; + @ApiOperation("添加课程知识点关系") + @PostMapping() + public BaseResponse add(@RequestBody KnowRelationship knowRelationship){ + boolean save = knowRelationshipService.save(knowRelationship); + return ResultUtils.success(save); + } + @GetMapping() + public BaseResponse> getAll(){ + List list = knowRelationshipService.list(); + return ResultUtils.success(list); + } +} diff --git a/src/main/java/com/teaching/backend/entity/Chapter.java b/src/main/java/com/teaching/backend/entity/Chapter.java deleted file mode 100644 index 7f74db7..0000000 --- a/src/main/java/com/teaching/backend/entity/Chapter.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.teaching.backend.entity; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableId; -import java.io.Serializable; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -/** - *

- * - *

- * - * @author author - * @since 2024-06-07 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Accessors(chain = true) -@TableName("chapter") -@ApiModel(value="Chapter对象", description="") -public class Chapter implements Serializable { - - private static final long serialVersionUID = 1L; - - @ApiModelProperty(value = "主键") - @TableId(value = "id", type = IdType.AUTO) - private String id; - - @ApiModelProperty(value = "创建人") - @TableField("create_by") - private String createBy; - - @ApiModelProperty(value = "创建日期") - @TableField("create_time") - private LocalDateTime createTime; - - @ApiModelProperty(value = "更新人") - @TableField("update_by") - private String updateBy; - - @ApiModelProperty(value = "更新日期") - @TableField("update_time") - private LocalDateTime updateTime; - - @ApiModelProperty(value = "所属部门") - @TableField("sys_org_code") - private String sysOrgCode; - - @ApiModelProperty(value = "序号") - @TableField("num") - private Integer num; - - @ApiModelProperty(value = "名称") - @TableField("name") - private String name; - - @ApiModelProperty(value = "简介") - @TableField("content") - private String content; - - @ApiModelProperty(value = "父级节点") - @TableField("pid") - private String pid; - - @ApiModelProperty(value = "是否有子节点") - @TableField("has_child") - private String hasChild; - - @ApiModelProperty(value = "课程") - @TableField("courseid") - private String courseid; - - @ApiModelProperty(value = "课程目标") - @TableField("courseobjectivesid") - private String courseobjectivesid; - - @ApiModelProperty(value = "总学时") - @TableField("totalclasshours") - private String totalclasshours; - - @ApiModelProperty(value = "要求") - @TableField("requirement") - private String requirement; - - @ApiModelProperty(value = "线上学时") - @TableField("onlinclasshours") - private String onlinclasshours; - - @ApiModelProperty(value = "知识点") - @TableField("knowid") - private String knowid; - - @ApiModelProperty(value = "周次") - @TableField("zc") - private String zc; - - @ApiModelProperty(value = "资源") - @TableField("ziyuan") - private String ziyuan; - - @ApiModelProperty(value = "知识点") - @TableField("know") - private String know; - - @ApiModelProperty(value = "内部序号显示") - @TableField("numshow") - private String numshow; - - -} diff --git a/src/main/java/com/teaching/backend/mapper/chapter/ChapterMapper.xml b/src/main/java/com/teaching/backend/mapper/chapter/ChapterMapper.xml deleted file mode 100644 index 2cf1942..0000000 --- a/src/main/java/com/teaching/backend/mapper/chapter/ChapterMapper.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/main/java/com/teaching/backend/mapper/know/KnowRelationshipMapper.java b/src/main/java/com/teaching/backend/mapper/know/KnowRelationshipMapper.java new file mode 100644 index 0000000..5756236 --- /dev/null +++ b/src/main/java/com/teaching/backend/mapper/know/KnowRelationshipMapper.java @@ -0,0 +1,18 @@ +package com.teaching.backend.mapper.know; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.teaching.backend.model.entity.know.KnowRelationship; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author author + * @since 2024-06-20 + */ +@Mapper +public interface KnowRelationshipMapper extends BaseMapper { + +} diff --git a/src/main/java/com/teaching/backend/model/entity/chapter/Chapter.java b/src/main/java/com/teaching/backend/model/entity/chapter/Chapter.java index 8861632..3ca053a 100644 --- a/src/main/java/com/teaching/backend/model/entity/chapter/Chapter.java +++ b/src/main/java/com/teaching/backend/model/entity/chapter/Chapter.java @@ -30,7 +30,7 @@ public class Chapter implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键") - @TableId(value = "id", type = IdType.AUTO) + @TableId(value = "id", type = IdType.ASSIGN_UUID) private String id; @ApiModelProperty(value = "创建人") @@ -69,10 +69,6 @@ public class Chapter implements Serializable { @TableField("pid") private String pid; - @ApiModelProperty(value = "是否有子节点") - @TableField("has_child") - private String hasChild; - @ApiModelProperty(value = "课程") @TableField("courseid") private String courseid; @@ -93,9 +89,6 @@ public class Chapter implements Serializable { @TableField("onlinclasshours") private String onlinclasshours; - @ApiModelProperty(value = "知识点") - @TableField("knowid") - private String knowid; @ApiModelProperty(value = "周次") @TableField("zc") @@ -105,9 +98,9 @@ public class Chapter implements Serializable { @TableField("ziyuan") private String ziyuan; - @ApiModelProperty(value = "知识点") - @TableField("know") - private String know; + @ApiModelProperty(value = "资源文件") + @TableField("zywj") + private String zywj; @ApiModelProperty(value = "内部序号显示") @TableField("numshow") diff --git a/src/main/java/com/teaching/backend/model/entity/know/Know.java b/src/main/java/com/teaching/backend/model/entity/know/Know.java index 131561f..02199c4 100644 --- a/src/main/java/com/teaching/backend/model/entity/know/Know.java +++ b/src/main/java/com/teaching/backend/model/entity/know/Know.java @@ -17,6 +17,7 @@ import java.time.LocalDateTime; @Data @EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) @TableName("know") public class Know implements Serializable { diff --git a/src/main/java/com/teaching/backend/model/entity/know/KnowRelationship.java b/src/main/java/com/teaching/backend/model/entity/know/KnowRelationship.java new file mode 100644 index 0000000..2c073b3 --- /dev/null +++ b/src/main/java/com/teaching/backend/model/entity/know/KnowRelationship.java @@ -0,0 +1,46 @@ +package com.teaching.backend.model.entity.know; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author author + * @since 2024-06-20 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("know_relationship") +@ApiModel(value="KnowRelationship对象", description="") +public class KnowRelationship implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty(value = "章节id") + @TableField("chapterId") + private String chapterId; + + @ApiModelProperty(value = "课程id") + @TableField("courseId") + private String courseId; + + @ApiModelProperty(value = "知识点id") + @TableField("knowId") + private int knowId; + + +} diff --git a/src/main/java/com/teaching/backend/model/vo/chapter/ChapterVo.java b/src/main/java/com/teaching/backend/model/vo/chapter/ChapterVo.java new file mode 100644 index 0000000..a1d0169 --- /dev/null +++ b/src/main/java/com/teaching/backend/model/vo/chapter/ChapterVo.java @@ -0,0 +1,58 @@ +package com.teaching.backend.model.vo.chapter; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.teaching.backend.model.entity.chapter.Chapter; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class ChapterVo { + private String id; + + @ApiModelProperty(value = "名称") + @TableField("name") + private String name; + + @ApiModelProperty(value = "简介") + @TableField("content") + private String content; + + @ApiModelProperty(value = "父级节点") + @TableField("pid") + private String pid; + + @ApiModelProperty(value = "课程") + @TableField("courseid") + private String courseid; + + @ApiModelProperty(value = "课程目标") + @TableField("courseobjectivesid") + private String courseobjectivesid; + + @ApiModelProperty(value = "总学时") + @TableField("totalclasshours") + private String totalclasshours; + + @ApiModelProperty(value = "线上学时") + @TableField("onlinclasshours") + private String onlinclasshours; + + @ApiModelProperty(value = "知识点id") + @TableField("knowid") + private String knowid; + + @ApiModelProperty(value = "周次") + @TableField("zc") + private String zc; + + @ApiModelProperty(value = "内部序号显示") + @TableField("numshow") + private String numshow; + + private List chapterSection; +} diff --git a/src/main/java/com/teaching/backend/model/vo/courses/CoursesVO.java b/src/main/java/com/teaching/backend/model/vo/courses/CoursesVO.java index 7f5b618..a2890b5 100644 --- a/src/main/java/com/teaching/backend/model/vo/courses/CoursesVO.java +++ b/src/main/java/com/teaching/backend/model/vo/courses/CoursesVO.java @@ -51,10 +51,19 @@ public class CoursesVO { @ApiModelProperty(value = "课程总学时",required = true) private Integer totalHours; + @ApiModelProperty(value = "课程已分配学时",required = true) + private Integer totalAssignHours; + + @ApiModelProperty(value = "课程未分配学时",required = true) + private Integer totalNotAssignHours; + @ApiModelProperty(value = "课程章节总数",required = true) private Integer totalchapter; @ApiModelProperty(value = "课程知识点总数",required = true) private Integer totalKnow; + @ApiModelProperty(value = "课程目标",required = true) + private String objectContent; + } diff --git a/src/main/java/com/teaching/backend/service/chapter/IChapterService.java b/src/main/java/com/teaching/backend/service/chapter/IChapterService.java index b68662b..a32fa02 100644 --- a/src/main/java/com/teaching/backend/service/chapter/IChapterService.java +++ b/src/main/java/com/teaching/backend/service/chapter/IChapterService.java @@ -3,6 +3,10 @@ package com.teaching.backend.service.chapter; import com.baomidou.mybatisplus.extension.service.IService; import com.teaching.backend.model.entity.chapter.Chapter; +import com.teaching.backend.model.vo.chapter.ChapterVo; + +import java.util.LinkedList; +import java.util.List; /** * @@ -10,4 +14,13 @@ import com.teaching.backend.model.entity.chapter.Chapter; * @since 2024-05-31 */ public interface IChapterService extends IService { + String updateNumShow(Chapter chapter); + LinkedList getAll(); + + LinkedList getCourseChapter(String courseid); + + LinkedList getChapterSection(String courseid); + + + Boolean deleteAfterUpdate(String id); } diff --git a/src/main/java/com/teaching/backend/service/courses/ICoursesService.java b/src/main/java/com/teaching/backend/service/courses/ICoursesService.java index ad37b32..a812058 100644 --- a/src/main/java/com/teaching/backend/service/courses/ICoursesService.java +++ b/src/main/java/com/teaching/backend/service/courses/ICoursesService.java @@ -37,4 +37,5 @@ public interface ICoursesService extends IService { void down(HttpServletResponse response, String id) throws Exception; + CoursesVO getByIdCourseVo(String courseid); } diff --git a/src/main/java/com/teaching/backend/service/impl/chapter/ChapterServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/chapter/ChapterServiceImpl.java index f8935bc..3e99829 100644 --- a/src/main/java/com/teaching/backend/service/impl/chapter/ChapterServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/chapter/ChapterServiceImpl.java @@ -1,12 +1,22 @@ package com.teaching.backend.service.impl.chapter; +import cn.hutool.core.annotation.Link; +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.teaching.backend.mapper.chapter.ChapterMapper; import com.teaching.backend.model.entity.chapter.Chapter; +import com.teaching.backend.model.vo.chapter.ChapterVo; +import com.teaching.backend.model.vo.courses.CoursesVO; import com.teaching.backend.service.chapter.IChapterService; +import org.jetbrains.annotations.TestOnly; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.*; +import java.util.stream.Collectors; + /** * * @author author @@ -14,4 +24,214 @@ import org.springframework.stereotype.Service; */ @Service public class ChapterServiceImpl extends ServiceImpl implements IChapterService { + @Autowired + private ChapterMapper chapterMapper; +// private int count=0; + List list=new ArrayList<>(); + + + @Override + public String updateNumShow(Chapter chapter) { + + String finalNumShow; + String courseid = chapter.getCourseid(); + String pid = chapter.getPid(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + Long countChapter ; +// pid为0时,说明为章 + if("0".equals(pid)|| "".equals(pid)){ + wrapper.eq(Chapter::getCourseid,courseid); + countChapter = chapterMapper.selectCount(wrapper); + finalNumShow=String.valueOf(countChapter+1); +// chapter.setNumshow(String.valueOf(countChapter+1)); +// System.out.println(chapter.getNumshow()); + }else{ +// 为小节 + Chapter chapter1 = chapterMapper.selectById(pid); + String parentNumShow =chapter1.getNumshow(); + System.out.println("909090"); + System.out.println(parentNumShow); + wrapper.eq(Chapter::getCourseid,courseid) + .eq(Chapter::getPid,pid); + countChapter = chapterMapper.selectCount(wrapper); + System.out.println("-=-=-=-=-="+countChapter); + finalNumShow=parentNumShow + "-" + String.valueOf(countChapter + 1); + } + System.out.println("-=-=-=-=11"); + System.out.println(finalNumShow); + return finalNumShow; + } + + @Override + public LinkedList getAll() { + List list = chapterMapper.selectList(null); + LinkedList linkedList = new LinkedList<>(list); + int i=0; + for (Chapter chapter:linkedList){ + System.out.println(linkedList.get(i)); + System.out.println(i+"----"+chapter); + i++; + } + System.out.println(linkedList); + return linkedList; + } + + @Override + public LinkedList getCourseChapter(String courseid) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Chapter::getCourseid,courseid) + .orderByAsc(Chapter::getNumshow); + List list = chapterMapper.selectList(wrapper); + LinkedList linkedList = new LinkedList<>(list); + return linkedList; + } + + @Override + public LinkedList getChapterSection(String courseid){ +// LinkedList list = new LinkedList<>(); +// 获得所有的节,并按顺序进行排列 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Chapter::getCourseid,courseid) + .like(Chapter::getNumshow,"-") + .orderByAsc(Chapter::getNumshow); + List prelist = chapterMapper.selectList(wrapper); + System.out.println("所有的节"); + System.out.println(prelist); +// 获得所有的章节信息 + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(Chapter::getCourseid,courseid) + .notLike(Chapter::getNumshow,"-") + .orderByAsc(Chapter::getNumshow); + List chapterList = chapterMapper.selectList(wrapper1); + System.out.println("0-0-0-0所有的章------------"); + System.out.println(chapterList); +// 类型转换chapter => chapterVo + List chapterVoList = BeanUtil.copyToList(chapterList, ChapterVo.class); + chapterVoList = chapterVoList.stream().map((item) ->{ + for (int i=0;i(); + } + } + return item; + }).collect(Collectors.toList()); + System.out.println("11111111111111111111111111111111111111111"); + System.out.println(chapterVoList); + LinkedList list2 = new LinkedList<>(chapterVoList); + return list2; + } + + @Override + public Boolean deleteAfterUpdate(String id) { + Chapter chapter = chapterMapper.selectById(id); + String numshow = chapter.getNumshow(); + String courseid = chapter.getCourseid(); + updateNumShow(numshow, courseid); + chapterMapper.deleteById(id); + + + return true; + } + public void updateNumShow(String numshow, String courseid){ +// 查询课程章节 getCourseChapter + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Chapter::getCourseid,courseid) + .orderByAsc(Chapter::getNumshow); + List chapterList = chapterMapper.selectList(wrapper); + System.out.println("0-0-0-0-00-------"); + System.out.println(chapterList); + List newlist = new ArrayList<>(); + int count=0,j=0; + int i = numshow.indexOf("-"); +// 删除的为章 + if(i==-1){ + System.out.println("9999999"); + for(int k=0;k deleteChapterSection(String courseid,String numshow){ +// +// } } diff --git a/src/main/java/com/teaching/backend/service/impl/courses/CoursesServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/courses/CoursesServiceImpl.java index 561b50a..d389066 100644 --- a/src/main/java/com/teaching/backend/service/impl/courses/CoursesServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/courses/CoursesServiceImpl.java @@ -62,9 +62,15 @@ public class CoursesServiceImpl extends ServiceImpl impl @Autowired private CourseObjectivesServiceImpl objectivesService; + @Autowired + ChapterMapper chapterMapper; + @Autowired CoursesMapper coursesMapper; + @Autowired + KnowRelationshipMapper knowRelationshipMapper; + @Autowired CourseObjectivesMapper courseObjectivesMapper; @Autowired @@ -138,6 +144,7 @@ public class CoursesServiceImpl extends ServiceImpl impl } else { throw new BusinessException(ErrorCode.OPERATION_ERROR, "这个课程已经存在了!请联系系统相关人员为您导入课程数据!"); } + } @Override @@ -277,6 +284,19 @@ public class CoursesServiceImpl extends ServiceImpl impl learningRecordsMapper.delete(lambdaQueryWrapper); } + @Override + public CoursesVO getByIdCourseVo(String courseid) { + Courses courses = coursesMapper.selectById(courseid); + CoursesVO coursesVO = BeanUtil.copyProperties(courses,CoursesVO.class); + coursesVO.setTotalchapter(countChapters(courseid)); + coursesVO.setTotalHours(countHours(courseid)); + coursesVO.setTotalAssignHours(countChaptersHours(courseid)); + coursesVO.setTotalNotAssignHours(coursesVO.getTotalHours()-coursesVO.getTotalAssignHours()); + coursesVO.setTotalKnow(countKnow(courseid)); + System.out.println(coursesVO); + return coursesVO; + } + @Override public List getPagePageSize(int page, int pageSize) { int startIndex = (page-1) * pageSize; @@ -284,20 +304,46 @@ public class CoursesServiceImpl extends ServiceImpl impl // List list = coursesMapper.selectList(null); List coursesVo = BeanUtil.copyToList(list, CoursesVO.class); coursesVo = coursesVo.stream().map((item) -> { - item.setTotalHours(countHours(item.getId())); - item.setTotalchapter(100); - item.setTotalKnow(100); -// if (StringUtils.isBlank(item.getName()) || -// StringUtils.isBlank(item.getDescription()) ){ -// throw new BusinessException(ErrorCode.OPERATION_ERROR,"数据格式有问题,请修改"); -// } + item.setTotalchapter(countChapters(item.getId())); + item.setTotalKnow(countKnow(item.getId())); return item; }).collect(Collectors.toList()); return coursesVo; } - + // 计算课程知识点个数 + public int countKnow(String courseid){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(KnowRelationship::getCourseId,courseid); + List list = knowRelationshipMapper.selectList(wrapper); + int total=list.size(); + return total; + } + // 计算课程已分配的学时 计算章的学时(即已包含了小节的学时) + public int countChaptersHours(String courseid){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Chapter::getCourseid,courseid) + .like(Chapter::getNumshow,"-"); + List list = chapterMapper.selectList(wrapper); + int total=0; + for (Chapter sum: list){ + String totalclasshours = sum.getTotalclasshours(); + total= total+Integer.parseInt(totalclasshours); + } +// System.out.println(size); + return total; + } + // 计算课程总章节 + public int countChapters(String courseid){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Chapter::getCourseid,courseid); + List list = chapterMapper.selectList(wrapper); + int size = list.size(); +// System.out.println(size); + return size; + } + // 计算课程总学时 @Override public int countHours(String id) { Courses courses = coursesMapper.selectById(id); @@ -372,6 +418,7 @@ public class CoursesServiceImpl extends ServiceImpl impl Integer course_classhour = courses.getClasshours(); String course_description = courses.getDescription(); + //查询课程目标 List courseObjectivesTreeVO = objectivesService.queryCourseObjectivesTree(id); //准备数据 @@ -382,6 +429,8 @@ public class CoursesServiceImpl extends ServiceImpl impl ObjectiveContents content = contents.get(i); overall_goal.append(content.getContent()); } + System.out.println(overall_goal); + //分项目标 StringBuilder sub_objectives = new StringBuilder(); //课程目标数 @@ -398,6 +447,12 @@ public class CoursesServiceImpl extends ServiceImpl impl if (i != courseObjectivesTreeVO.get(0).getCourseObjectivesTrees().size() - 1){ sub_objectives.append("\r\n "); } + //价值目标 + if (i == 2){ + for (ObjectiveContents c : content.getContents()) { + value_goals.append(c.getContent()).append("\n"); + } + } } System.out.println("课程目标数:"+course_number); Map params = new HashMap(); @@ -461,7 +516,7 @@ public class CoursesServiceImpl extends ServiceImpl impl ServletOutputStream outputStream = response.getOutputStream(); response.setHeader( "Content-Disposition", "attachment;filename=" + new String(filename.getBytes(),"ISO8859-1")); response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); - document.write(outputStream); + xwpfDocument.write(outputStream); } diff --git a/src/main/java/com/teaching/backend/service/impl/know/KnowRelationshipServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/know/KnowRelationshipServiceImpl.java new file mode 100644 index 0000000..9de0420 --- /dev/null +++ b/src/main/java/com/teaching/backend/service/impl/know/KnowRelationshipServiceImpl.java @@ -0,0 +1,21 @@ +package com.teaching.backend.service.impl.know; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.teaching.backend.mapper.know.KnowRelationshipMapper; +import com.teaching.backend.model.entity.know.KnowRelationship; +import com.teaching.backend.service.know.IKnowRelationshipService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author author + * @since 2024-06-20 + */ +@Service +public class KnowRelationshipServiceImpl extends ServiceImpl implements IKnowRelationshipService { + +} diff --git a/src/test/java/com/teaching/TeachingBackendApplicationTests.java b/src/test/java/com/teaching/TeachingBackendApplicationTests.java index 5e49e39..e0d611b 100644 --- a/src/test/java/com/teaching/TeachingBackendApplicationTests.java +++ b/src/test/java/com/teaching/TeachingBackendApplicationTests.java @@ -8,7 +8,156 @@ import java.util.*; @SpringBootTest class TeachingBackendApplicationTests { - Map> userLearningRecords = new HashMap<>(); +// Map> userLearningRecords = new HashMap<>(); +public static void main(String[] args) { +// String[] data = {"1", "2", "3", "7", "4", "1-1", "1-5", "1-4", "1-9", "1-2", "3-1", "3-2","1-3","1-6"}; + List linkedList = new ArrayList<>(); + linkedList.add("1"); + linkedList.add("1-1"); + linkedList.add("1-2"); + linkedList.add("1-3"); + linkedList.add("2"); + linkedList.add("2-1"); + linkedList.add("2-2"); + linkedList.add("2-3"); + linkedList.add("3"); + linkedList.add("3-1"); + linkedList.add("3-2"); + linkedList.add("3-3"); + linkedList.add("4"); + linkedList.add("5"); +// String x="1"; +// String x1="1011-2456"; +// String[] split = x1.split("-"); +// System.out.println(split[0]); +// System.out.println(split[1]); +// int i = x.indexOf("-"); +// System.out.println(i); + +// for (String str : data) { +// +// insertInOrder(linkedList, str); +// } + System.out.println("9999"); + System.out.println(linkedList); +// String x="2"; + String x1="2-1"; + + + int count=0,j=0; + List list = new ArrayList<>(); + + + String[] split1 = x1.split("-"); + System.out.println(String.valueOf(Integer.parseInt(split1[0])+1)); + for (int i=0;i linkedList, String newData) { +// ListIterator iterator = linkedList.listIterator(); +// +// while (iterator.hasNext()) { +// String current = iterator.next(); +// +// if (newData.compareTo(current) <= 0) { +// iterator.previous(); // 回到插入位置 +// iterator.add(newData); +// return; +// } +// } +// +// linkedList.addLast(newData); +// } +// private static void deleteEntry(LinkedList linkedList, String target) { +// ListIterator iterator = linkedList.listIterator(); +// +// while (iterator.hasNext()) { +// String current = iterator.next(); +// +// if (current.equals(target)) { +// // 获取target的前缀和序号 +// int dashIndex = target.indexOf("-"); +// if (dashIndex != -1) { +// String prefix = target.substring(0, dashIndex); +// int number = Integer.parseInt(target.substring(dashIndex + 1)); +// +// while (iterator.hasNext()) { +// String next = iterator.next(); +// if (next.startsWith(prefix + "-")) { +// // 更新数据序号 +// int nextNumber = Integer.parseInt(next.substring(dashIndex + 1)); +// String newEntry = prefix + "-" + (nextNumber - 1); +// iterator.remove(); +// iterator.add(newEntry); +// } else { +// iterator.previous(); // 回退到上一个位置 +// break; +// } +// } +// } +// } +// } +// } +// +// private static void printList(List list) { +// for (String str : list) { +// System.out.print(str + " "); +// } +// System.out.println(); +// } }