From d4054e37c9652239a8b183f288a441da930cad18 Mon Sep 17 00:00:00 2001
From: youahng <2998465706@qq.com>
Date: Wed, 24 Jul 2024 10:52:11 +0800
Subject: [PATCH 1/7] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=8E=86=E5=8F=B2?=
=?UTF-8?q?=E7=9F=A5=E8=AF=86=E7=82=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 11 ++
.../controller/know/KnowController.java | 40 -----
.../know/KnowRelationshipController.java | 42 -----
.../backend/mapper/know/KnowMapper.java | 10 --
.../mapper/know/KnowRelationshipMapper.java | 18 --
.../model/dto/know/KnowQueryRequest.java | 19 --
.../backend/model/dto/know/KnowRequest.java | 48 -----
.../model/dto/know/KnowupdateRequest.java | 54 ------
.../backend/model/entity/courses/Main.java | 168 ++++++++++++++++++
.../backend/model/entity/know/Know.java | 66 -------
.../model/entity/know/KnowRelationship.java | 46 -----
.../impl/courses/CoursesServiceImpl.java | 20 +--
.../ObjectiveContentKnowServiceImpl.java | 32 ++--
.../know/KnowRelationshipServiceImpl.java | 21 ---
.../service/impl/know/KnowServiceimpl.java | 50 ------
.../records/LearningRecordsServiceImpl.java | 7 +-
.../know/IKnowRelationshipService.java | 16 --
.../backend/service/know/KnowService.java | 23 ---
.../backend/utils/ParamOutAspect.java | 38 ++--
.../utils/getNullPropertyNamesUtil.java | 38 ++++
src/main/resources/application.yml | 5 +
21 files changed, 266 insertions(+), 506 deletions(-)
delete mode 100644 src/main/java/com/teaching/backend/controller/know/KnowController.java
delete mode 100644 src/main/java/com/teaching/backend/controller/know/KnowRelationshipController.java
delete mode 100644 src/main/java/com/teaching/backend/mapper/know/KnowMapper.java
delete mode 100644 src/main/java/com/teaching/backend/mapper/know/KnowRelationshipMapper.java
delete mode 100644 src/main/java/com/teaching/backend/model/dto/know/KnowQueryRequest.java
delete mode 100644 src/main/java/com/teaching/backend/model/dto/know/KnowRequest.java
delete mode 100644 src/main/java/com/teaching/backend/model/dto/know/KnowupdateRequest.java
create mode 100644 src/main/java/com/teaching/backend/model/entity/courses/Main.java
delete mode 100644 src/main/java/com/teaching/backend/model/entity/know/Know.java
delete mode 100644 src/main/java/com/teaching/backend/model/entity/know/KnowRelationship.java
delete mode 100644 src/main/java/com/teaching/backend/service/impl/know/KnowRelationshipServiceImpl.java
delete mode 100644 src/main/java/com/teaching/backend/service/impl/know/KnowServiceimpl.java
delete mode 100644 src/main/java/com/teaching/backend/service/know/IKnowRelationshipService.java
delete mode 100644 src/main/java/com/teaching/backend/service/know/KnowService.java
create mode 100644 src/main/java/com/teaching/backend/utils/getNullPropertyNamesUtil.java
diff --git a/pom.xml b/pom.xml
index 4f5717c..c37861b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,6 +24,17 @@
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
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/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/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/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/service/impl/courses/CoursesServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/courses/CoursesServiceImpl.java
index 1efe8c2..a104d6d 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
@@ -12,7 +12,6 @@ import com.teaching.backend.common.ErrorCode;
import com.teaching.backend.exception.BusinessException;
import com.teaching.backend.mapper.chapter.ChapterMapper;
import com.teaching.backend.mapper.courses.*;
-import com.teaching.backend.mapper.know.KnowRelationshipMapper;
import com.teaching.backend.mapper.records.LearningRecordsMapper;
import com.teaching.backend.mapper.umsAdmin.UmsTeacherMapper;
import com.teaching.backend.mapper.umsAdmin.UmsUserMapper;
@@ -20,7 +19,6 @@ import com.teaching.backend.model.dto.courses.CoursesDTO;
import com.teaching.backend.model.dto.courses.PageDTO;
import com.teaching.backend.model.entity.chapter.Chapter;
import com.teaching.backend.model.entity.courses.*;
-import com.teaching.backend.model.entity.know.KnowRelationship;
import com.teaching.backend.model.entity.records.LearningRecords;
import com.teaching.backend.model.entity.umsAdmin.UmsTeacher;
import com.teaching.backend.model.entity.umsAdmin.UmsUser;
@@ -43,7 +41,6 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
/**
*
@@ -65,8 +62,6 @@ public class CoursesServiceImpl extends ServiceImpl impl
@Autowired
CoursesMapper coursesMapper;
- @Autowired
- KnowRelationshipMapper knowRelationshipMapper;
@Autowired
CourseObjectivesMapper courseObjectivesMapper;
@@ -307,7 +302,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;
}
@@ -322,20 +317,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/LearningRecordsServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java
index 248feba..562a697 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
@@ -14,7 +14,6 @@ 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;
@@ -36,8 +35,8 @@ public class LearningRecordsServiceImpl extends ServiceImpl
- * 服务类
- *
- *
- * @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/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
From c9d9ffecb6efffee979602b0c35c4ff4a553213e Mon Sep 17 00:00:00 2001
From: youahng <2998465706@qq.com>
Date: Wed, 24 Jul 2024 10:59:46 +0800
Subject: [PATCH 2/7] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E7=9F=A5=E8=AF=86?=
=?UTF-8?q?=E5=9B=BE=E8=B0=B1crud?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/KnowGraph/KnowController.java | 81 +++++++++
.../mapper/KnowGraph/KnowRepository.java | 31 ++++
.../model/dto/KnowGraph/BaseKnowReturn.java | 31 ++++
.../model/dto/KnowGraph/KnowRequest.java | 34 ++++
.../dto/KnowGraph/KnowUpdateRequest.java | 37 +++++
.../KnowGraph/RelationshipKnowRequest.java | 22 +++
.../backend/model/entity/KnowGraph/Know.java | 45 +++++
.../backend/model/entity/KnowGraph/Links.java | 32 ++++
.../backend/model/vo/knowGraph/KnowVO.java | 36 ++++
.../service/KnowGraph/KnowService.java | 155 ++++++++++++++++++
10 files changed, 504 insertions(+)
create mode 100644 src/main/java/com/teaching/backend/controller/KnowGraph/KnowController.java
create mode 100644 src/main/java/com/teaching/backend/mapper/KnowGraph/KnowRepository.java
create mode 100644 src/main/java/com/teaching/backend/model/dto/KnowGraph/BaseKnowReturn.java
create mode 100644 src/main/java/com/teaching/backend/model/dto/KnowGraph/KnowRequest.java
create mode 100644 src/main/java/com/teaching/backend/model/dto/KnowGraph/KnowUpdateRequest.java
create mode 100644 src/main/java/com/teaching/backend/model/dto/KnowGraph/RelationshipKnowRequest.java
create mode 100644 src/main/java/com/teaching/backend/model/entity/KnowGraph/Know.java
create mode 100644 src/main/java/com/teaching/backend/model/entity/KnowGraph/Links.java
create mode 100644 src/main/java/com/teaching/backend/model/vo/knowGraph/KnowVO.java
create mode 100644 src/main/java/com/teaching/backend/service/KnowGraph/KnowService.java
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..3d1625c
--- /dev/null
+++ b/src/main/java/com/teaching/backend/controller/KnowGraph/KnowController.java
@@ -0,0 +1,81 @@
+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.BaseKnowReturn;
+import com.teaching.backend.model.dto.KnowGraph.KnowRequest;
+import com.teaching.backend.model.dto.KnowGraph.KnowUpdateRequest;
+import com.teaching.backend.model.dto.KnowGraph.RelationshipKnowRequest;
+import com.teaching.backend.model.entity.KnowGraph.Know;
+
+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 ("/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 Long 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/mapper/KnowGraph/KnowRepository.java b/src/main/java/com/teaching/backend/mapper/KnowGraph/KnowRepository.java
new file mode 100644
index 0000000..ea96859
--- /dev/null
+++ b/src/main/java/com/teaching/backend/mapper/KnowGraph/KnowRepository.java
@@ -0,0 +1,31 @@
+package com.teaching.backend.mapper.KnowGraph;
+
+/**
+ * @Author:youhang
+ * @Date:2024-06-09-8:59
+ * @Description:
+ */
+
+
+import com.teaching.backend.model.entity.KnowGraph.Know;
+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);
+
+
+
+
+}
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/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/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/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/vo/knowGraph/KnowVO.java b/src/main/java/com/teaching/backend/model/vo/knowGraph/KnowVO.java
new file mode 100644
index 0000000..8ab5cc0
--- /dev/null
+++ b/src/main/java/com/teaching/backend/model/vo/knowGraph/KnowVO.java
@@ -0,0 +1,36 @@
+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 Long group;
+
+
+ /**
+ * 知识点所关联的资源
+ */
+ private List resourceList;
+
+}
+
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..855fc65
--- /dev/null
+++ b/src/main/java/com/teaching/backend/service/KnowGraph/KnowService.java
@@ -0,0 +1,155 @@
+package com.teaching.backend.service.KnowGraph;
+
+import com.teaching.backend.mapper.KnowGraph.KnowRepository;
+import com.teaching.backend.model.dto.KnowGraph.BaseKnowReturn;
+import com.teaching.backend.model.dto.KnowGraph.KnowRequest;
+import com.teaching.backend.model.dto.KnowGraph.KnowUpdateRequest;
+import com.teaching.backend.model.dto.KnowGraph.RelationshipKnowRequest;
+import com.teaching.backend.model.entity.KnowGraph.Know;
+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 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(Long id) {
+ Collection
+ *
+ * @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 562a697..598b156 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
@@ -18,6 +18,7 @@ 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;
@@ -35,8 +36,6 @@ public class LearningRecordsServiceImpl extends ServiceImpl
+ * 服务实现类
+ *
+ *
+ * @author author
+ * @since 2024-07-24
+ */
+@Service
+public class ResourceLearningRecordServiceImpl extends ServiceImpl implements IResourceLearningRecordService {
+
+}
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/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);
}
From 847639f5a5d715b431354329ab8d7f7b72db6670 Mon Sep 17 00:00:00 2001
From: youahng <2998465706@qq.com>
Date: Wed, 24 Jul 2024 17:24:17 +0800
Subject: [PATCH 4/7] =?UTF-8?q?=E7=9F=A5=E8=AF=86=E5=9B=BE=E8=B0=B1?=
=?UTF-8?q?=E4=BF=AE=E6=94=B91=20=E7=BB=93=E5=90=88=E8=AF=BE=E7=A8=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/KnowGraph/KnowController.java | 14 ++++--
.../mapper/KnowGraph/KnowRepository.java | 5 ++
.../KnowGraph/KnowCourseCreateRequest.java | 38 ++++++++++++++
.../model/entity/KnowGraph/KnowCourse.java | 50 +++++++++++++++++++
.../backend/model/vo/knowGraph/KnowVO.java | 7 +--
.../service/KnowGraph/KnowService.java | 41 ++++++++++-----
6 files changed, 132 insertions(+), 23 deletions(-)
create mode 100644 src/main/java/com/teaching/backend/model/dto/KnowGraph/KnowCourseCreateRequest.java
create mode 100644 src/main/java/com/teaching/backend/model/entity/KnowGraph/KnowCourse.java
diff --git a/src/main/java/com/teaching/backend/controller/KnowGraph/KnowController.java b/src/main/java/com/teaching/backend/controller/KnowGraph/KnowController.java
index 3d1625c..167e347 100644
--- a/src/main/java/com/teaching/backend/controller/KnowGraph/KnowController.java
+++ b/src/main/java/com/teaching/backend/controller/KnowGraph/KnowController.java
@@ -7,12 +7,10 @@ package com.teaching.backend.controller.KnowGraph;
*/
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.common.ResultUtils;
-import com.teaching.backend.model.dto.KnowGraph.BaseKnowReturn;
-import com.teaching.backend.model.dto.KnowGraph.KnowRequest;
-import com.teaching.backend.model.dto.KnowGraph.KnowUpdateRequest;
-import com.teaching.backend.model.dto.KnowGraph.RelationshipKnowRequest;
+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.*;
@@ -41,6 +39,12 @@ public class KnowController {
return knowService.createKnow(knowRequest);
}
+ //添加知识点 - 课程
+ @PostMapping("/addKnowCourse")
+ public KnowCourse createCourseKnow(@RequestBody KnowCourseCreateRequest knowCourseCreateRequest) {
+ return knowService.createCourseKnow(knowCourseCreateRequest);
+ }
+
//修改知识点
@PostMapping ("/update")
public Know updateKnow(@RequestBody KnowUpdateRequest knowUpdateRequest) {
@@ -67,7 +71,7 @@ public class KnowController {
}
@GetMapping("/all")
- public BaseResponse getKnowAll(@RequestParam Long id) {
+ public BaseResponse getKnowAll(@RequestParam String id) {
BaseKnowReturn baseKnowReturn =knowService.getKnowAll(id);
return ResultUtils.success(baseKnowReturn);
}
diff --git a/src/main/java/com/teaching/backend/mapper/KnowGraph/KnowRepository.java b/src/main/java/com/teaching/backend/mapper/KnowGraph/KnowRepository.java
index ea96859..d26ff96 100644
--- a/src/main/java/com/teaching/backend/mapper/KnowGraph/KnowRepository.java
+++ b/src/main/java/com/teaching/backend/mapper/KnowGraph/KnowRepository.java
@@ -7,7 +7,9 @@ package com.teaching.backend.mapper.KnowGraph;
*/
+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;
@@ -26,6 +28,9 @@ public interface KnowRepository extends Neo4jRepository {
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/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/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/vo/knowGraph/KnowVO.java b/src/main/java/com/teaching/backend/model/vo/knowGraph/KnowVO.java
index 8ab5cc0..d6a60a2 100644
--- a/src/main/java/com/teaching/backend/model/vo/knowGraph/KnowVO.java
+++ b/src/main/java/com/teaching/backend/model/vo/knowGraph/KnowVO.java
@@ -24,13 +24,8 @@ public class KnowVO implements Serializable {
/**
* 信息
*/
- private Long group;
+ private String color;
- /**
- * 知识点所关联的资源
- */
- private List resourceList;
-
}
diff --git a/src/main/java/com/teaching/backend/service/KnowGraph/KnowService.java b/src/main/java/com/teaching/backend/service/KnowGraph/KnowService.java
index 855fc65..03ae676 100644
--- a/src/main/java/com/teaching/backend/service/KnowGraph/KnowService.java
+++ b/src/main/java/com/teaching/backend/service/KnowGraph/KnowService.java
@@ -1,11 +1,9 @@
package com.teaching.backend.service.KnowGraph;
import com.teaching.backend.mapper.KnowGraph.KnowRepository;
-import com.teaching.backend.model.dto.KnowGraph.BaseKnowReturn;
-import com.teaching.backend.model.dto.KnowGraph.KnowRequest;
-import com.teaching.backend.model.dto.KnowGraph.KnowUpdateRequest;
-import com.teaching.backend.model.dto.KnowGraph.RelationshipKnowRequest;
+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;
@@ -46,6 +44,11 @@ public class KnowService {
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);
@@ -67,9 +70,16 @@ public class KnowService {
}
- public BaseKnowReturn getKnowAll(Long id) {
+ public BaseKnowReturn getKnowAll(String id) {
Collection> all =
- neo4jClient.query( "match(n:Know)-[r*0..]->(p:Know) where ID(n) = "+id+" return n as `n`,r as `r`,p as `p`,length(r) as `d`").fetch().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<>();
@@ -80,15 +90,17 @@ public class KnowService {
int p = 0;
while (iterator.hasNext()) {
Map element = iterator.next();
- Long group = (Long) element.get("d");
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();
-// String info1 = node1.get("info").asString();
knowVO.setId(id1);
knowVO.setLabel(name1);
- knowVO.setGroup(group);
+
knowList.add(knowVO);
node2 = (List) element.get("r");
@@ -112,6 +124,12 @@ public class KnowService {
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<>();
@@ -123,15 +141,14 @@ public class KnowService {
while (iterator.hasNext()) {
Map element = iterator.next();
- Long group = (Long) element.get("d");
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();
-// String info1 = node1.get("info").asString();
knowVO.setId(id1);
knowVO.setLabel(name1);
- knowVO.setGroup(group);
knowList.add(knowVO);
node2 = (List) element.get("r");
From 87ac8ad505be259f2849faa87ab33efa74a685e9 Mon Sep 17 00:00:00 2001
From: Alan <3052806735@qq.com>
Date: Wed, 24 Jul 2024 17:54:03 +0800
Subject: [PATCH 5/7] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?=
=?UTF-8?q?=E4=BF=AE=E6=AD=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../impl/courses/CoursesServiceImpl.java | 42 ++++---------------
1 file changed, 8 insertions(+), 34 deletions(-)
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 21139fe..48b2dac 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
@@ -139,43 +139,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:
@@ -184,16 +159,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())
@@ -201,9 +175,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());
@@ -236,7 +210,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()
From 395f909cf2a153b86175a9ac6bb04cee743ea8a7 Mon Sep 17 00:00:00 2001
From: wenyu441069198 <14186472+wenyu441069198@user.noreply.gitee.com>
Date: Thu, 25 Jul 2024 10:06:41 +0800
Subject: [PATCH 6/7] =?UTF-8?q?=E5=AD=A6=E4=B9=A0=E8=AE=B0=E5=BD=95?=
=?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2=E9=80=9F=E5=BA=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 26 +---
.../CourseLearningRecordController.java | 12 ++
.../records/LearningRecordsController.java | 21 +--
.../model/entity/records/LearningRecords.java | 15 ++-
.../model/vo/records/LearningRecordsVo.java | 2 +-
.../records/LearningRecordsServiceImpl.java | 125 +++++++++---------
.../records/LearningRecordsService.java | 2 +-
7 files changed, 102 insertions(+), 101 deletions(-)
create mode 100644 src/main/java/com/teaching/backend/controller/records/CourseLearningRecordController.java
diff --git a/pom.xml b/pom.xml
index c37861b..310834b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,63 +39,49 @@
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
@@ -111,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
@@ -193,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/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 47de994..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,17 +38,19 @@ 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);
- pageInfo.setPages((int)(Math.ceil((double) total / pagesize)));//设置总页数
+ pageInfo.setRecords(cs);
+ pageInfo.setPages(page.getPages());//设置总页数
return ResultUtils.success(pageInfo);
}
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 44f7d8c..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;
@@ -36,7 +37,7 @@ public class LearningRecords {
/**
* 访问时间
*/
- private LocalDateTime accessTime;
+ private LocalDateTime time;
/**
* 学习方式:打开; 1,打开过,2未打开
@@ -74,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/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/impl/records/LearningRecordsServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java
index 598b156..5fb69a9 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,7 +12,6 @@ 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.records.LearningRecordsService;
import org.springframework.beans.BeanUtils;
@@ -36,8 +35,8 @@ public class LearningRecordsServiceImpl extends ServiceImpl selectPageList(Page page, LearningRecords model) {
@@ -53,76 +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": //如果是资源学习
- learningRecordsVo.setCoursesName(courseResourcesService.getById(learningRecords.getCoursesId()).getName());//设置名称 --------------------------------------------待完善
- break;
- case "3": //如果是知识点学习记录
-// learningRecordsVo.setCoursesName(knowledgePointService.getById(learningRecords.getCoursesId()).get());
-// if (knowledgePointService.getById(learningRecords.getCoursesId()) != null){
-// name=knowledgePointService.getById(learningRecords.getCoursesId()).getName();
-// }else {
-// name = "查无次记录";
+ 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){
+// learningRecordsVo.setCoursesName(courseResourcesService.getById(learningRecords.getCoursesId()).getName());
// }
-// learningRecordsVo.setCoursesName(knowledgePointService.getById(learningRecords.getCoursesId()).getName());
- //如果对应的资源不存在
- break;
- case "2": //如果是章节学习记录
- learningRecordsVo.setCoursesName(chapterService.getById(learningRecords.getCoursesId()).getName());
- //如果对应的资源不存在
- break;
- case "1": //如果是课程学习记录
- learningRecordsVo.setCoursesName(coursesService.getById(learningRecords.getCoursesId()).getName());
- break;
- }
- //添加观看人数
- //统计记录表里有多少人查看过这门资源
- long count = this.count(lambdaQueryWrapper);
- learningRecordsVo.setNumber(count);
- //把整合后该用户的学习记录添加到List里
- list.add(learningRecordsVo);
+// break;
+// case "1": //如果是课程学习记录
+// if (coursesService.getById(learningRecords.getCoursesId()) != null){
+// learningRecordsVo.setCoursesName(coursesService.getById(learningRecords.getCoursesId()).getName());
+// }
+// break;
// }
- }
-// System.out.println("查询后结果:"+list);
- return list;
+// //添加观看人数
+// //统计记录表里有多少人查看过这门资源
+// long count = this.count(lambdaQueryWrapper);
+// learningRecordsVo.setNumber(count);
+// //把整合后该用户的学习记录添加到List里
+// records.add(learningRecordsVo);
+// }
+ return records;
}
/**
@@ -148,14 +135,26 @@ public class LearningRecordsServiceImpl extends ServiceImpl list = query().eq("courses_id", coursesId).eq("type", learningRecords.getType()).list();
+ int number;
+ if (list != null){
+ number = list.get(0).getNumber() + 1;
+ learningRecords.setNumber(number);
+ list.forEach(learningRecords1 -> {
+ learningRecords1.setNumber(number);
+ });
+ } else {
+ number = 0;
+ }
+ updateBatchById(list);
if (count == 0){//如果没有就新增并记录学习方式是打开还是下载
//根据传上来的type设置
// learningRecords.setType(learningRecords.getType());
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);
From a094f7c2ffcdb4e23db8bab3ea4c4218a0bcfbb8 Mon Sep 17 00:00:00 2001
From: wenyu441069198 <14186472+wenyu441069198@user.noreply.gitee.com>
Date: Thu, 25 Jul 2024 12:33:51 +0800
Subject: [PATCH 7/7] =?UTF-8?q?=E5=AD=A6=E4=B9=A0=E8=AE=B0=E5=BD=95?=
=?UTF-8?q?=E8=A7=82=E7=9C=8B=E4=BA=BA=E6=95=B0=E6=98=AF=E5=90=A6=E5=8A=A0?=
=?UTF-8?q?1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../service/impl/courses/CoursesServiceImpl.java | 8 ++++++--
.../impl/records/LearningRecordsServiceImpl.java | 13 +++++++------
2 files changed, 13 insertions(+), 8 deletions(-)
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 48b2dac..34c62e3 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
@@ -263,11 +263,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
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 5fb69a9..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
@@ -127,7 +127,7 @@ public class LearningRecordsServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper
@@ -144,15 +144,16 @@ public class LearningRecordsServiceImpl extends ServiceImpl list = query().eq("courses_id", coursesId).eq("type", learningRecords.getType()).list();
- int number;
- if (list != null){
- number = list.get(0).getNumber() + 1;
+ 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 {
- number = 0;
+ } else {//否则观看人数加1
+ learningRecords.setNumber(number + 1);
}
updateBatchById(list);
if (count == 0){//如果没有就新增并记录学习方式是打开还是下载