diff --git a/pom.xml b/pom.xml index 4f5717c..310834b 100644 --- a/pom.xml +++ b/pom.xml @@ -24,67 +24,64 @@ org.springframework.boot spring-boot-starter-web + + + org.neo4j.driver + neo4j-java-driver-spring-boot-starter + 4.3.6.0 + + + + org.springframework.boot + spring-boot-starter-data-neo4j + org.springframework.boot spring-boot-starter-aop - commons-io commons-io 2.11.0 - - org.freemarker freemarker 2.3.28 - org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.2 - com.baomidou mybatis-plus-boot-starter 3.5.2 - - org.apache.poi poi 4.1.2 - org.apache.poi poi-ooxml 4.1.2 - org.apache.poi poi-ooxml-schemas 4.1.2 - - - - com.aliyun.oss aliyun-sdk-oss 3.15.1 - mysql mysql-connector-java @@ -100,20 +97,17 @@ spring-boot-starter-test test - com.github.xiaoymin knife4j-openapi2-spring-boot-starter 4.4.0 - org.apache.commons commons-lang3 - cn.hutool hutool-all @@ -182,20 +176,23 @@ 2.12.5 compile - - cn.afterturn easypoi-spring-boot-starter 4.1.3 - commons-io commons-io 2.8.0 + + + org.redisson + redisson + 3.13.6 + diff --git a/src/main/java/com/teaching/backend/controller/KnowGraph/KnowController.java b/src/main/java/com/teaching/backend/controller/KnowGraph/KnowController.java new file mode 100644 index 0000000..167e347 --- /dev/null +++ b/src/main/java/com/teaching/backend/controller/KnowGraph/KnowController.java @@ -0,0 +1,85 @@ +package com.teaching.backend.controller.KnowGraph; + +/** + * @Author:youhang + * @Date:2024-06-09-9:55 + * @Description: + */ +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ResultUtils; +import com.teaching.backend.model.dto.KnowGraph.*; +import com.teaching.backend.model.entity.KnowGraph.Know; + +import com.teaching.backend.model.entity.KnowGraph.KnowCourse; +import com.teaching.backend.service.KnowGraph.KnowService; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@RestController +@RequestMapping("/know") +public class KnowController { + + private KnowService knowService; + + public KnowController(KnowService knowService) { + this.knowService = knowService; + } + + //根据 id查询所关联的所有结点 + @PostMapping ("/query/{id}") + public List queryKnowAllKnowById(@PathVariable Long id) { + return knowService.queryKnowAllKnowById(id); + } + + //添加知识点 + @PostMapping("/add") + public Know createKnow(@RequestBody KnowRequest knowRequest) { + return knowService.createKnow(knowRequest); + } + + //添加知识点 - 课程 + @PostMapping("/addKnowCourse") + public KnowCourse createCourseKnow(@RequestBody KnowCourseCreateRequest knowCourseCreateRequest) { + return knowService.createCourseKnow(knowCourseCreateRequest); + } + + //修改知识点 + @PostMapping ("/update") + public Know updateKnow(@RequestBody KnowUpdateRequest knowUpdateRequest) { + return knowService.updateKnow(knowUpdateRequest); + } + + + //删除知识点 + @GetMapping ("delete/{id}") + public void deleteKnow(@PathVariable Long id) { + knowService.deleteKnow(id); + } + + //添加知识点与知识点的关系 related + @PostMapping ("/addKnowRelatedKnow") + public void addKnowRelatedKnow(@RequestBody RelationshipKnowRequest relationshipKnowRequest) { + knowService.addKnowRelatedKnow(relationshipKnowRequest); + } + + //添加知识点与知识点的关系 related + @PostMapping ("/addKnowFatherAndSonKnow") + public void addKnowFatherAndSonKnow(@RequestBody RelationshipKnowRequest relationshipKnowRequest) { + knowService.addKnowFatherAndSonKnow(relationshipKnowRequest); + } + + @GetMapping("/all") + public BaseResponse getKnowAll(@RequestParam String id) { + BaseKnowReturn baseKnowReturn =knowService.getKnowAll(id); + return ResultUtils.success(baseKnowReturn); + } + + @GetMapping("/KnowById") + public BaseResponse getKnowById(@RequestParam Long id) { + BaseKnowReturn baseKnowReturn =knowService.getKnowById(id); + return ResultUtils.success(baseKnowReturn); + } + +} diff --git a/src/main/java/com/teaching/backend/controller/courseResource/CourseResourceController.java b/src/main/java/com/teaching/backend/controller/courseResource/CourseResourceController.java index 6abf652..6da377e 100644 --- a/src/main/java/com/teaching/backend/controller/courseResource/CourseResourceController.java +++ b/src/main/java/com/teaching/backend/controller/courseResource/CourseResourceController.java @@ -72,13 +72,26 @@ public class CourseResourceController { /** * 编辑 - * @param resourceId + * @param resources * @return */ @ApiOperation("编辑课程资源") - @PostMapping("/edit") - public BaseResponse editCourseResource(@RequestParam String resourceId){ + @PutMapping("/edit") + public BaseResponse editCourseResource(@RequestBody CourseResources resources){ + System.out.println(resources); + courseResourcesService.updateById(resources); + return ResultUtils.success("编辑成功"); + } + + /** + * 根据id查询课程资源 + * @param resourceId + * @return + */ + @ApiOperation("根据id查询课程资源") + @PostMapping("/getone") + public BaseResponse getOne(@RequestParam String resourceId){ System.out.println(resourceId); - return ResultUtils.success(courseResourcesService.editCourseResource(resourceId)); + return ResultUtils.success(courseResourcesService.getById(resourceId)); } } diff --git a/src/main/java/com/teaching/backend/controller/know/KnowController.java b/src/main/java/com/teaching/backend/controller/know/KnowController.java deleted file mode 100644 index 2bb3859..0000000 --- a/src/main/java/com/teaching/backend/controller/know/KnowController.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.teaching.backend.controller.know; - -import com.teaching.backend.model.dto.know.KnowQueryRequest; -import com.teaching.backend.model.dto.know.KnowRequest; -import com.teaching.backend.model.dto.know.KnowupdateRequest; -import com.teaching.backend.model.entity.know.Know; -import com.teaching.backend.service.know.KnowService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * @Author:youhang - * @Date:2024-06-21-10:26 - * @Description: - */ -@RestController -@RequestMapping("/api/know") -public class KnowController { - - @Autowired - private KnowService knowService; - @PostMapping("/add") - public Boolean add(@RequestBody KnowRequest knowAddRequest) { - return knowService.add(knowAddRequest); - } - @PostMapping("/update") - public Boolean update(@RequestBody KnowupdateRequest knowAddRequest){ - return knowService.update(knowAddRequest); - } - @PostMapping("/delete") - public Integer deleteKnow(@RequestBody List ids){ - return knowService.deleteKnow(ids); - } - @PostMapping("/query") - public List query(@RequestBody KnowQueryRequest knowQueryRequest){ - return knowService.query(knowQueryRequest); - } -} diff --git a/src/main/java/com/teaching/backend/controller/know/KnowRelationshipController.java b/src/main/java/com/teaching/backend/controller/know/KnowRelationshipController.java deleted file mode 100644 index bf7ee78..0000000 --- a/src/main/java/com/teaching/backend/controller/know/KnowRelationshipController.java +++ /dev/null @@ -1,42 +0,0 @@ -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/controller/records/CourseLearningRecordController.java b/src/main/java/com/teaching/backend/controller/records/CourseLearningRecordController.java new file mode 100644 index 0000000..cb67129 --- /dev/null +++ b/src/main/java/com/teaching/backend/controller/records/CourseLearningRecordController.java @@ -0,0 +1,12 @@ +package com.teaching.backend.controller.records; + + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/courselearingRecord") +public class CourseLearningRecordController { + + +} diff --git a/src/main/java/com/teaching/backend/controller/records/LearningRecordsController.java b/src/main/java/com/teaching/backend/controller/records/LearningRecordsController.java index 4f769e5..8926166 100644 --- a/src/main/java/com/teaching/backend/controller/records/LearningRecordsController.java +++ b/src/main/java/com/teaching/backend/controller/records/LearningRecordsController.java @@ -1,6 +1,7 @@ package com.teaching.backend.controller.records; +import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.teaching.backend.common.BaseResponse; import com.teaching.backend.common.ResultUtils; @@ -37,30 +38,27 @@ public class LearningRecordsController { public BaseResponse getAll(@RequestParam(value = "pagenum", defaultValue = "1") int pagenum, @RequestParam(value = "pagesize", defaultValue = "10") int pagesize, @RequestParam String userId){ + //根据用户查询 + Page page = learningRecordsService.query() + .orderByDesc("time") + .eq("status", "1") + .eq("user_id", userId).page(new Page<>(pagenum, pagesize)); + //获取当前页数据 + List list = page.getRecords(); + List cs= learningRecordsService.getAll(list); - List cs= learningRecordsService.getAll(userId); - List pageCs = new ArrayList<>(); - //当前页面 - for(int i = (pagenum - 1) * pagesize; i < cs.size() && i < (pagenum) * pagesize; i++){ - pageCs.add(cs.get(i)); - } - long total = cs.size(); // 总记录数 + long total = page.getTotal(); // 总记录数 Page pageInfo = new Page<>(pagenum,pagesize,total); - pageInfo.setRecords(pageCs); -// System.out.println("总记录数"+pageInfo.getTotal()); -// System.out.println("当前页面:"+pagenum); -// System.out.println("当前页面大小:"+pagesize); -// System.out.println("当前页面内容:"+pageCs); -// System.out.println("页面数:"+pageInfo.getPages()); - pageInfo.setPages((int)(Math.ceil((double) total / pagesize)));//设置总页数 -// System.out.println(pageInfo.getPages()); + pageInfo.setRecords(cs); + pageInfo.setPages(page.getPages());//设置总页数 return ResultUtils.success(pageInfo); } @ApiOperation("查询所有") @GetMapping("/all") public BaseResponse> All(){ - System.out.println("学习记录:"+learningRecordsService.list()); +// System.out.println("学习记录:"+learningRecordsService.list()); + return ResultUtils.success(learningRecordsService.list()); } @@ -74,7 +72,7 @@ public class LearningRecordsController { @ValidateParams({"userId","type","coursesId"}) @PostMapping("/saverecords") public BaseResponse saveRecords(@RequestBody LearningRecords learningRecords){ - System.out.println(learningRecords); +// System.out.println(learningRecords); return ResultUtils.success(learningRecordsService.saveRecords(learningRecords)); } diff --git a/src/main/java/com/teaching/backend/mapper/KnowGraph/KnowRepository.java b/src/main/java/com/teaching/backend/mapper/KnowGraph/KnowRepository.java new file mode 100644 index 0000000..d26ff96 --- /dev/null +++ b/src/main/java/com/teaching/backend/mapper/KnowGraph/KnowRepository.java @@ -0,0 +1,36 @@ +package com.teaching.backend.mapper.KnowGraph; + +/** + * @Author:youhang + * @Date:2024-06-09-8:59 + * @Description: + */ + + +import com.teaching.backend.model.dto.KnowGraph.KnowCourseCreateRequest; +import com.teaching.backend.model.entity.KnowGraph.Know; +import com.teaching.backend.model.entity.KnowGraph.KnowCourse; +import org.springframework.data.neo4j.repository.Neo4jRepository; +import org.springframework.data.neo4j.repository.query.Query; + +import java.util.List; + +public interface KnowRepository extends Neo4jRepository { + + + @Query("MATCH (p:Know), (c:Know) WHERE ID(p) = $id AND ID(c) IN $KnowIds CREATE (p)-[:related]->(c),(c)-[:related]->(p)") + void addKnowRelatedKnow(Long id, List KnowIds); + + @Query("MATCH (p:Know), (c:Know) WHERE ID(p) = $id AND ID(c) IN $KnowIds CREATE (p)-[:FatherAndSon]->(c)") + void addKnowFatherAndSonKnow(Long id, List KnowIds); + + @Query("MATCH(n)-[r:related]->(nn:Know) where ID(nn) = $id RETURN n") + List queryKnowAllKnowById(Long id); + + + @Query("CREATE (n:Know {name: $name, courseId: $courseId,info:$info,resourceList:$resourceList}) return n") + KnowCourse createKnowCourse(String courseId, String name, String info, ListresourceList); + + + +} diff --git a/src/main/java/com/teaching/backend/mapper/know/KnowMapper.java b/src/main/java/com/teaching/backend/mapper/know/KnowMapper.java deleted file mode 100644 index d6c2237..0000000 --- a/src/main/java/com/teaching/backend/mapper/know/KnowMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.teaching.backend.mapper.know; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.teaching.backend.model.entity.know.Know; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface KnowMapper extends BaseMapper { - -} diff --git a/src/main/java/com/teaching/backend/mapper/know/KnowRelationshipMapper.java b/src/main/java/com/teaching/backend/mapper/know/KnowRelationshipMapper.java deleted file mode 100644 index 5756236..0000000 --- a/src/main/java/com/teaching/backend/mapper/know/KnowRelationshipMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -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/mapper/records/CourseLearningRecordMapper.java b/src/main/java/com/teaching/backend/mapper/records/CourseLearningRecordMapper.java new file mode 100644 index 0000000..20b8386 --- /dev/null +++ b/src/main/java/com/teaching/backend/mapper/records/CourseLearningRecordMapper.java @@ -0,0 +1,17 @@ +package com.teaching.backend.mapper.records; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.teaching.backend.model.entity.records.CourseLearningRecord; + +/** + *

+ * Mapper 接口 + *

+ * + * @author author + * @since 2024-07-24 + */ +public interface CourseLearningRecordMapper extends BaseMapper { + +} diff --git a/src/main/java/com/teaching/backend/mapper/records/KnowledgeLearningRecordMapper.java b/src/main/java/com/teaching/backend/mapper/records/KnowledgeLearningRecordMapper.java new file mode 100644 index 0000000..d9dbbe5 --- /dev/null +++ b/src/main/java/com/teaching/backend/mapper/records/KnowledgeLearningRecordMapper.java @@ -0,0 +1,17 @@ +package com.teaching.backend.mapper.records; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.teaching.backend.model.entity.records.KnowledgeLearningRecord; + +/** + *

+ * Mapper 接口 + *

+ * + * @author author + * @since 2024-07-24 + */ +public interface KnowledgeLearningRecordMapper extends BaseMapper { + +} diff --git a/src/main/java/com/teaching/backend/mapper/records/ResourceLearningRecordMapper.java b/src/main/java/com/teaching/backend/mapper/records/ResourceLearningRecordMapper.java new file mode 100644 index 0000000..c1235c1 --- /dev/null +++ b/src/main/java/com/teaching/backend/mapper/records/ResourceLearningRecordMapper.java @@ -0,0 +1,17 @@ +package com.teaching.backend.mapper.records; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.teaching.backend.model.entity.records.ResourceLearningRecord; + +/** + *

+ * Mapper 接口 + *

+ * + * @author author + * @since 2024-07-24 + */ +public interface ResourceLearningRecordMapper extends BaseMapper { + +} diff --git a/src/main/java/com/teaching/backend/model/dto/KnowGraph/BaseKnowReturn.java b/src/main/java/com/teaching/backend/model/dto/KnowGraph/BaseKnowReturn.java new file mode 100644 index 0000000..8dc8bef --- /dev/null +++ b/src/main/java/com/teaching/backend/model/dto/KnowGraph/BaseKnowReturn.java @@ -0,0 +1,31 @@ +package com.teaching.backend.model.dto.KnowGraph; + +/** + * @Author:youhang + * @Date:2024-07-23-17:30 + * @Description: + */ + + +import com.teaching.backend.model.entity.KnowGraph.Links; +import com.teaching.backend.model.vo.knowGraph.KnowVO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Set; + +/** + * @Author:youhang + * @Date:2024-07-22-5:01 + * @Description: + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class BaseKnowReturn { + + private Set knowList; + + private SetlinksList; +} diff --git a/src/main/java/com/teaching/backend/model/dto/KnowGraph/KnowCourseCreateRequest.java b/src/main/java/com/teaching/backend/model/dto/KnowGraph/KnowCourseCreateRequest.java new file mode 100644 index 0000000..6c71be0 --- /dev/null +++ b/src/main/java/com/teaching/backend/model/dto/KnowGraph/KnowCourseCreateRequest.java @@ -0,0 +1,38 @@ +package com.teaching.backend.model.dto.KnowGraph; + +import lombok.Data; +import org.springframework.data.neo4j.core.schema.Property; + +import java.io.Serializable; +import java.util.List; + +@Data +public class KnowCourseCreateRequest implements Serializable { + + /** + * 知识点名称 + */ + private String courseId; + + /** + * 知识点名称 + */ + private String name; + + /** + * 信息 + */ + + private String info; + + + + /** + * 知识点所关联的资源 + */ + @Property + private List resourceList; + + +} + diff --git a/src/main/java/com/teaching/backend/model/dto/KnowGraph/KnowRequest.java b/src/main/java/com/teaching/backend/model/dto/KnowGraph/KnowRequest.java new file mode 100644 index 0000000..b3e07ae --- /dev/null +++ b/src/main/java/com/teaching/backend/model/dto/KnowGraph/KnowRequest.java @@ -0,0 +1,34 @@ +package com.teaching.backend.model.dto.KnowGraph; + +import lombok.Data; +import org.springframework.data.neo4j.core.schema.Property; + +import java.io.Serializable; +import java.util.List; + +@Data +public class KnowRequest implements Serializable { + + + /** + * 知识点名称 + */ + private String name; + + /** + * 信息 + */ + + private String info; + + + + /** + * 知识点所关联的资源 + */ + @Property + private List resourceList; + + +} + diff --git a/src/main/java/com/teaching/backend/model/dto/KnowGraph/KnowUpdateRequest.java b/src/main/java/com/teaching/backend/model/dto/KnowGraph/KnowUpdateRequest.java new file mode 100644 index 0000000..6e1b20b --- /dev/null +++ b/src/main/java/com/teaching/backend/model/dto/KnowGraph/KnowUpdateRequest.java @@ -0,0 +1,37 @@ +package com.teaching.backend.model.dto.KnowGraph; + +import lombok.Data; +import org.springframework.data.neo4j.core.schema.Property; + +import java.io.Serializable; +import java.util.List; + +@Data +public class KnowUpdateRequest implements Serializable { + + + /** + * id + */ + private Long id; + + /** + * 知识点名称 + */ + private String name; + + /** + * 信息 + */ + + private String info; + + + /** + * 知识点所关联的资源 + */ + @Property + private List resourceList; + +} + diff --git a/src/main/java/com/teaching/backend/model/dto/KnowGraph/RelationshipKnowRequest.java b/src/main/java/com/teaching/backend/model/dto/KnowGraph/RelationshipKnowRequest.java new file mode 100644 index 0000000..ff3b1ae --- /dev/null +++ b/src/main/java/com/teaching/backend/model/dto/KnowGraph/RelationshipKnowRequest.java @@ -0,0 +1,22 @@ +package com.teaching.backend.model.dto.KnowGraph; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class RelationshipKnowRequest implements Serializable { + + /** + * knowid + */ + private Long id; + + /** + * 课程id + */ + private List KnowIds; + +} + diff --git a/src/main/java/com/teaching/backend/model/dto/know/KnowQueryRequest.java b/src/main/java/com/teaching/backend/model/dto/know/KnowQueryRequest.java deleted file mode 100644 index fb42742..0000000 --- a/src/main/java/com/teaching/backend/model/dto/know/KnowQueryRequest.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.teaching.backend.model.dto.know; - -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; - -/** - * 知识点请求 - */ -@Data -public class KnowQueryRequest implements Serializable { - - /** - * 知识点名称 - */ - private String name; - -} diff --git a/src/main/java/com/teaching/backend/model/dto/know/KnowRequest.java b/src/main/java/com/teaching/backend/model/dto/know/KnowRequest.java deleted file mode 100644 index 2da09bb..0000000 --- a/src/main/java/com/teaching/backend/model/dto/know/KnowRequest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.teaching.backend.model.dto.know; - -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; - -/** - * 知识点请求 - */ -@Data -public class KnowRequest implements Serializable { - - - /** - * 知识点名称 - */ - private String name; - - /** - * 简介 - */ - private String info; - - /** - * 知识点内容 - */ - private String content; - - /** - * 知识点图片 - */ - private String img; - - /** - * 知识点学时 - */ - private BigDecimal hour; - - - - /** - * 资源id 运用json - */ - private String resourceid; - - -} diff --git a/src/main/java/com/teaching/backend/model/dto/know/KnowupdateRequest.java b/src/main/java/com/teaching/backend/model/dto/know/KnowupdateRequest.java deleted file mode 100644 index bc339ea..0000000 --- a/src/main/java/com/teaching/backend/model/dto/know/KnowupdateRequest.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.teaching.backend.model.dto.know; - -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; - -/** - * 知识点请求 - */ -@Data -public class KnowupdateRequest implements Serializable { - - - /** - * 知识点id - */ - private Integer id; - - - /** - * 知识点名称 - */ - private String name; - - /** - * 简介 - */ - private String info; - - /** - * 知识点内容 - */ - private String content; - - /** - * 知识点图片 - */ - private String img; - - /** - * 知识点学时 - */ - private BigDecimal hour; - - - - /** - * 资源id 运用json - */ - private String resourceid; - - -} diff --git a/src/main/java/com/teaching/backend/model/entity/CourseResources.java b/src/main/java/com/teaching/backend/model/entity/CourseResources.java index e1819c4..637c2a6 100644 --- a/src/main/java/com/teaching/backend/model/entity/CourseResources.java +++ b/src/main/java/com/teaching/backend/model/entity/CourseResources.java @@ -25,8 +25,13 @@ import java.util.stream.Stream; @AllArgsConstructor @TableName("Resource") public class CourseResources { - @TableId(value = "id", type = IdType.AUTO) - private int id; + private static final long serialVersionUID = 1L; + + /** + * 内部编号 + */ + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; private String name; private int type; private int status; diff --git a/src/main/java/com/teaching/backend/model/entity/KnowGraph/Know.java b/src/main/java/com/teaching/backend/model/entity/KnowGraph/Know.java new file mode 100644 index 0000000..b3836cb --- /dev/null +++ b/src/main/java/com/teaching/backend/model/entity/KnowGraph/Know.java @@ -0,0 +1,45 @@ +package com.teaching.backend.model.entity.KnowGraph; + +import lombok.Data; +import org.springframework.data.neo4j.core.schema.GeneratedValue; +import org.springframework.data.neo4j.core.schema.Id; +import org.springframework.data.neo4j.core.schema.Node; +import org.springframework.data.neo4j.core.schema.Property; + +import java.io.Serializable; +import java.util.List; + +@Node +@Data +public class Know implements Serializable { + + + /** + * id + */ + @Id + @GeneratedValue + private Long id; + + + /** + * 知识点名称 + */ + @Property + private String name; + + /** + * 信息 + */ + @Property + private String info; + + + /** + * 知识点所关联的资源 + */ + @Property + private List resourceList; + +} + diff --git a/src/main/java/com/teaching/backend/model/entity/KnowGraph/KnowCourse.java b/src/main/java/com/teaching/backend/model/entity/KnowGraph/KnowCourse.java new file mode 100644 index 0000000..587fb00 --- /dev/null +++ b/src/main/java/com/teaching/backend/model/entity/KnowGraph/KnowCourse.java @@ -0,0 +1,50 @@ +package com.teaching.backend.model.entity.KnowGraph; + +import lombok.Data; +import org.springframework.data.neo4j.core.schema.GeneratedValue; +import org.springframework.data.neo4j.core.schema.Id; +import org.springframework.data.neo4j.core.schema.Node; +import org.springframework.data.neo4j.core.schema.Property; + +import java.io.Serializable; +import java.util.List; + +@Node +@Data +public class KnowCourse implements Serializable { + + + /** + * id + */ + @Id + @GeneratedValue + private Long id; + + /** + * 知识点名称 + */ + private String courseId; + + + /** + * 知识点名称 + */ + @Property + private String name; + + /** + * 信息 + */ + @Property + private String info; + + + /** + * 知识点所关联的资源 + */ + @Property + private List resourceList; + +} + diff --git a/src/main/java/com/teaching/backend/model/entity/KnowGraph/Links.java b/src/main/java/com/teaching/backend/model/entity/KnowGraph/Links.java new file mode 100644 index 0000000..139c1dd --- /dev/null +++ b/src/main/java/com/teaching/backend/model/entity/KnowGraph/Links.java @@ -0,0 +1,32 @@ +package com.teaching.backend.model.entity.KnowGraph; + +import lombok.Data; +import org.springframework.data.neo4j.core.schema.GeneratedValue; +import org.springframework.data.neo4j.core.schema.Id; +import org.springframework.data.neo4j.core.schema.Node; +import org.springframework.data.neo4j.core.schema.Property; + +/** + * @Author:youhang + * @Date:2024-07-21-16:32 + * @Description: + */ +@Data +@Node +public class Links { + + @Id + @GeneratedValue + private Long id; + + @Property + private Long source; + + @Property + private Long target; + + @Property + private String label; + + +} diff --git a/src/main/java/com/teaching/backend/model/entity/courses/Main.java b/src/main/java/com/teaching/backend/model/entity/courses/Main.java new file mode 100644 index 0000000..539ef74 --- /dev/null +++ b/src/main/java/com/teaching/backend/model/entity/courses/Main.java @@ -0,0 +1,168 @@ +package com.teaching.backend.model.entity.courses; + +/** + * @Author:youhang + * @Date:2024-07-07-21:21 + * @Description: + */ + +import java.util.Scanner; + +class Num { + public int Zero = 0; + + public int One = 0; + + public int getZero() { + return Zero; + } + + public void setZero(int zero) { + Zero = zero; + } + + public int getOne() { + return One; + } + + public void setOne(int one) { + One = one; + } +} + +// 注意类名必须为 Main, 不要有任何 package xxx 信息 +public class Main { + public static void main(String[] args) { + Scanner in = new Scanner(System.in); + int n = in.nextInt(); + String[] arr = new String[n]; + int counts = 0; + Num num = new Num(); + for (int i = 0; i < n; i++) { + arr[i] = in.next(); + } + + int p = 1, q = 1; + while (p < n) { + if (arr[0].charAt(0) == '1') { + num.One += 1; + } else { + num.Zero += 1; + } + for (int i = 0; i <= p; i++) { + if (arr[i].charAt(p) == '1') { + num.One += 1; + } else { + num.Zero += 1; + } + if (arr[p].charAt(i) == '1') { + num.One += 1; + } else { + num.Zero += 1; + } + } + if (arr[p].charAt(p) == '1') { + num.One -= 1; + } else { + num.Zero -= 1; + } + if(num.Zero == num.One){ + counts++; + } + num.One = 0; + num.Zero = 0; + + if (arr[0].charAt(n-1) == '1') { + num.One += 1; + } else { + num.Zero += 1; + } + for (int i = 0; i <= p; i++) { + if (arr[i].charAt(n-1-p) == '1') { + num.One += 1; + } else { + num.Zero += 1; + } + if (arr[p].charAt(n-i-1) == '1') { + num.One += 1; + } else { + num.Zero += 1; + } + } + if (arr[p].charAt(n-p-1) == '1') { + num.One -= 1; + } else { + num.Zero -= 1; + } + if(num.Zero == num.One){ + counts++; + } + //左下 + num.One = 0; + num.Zero = 0; + + if (arr[n-1].charAt(0) == '1') { + num.One += 1; + } else { + num.Zero += 1; + } + for (int i = 0; i <= p; i++) { + if (arr[n-1-i].charAt(p) == '1') { + num.One += 1; + } else { + num.Zero += 1; + } + if (arr[n-p-1].charAt(i) == '1') { + num.One += 1; + } else { + num.Zero += 1; + } + } + if (arr[n-p-1].charAt(p) == '1') { + num.One -= 1; + } else { + num.Zero -= 1; + } + if(num.Zero == num.One){ + counts++; + } + + //右下 + num.One = 0; + num.Zero = 0; + + if (arr[n-1].charAt(n-1) == '1') { + num.One += 1; + } else { + num.Zero += 1; + } + for (int i = 0; i <= p; i++) { + if (arr[n-1-i].charAt(n-p-1) == '1') { + num.One += 1; + } else { + num.Zero += 1; + } + if (arr[n-p-1].charAt(n-1-i) == '1') { + num.One += 1; + } else { + num.Zero += 1; + } + } + if (arr[n-p-1].charAt(n-1-p) == '1') { + num.One -= 1; + } else { + num.Zero -= 1; + } + if(num.Zero == num.One){ + counts++; + } + + p++; + } + + + } + + +} + 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 deleted file mode 100644 index 02199c4..0000000 --- a/src/main/java/com/teaching/backend/model/entity/know/Know.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.teaching.backend.model.entity.know; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.Api; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - - -import java.io.Serializable; -import java.math.BigDecimal; -import java.time.LocalDateTime; - -@Data -@EqualsAndHashCode(callSuper = false) -@Accessors(chain = true) -@TableName("know") -public class Know implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * id - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - - /** - * 知识点名称 - */ - private String name; - - /** - * 简介 - */ - private String info; - - /** - * 知识点内容 - */ - private String content; - - /** - * 知识点图片 - */ - private String img; - - /** - * 知识点学时 - */ - private BigDecimal hour; - - - - /** - * 资源id 运用json - */ - private String resourceid; - - -} - 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 deleted file mode 100644 index 2c073b3..0000000 --- a/src/main/java/com/teaching/backend/model/entity/know/KnowRelationship.java +++ /dev/null @@ -1,46 +0,0 @@ -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/entity/records/CourseLearningRecord.java b/src/main/java/com/teaching/backend/model/entity/records/CourseLearningRecord.java new file mode 100644 index 0000000..acd207b --- /dev/null +++ b/src/main/java/com/teaching/backend/model/entity/records/CourseLearningRecord.java @@ -0,0 +1,57 @@ +package com.teaching.backend.model.entity.records; + +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-07-24 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("course_learning_record") +@ApiModel(value="CourseLearningRecord对象", description="") +public class CourseLearningRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = " 课程记录id") + @TableId(value = "id", type = IdType.AUTO) + private String id; + + @ApiModelProperty(value = "课程id") + @TableField("course_id") + private String courseId; + + @ApiModelProperty(value = "用户id") + @TableField("user_id") + private String userId; + + @ApiModelProperty(value = "观看人数") + @TableField("number") + private Integer number; + + @ApiModelProperty(value = "记录封面") + @TableField("img") + private String img; + + @ApiModelProperty(value = "最近学习时间") + @TableField("time") + private LocalDateTime time; + + +} diff --git a/src/main/java/com/teaching/backend/model/entity/records/KnowledgeLearningRecord.java b/src/main/java/com/teaching/backend/model/entity/records/KnowledgeLearningRecord.java new file mode 100644 index 0000000..f7c1ed5 --- /dev/null +++ b/src/main/java/com/teaching/backend/model/entity/records/KnowledgeLearningRecord.java @@ -0,0 +1,57 @@ +package com.teaching.backend.model.entity.records; + +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-07-24 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("knowledge_learning_record") +@ApiModel(value="KnowledgeLearningRecord对象", description="") +public class KnowledgeLearningRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "知识点学习记录id") + @TableId(value = "id", type = IdType.AUTO) + private String id; + + @ApiModelProperty(value = "知识点id") + @TableField("knowledge_id") + private String knowledgeId; + + @ApiModelProperty(value = "用户id") + @TableField("user_id") + private String userId; + + @ApiModelProperty(value = "观看人数") + @TableField("number") + private Integer number; + + @ApiModelProperty(value = "记录封面") + @TableField("img") + private String img; + + @ApiModelProperty(value = "最近访问时间") + @TableField("time") + private LocalDateTime time; + + +} diff --git a/src/main/java/com/teaching/backend/model/entity/records/LearningRecords.java b/src/main/java/com/teaching/backend/model/entity/records/LearningRecords.java index 067e2e8..510f29d 100644 --- a/src/main/java/com/teaching/backend/model/entity/records/LearningRecords.java +++ b/src/main/java/com/teaching/backend/model/entity/records/LearningRecords.java @@ -2,6 +2,7 @@ package com.teaching.backend.model.entity.records; 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 lombok.Data; @@ -33,22 +34,10 @@ public class LearningRecords { * 课程id */ private String coursesId; - /** - * 章节id - */ - private String chapterId; - /** - * 知识点id - */ - private String knowledgePointId; - /** - * 资源id - */ - private String resourceId; /** * 访问时间 */ - private LocalDateTime accessTime; + private LocalDateTime time; /** * 学习方式:打开; 1,打开过,2未打开 @@ -86,11 +75,11 @@ public class LearningRecords { */ private String type; /** - * 父节点 + * 课程名称 */ - private String parentNode; - - - - + private String coursesName; + /** + * 课程名称 + */ + private int number; } diff --git a/src/main/java/com/teaching/backend/model/entity/records/ResourceLearningRecord.java b/src/main/java/com/teaching/backend/model/entity/records/ResourceLearningRecord.java new file mode 100644 index 0000000..95de9f2 --- /dev/null +++ b/src/main/java/com/teaching/backend/model/entity/records/ResourceLearningRecord.java @@ -0,0 +1,73 @@ +package com.teaching.backend.model.entity.records; + +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-07-24 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("resource_learning_record") +@ApiModel(value="ResourceLearningRecord对象", description="") +public class ResourceLearningRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "资源学习记录id") + @TableId(value = "id", type = IdType.AUTO) + private String id; + + @ApiModelProperty(value = "资源id") + @TableField("resource_id") + private String resourceId; + + @ApiModelProperty(value = "用户id") + @TableField("user_id") + private String userId; + + @ApiModelProperty(value = "观看人数") + @TableField("number") + private Integer number; + + @ApiModelProperty(value = "是否打开, 1:开打了; 2:未打开;") + @TableField("open") + private Integer open; + + @ApiModelProperty(value = "是否下载, 1:下载了; 2:未下载;") + @TableField(" download") + private Integer download; + + @ApiModelProperty(value = "学习时长") + @TableField("duration") + private Integer duration; + + @ApiModelProperty(value = "是否完成观看") + @TableField("finish") + private Integer finish; + + @ApiModelProperty(value = "记录封面") + @TableField("img") + private String img; + + @ApiModelProperty(value = "最近学习时间") + @TableField("time") + private LocalDateTime time; + + +} diff --git a/src/main/java/com/teaching/backend/model/vo/knowGraph/KnowVO.java b/src/main/java/com/teaching/backend/model/vo/knowGraph/KnowVO.java new file mode 100644 index 0000000..d6a60a2 --- /dev/null +++ b/src/main/java/com/teaching/backend/model/vo/knowGraph/KnowVO.java @@ -0,0 +1,31 @@ +package com.teaching.backend.model.vo.knowGraph; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + + +@Data +public class KnowVO implements Serializable { + + + /** + * id + */ + private Long id; + + + /** + * 知识点名称 + */ + private String label; + + /** + * 信息 + */ + private String color; + + +} + diff --git a/src/main/java/com/teaching/backend/model/vo/records/LearningRecordsVo.java b/src/main/java/com/teaching/backend/model/vo/records/LearningRecordsVo.java index e9b3ab2..345c436 100644 --- a/src/main/java/com/teaching/backend/model/vo/records/LearningRecordsVo.java +++ b/src/main/java/com/teaching/backend/model/vo/records/LearningRecordsVo.java @@ -33,7 +33,7 @@ public class LearningRecordsVo { /** * 资源观看人数 */ - private Long number; + private int number; /** diff --git a/src/main/java/com/teaching/backend/service/KnowGraph/KnowService.java b/src/main/java/com/teaching/backend/service/KnowGraph/KnowService.java new file mode 100644 index 0000000..03ae676 --- /dev/null +++ b/src/main/java/com/teaching/backend/service/KnowGraph/KnowService.java @@ -0,0 +1,172 @@ +package com.teaching.backend.service.KnowGraph; + +import com.teaching.backend.mapper.KnowGraph.KnowRepository; +import com.teaching.backend.model.dto.KnowGraph.*; +import com.teaching.backend.model.entity.KnowGraph.Know; +import com.teaching.backend.model.entity.KnowGraph.KnowCourse; +import com.teaching.backend.model.entity.KnowGraph.Links; +import com.teaching.backend.model.vo.knowGraph.KnowVO; +import org.neo4j.driver.internal.InternalRelationship; +import org.neo4j.driver.types.Node; +import org.springframework.beans.BeanUtils; +import org.springframework.data.neo4j.core.Neo4jClient; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +/** + * @Author:youhang + * @Date:2024-07-21-14:46 + * @Description: + */ +@Service +public class KnowService { + + private KnowRepository knowRepository; + + @Resource + private Neo4jClient neo4jClient; + + public KnowService(KnowRepository knowRepository) { + this.knowRepository = knowRepository; + } + + + public List queryKnowAllKnowById(Long id) { + return knowRepository.queryKnowAllKnowById(id); + } + + + public Know createKnow(KnowRequest knowRequest ) { + Know know = new Know(); + BeanUtils.copyProperties(knowRequest,know); + return knowRepository.save(know); + } + + public KnowCourse createCourseKnow(KnowCourseCreateRequest knowCourseCreateRequest ) { + return knowRepository.createKnowCourse(knowCourseCreateRequest.getCourseId(),knowCourseCreateRequest.getName(),knowCourseCreateRequest.getInfo(),knowCourseCreateRequest.getResourceList()); + + } + + + public void deleteKnow(Long id) { + knowRepository.deleteById(id); + } + + public Know updateKnow(KnowUpdateRequest knowUpdateRequest ) { + Know know = new Know(); + know = knowRepository.findById(knowUpdateRequest.getId()).orElseThrow(() -> new RuntimeException("知识点 not found")); + BeanUtils.copyProperties(knowUpdateRequest,know); + return knowRepository.save(know); + } + + + public void addKnowRelatedKnow( RelationshipKnowRequest relationshipKnowRequest) { + knowRepository.addKnowRelatedKnow(relationshipKnowRequest.getId(),relationshipKnowRequest.getKnowIds()); + } + public void addKnowFatherAndSonKnow( RelationshipKnowRequest relationshipKnowRequest) { + knowRepository.addKnowFatherAndSonKnow(relationshipKnowRequest.getId(),relationshipKnowRequest.getKnowIds()); + } + + + public BaseKnowReturn getKnowAll(String id) { + Collection> all = + neo4jClient.query( "match(n:Know)-[r*0..]->(p:Know) where n.courseId = '"+id+"' return n as `n`,r as `r`,p as `p`,length(r) as `d`").fetch().all(); + + MapcolorChoose = new HashMap<>(); + String color[] = new String[10]; + String[] colorList = {"#91CC75", "#5470C6", "#FAC858", "#EE6666", "#73C0DE", "#EA7CCC", "#5577FF", "#5577FF", "#9DBFFF", "#78A7FF"}; + for (int i = 0; i < 10; i++) { + colorChoose.put((long) i,colorList[i]); + } + + Iterator> iterator = all.iterator(); + Set knowList = new HashSet<>(); + SetlinksList = new HashSet<>(); + KnowVO knowVO; + List node2 = new ArrayList<>(); + Links links; + int p = 0; + while (iterator.hasNext()) { + Map element = iterator.next(); + knowVO = new KnowVO(); + Node node1 = (Node) element.get("p"); + + Long group = (Long) element.get("d"); + knowVO.setColor(colorChoose.get(group)); + + Long id1 = node1.id(); + String name1 = node1.get("name").asString(); + knowVO.setId(id1); + knowVO.setLabel(name1); + + knowList.add(knowVO); + + node2 = (List) element.get("r"); + for (int i = 0; i < node2.size(); i++) { + InternalRelationship e = (InternalRelationship) node2.get(i); + links = new Links(); + links.setId(e.id()); + links.setSource(e.startNodeId()); + links.setTarget(e.endNodeId()); + links.setLabel(e.type()); + linksList.add(links); + } + + + } + BaseKnowReturn baseKnowReturn = new BaseKnowReturn(knowList,linksList); + System.out.println(baseKnowReturn); + return baseKnowReturn; + } + + public BaseKnowReturn getKnowById(Long id) { + Collection> all = + neo4jClient.query( "match(n:Know)-[r*0..2]->(p:Know) where ID(n) = "+id+" return n as `n`,r as `r`,p as `p`,length(r) as `d`").fetch().all(); + MapcolorChoose = new HashMap<>(); + String color[] = new String[10]; + String[] colorList = {"#91CC75", "#5470C6", "#FAC858", "#EE6666", "#73C0DE", "#EA7CCC", "#5577FF", "#5577FF", "#9DBFFF", "#78A7FF"}; + for (int i = 0; i < 10; i++) { + colorChoose.put((long) i,colorList[i]); + } + + Iterator> iterator = all.iterator(); + Set knowList = new HashSet<>(); + SetlinksList = new HashSet<>(); + KnowVO knowVO; + List node2 = new ArrayList<>(); + Links links; + int p = 0; + while (iterator.hasNext()) { + Map element = iterator.next(); + + knowVO = new KnowVO(); + Node node1 = (Node) element.get("p"); + Long group = (Long) element.get("d"); + knowVO.setColor(colorChoose.get(group)); + Long id1 = node1.id(); + String name1 = node1.get("name").asString(); + knowVO.setId(id1); + knowVO.setLabel(name1); + knowList.add(knowVO); + + node2 = (List) element.get("r"); + for (int i = 0; i < node2.size(); i++) { + InternalRelationship e = (InternalRelationship) node2.get(i); + links = new Links(); + links.setId(e.id()); + links.setSource(e.startNodeId()); + links.setTarget(e.endNodeId()); + links.setLabel(e.type()); + linksList.add(links); + } + + + } + BaseKnowReturn baseKnowReturn = new BaseKnowReturn(knowList,linksList); + System.out.println(baseKnowReturn); + return baseKnowReturn; + } + +} diff --git a/src/main/java/com/teaching/backend/service/impl/CourseResourcesServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/CourseResourcesServiceImpl.java index 0057f19..411add3 100644 --- a/src/main/java/com/teaching/backend/service/impl/CourseResourcesServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/CourseResourcesServiceImpl.java @@ -57,7 +57,7 @@ public class CourseResourcesServiceImpl extends ServiceImpl impl @Autowired CoursesMapper coursesMapper; - @Autowired - KnowRelationshipMapper knowRelationshipMapper; @Autowired CourseObjectivesMapper courseObjectivesMapper; @@ -144,43 +140,18 @@ public class CoursesServiceImpl extends ServiceImpl impl @Override public PageDTO queryCourses(CourseQuery courseQuery) { - String username = courseQuery.getUsername(); -// if (username == null || username.isEmpty()) { -// throw new BusinessException(ErrorCode.USERNAME_NOT_EXIT); -// } - int roleId = Integer.parseInt(umsUserMapper.selectOne(new LambdaQueryWrapper() - .eq(UmsUser::getUsername, username)).getRoleId()); -// System.out.println(courseQuery.getRoleId()); -// int roleId = Integer.parseInt(courseQuery.getRoleId().get(0)); -// System.out.println(roleId); - -// int roleId = Math.toIntExact(umsAdminRoleRelation.getRoleId()); -// int roleId = 0; -// List roleIdList = courseQuery.getRoleId(); -// System.out.println(roleIdList); -// if (roleIdList != null && !roleIdList.isEmpty()) { -// Object firstElement = roleIdList.get(0); -// -// if (firstElement instanceof List) { -// List innerList = (List) firstElement; -// if (!innerList.isEmpty()) { -// roleId = Integer.parseInt((String) innerList.get(0)); -// } -// } else if (firstElement instanceof String) { -// roleId = Integer.parseInt((String) firstElement); -// } -// } + .eq(UmsUser::getUsername, courseQuery.getUsername())).getRoleId()); PageDTO coursesVOPageDTO; switch (roleId) { //教师--也是管理员--但是只能看自己的课程,有搜索功能 case 1: - coursesVOPageDTO = queryForTeacher(courseQuery, username); + coursesVOPageDTO = queryForTeacher(courseQuery); break; //学生 case 2: - coursesVOPageDTO = queryForStudent(courseQuery, username); + coursesVOPageDTO = queryForStudent(courseQuery); break; //这个对应的是以后的院系管理员 这个才能看别的教师的课程 case 3: @@ -189,16 +160,15 @@ public class CoursesServiceImpl extends ServiceImpl impl default: throw new BusinessException(ErrorCode.INVALID_ROLE); } - populateTeacherNames(coursesVOPageDTO.getList()); return coursesVOPageDTO; } - private PageDTO queryForTeacher(CourseQuery courseQuery, String username) { + private PageDTO queryForTeacher(CourseQuery courseQuery) { Page page = courseQuery.toMpPageDefaultSortByCreateTime(); Page p = lambdaQuery() .like(courseQuery.getName() != null, Courses::getName, courseQuery.getName()) - .apply("FIND_IN_SET({0}, teacher)", username) + .apply("FIND_IN_SET({0}, teacher)", courseQuery.getUsername()) .eq(courseQuery.getCategory() != null && !courseQuery.getCategory().isEmpty(), Courses::getCategory, courseQuery.getCategory()) .eq(courseQuery.getNature() != null && !courseQuery.getNature().isEmpty(), Courses::getNature, courseQuery.getNature()) .eq(courseQuery.getAssessmenttype() != null &&!courseQuery.getAssessmenttype().isEmpty(), Courses::getAssessmenttype, courseQuery.getAssessmenttype()) @@ -206,9 +176,9 @@ public class CoursesServiceImpl extends ServiceImpl impl return PageDTO.of(p,CoursesVO.class); } - private PageDTO queryForStudent(CourseQuery courseQuery, String username) { + private PageDTO queryForStudent(CourseQuery courseQuery) { List studentCourses = studentCoursesMapper.selectList(new LambdaQueryWrapper() - .eq(StudentCourses::getStudent, username)); + .eq(StudentCourses::getStudent, courseQuery.getUsername())); List coursesList = studentCourses.stream() .map(StudentCourses::getCourse) .collect(Collectors.toList()); @@ -241,7 +211,7 @@ public class CoursesServiceImpl extends ServiceImpl impl UmsUser umsUserTea = umsUserMapper.selectOne(new LambdaQueryWrapper() .eq(UmsUser::getUsername, teacherId)); if (umsUserTea == null) { - throw new BusinessException(ErrorCode.OPERATION_ERROR); + throw new BusinessException(ErrorCode.PARAMS_USER_NOTEXISTS); } // System.out.println(umsAdminTea); UmsTeacher umsTeacher = umsTeacherMapper.selectOne(new LambdaQueryWrapper() @@ -294,11 +264,15 @@ public class CoursesServiceImpl extends ServiceImpl impl //删除课程的同时删除对应的记录 //先通过id查出对应的记录 + System.out.println("删!"); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - System.out.println("id:"+id); lambdaQueryWrapper.eq(LearningRecords::getCoursesId, id).eq(LearningRecords::getType, 1);//课程的type为1 System.out.println("学习记录删除:"+learningRecordsMapper.selectList(lambdaQueryWrapper)); - learningRecordsMapper.delete(lambdaQueryWrapper); + List list = learningRecordsMapper.selectList(lambdaQueryWrapper); + if (list.size() > 0){ + learningRecordsMapper.deleteBatchIds(list); + } + System.out.println("无记录!"); } @Override @@ -310,7 +284,7 @@ public class CoursesServiceImpl extends ServiceImpl impl coursesVO.setTotalHours(countHours(courseid)); coursesVO.setTotalAssignHours(countChaptersHours(courseid)); coursesVO.setTotalNotAssignHours(coursesVO.getTotalHours()-coursesVO.getTotalAssignHours()); - coursesVO.setTotalKnow(countKnow(courseid)); +// coursesVO.setTotalKnow(countKnow(courseid)); System.out.println(coursesVO); return coursesVO; } @@ -362,20 +336,17 @@ public class CoursesServiceImpl extends ServiceImpl impl item.setTotalHours(countHours(item.getId())); item.setTotalchapter(countChapters(item.getId())); - item.setTotalKnow(countKnow(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 Integer countKnow(String courseid){ +// // 已修改 yh +// return knowRepository.findCountsByCourseId(courseid); +// } // 计算课程已分配的学时 计算章的学时(即已包含了小节的学时) public int countChaptersHours(String courseid){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/teaching/backend/service/impl/courses/ObjectiveContentKnowServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/courses/ObjectiveContentKnowServiceImpl.java index 3f1f99f..f62b99a 100644 --- a/src/main/java/com/teaching/backend/service/impl/courses/ObjectiveContentKnowServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/courses/ObjectiveContentKnowServiceImpl.java @@ -9,12 +9,10 @@ import com.teaching.backend.mapper.courses.CourseObjectivesMapper; import com.teaching.backend.mapper.courses.CoursesMapper; import com.teaching.backend.mapper.courses.ObjectiveContentKnowMapper; import com.teaching.backend.mapper.courses.ObjectiveContentsMapper; -import com.teaching.backend.mapper.know.KnowMapper; import com.teaching.backend.model.dto.courses.ObjectiveContentKnowDTO; import com.teaching.backend.model.entity.courses.CourseObjectives; import com.teaching.backend.model.entity.courses.ObjectiveContentKnow; import com.teaching.backend.model.entity.courses.ObjectiveContents; -import com.teaching.backend.model.entity.know.Know; import com.teaching.backend.model.vo.courses.ObjectiveContentKnowVO; import com.teaching.backend.service.courses.IObjectiveContentKnowService; import org.springframework.beans.factory.annotation.Autowired; @@ -23,11 +21,9 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; -import java.sql.SQLIntegrityConstraintViolationException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.UUID; import java.util.stream.Collectors; /** @@ -43,8 +39,8 @@ public class ObjectiveContentKnowServiceImpl extends ServiceImpl { - Know know = knowMapper.selectOne(new LambdaQueryWrapper() - .eq(Know::getId, contentKnow.getKnow())); - if (know == null) { - throw new BusinessException(ErrorCode.KNOW_NOT_EXIT); - } - return know.getHour(); - }) - .reduce(BigDecimal.ZERO, BigDecimal::add); - - vo.setKnowsTime(knowsTime); +// BigDecimal knowsTime = objectiveContentKnows.stream() +// .map(contentKnow -> { +// Know know = knowMapper.selectOne(new LambdaQueryWrapper() +// .eq(Know::getId, contentKnow.getKnow())); +// if (know == null) { +// throw new BusinessException(ErrorCode.KNOW_NOT_EXIT); +// } +// return know.getHour(); +// }) +// .reduce(BigDecimal.ZERO, BigDecimal::add); + +// vo.setKnowsTime(knowsTime); return vo; } 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 deleted file mode 100644 index 9de0420..0000000 --- a/src/main/java/com/teaching/backend/service/impl/know/KnowRelationshipServiceImpl.java +++ /dev/null @@ -1,21 +0,0 @@ -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/main/java/com/teaching/backend/service/impl/know/KnowServiceimpl.java b/src/main/java/com/teaching/backend/service/impl/know/KnowServiceimpl.java deleted file mode 100644 index f2f924b..0000000 --- a/src/main/java/com/teaching/backend/service/impl/know/KnowServiceimpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.teaching.backend.service.impl.know; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.teaching.backend.mapper.know.KnowMapper; -import com.teaching.backend.model.dto.know.KnowQueryRequest; -import com.teaching.backend.model.dto.know.KnowRequest; -import com.teaching.backend.model.dto.know.KnowupdateRequest; -import com.teaching.backend.model.entity.know.Know; -import com.teaching.backend.service.know.KnowService; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class KnowServiceimpl extends ServiceImpl implements KnowService { - @Autowired - private KnowMapper knowMapper; - @Override - public Boolean add(KnowRequest knowAddRequest) { - Know know = new Know(); - BeanUtils.copyProperties(knowAddRequest,know); - return save(know); - } - - @Override - public Boolean update(KnowupdateRequest knowAddRequest) { - Know know = new Know(); - BeanUtils.copyProperties(knowAddRequest,know); - return (updateById(know)); - } - - @Override - public Integer deleteKnow(List ids) { - Integer result = knowMapper.deleteBatchIds(ids); - return result; - } - - @Override - public List query(KnowQueryRequest knowQueryRequest) { - String name = knowQueryRequest.getName(); - QueryWrapper knowQueryWrapper = new QueryWrapper<>(); - knowQueryWrapper.eq("name",name); - List knows = knowMapper.selectList(knowQueryWrapper); - return knows; - } - -} diff --git a/src/main/java/com/teaching/backend/service/impl/records/CourseLearningRecordServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/records/CourseLearningRecordServiceImpl.java new file mode 100644 index 0000000..0ed2c5c --- /dev/null +++ b/src/main/java/com/teaching/backend/service/impl/records/CourseLearningRecordServiceImpl.java @@ -0,0 +1,22 @@ +package com.teaching.backend.service.impl.records; + + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.teaching.backend.mapper.records.CourseLearningRecordMapper; +import com.teaching.backend.model.entity.records.CourseLearningRecord; +import com.teaching.backend.service.records.ICourseLearningRecordService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author author + * @since 2024-07-24 + */ +@Service +public class CourseLearningRecordServiceImpl extends ServiceImpl implements ICourseLearningRecordService { + +} diff --git a/src/main/java/com/teaching/backend/service/impl/records/KnowledgeLearningRecordServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/records/KnowledgeLearningRecordServiceImpl.java new file mode 100644 index 0000000..f4d8a5f --- /dev/null +++ b/src/main/java/com/teaching/backend/service/impl/records/KnowledgeLearningRecordServiceImpl.java @@ -0,0 +1,22 @@ +package com.teaching.backend.service.impl.records; + + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.teaching.backend.mapper.records.KnowledgeLearningRecordMapper; +import com.teaching.backend.model.entity.records.KnowledgeLearningRecord; +import com.teaching.backend.service.records.IKnowledgeLearningRecordService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author author + * @since 2024-07-24 + */ +@Service +public class KnowledgeLearningRecordServiceImpl extends ServiceImpl implements IKnowledgeLearningRecordService { + +} diff --git a/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java index 248feba..acb8a15 100644 --- a/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java @@ -12,13 +12,12 @@ import com.teaching.backend.mapper.records.LearningRecordsMapper; import com.teaching.backend.model.entity.records.LearningRecords; import com.teaching.backend.model.vo.records.LearningRecordsVo; import com.teaching.backend.service.impl.CourseResourcesServiceImpl; -import com.teaching.backend.service.impl.chapter.ChapterServiceImpl; import com.teaching.backend.service.impl.courses.CoursesServiceImpl; -import com.teaching.backend.service.impl.know.KnowServiceimpl; import com.teaching.backend.service.records.LearningRecordsService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.time.LocalDateTime; @@ -36,10 +35,8 @@ public class LearningRecordsServiceImpl extends ServiceImpl selectPageList(Page page, LearningRecords model) { @@ -55,92 +52,64 @@ public class LearningRecordsServiceImpl extends ServiceImpl getAll(String userId){ - //格式化时间 + public List getAll(List list){ + List records = new ArrayList<>(); //格式化时间 String strDateFormat = "yyyy-MM-dd HH:mm:ss"; SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat); - - List list = new ArrayList<>(); - //将学习记录实体转成学习记录Vo实体 - LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); - lambdaQueryWrapper1 - .orderByDesc(LearningRecords::getAccessTime) - .eq(LearningRecords::getUserId, userId) - .eq(LearningRecords::getStatus, "1"); - System.out.println(this.list(lambdaQueryWrapper1)); //如果为空-------------------????? - for (LearningRecords learningRecords : this.list(lambdaQueryWrapper1)) { - //查找该用户的学习记录 -// if (learningRecords.getUserId().equals(userId) && learningRecords.getStatus().equals("1")){ - LearningRecordsVo learningRecordsVo = new LearningRecordsVo();//好像可以拿出去-----------?? - BeanUtils.copyProperties(learningRecords,learningRecordsVo);//从多传到少(缺少人数,和资源名称,时间需要转格式) - //添加时间 - //LocalDateTime转Date - Date date = Date.from(learningRecords.getAccessTime().atZone(ZoneId.systemDefault()).toInstant()); - learningRecordsVo.setTime(sdf.format(date)); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(LearningRecords::getCoursesId, learningRecords.getCoursesId()); -// System.out.println(learningRecords.getResourceId()); -// System.out.println("1"); - - String name; - //添加课程名称 - switch (learningRecords.getType()) { - case "4": //如果是资源学习 + list.forEach(learningRecords -> { + LearningRecordsVo learningRecordsVo = new LearningRecordsVo();//好像可以拿出去-----------?? + BeanUtils.copyProperties(learningRecords,learningRecordsVo);//从多传到少(时间需要转格式) + Date date = Date.from(learningRecords.getTime().atZone(ZoneId.systemDefault()).toInstant()); + learningRecordsVo.setTime(sdf.format(date)); +// //统计记录表里有多少人查看过这门资源 +// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); +// lambdaQueryWrapper.eq(LearningRecords::getCoursesId, learningRecords.getCoursesId()); +// long count = this.count(lambdaQueryWrapper); + learningRecordsVo.setNumber(learningRecords.getNumber()); + //把整合后该用户的学习记录添加到List里 + records.add(learningRecordsVo); + }); +// for (LearningRecords learningRecords : list) { +// //查找该用户的学习记录 +// LearningRecordsVo learningRecordsVo = new LearningRecordsVo();//好像可以拿出去-----------?? +// BeanUtils.copyProperties(learningRecords,learningRecordsVo);//从多传到少(缺少人数,和资源名称,时间需要转格式) +// //添加时间 +// //LocalDateTime转Date +// Date date = Date.from(learningRecords.getTime().atZone(ZoneId.systemDefault()).toInstant()); +// learningRecordsVo.setTime(sdf.format(date)); +// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); +// lambdaQueryWrapper.eq(LearningRecords::getCoursesId, learningRecords.getCoursesId()); +// String name; +// //添加课程名称 +// switch (learningRecords.getType()) { +// case "4": //如果是资源学习 // if (courseResourcesService.getById(learningRecords.getCoursesId()) != null){ -// name=courseResourcesService.getById(learningRecords.getCoursesId()).getName(); -// }else { -// name = "查无次记录"; -// } - //如果对应的资源不存在 - learningRecordsVo.setCoursesName(courseResourcesService.getById(learningRecords.getCoursesId()).getName());//设置名称 --------------------------------------------待完善 - break; - case "3": //如果是知识点学习记录 -// if (knowledgePointService.getById(learningRecords.getCoursesId()) != null){ -// name=knowledgePointService.getById(learningRecords.getCoursesId()).getName(); -// }else { -// name = "查无次记录"; +// learningRecordsVo.setCoursesName(courseResourcesService.getById(learningRecords.getCoursesId()).getName()); // } - learningRecordsVo.setCoursesName(knowledgePointService.getById(learningRecords.getCoursesId()).getName()); - //如果对应的资源不存在 - break; - case "2": //如果是章节学习记录 -// if (chapterService.getById(learningRecords.getCoursesId()) != null){ -// name=chapterService.getById(learningRecords.getCoursesId()).getName(); -// }else { -// name = "查无次记录"; -// } - learningRecordsVo.setCoursesName(chapterService.getById(learningRecords.getCoursesId()).getName()); - //如果对应的资源不存在 - break; - case "1": //如果是课程学习记录 +// break; +// case "1": //如果是课程学习记录 // if (coursesService.getById(learningRecords.getCoursesId()) != null){ -// name=coursesService.getById(learningRecords.getCoursesId()).getName(); -// }else { -// name = "查无次记录"; +// learningRecordsVo.setCoursesName(coursesService.getById(learningRecords.getCoursesId()).getName()); // } - learningRecordsVo.setCoursesName(coursesService.getById(learningRecords.getCoursesId()).getName()); - //如果对应的资源不存在 - break; - } - //添加观看人数 - //统计记录表里有多少人查看过这门资源 - long count = this.count(lambdaQueryWrapper); - learningRecordsVo.setNumber(count); - //把整合后该用户的学习记录添加到List里 - list.add(learningRecordsVo); +// break; // } - } - System.out.println(list); - return list; +// //添加观看人数 +// //统计记录表里有多少人查看过这门资源 +// long count = this.count(lambdaQueryWrapper); +// learningRecordsVo.setNumber(count); +// //把整合后该用户的学习记录添加到List里 +// records.add(learningRecordsVo); +// } + return records; } /** @@ -149,6 +118,7 @@ public class LearningRecordsServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper @@ -165,31 +135,27 @@ public class LearningRecordsServiceImpl extends ServiceImpl list = query().eq("courses_id", coursesId).eq("type", learningRecords.getType()).list(); + LearningRecords one1 = query().eq("courses_id", coursesId).eq("type", learningRecords.getType()).eq("user_id", userId).one(); + int number = list.size(); + //该用户是否学习过 + if (one1 != null){//学习过观看人数不加 + learningRecords.setNumber(number); + list.forEach(learningRecords1 -> { + learningRecords1.setNumber(number); + }); + } else {//否则观看人数加1 + learningRecords.setNumber(number + 1); + } + updateBatchById(list); if (count == 0){//如果没有就新增并记录学习方式是打开还是下载 //根据传上来的type设置 // learningRecords.setType(learningRecords.getType()); diff --git a/src/main/java/com/teaching/backend/service/impl/records/ResourceLearningRecordServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/records/ResourceLearningRecordServiceImpl.java new file mode 100644 index 0000000..19d34aa --- /dev/null +++ b/src/main/java/com/teaching/backend/service/impl/records/ResourceLearningRecordServiceImpl.java @@ -0,0 +1,21 @@ +package com.teaching.backend.service.impl.records; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.teaching.backend.mapper.records.ResourceLearningRecordMapper; +import com.teaching.backend.model.entity.records.ResourceLearningRecord; +import com.teaching.backend.service.records.IResourceLearningRecordService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author author + * @since 2024-07-24 + */ +@Service +public class ResourceLearningRecordServiceImpl extends ServiceImpl implements IResourceLearningRecordService { + +} diff --git a/src/main/java/com/teaching/backend/service/know/IKnowRelationshipService.java b/src/main/java/com/teaching/backend/service/know/IKnowRelationshipService.java deleted file mode 100644 index 861b1d7..0000000 --- a/src/main/java/com/teaching/backend/service/know/IKnowRelationshipService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.teaching.backend.service.know; - - -import com.baomidou.mybatisplus.extension.service.IService; -import com.teaching.backend.model.entity.know.KnowRelationship; - -/** - *

- * 服务类 - *

- * - * @author author - * @since 2024-06-20 - */ -public interface IKnowRelationshipService extends IService { -} diff --git a/src/main/java/com/teaching/backend/service/know/KnowService.java b/src/main/java/com/teaching/backend/service/know/KnowService.java deleted file mode 100644 index c40a743..0000000 --- a/src/main/java/com/teaching/backend/service/know/KnowService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.teaching.backend.service.know; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.teaching.backend.model.dto.favour.knowFavour.KnowFavourAddRequest; - -import com.teaching.backend.model.dto.know.KnowQueryRequest; -import com.teaching.backend.model.dto.know.KnowRequest; -import com.teaching.backend.model.dto.know.KnowupdateRequest; -import com.teaching.backend.model.entity.know.Know; - -import java.util.List; - - -public interface KnowService extends IService { - public Boolean add(KnowRequest knowAddRequest); - - public Boolean update(KnowupdateRequest knowAddRequest); - - public Integer deleteKnow(List ids); - - public List query(KnowQueryRequest knowQueryRequest); -} - diff --git a/src/main/java/com/teaching/backend/service/records/ICourseLearningRecordService.java b/src/main/java/com/teaching/backend/service/records/ICourseLearningRecordService.java new file mode 100644 index 0000000..6cdaadf --- /dev/null +++ b/src/main/java/com/teaching/backend/service/records/ICourseLearningRecordService.java @@ -0,0 +1,17 @@ +package com.teaching.backend.service.records; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.teaching.backend.model.entity.records.CourseLearningRecord; + +/** + *

+ * 服务类 + *

+ * + * @author author + * @since 2024-07-24 + */ +public interface ICourseLearningRecordService extends IService { + +} diff --git a/src/main/java/com/teaching/backend/service/records/IKnowledgeLearningRecordService.java b/src/main/java/com/teaching/backend/service/records/IKnowledgeLearningRecordService.java new file mode 100644 index 0000000..c8387d1 --- /dev/null +++ b/src/main/java/com/teaching/backend/service/records/IKnowledgeLearningRecordService.java @@ -0,0 +1,17 @@ +package com.teaching.backend.service.records; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.teaching.backend.model.entity.records.KnowledgeLearningRecord; + +/** + *

+ * 服务类 + *

+ * + * @author author + * @since 2024-07-24 + */ +public interface IKnowledgeLearningRecordService extends IService { + +} diff --git a/src/main/java/com/teaching/backend/service/records/IResourceLearningRecordService.java b/src/main/java/com/teaching/backend/service/records/IResourceLearningRecordService.java new file mode 100644 index 0000000..8b191b6 --- /dev/null +++ b/src/main/java/com/teaching/backend/service/records/IResourceLearningRecordService.java @@ -0,0 +1,17 @@ +package com.teaching.backend.service.records; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.teaching.backend.model.entity.records.ResourceLearningRecord; + +/** + *

+ * 服务类 + *

+ * + * @author author + * @since 2024-07-24 + */ +public interface IResourceLearningRecordService extends IService { + +} diff --git a/src/main/java/com/teaching/backend/service/records/LearningRecordsService.java b/src/main/java/com/teaching/backend/service/records/LearningRecordsService.java index d2acb1b..6ab95e7 100644 --- a/src/main/java/com/teaching/backend/service/records/LearningRecordsService.java +++ b/src/main/java/com/teaching/backend/service/records/LearningRecordsService.java @@ -10,7 +10,7 @@ import com.teaching.backend.model.vo.records.LearningRecordsVo; import java.util.List; public interface LearningRecordsService extends IService { - public List getAll(String username); + public List getAll(List list); public String saveRecords(LearningRecords learningRecords); IPage selectPageList(Page page, LearningRecords model); diff --git a/src/main/java/com/teaching/backend/service/resource/CourseResourcesService.java b/src/main/java/com/teaching/backend/service/resource/CourseResourcesService.java index 41d042d..0ed7cb2 100644 --- a/src/main/java/com/teaching/backend/service/resource/CourseResourcesService.java +++ b/src/main/java/com/teaching/backend/service/resource/CourseResourcesService.java @@ -31,5 +31,5 @@ public interface CourseResourcesService extends IService { public void saveCourseResource(CourseResources courseResources); - public CourseResources editCourseResource(String resourceId); + public void editCourseResource(String resourceId); } diff --git a/src/main/java/com/teaching/backend/utils/ParamOutAspect.java b/src/main/java/com/teaching/backend/utils/ParamOutAspect.java index 383ce64..b6b3eee 100644 --- a/src/main/java/com/teaching/backend/utils/ParamOutAspect.java +++ b/src/main/java/com/teaching/backend/utils/ParamOutAspect.java @@ -21,6 +21,7 @@ // //import javax.servlet.http.HttpServletRequest; //import javax.servlet.http.HttpServletResponse; +//import java.lang.reflect.Field; //import java.lang.reflect.Method; //import java.util.Arrays; //import java.util.List; @@ -36,7 +37,7 @@ // private final String executeExpr = "execution(public * com.teaching.backend.controller..*.*(..))"; // // @Before(executeExpr) -// public void processLog(JoinPoint joinPoint) { +// public void processLog(JoinPoint joinPoint) throws IllegalAccessException { // Method method = ((MethodSignature) joinPoint.getSignature()).getMethod(); // //获取方法名称 // String methodName = method.getName(); @@ -53,22 +54,25 @@ // final Object[] array = filteredArgs.stream().toArray(); // // for (int i = 0; i < array.length; i++) { -// String jsonStr = JSONUtil.toJsonStr(array[i]); -//// Class myClass = array[i].getClass(); // 获取类的 Class 对象 -// JSONObject entries = JSONUtil.parseObj(jsonStr); -// System.out.println(entries); -// // 遍历JSONObject的属性 -// entries.forEach((key, value) -> { -// if(value == null || "".equals(value)){ -// //可以设置为空的字段 -// if(key.equals( "sortField")||key.equals( "sortOrder")){ -// }else{ -// throw new BusinessException(ErrorCode.PARAMS_NULL); -// } -// -// } -//// System.out.println(key + ": " + value); -// }); +// Class clazz = array[i].getClass(); +// // 获取所有字段(包括私有字段) +// Field[] fields = clazz.getDeclaredFields(); +// for (Field field : fields) { +// // 设置字段为可访问(如果需要访问私有字段) +// field.setAccessible(true); +// +// // 获取字段的值 +// Object value = field.get(array[i]); +// +// // 检查值是否为空 +// if (value == null) { +// // 这里可以抛出异常或记录日志,具体取决于你的需求 +// String fieldName = field.getName(); +// throw new IllegalArgumentException(fieldName + " @@@@@is null"); +// } +// } +// +// // } // } // } diff --git a/src/main/java/com/teaching/backend/utils/getNullPropertyNamesUtil.java b/src/main/java/com/teaching/backend/utils/getNullPropertyNamesUtil.java new file mode 100644 index 0000000..4131209 --- /dev/null +++ b/src/main/java/com/teaching/backend/utils/getNullPropertyNamesUtil.java @@ -0,0 +1,38 @@ +package com.teaching.backend.utils; + +import org.springframework.beans.BeanWrapper; +import org.springframework.beans.BeanWrapperImpl; + +import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Set; + +/** + * @Author:youhang + * @Date:2024-06-23-12:45 + * @Description: + */ +public class getNullPropertyNamesUtil { + + public static String[] getNullPropertyNames (Object source) { + final BeanWrapper src = new BeanWrapperImpl(source); + java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors(); + + Set emptyNames = new HashSet(); + for(java.beans.PropertyDescriptor pd : pds) { + Class propertyType = src.getPropertyType(pd.getName()); + Object srcValue = src.getPropertyValue(pd.getName()); +// if ("Integer".equals(propertyType.getName()) || "Long".equals(propertyType.getName())){ +// Integer value = (Integer) srcValue; +// if (value == 0) emptyNames.add(pd.getName()); +// } + if ("BigDecimal".equals(propertyType.getName())){ + BigDecimal value =(BigDecimal)srcValue; + if (value == null || (BigDecimal.ZERO).equals(0)) emptyNames.add(pd.getName()); + } + if (srcValue == null || srcValue == "") emptyNames.add(pd.getName()); + } + String[] result = new String[emptyNames.size()]; + return emptyNames.toArray(result); + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 8dcd1f6..6002750 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -7,6 +7,11 @@ spring: multipart: max-file-size: 10MB max-request-size: 10MB + neo4j: + uri: bolt://39.106.16.162:7687 + authentication: + username: neo4j # 连接Neo4j数据P库的用户名 + password: 123456 # 连接Neo4j数据库的密码 mvc: pathmatch: matching-strategy: ant_path_matcher