diff --git a/pom.xml b/pom.xml
index 3523243..6231a87 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,24 +13,7 @@
0.0.1-SNAPSHOT
tz_digital_marketing
数字贸易
-
-
- The Apache License, Version 2.0
- http://www.apache.org/licenses/LICENSE-2.0.txt
-
-
-
-
- bce
- Baidu Cloud
- https://cloud.baidu.com/
-
-
-
- scm:git:git://github.com/baidubce/bce-qianfan-sdk.git
- scm:git:ssh://github.com:baidubce/bce-qianfan-sdk.git
- https://github.com/baidubce/bce-qianfan-sdk/tree/master
-
+
1.8
0.10.8
@@ -38,16 +21,6 @@
UTF-8
-
- org.apache.poi
- poi
- 3.15-beta2
-
-
- org.apache.poi
- poi-ooxml
- 3.15-beta2
-
@@ -58,94 +31,65 @@
-
- org.apache.commons
- commons-math3
- 3.6.1
-
-
+
+
+
+
+
-
- com.squareup.okhttp3
- okhttp
- 4.12.0
-
+
- org.bytedeco
- javacv-platform
- 1.5.5
+ ws.schild
+ jave-all-deps
+ 2.5.1
+
org.springframework.boot
spring-boot-starter-validation
-
- org.jsoup
- jsoup
- 1.14.3
-
-
-
-
-
-
-
-
-
-
- com.hankcs
- hanlp
- portable-1.8.4
-
-
com.hankcs.hanlp.restful
hanlp-restful
0.0.12
-
-
-
-
-
-
-
- org.ujmp
- ujmp-core
- 0.3.0
-
-
-
- org.jfree
- jfreechart
- 1.5.0
-
+
+
+
+
+
+
+
+
+
+
+
-
- com.hankcs
- hanlp
- portable-1.8.0
-
+
+
+
+
+
-
- com.opencsv
- opencsv
- 5.7.0
-
+
+
+
+
+
@@ -368,12 +312,12 @@
-
-
- com.squareup.okhttp3
- okhttp
- 4.9.3
-
+
+
+
+
+
+
@@ -419,13 +363,6 @@
org.springframework.boot
spring-boot-maven-plugin
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
- false
-
-
org.apache.maven.plugins
maven-surefire-plugin
diff --git a/src/main/java/com/sztzjy/trade/config/Constant.java b/src/main/java/com/sztzjy/trade/config/Constant.java
index d85a7c1..135fbee 100644
--- a/src/main/java/com/sztzjy/trade/config/Constant.java
+++ b/src/main/java/com/sztzjy/trade/config/Constant.java
@@ -36,7 +36,11 @@ public class Constant {
public static final String BROWSE_NUMBER="被浏览数";
-
+ public static final String ZSGY_TCHMODULE = "知识概要";
+ public static final String ZYXX_TCHMODULE = "资源学习";
+ public static final String XXCP_TCHMODULE = "学习测评";
+ public static final String SYSX_TCHMODULE = "实验实训";
+ public static final String SYBG_TCHMODULE = "实验报告";
public static final String PRO_XXMB="学习目标";
diff --git a/src/main/java/com/sztzjy/trade/controller/stu/DigitalTextbooksController.java b/src/main/java/com/sztzjy/trade/controller/stu/DigitalTextbooksController.java
index f3d63cd..d4624b4 100644
--- a/src/main/java/com/sztzjy/trade/controller/stu/DigitalTextbooksController.java
+++ b/src/main/java/com/sztzjy/trade/controller/stu/DigitalTextbooksController.java
@@ -11,7 +11,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import org.ujmp.core.util.R;
+
import javax.validation.Valid;
import java.util.List;
diff --git a/src/main/java/com/sztzjy/trade/controller/stu/StuExpermentTrainingController.java b/src/main/java/com/sztzjy/trade/controller/stu/StuExpermentTrainingController.java
index b75bdb6..206b49f 100644
--- a/src/main/java/com/sztzjy/trade/controller/stu/StuExpermentTrainingController.java
+++ b/src/main/java/com/sztzjy/trade/controller/stu/StuExpermentTrainingController.java
@@ -6,13 +6,14 @@ import cn.hutool.core.util.HashUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.digest.DigestUtil;
+import com.alibaba.fastjson.JSONObject;
import com.sztzjy.trade.annotation.AnonymousAccess;
-import com.sztzjy.trade.entity.StuAchievementInfo;
-import com.sztzjy.trade.entity.StuCodeInfoDTO;
-import com.sztzjy.trade.entity.StuTaskPracticeRecord;
+import com.sztzjy.trade.entity.*;
import com.sztzjy.trade.entity.dto.StuCodeCertificateInfoDTO;
import com.sztzjy.trade.entity.dto.StuExpermentSubmitDTO;
+import com.sztzjy.trade.entity.dto.StuScoreDetailsDTO;
import com.sztzjy.trade.service.StuExpermentTrainingService;
+import com.sztzjy.trade.util.ResultDataEntity;
import com.sztzjy.trade.util.ResultEntity;
import com.sztzjy.trade.util.file.IFileUtil;
import io.swagger.annotations.Api;
@@ -29,6 +30,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.List;
import java.util.Random;
@@ -186,21 +188,36 @@ public class StuExpermentTrainingController {
+ @PostMapping("/getAcademicRecord")
+ @AnonymousAccess
+ @ApiOperation("学习成绩查询")
+ public ResultDataEntity> getAcademicRecord(String userId, String module){
+ List scoreDetailsList=service.getAcademicRecord(userId,module);
+ return new ResultDataEntity<>(HttpStatus.OK,scoreDetailsList);
+ }
+ @AnonymousAccess
+ @ApiOperation("哈希函数知识概要分数")
+ @PostMapping("/hashReadingScore")
+ public ResultDataEntity hashReadingScore(@RequestBody JSONObject jsonObject) {
+ StuScoreDetailsDTO stuScoreDetailsDTO = jsonObject.getObject("stuScoreDetailsDTO", StuScoreDetailsDTO.class);
+ service.hashReadingScore(stuScoreDetailsDTO);
+ return new ResultDataEntity<>(HttpStatus.OK);
+ }
- public static void main(String[] args) {
- Date date = new Date();
-
- //new SimpleDateFormat("yyyy年MM月dd日HH::mm::ss").format(date);
-
-
+ @AnonymousAccess
+ @ApiOperation("哈希函数资源学习分数统计")
+ @PostMapping("/hashWatchScore")
+ public ResultDataEntity hashWatchScore(@RequestBody JSONObject jsonObject) {
+ StuScoreDetailsDTO stuScoreDetailsDTO = jsonObject.getObject("stuScoreDetailsDTO", StuScoreDetailsDTO.class);
+ service.hashWatchScore(stuScoreDetailsDTO);
+ return new ResultDataEntity<>(HttpStatus.OK);
+ }
- System.out.println( );
- }
}
diff --git a/src/main/java/com/sztzjy/trade/controller/stu/UserController.java b/src/main/java/com/sztzjy/trade/controller/stu/UserController.java
index 11a1c21..b203657 100644
--- a/src/main/java/com/sztzjy/trade/controller/stu/UserController.java
+++ b/src/main/java/com/sztzjy/trade/controller/stu/UserController.java
@@ -31,7 +31,7 @@ import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
-import org.ujmp.core.util.R;
+
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
diff --git a/src/main/java/com/sztzjy/trade/controller/task/TaskController.java b/src/main/java/com/sztzjy/trade/controller/task/TaskController.java
index 1bc37b8..3fe6a9e 100644
--- a/src/main/java/com/sztzjy/trade/controller/task/TaskController.java
+++ b/src/main/java/com/sztzjy/trade/controller/task/TaskController.java
@@ -41,11 +41,11 @@ public class TaskController {
long timeDifference = currentTime - newTime; // 计算时间差
//long time = 20 * 60 * 1000;
- long time = 60 * 60 * 1000;
+ long time = 20 * 60 * 1000;
// 判断时间差是否大于 20 分钟(20 分钟 = 20 * 60 * 1000 毫秒)
if (timeDifference > time) {
//大于20分钟未操作 表明用户已经离线 在线时长+20分钟
- System.out.println(key+"-->60分钟未操作,已强制离线");
+ System.out.println(key+"-->20分钟未操作,已强制离线");
String userId = key.split(itemName+"-userId:")[1];
//String userId = key.split("userId:").toString();
diff --git a/src/main/java/com/sztzjy/trade/controller/tch/TchLoginLogAndStuListController.java b/src/main/java/com/sztzjy/trade/controller/tch/TchLoginLogAndStuListController.java
index 04e6607..b4da295 100644
--- a/src/main/java/com/sztzjy/trade/controller/tch/TchLoginLogAndStuListController.java
+++ b/src/main/java/com/sztzjy/trade/controller/tch/TchLoginLogAndStuListController.java
@@ -17,7 +17,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.HttpStatus;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
-import org.ujmp.core.util.R;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
diff --git a/src/main/java/com/sztzjy/trade/entity/StuKnowledgeSummary.java b/src/main/java/com/sztzjy/trade/entity/StuKnowledgeSummary.java
new file mode 100644
index 0000000..59435b5
--- /dev/null
+++ b/src/main/java/com/sztzjy/trade/entity/StuKnowledgeSummary.java
@@ -0,0 +1,75 @@
+package com.sztzjy.trade.entity;
+
+import java.util.Date;
+
+public class StuKnowledgeSummary {
+ private String summaryId;
+
+ private String directoryId;
+
+ private String directoryName;
+
+ private String parentId;
+
+ private String summaryContent;
+
+ private String module;
+
+ private Date readingTime;
+
+ public String getSummaryId() {
+ return summaryId;
+ }
+
+ public void setSummaryId(String summaryId) {
+ this.summaryId = summaryId == null ? null : summaryId.trim();
+ }
+
+ public String getDirectoryId() {
+ return directoryId;
+ }
+
+ public void setDirectoryId(String directoryId) {
+ this.directoryId = directoryId == null ? null : directoryId.trim();
+ }
+
+ public String getDirectoryName() {
+ return directoryName;
+ }
+
+ public void setDirectoryName(String directoryName) {
+ this.directoryName = directoryName == null ? null : directoryName.trim();
+ }
+
+ public String getParentId() {
+ return parentId;
+ }
+
+ public void setParentId(String parentId) {
+ this.parentId = parentId == null ? null : parentId.trim();
+ }
+
+ public String getSummaryContent() {
+ return summaryContent;
+ }
+
+ public void setSummaryContent(String summaryContent) {
+ this.summaryContent = summaryContent == null ? null : summaryContent.trim();
+ }
+
+ public String getModule() {
+ return module;
+ }
+
+ public void setModule(String module) {
+ this.module = module == null ? null : module.trim();
+ }
+
+ public Date getReadingTime() {
+ return readingTime;
+ }
+
+ public void setReadingTime(Date readingTime) {
+ this.readingTime = readingTime;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/trade/entity/StuKnowledgeSummaryChildrenDto.java b/src/main/java/com/sztzjy/trade/entity/StuKnowledgeSummaryChildrenDto.java
new file mode 100644
index 0000000..07d145d
--- /dev/null
+++ b/src/main/java/com/sztzjy/trade/entity/StuKnowledgeSummaryChildrenDto.java
@@ -0,0 +1,22 @@
+package com.sztzjy.trade.entity;/*
+ *@title StuKnowledgeSummaryChildrenVo
+ *@description
+ *@author 17803
+ *@version 1.0
+ *@create 2023/8/31 15:05
+ */
+
+import lombok.Data;
+
+@Data
+public class StuKnowledgeSummaryChildrenDto {
+
+ private String id;
+
+ private String childrenId;
+
+ private String childrenName;
+
+ private String childrenSummaryContent;
+
+}
diff --git a/src/main/java/com/sztzjy/trade/entity/StuKnowledgeSummaryExample.java b/src/main/java/com/sztzjy/trade/entity/StuKnowledgeSummaryExample.java
new file mode 100644
index 0000000..42f80ad
--- /dev/null
+++ b/src/main/java/com/sztzjy/trade/entity/StuKnowledgeSummaryExample.java
@@ -0,0 +1,680 @@
+package com.sztzjy.trade.entity;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class StuKnowledgeSummaryExample {
+ protected String orderByClause;
+
+ protected boolean distinct;
+
+ protected List oredCriteria;
+
+ public StuKnowledgeSummaryExample() {
+ oredCriteria = new ArrayList<>();
+ }
+
+ public void setOrderByClause(String orderByClause) {
+ this.orderByClause = orderByClause;
+ }
+
+ public String getOrderByClause() {
+ return orderByClause;
+ }
+
+ public void setDistinct(boolean distinct) {
+ this.distinct = distinct;
+ }
+
+ public boolean isDistinct() {
+ return distinct;
+ }
+
+ public List getOredCriteria() {
+ return oredCriteria;
+ }
+
+ public void or(Criteria criteria) {
+ oredCriteria.add(criteria);
+ }
+
+ public Criteria or() {
+ Criteria criteria = createCriteriaInternal();
+ oredCriteria.add(criteria);
+ return criteria;
+ }
+
+ public Criteria createCriteria() {
+ Criteria criteria = createCriteriaInternal();
+ if (oredCriteria.size() == 0) {
+ oredCriteria.add(criteria);
+ }
+ return criteria;
+ }
+
+ protected Criteria createCriteriaInternal() {
+ Criteria criteria = new Criteria();
+ return criteria;
+ }
+
+ public void clear() {
+ oredCriteria.clear();
+ orderByClause = null;
+ distinct = false;
+ }
+
+ protected abstract static class GeneratedCriteria {
+ protected List criteria;
+
+ protected GeneratedCriteria() {
+ super();
+ criteria = new ArrayList<>();
+ }
+
+ public boolean isValid() {
+ return criteria.size() > 0;
+ }
+
+ public List getAllCriteria() {
+ return criteria;
+ }
+
+ public List getCriteria() {
+ return criteria;
+ }
+
+ protected void addCriterion(String condition) {
+ if (condition == null) {
+ throw new RuntimeException("Value for condition cannot be null");
+ }
+ criteria.add(new Criterion(condition));
+ }
+
+ protected void addCriterion(String condition, Object value, String property) {
+ if (value == null) {
+ throw new RuntimeException("Value for " + property + " cannot be null");
+ }
+ criteria.add(new Criterion(condition, value));
+ }
+
+ protected void addCriterion(String condition, Object value1, Object value2, String property) {
+ if (value1 == null || value2 == null) {
+ throw new RuntimeException("Between values for " + property + " cannot be null");
+ }
+ criteria.add(new Criterion(condition, value1, value2));
+ }
+
+ public Criteria andSummaryIdIsNull() {
+ addCriterion("summary_id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdIsNotNull() {
+ addCriterion("summary_id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdEqualTo(String value) {
+ addCriterion("summary_id =", value, "summaryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdNotEqualTo(String value) {
+ addCriterion("summary_id <>", value, "summaryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdGreaterThan(String value) {
+ addCriterion("summary_id >", value, "summaryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdGreaterThanOrEqualTo(String value) {
+ addCriterion("summary_id >=", value, "summaryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdLessThan(String value) {
+ addCriterion("summary_id <", value, "summaryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdLessThanOrEqualTo(String value) {
+ addCriterion("summary_id <=", value, "summaryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdLike(String value) {
+ addCriterion("summary_id like", value, "summaryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdNotLike(String value) {
+ addCriterion("summary_id not like", value, "summaryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdIn(List values) {
+ addCriterion("summary_id in", values, "summaryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdNotIn(List values) {
+ addCriterion("summary_id not in", values, "summaryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdBetween(String value1, String value2) {
+ addCriterion("summary_id between", value1, value2, "summaryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryIdNotBetween(String value1, String value2) {
+ addCriterion("summary_id not between", value1, value2, "summaryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdIsNull() {
+ addCriterion("directory_id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdIsNotNull() {
+ addCriterion("directory_id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdEqualTo(String value) {
+ addCriterion("directory_id =", value, "directoryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdNotEqualTo(String value) {
+ addCriterion("directory_id <>", value, "directoryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdGreaterThan(String value) {
+ addCriterion("directory_id >", value, "directoryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdGreaterThanOrEqualTo(String value) {
+ addCriterion("directory_id >=", value, "directoryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdLessThan(String value) {
+ addCriterion("directory_id <", value, "directoryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdLessThanOrEqualTo(String value) {
+ addCriterion("directory_id <=", value, "directoryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdLike(String value) {
+ addCriterion("directory_id like", value, "directoryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdNotLike(String value) {
+ addCriterion("directory_id not like", value, "directoryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdIn(List values) {
+ addCriterion("directory_id in", values, "directoryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdNotIn(List values) {
+ addCriterion("directory_id not in", values, "directoryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdBetween(String value1, String value2) {
+ addCriterion("directory_id between", value1, value2, "directoryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryIdNotBetween(String value1, String value2) {
+ addCriterion("directory_id not between", value1, value2, "directoryId");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameIsNull() {
+ addCriterion("directory_name is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameIsNotNull() {
+ addCriterion("directory_name is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameEqualTo(String value) {
+ addCriterion("directory_name =", value, "directoryName");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameNotEqualTo(String value) {
+ addCriterion("directory_name <>", value, "directoryName");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameGreaterThan(String value) {
+ addCriterion("directory_name >", value, "directoryName");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameGreaterThanOrEqualTo(String value) {
+ addCriterion("directory_name >=", value, "directoryName");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameLessThan(String value) {
+ addCriterion("directory_name <", value, "directoryName");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameLessThanOrEqualTo(String value) {
+ addCriterion("directory_name <=", value, "directoryName");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameLike(String value) {
+ addCriterion("directory_name like", value, "directoryName");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameNotLike(String value) {
+ addCriterion("directory_name not like", value, "directoryName");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameIn(List values) {
+ addCriterion("directory_name in", values, "directoryName");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameNotIn(List values) {
+ addCriterion("directory_name not in", values, "directoryName");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameBetween(String value1, String value2) {
+ addCriterion("directory_name between", value1, value2, "directoryName");
+ return (Criteria) this;
+ }
+
+ public Criteria andDirectoryNameNotBetween(String value1, String value2) {
+ addCriterion("directory_name not between", value1, value2, "directoryName");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdIsNull() {
+ addCriterion("parent_id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdIsNotNull() {
+ addCriterion("parent_id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdEqualTo(String value) {
+ addCriterion("parent_id =", value, "parentId");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdNotEqualTo(String value) {
+ addCriterion("parent_id <>", value, "parentId");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdGreaterThan(String value) {
+ addCriterion("parent_id >", value, "parentId");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdGreaterThanOrEqualTo(String value) {
+ addCriterion("parent_id >=", value, "parentId");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdLessThan(String value) {
+ addCriterion("parent_id <", value, "parentId");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdLessThanOrEqualTo(String value) {
+ addCriterion("parent_id <=", value, "parentId");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdLike(String value) {
+ addCriterion("parent_id like", value, "parentId");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdNotLike(String value) {
+ addCriterion("parent_id not like", value, "parentId");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdIn(List values) {
+ addCriterion("parent_id in", values, "parentId");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdNotIn(List values) {
+ addCriterion("parent_id not in", values, "parentId");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdBetween(String value1, String value2) {
+ addCriterion("parent_id between", value1, value2, "parentId");
+ return (Criteria) this;
+ }
+
+ public Criteria andParentIdNotBetween(String value1, String value2) {
+ addCriterion("parent_id not between", value1, value2, "parentId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentIsNull() {
+ addCriterion("summary_content is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentIsNotNull() {
+ addCriterion("summary_content is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentEqualTo(String value) {
+ addCriterion("summary_content =", value, "summaryContent");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentNotEqualTo(String value) {
+ addCriterion("summary_content <>", value, "summaryContent");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentGreaterThan(String value) {
+ addCriterion("summary_content >", value, "summaryContent");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentGreaterThanOrEqualTo(String value) {
+ addCriterion("summary_content >=", value, "summaryContent");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentLessThan(String value) {
+ addCriterion("summary_content <", value, "summaryContent");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentLessThanOrEqualTo(String value) {
+ addCriterion("summary_content <=", value, "summaryContent");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentLike(String value) {
+ addCriterion("summary_content like", value, "summaryContent");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentNotLike(String value) {
+ addCriterion("summary_content not like", value, "summaryContent");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentIn(List values) {
+ addCriterion("summary_content in", values, "summaryContent");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentNotIn(List values) {
+ addCriterion("summary_content not in", values, "summaryContent");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentBetween(String value1, String value2) {
+ addCriterion("summary_content between", value1, value2, "summaryContent");
+ return (Criteria) this;
+ }
+
+ public Criteria andSummaryContentNotBetween(String value1, String value2) {
+ addCriterion("summary_content not between", value1, value2, "summaryContent");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleIsNull() {
+ addCriterion("module is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleIsNotNull() {
+ addCriterion("module is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleEqualTo(String value) {
+ addCriterion("module =", value, "module");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleNotEqualTo(String value) {
+ addCriterion("module <>", value, "module");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleGreaterThan(String value) {
+ addCriterion("module >", value, "module");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleGreaterThanOrEqualTo(String value) {
+ addCriterion("module >=", value, "module");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleLessThan(String value) {
+ addCriterion("module <", value, "module");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleLessThanOrEqualTo(String value) {
+ addCriterion("module <=", value, "module");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleLike(String value) {
+ addCriterion("module like", value, "module");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleNotLike(String value) {
+ addCriterion("module not like", value, "module");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleIn(List values) {
+ addCriterion("module in", values, "module");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleNotIn(List values) {
+ addCriterion("module not in", values, "module");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleBetween(String value1, String value2) {
+ addCriterion("module between", value1, value2, "module");
+ return (Criteria) this;
+ }
+
+ public Criteria andModuleNotBetween(String value1, String value2) {
+ addCriterion("module not between", value1, value2, "module");
+ return (Criteria) this;
+ }
+
+ public Criteria andReadingTimeIsNull() {
+ addCriterion("reading_time is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andReadingTimeIsNotNull() {
+ addCriterion("reading_time is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andReadingTimeEqualTo(Date value) {
+ addCriterion("reading_time =", value, "readingTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andReadingTimeNotEqualTo(Date value) {
+ addCriterion("reading_time <>", value, "readingTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andReadingTimeGreaterThan(Date value) {
+ addCriterion("reading_time >", value, "readingTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andReadingTimeGreaterThanOrEqualTo(Date value) {
+ addCriterion("reading_time >=", value, "readingTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andReadingTimeLessThan(Date value) {
+ addCriterion("reading_time <", value, "readingTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andReadingTimeLessThanOrEqualTo(Date value) {
+ addCriterion("reading_time <=", value, "readingTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andReadingTimeIn(List values) {
+ addCriterion("reading_time in", values, "readingTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andReadingTimeNotIn(List values) {
+ addCriterion("reading_time not in", values, "readingTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andReadingTimeBetween(Date value1, Date value2) {
+ addCriterion("reading_time between", value1, value2, "readingTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andReadingTimeNotBetween(Date value1, Date value2) {
+ addCriterion("reading_time not between", value1, value2, "readingTime");
+ return (Criteria) this;
+ }
+ }
+
+ public static class Criteria extends GeneratedCriteria {
+ protected Criteria() {
+ super();
+ }
+ }
+
+ public static class Criterion {
+ private String condition;
+
+ private Object value;
+
+ private Object secondValue;
+
+ private boolean noValue;
+
+ private boolean singleValue;
+
+ private boolean betweenValue;
+
+ private boolean listValue;
+
+ private String typeHandler;
+
+ public String getCondition() {
+ return condition;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public Object getSecondValue() {
+ return secondValue;
+ }
+
+ public boolean isNoValue() {
+ return noValue;
+ }
+
+ public boolean isSingleValue() {
+ return singleValue;
+ }
+
+ public boolean isBetweenValue() {
+ return betweenValue;
+ }
+
+ public boolean isListValue() {
+ return listValue;
+ }
+
+ public String getTypeHandler() {
+ return typeHandler;
+ }
+
+ protected Criterion(String condition) {
+ super();
+ this.condition = condition;
+ this.typeHandler = null;
+ this.noValue = true;
+ }
+
+ protected Criterion(String condition, Object value, String typeHandler) {
+ super();
+ this.condition = condition;
+ this.value = value;
+ this.typeHandler = typeHandler;
+ if (value instanceof List>) {
+ this.listValue = true;
+ } else {
+ this.singleValue = true;
+ }
+ }
+
+ protected Criterion(String condition, Object value) {
+ this(condition, value, null);
+ }
+
+ protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+ super();
+ this.condition = condition;
+ this.value = value;
+ this.secondValue = secondValue;
+ this.typeHandler = typeHandler;
+ this.betweenValue = true;
+ }
+
+ protected Criterion(String condition, Object value, Object secondValue) {
+ this(condition, value, secondValue, null);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/trade/entity/StuKnowledgeSummaryParentDto.java b/src/main/java/com/sztzjy/trade/entity/StuKnowledgeSummaryParentDto.java
new file mode 100644
index 0000000..d130d6c
--- /dev/null
+++ b/src/main/java/com/sztzjy/trade/entity/StuKnowledgeSummaryParentDto.java
@@ -0,0 +1,26 @@
+package com.sztzjy.trade.entity;/*
+ *@title StuKnowledgeSummaryParentVo
+ *@description
+ *@author 17803
+ *@version 1.0
+ *@create 2023/8/31 15:03
+ */
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class StuKnowledgeSummaryParentDto {
+
+ private String uid;
+
+ private Integer parentId;
+
+ private String parentName;
+
+ private String parentSummaryContent;
+
+ // 子分类
+ private List childrenVoList;
+}
diff --git a/src/main/java/com/sztzjy/trade/entity/TchDigitalTradeWeight.java b/src/main/java/com/sztzjy/trade/entity/TchDigitalTradeWeight.java
index 5a3d062..1bb64ff 100644
--- a/src/main/java/com/sztzjy/trade/entity/TchDigitalTradeWeight.java
+++ b/src/main/java/com/sztzjy/trade/entity/TchDigitalTradeWeight.java
@@ -48,7 +48,7 @@ public class TchDigitalTradeWeight {
private BigDecimal scoringCriteriaForStudyEvaluation;
@ApiModelProperty(notes = "实验实训得分标准")
- private BigDecimal scoringCriteriaForExperimentalTraining;
+ private BigDecimal scoringCriteriaForExperimentalTraining;
@ApiModelProperty(notes = "学习时长权重")
private BigDecimal weightStudyTime;
diff --git a/src/main/java/com/sztzjy/trade/entity/dto/StuScoreDetailsDTO.java b/src/main/java/com/sztzjy/trade/entity/dto/StuScoreDetailsDTO.java
index 0c389d9..eee0420 100644
--- a/src/main/java/com/sztzjy/trade/entity/dto/StuScoreDetailsDTO.java
+++ b/src/main/java/com/sztzjy/trade/entity/dto/StuScoreDetailsDTO.java
@@ -21,4 +21,25 @@ public class StuScoreDetailsDTO {
private BigDecimal weight;
@ApiModelProperty(notes = "加权后得分")
private double weightedScore;
+
+
+ private String id;
+
+ private String learningProjects; //学习项目
+
+ private String assessmentItems; //考核项目
+
+ private String scoringCriteria; //计分标准
+
+ private Double scoreWeight; //成绩权重
+
+ private int viewingTime;
+
+ private Double scoreProject; //项目得分
+
+ private String module; //归属模块
+
+ private String userId; //用户id
+
+ private String completionStatus; //完成情况
}
diff --git a/src/main/java/com/sztzjy/trade/entity/dto/StuVideoInfoDTO.java b/src/main/java/com/sztzjy/trade/entity/dto/StuVideoInfoDTO.java
index 10d9ca9..b423469 100644
--- a/src/main/java/com/sztzjy/trade/entity/dto/StuVideoInfoDTO.java
+++ b/src/main/java/com/sztzjy/trade/entity/dto/StuVideoInfoDTO.java
@@ -12,7 +12,7 @@ public class StuVideoInfoDTO {
@ApiModelProperty(notes = "视频时长 单位秒")
- private Integer videoDuration;
+ private Long videoDuration;
@ApiModelProperty(notes = "视频链接")
diff --git a/src/main/java/com/sztzjy/trade/mapper/StuKnowledgeSummaryMapper.java b/src/main/java/com/sztzjy/trade/mapper/StuKnowledgeSummaryMapper.java
new file mode 100644
index 0000000..108b9f2
--- /dev/null
+++ b/src/main/java/com/sztzjy/trade/mapper/StuKnowledgeSummaryMapper.java
@@ -0,0 +1,37 @@
+package com.sztzjy.trade.mapper;
+
+
+import com.sztzjy.trade.entity.StuKnowledgeSummary;
+import com.sztzjy.trade.entity.StuKnowledgeSummaryExample;
+import com.sztzjy.trade.entity.StuKnowledgeSummaryParentDto;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface StuKnowledgeSummaryMapper {
+ long countByExample(StuKnowledgeSummaryExample example);
+
+ int deleteByExample(StuKnowledgeSummaryExample example);
+
+ int deleteByPrimaryKey(String summaryId);
+
+ int insert(StuKnowledgeSummary record);
+
+ int insertSelective(StuKnowledgeSummary record);
+
+ List selectByExample(StuKnowledgeSummaryExample example);
+
+ StuKnowledgeSummary selectByPrimaryKey(String summaryId);
+
+ int updateByExampleSelective(@Param("record") StuKnowledgeSummary record, @Param("example") StuKnowledgeSummaryExample example);
+
+ int updateByExample(@Param("record") StuKnowledgeSummary record, @Param("example") StuKnowledgeSummaryExample example);
+
+ int updateByPrimaryKeySelective(StuKnowledgeSummary record);
+
+ int updateByPrimaryKey(StuKnowledgeSummary record);
+
+ List queryDirAndContext(String module);
+}
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/trade/service/StuExpermentTrainingService.java b/src/main/java/com/sztzjy/trade/service/StuExpermentTrainingService.java
index fd303a9..8f8208d 100644
--- a/src/main/java/com/sztzjy/trade/service/StuExpermentTrainingService.java
+++ b/src/main/java/com/sztzjy/trade/service/StuExpermentTrainingService.java
@@ -1,10 +1,14 @@
package com.sztzjy.trade.service;
+import com.sztzjy.trade.entity.StuScoreDetails;
import com.sztzjy.trade.entity.StuTaskPracticeRecord;
import com.sztzjy.trade.entity.dto.StuExpermentSubmitDTO;
+import com.sztzjy.trade.entity.dto.StuScoreDetailsDTO;
import com.sztzjy.trade.util.ResultEntity;
import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+
/**
* @author 17803
* @date 2024-09-04 10:17
@@ -66,4 +70,11 @@ public interface StuExpermentTrainingService {
ResultEntity keyGeneration();
+ List getAcademicRecord(String userId, String module);
+
+
+ void hashReadingScore(StuScoreDetailsDTO stuScoreDetailsDTO);
+
+ //哈希函数资源学习分数统计
+ void hashWatchScore(StuScoreDetailsDTO stuScoreDetailsDTO);
}
diff --git a/src/main/java/com/sztzjy/trade/service/impl/StuAcademicRecordServiceImpl.java b/src/main/java/com/sztzjy/trade/service/impl/StuAcademicRecordServiceImpl.java
index 0194b90..884d646 100644
--- a/src/main/java/com/sztzjy/trade/service/impl/StuAcademicRecordServiceImpl.java
+++ b/src/main/java/com/sztzjy/trade/service/impl/StuAcademicRecordServiceImpl.java
@@ -12,7 +12,7 @@ import com.sztzjy.trade.service.StuAcademicRecordService;
import com.sztzjy.trade.util.BigDecimalUtils;
import com.sztzjy.trade.util.ConvertUtil;
import org.springframework.stereotype.Service;
-import org.ujmp.core.util.R;
+
import javax.annotation.Resource;
import java.math.BigDecimal;
diff --git a/src/main/java/com/sztzjy/trade/service/impl/StuExpermentTrainingServiceImpl.java b/src/main/java/com/sztzjy/trade/service/impl/StuExpermentTrainingServiceImpl.java
index e99bd1b..c75a274 100644
--- a/src/main/java/com/sztzjy/trade/service/impl/StuExpermentTrainingServiceImpl.java
+++ b/src/main/java/com/sztzjy/trade/service/impl/StuExpermentTrainingServiceImpl.java
@@ -5,14 +5,15 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
+import com.sztzjy.trade.config.Constant;
import com.sztzjy.trade.entity.*;
import com.sztzjy.trade.entity.dto.StuExpermentSubmitDTO;
+import com.sztzjy.trade.entity.dto.StuScoreDetailsDTO;
import com.sztzjy.trade.entity.dto.StuTaskDetailDTO;
import com.sztzjy.trade.mapper.*;
import com.sztzjy.trade.service.StuExpermentTrainingService;
-import com.sztzjy.trade.util.RedisUtil;
-import com.sztzjy.trade.util.ResultEntity;
-import com.sztzjy.trade.util.RsaUtil;
+import com.sztzjy.trade.util.*;
+import com.sztzjy.trade.util.compute.ScoringUtil;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -63,6 +64,8 @@ public class StuExpermentTrainingServiceImpl implements StuExpermentTrainingServ
@Value("${file.url}")
public String url;
+ @Autowired
+ private StuUserMapper stuUserMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -99,7 +102,7 @@ public class StuExpermentTrainingServiceImpl implements StuExpermentTrainingServ
//更新
stuTaskPracticeRecord.setId(practiceRecord.getId());
stuTaskPracticeRecordMapper.updateByPrimaryKeySelective(stuTaskPracticeRecord);
- taskPracticeRecordList.forEach(item->{
+ taskPracticeRecordList.forEach(item -> {
if (practiceRecord.getId() == item.getId()) {
item.setSubState(1);
}
@@ -128,7 +131,7 @@ public class StuExpermentTrainingServiceImpl implements StuExpermentTrainingServ
try {
RsaUtil.RsaKeyPair rsaKeyPair = RsaUtil.generateKeyPair();
- return new ResultEntity(HttpStatus.OK,"生成密钥",rsaKeyPair);
+ return new ResultEntity(HttpStatus.OK, "生成密钥", rsaKeyPair);
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
@@ -498,14 +501,14 @@ public class StuExpermentTrainingServiceImpl implements StuExpermentTrainingServ
uploadExperment.setModule(module);
uploadExperment.setUserId(userId);
stuUploadExpermentMapper.insertSelective(uploadExperment);
- return new ResultEntity<>(HttpStatus.OK, "上传成功!",url+filePath);
+ return new ResultEntity<>(HttpStatus.OK, "上传成功!", url + filePath);
} else {
StuUploadExperment uploadExperment = stuUploadExpermentList.get(0);
uploadExperment.setUpdateTime(new Date());
uploadExperment.setFilePath(filePath);
stuUploadExpermentMapper.updateByPrimaryKeySelective(uploadExperment);
- return new ResultEntity<>(HttpStatus.OK, "上传成功!",url+filePath);
+ return new ResultEntity<>(HttpStatus.OK, "上传成功!", url + filePath);
}
@@ -527,7 +530,7 @@ public class StuExpermentTrainingServiceImpl implements StuExpermentTrainingServ
}
-// private synchronized void subQuestionRanking(String schoolId, String module, String classId, List taskList, int state) {
+ // private synchronized void subQuestionRanking(String schoolId, String module, String classId, List taskList, int state) {
//
// StuWrongQuestionRankingExample example = new StuWrongQuestionRankingExample();
// example.createCriteria().andSchoolIdEqualTo(schoolId).andModuleEqualTo(module);
@@ -570,6 +573,494 @@ public class StuExpermentTrainingServiceImpl implements StuExpermentTrainingServ
// }
// }
// }
+ @Resource
+ ScoringUtil scoringUtil;
+ @Resource
+ BigDecimalUtils bigDecimalUtils;
+
+
+ @Override
+ public List getAcademicRecord(String userId, String module) {
+ StuUserExample stuUserExample = new StuUserExample();
+ stuUserExample.createCriteria().andUserIdEqualTo(userId);
+ List stuUsers = stuUserMapper.selectByExample(stuUserExample);
+ String schoolId = stuUsers.get(0).getSchoolId();
+ TchDigitalTradeWeight tchConceptualTechnologyWeights = getWeight(schoolId);
+// if(tchConceptualTechnologyWeights.size()==0){
+// TchConceptualTechnologyWeight tchConceptualTechnologyWeight = new TchConceptualTechnologyWeight(schoolId,module);
+// tchConceptualTechnologyWeightMapper.insert(tchConceptualTechnologyWeight);
+// tchConceptualTechnologyWeights.add(tchConceptualTechnologyWeight);
+// }
+ //取到知识概要计分标准和权重
+ BigDecimal knowledgeScore = tchConceptualTechnologyWeights.getScoringCriteriaForLearningDuration();
+ BigDecimal summaryOfKnowledgeWeight = tchConceptualTechnologyWeights.getWeightStudyTime();
+ //取到资源学习计分标准和权重
+ BigDecimal resourceLearningScore = tchConceptualTechnologyWeights.getScoringCriteriaForStudyResource();
+ BigDecimal resourceLearningWeight = tchConceptualTechnologyWeights.getWeightStudyResource();
+ //取到学习测评计分标准和权重
+ BigDecimal learningAssessmentScore = tchConceptualTechnologyWeights.getScoringCriteriaForStudyEvaluation();
+ BigDecimal learningAssessmentWeight = tchConceptualTechnologyWeights.getWeightStudyEvaluation();
+ //取到实验实训计分标准和权重
+ BigDecimal experimentalTrainingScore = tchConceptualTechnologyWeights.getScoringCriteriaForExperimentalTraining();
+ BigDecimal experimentalTrainingWeight = tchConceptualTechnologyWeights.getWeightExperimentalTraining();
+ //取到实验报告权重
+ BigDecimal reportWeight = tchConceptualTechnologyWeights.getWeightExperimentalReport();
+ //查询成绩表
+ StuScoreDetailsExample example = new StuScoreDetailsExample();
+ example.createCriteria().andUserIdEqualTo(userId).andProjectEqualTo(module);
+ example.setOrderByClause("serial_number ASC");
+ List scoreDetailsList = stuScoreDetailsMapper.selectByExample(example);
+
+
+ double score = 0;
+ int a=0;int b=0;int c=0;int d=0;int e=0;
+ for (int i = 0; i =1)
+ {
+ //设置完成状态
+ scoreDetailsList.get(i).setSchedule(100.0);
+ }else {
+
+ info = Math.round(complement * 100.0) / 100.0;
+ //设置完成状态
+ scoreDetailsList.get(i).setSchedule(info*100);
+ }
+
+ a++;
+ }
+ if(scoreDetailsList.get(i).getSerialNumber()==2){
+ scoreDetailsList.get(i).setScoringCriteria(String.valueOf(resourceLearningScore));
+ scoreDetailsList.get(i).setScoreWeight(Double.parseDouble(String.valueOf(resourceLearningWeight)));
+ String completionStatus = scoreDetailsList.get(i).getCompletionStatus();
+ double stuResourcesScoring = scoringUtil.getStuResourcesScoring(Double.parseDouble(completionStatus), Double.parseDouble(String.valueOf(resourceLearningScore)));
+ scoreDetailsList.get(i).setScoreProject(stuResourcesScoring);
+
+ Double info = 100 / Convert.toDouble(resourceLearningScore);
+
+ Double complement = Convert.toDouble(completionStatus) / info ;
+
+ if (complement>=1)
+ {
+ //设置完成状态
+ scoreDetailsList.get(i).setSchedule(100.0);
+ }else {
+
+ info = Math.round(complement * 100.0) / 100.0;
+ //设置完成状态
+ scoreDetailsList.get(i).setSchedule(info*100);
+ }
+
+ b++;
+ }
+ if(scoreDetailsList.get(i).getSerialNumber()==3){
+ scoreDetailsList.get(i).setScoringCriteria(String.valueOf(learningAssessmentScore));
+ scoreDetailsList.get(i).setScoreWeight(Double.parseDouble(String.valueOf(learningAssessmentWeight)));
+ String completionStatus = scoreDetailsList.get(i).getCompletionStatus();
+ double stuLearningAssessmentScoring = scoringUtil.getStuLearningAssessmentScoring(Integer.parseInt(completionStatus), Double.parseDouble(String.valueOf(learningAssessmentScore)));
+ scoreDetailsList.get(i).setScoreProject(stuLearningAssessmentScoring);
+ //设置完成状态
+ scoreDetailsList.get(i).setSchedule(100.0);
+ c++;
+ }
+ if(scoreDetailsList.get(i).getSerialNumber()==4){
+ scoreDetailsList.get(i).setScoringCriteria(String.valueOf(experimentalTrainingScore));
+ scoreDetailsList.get(i).setScoreWeight(Double.parseDouble(String.valueOf(experimentalTrainingWeight)));
+ Double completionStatus = scoreDetailsList.get(i).getSchedule();
+// double stuLearningAssessmentScoring = scoringUtil.getStuLearningAssessmentScoring(Convert.toInt(completionStatus), Double.parseDouble(String.valueOf(experimentalTrainingScore)));
+ scoreDetailsList.get(i).setScoreProject(scoreDetailsList.get(i).getScoreProject());
+
+
+// //判断该模块的实训任务是否已全部提交 全部提交则计算该模块的实训任务分数
+// StuModuleDetailsExample stuModuleDetailsExample=new StuModuleDetailsExample();
+// stuModuleDetailsExample.createCriteria().andModuleEqualTo(module);
+// List stuModuleDetailsList = stuModuleDetailsMapper.selectByExample(stuModuleDetailsExample);
+// if(stuModuleDetailsList.isEmpty()){ //设置默认数据
+// StuModuleDetails stuModuleDetails=new StuModuleDetails(module);
+// stuModuleDetailsMapper.insert(stuModuleDetails);
+// stuModuleDetailsList.add(stuModuleDetails);
+// }
+// StuModuleDetails stuModuleDetails = stuModuleDetailsList.get(0);
+//
+// //总次数
+// Integer taskNumber = stuModuleDetails.getTaskNumber();
+//
+// //查询该用户提交实训任务的次数
+// StuTrainingTaskSubmissionDetailsExample stuTrainingTaskSubmissionDetailsExample1=new StuTrainingTaskSubmissionDetailsExample();
+// stuTrainingTaskSubmissionDetailsExample1.createCriteria().andUserIdEqualTo(userId).andModuleEqualTo(module);
+// List stuTrainingTaskSubmissionDetails1 = stuTrainingTaskSubmissionDetailsMapper.selectByExample(stuTrainingTaskSubmissionDetailsExample1);
+// if (stuTrainingTaskSubmissionDetails1.isEmpty())
+// {
+// scoreDetailsList.get(i).setSchedule(0.0);
+// }else {
+//
+//
+//
+// Double info = (double) stuTrainingTaskSubmissionDetails1.size() / taskNumber;
+// info = Math.round(info * 100.0) / 100.0;
+// scoreDetailsList.get(i).setSchedule(info*100);
+// }
+
+
+ d++;
+ }
+ if(scoreDetailsList.get(i).getSerialNumber()==5){
+ scoreDetailsList.get(i).setScoreWeight(Double.parseDouble(String.valueOf(reportWeight)));
+ scoreDetailsList.get(i).setSchedule(100.0);
+
+ e++;
+ }
+ stuScoreDetailsMapper.updateByPrimaryKey(scoreDetailsList.get(i));
+ //根据权重计算所属总模块得分
+ Double scoreWeight = scoreDetailsList.get(i).getScoreWeight();
+ if(scoreDetailsList.get(i).getScoreProject()!=null){
+ Double scoreProject = scoreDetailsList.get(i).getScoreProject();
+ Double mul = bigDecimalUtils.mul(scoreWeight, scoreProject);
+ score += mul;
+ }
+ }
+ if(a==0){
+ StuScoreDetails stuScoreDetails=new StuScoreDetails();
+ stuScoreDetails.setLearningProjects("知识概要");
+ stuScoreDetails.setAssessmentItems("阅读知识");
+ stuScoreDetails.setScoringCriteria(String.valueOf(knowledgeScore));
+ stuScoreDetails.setScoreWeight(Double.parseDouble(String.valueOf(summaryOfKnowledgeWeight)));
+ stuScoreDetails.setModule(module);
+ stuScoreDetails.setSerialNumber(1);
+ stuScoreDetails.setSchedule(0.0);
+ scoreDetailsList.add(stuScoreDetails);
+ }
+ if(b==0){
+ StuScoreDetails stuScoreDetails=new StuScoreDetails();
+ stuScoreDetails.setLearningProjects("资源学习");
+ stuScoreDetails.setAssessmentItems("观看资源");
+ stuScoreDetails.setScoringCriteria(String.valueOf(resourceLearningScore));
+ stuScoreDetails.setScoreWeight(Double.parseDouble(String.valueOf(resourceLearningWeight)));
+ stuScoreDetails.setModule(module);
+ stuScoreDetails.setSerialNumber(2);
+ stuScoreDetails.setSchedule(0.0);
+ scoreDetailsList.add(stuScoreDetails);
+ }
+ if(c==0){
+ StuScoreDetails stuScoreDetails=new StuScoreDetails();
+ stuScoreDetails.setLearningProjects("学习测评");
+ stuScoreDetails.setAssessmentItems("客观题测试");
+ stuScoreDetails.setScoringCriteria(String.valueOf(learningAssessmentScore));
+ stuScoreDetails.setScoreWeight(Double.parseDouble(String.valueOf(learningAssessmentWeight)));
+ stuScoreDetails.setModule(module);
+ stuScoreDetails.setSerialNumber(3);
+ stuScoreDetails.setSchedule(0.0);
+ scoreDetailsList.add(stuScoreDetails);
+ }
+ if(d==0){
+ StuScoreDetails stuScoreDetails=new StuScoreDetails();
+ stuScoreDetails.setLearningProjects("实验实训");
+ stuScoreDetails.setAssessmentItems("输错/选错次数");
+ stuScoreDetails.setScoringCriteria(String.valueOf(experimentalTrainingScore));
+ stuScoreDetails.setScoreWeight(Double.parseDouble(String.valueOf(experimentalTrainingWeight)));
+ stuScoreDetails.setModule(module);
+ stuScoreDetails.setSerialNumber(4);
+ stuScoreDetails.setSchedule(0.0);
+ scoreDetailsList.add(stuScoreDetails);
+ }
+ if(e==0){
+ StuScoreDetails stuScoreDetails=new StuScoreDetails();
+ stuScoreDetails.setLearningProjects("实训报告");
+ stuScoreDetails.setScoreWeight(Double.parseDouble(String.valueOf(reportWeight)));
+ stuScoreDetails.setModule(module);
+ stuScoreDetails.setSerialNumber(5);
+ stuScoreDetails.setCompletionStatus("未提交");
+ stuScoreDetails.setSchedule(0.0);
+ scoreDetailsList.add(stuScoreDetails);
+ }
+ //将成绩添加到学生信息
+ this.personalScoreEntry(userId,module);
+ return scoreDetailsList;
+ }
+ @Resource
+ ConvertUtil convertUtil;
+
+ /**
+ * 计算知识概要得分
+ *
+ * @param stuScoreDetailsDTO 知识概要DTO
+ */
+ @Override
+ public void hashReadingScore(StuScoreDetailsDTO stuScoreDetailsDTO) {
+ StuUserExample stuUserExample = new StuUserExample();
+ stuUserExample.createCriteria().andUserIdEqualTo(stuScoreDetailsDTO.getUserId());
+ List stuUsers = stuUserMapper.selectByExample(stuUserExample);
+ StuUser stuUser = stuUsers.get(0);
+
+ TchDigitalTradeWeight weight = getWeight(stuUser.getSchoolId());
+
+
+ //将时间转换为分钟
+ double i = (double) stuScoreDetailsDTO.getViewingTime() / 60;
+ Double floor = Math.floor(i);
+
+
+
+ BigDecimal knowledgeScore = weight.getScoringCriteriaForLearningDuration();
+
+ double stuKnowledgeSummaryScoring = scoringUtil.getStuKnowledgeSummaryScoring(floor, Double.parseDouble(String.valueOf(knowledgeScore)));
+ //封装到实体类
+ stuScoreDetailsDTO.setScoringCriteria(String.valueOf(knowledgeScore));
+
+ stuScoreDetailsDTO.setScoreWeight(Double.parseDouble(String.valueOf(weight.getWeightStudyTime())));
+ StuScoreDetails stuScoreDetails = convertUtil.DTOToEntity(stuScoreDetailsDTO, StuScoreDetails.class);
+ stuScoreDetails.setScoreProject(stuKnowledgeSummaryScoring);
+ floor = floor >= 1 ? 1 : floor;
+ stuScoreDetails.setCompletionStatus(String.valueOf(floor));
+ stuScoreDetails.setSerialNumber(1);
+ stuScoreDetails.setLearningProjects("知识概要");
+ stuScoreDetails.setAssessmentItems("阅读知识");
+ stuScoreDetails.setProject(stuScoreDetailsDTO.getModule());
+
+ //查询有无数据
+ StuScoreDetailsExample example1 = new StuScoreDetailsExample();
+ StuScoreDetailsExample.Criteria criteria = example1.createCriteria();
+ criteria.andModuleEqualTo(stuScoreDetails.getModule())
+ .andLearningProjectsEqualTo(stuScoreDetails.getLearningProjects())
+ .andUserIdEqualTo(stuScoreDetails.getUserId());
+ List scoreDetailsList = stuScoreDetailsMapper.selectByExample(example1);
+
+ if (scoreDetailsList.size() == 0) {
+ stuScoreDetails.setId(UUID.randomUUID().toString());
+ stuScoreDetailsMapper.insert(stuScoreDetails);
+ } else {
+ //分数累加
+ Double scoreProject = scoreDetailsList.get(0).getScoreProject();
+ Double scoreProject1 = stuScoreDetails.getScoreProject();
+ BigDecimal add = bigDecimalUtils.add(scoreProject.toString(), scoreProject1.toString());
+
+ if(add.compareTo(BigDecimal.valueOf(100))==1){
+ add=BigDecimal.valueOf(100);
+ }
+
+ //时间累加
+ String completionStatus = String.valueOf(scoreDetailsList.get(0).getCompletionStatus());
+ String completionStatus1 = String.valueOf(stuScoreDetails.getCompletionStatus());
+ BigDecimal add1 = bigDecimalUtils.add(completionStatus, completionStatus1);
+
+ stuScoreDetails.setScoreProject(Double.parseDouble(add.toString()));
+ stuScoreDetails.setCompletionStatus(add1.toString());
+
+
+ stuScoreDetailsMapper.updateByExampleSelective(stuScoreDetails, example1);
+ }
+ //将分数统计到学生表中
+ this.personalScoreEntry(stuScoreDetailsDTO.getUserId(),stuScoreDetailsDTO.getModule());
+ }
+
+
+
+ /**
+ * 计算资源学习得分
+ *
+ * @param stuScoreDetailsDTO 学习资源DTO
+ */
+ @Override
+ public void hashWatchScore(StuScoreDetailsDTO stuScoreDetailsDTO) {
+ StuUserExample stuUserExample = new StuUserExample();
+ stuUserExample.createCriteria().andUserIdEqualTo(stuScoreDetailsDTO.getUserId());
+ List stuUsers = stuUserMapper.selectByExample(stuUserExample);
+ StuUser stuUser = stuUsers.get(0);
+ TchDigitalTradeWeight weight = getWeight(stuUser.getSchoolId());
+
+ //时间转换成分钟
+ double i = (double) stuScoreDetailsDTO.getViewingTime() / 60;
+ double floor = Math.floor(i);
+ double stuResourcesScoring = scoringUtil.getStuResourcesScoring(floor, Double.parseDouble(String.valueOf(weight.getScoringCriteriaForStudyResource())));
+
+ stuScoreDetailsDTO.setScoringCriteria(String.valueOf(weight.getScoringCriteriaForStudyResource()));
+ stuScoreDetailsDTO.setScoreWeight(Double.parseDouble(String.valueOf(weight.getWeightStudyResource())));
+ //将DTO转为Entity
+ StuScoreDetails stuScoreDetails = convertUtil.DTOToEntity(stuScoreDetailsDTO, StuScoreDetails.class);
+ stuScoreDetails.setScoreProject(stuResourcesScoring);
+ stuScoreDetails.setCompletionStatus(String.valueOf(floor));
+ stuScoreDetails.setSerialNumber(2);
+ stuScoreDetails.setLearningProjects("资源学习");
+ stuScoreDetails.setAssessmentItems("观看资源");
+
+ //判断数据是否存在
+ StuScoreDetailsExample example1 = new StuScoreDetailsExample();
+ StuScoreDetailsExample.Criteria criteria1 = example1.createCriteria();
+ criteria1.andUserIdEqualTo(stuScoreDetailsDTO.getUserId())
+ .andModuleEqualTo(stuScoreDetailsDTO.getModule())
+ .andLearningProjectsEqualTo(stuScoreDetails.getLearningProjects());
+ List scoreDetailsList1 = stuScoreDetailsMapper.selectByExample(example1);
+ if (scoreDetailsList1.size() == 0) {
+ //不存在则添加数据
+ stuScoreDetails.setId(UUID.randomUUID().toString());
+ stuScoreDetailsMapper.insert(stuScoreDetails);
+ } else {
+ //分数累加
+ Double scoreProject = scoreDetailsList1.get(0).getScoreProject();
+ Double scoreProject1 = stuScoreDetails.getScoreProject();
+ BigDecimal add = bigDecimalUtils.add(scoreProject.toString(), scoreProject1.toString());
+
+ //时间累加
+ String completionStatus = scoreDetailsList1.get(0).getCompletionStatus();
+ String completionStatus1 = stuScoreDetails.getCompletionStatus();
+ BigDecimal add1 = bigDecimalUtils.add(completionStatus, completionStatus1);
+
+ stuScoreDetails.setScoreProject(Double.parseDouble(add.toString()));
+ stuScoreDetails.setCompletionStatus(add1.toString());
+
+ stuScoreDetailsMapper.updateByExampleSelective(stuScoreDetails, example1);
+ }
+
+
+
+ //将分数统计到学生表中
+ this.personalScoreEntry(stuScoreDetailsDTO.getUserId(),stuScoreDetailsDTO.getModule());
+ }
+
+
+
+ public void personalScoreEntry(String userId,String module){
+// StuUserExample stuUserExample=new StuUserExample();
+// stuUserExample.createCriteria().andUserIdEqualTo(userId);
+// List stuUsers = stuUserMapper.selectByExample(stuUserExample);
+// String schoolId = stuUsers.get(0).getSchoolId();
+// TchDigitalTradeWeight weight = getWeight(schoolId);
+// //取到知识概要计分标准和权重
+// BigDecimal knowledgeScore = weight.getScoringCriteriaForLearningDuration();
+// BigDecimal summaryOfKnowledgeWeight = weight.getWeightStudyTime();
+// //取到资源学习计分标准和权重
+// BigDecimal resourceLearningScore = weight.getScoringCriteriaForStudyResource();
+// BigDecimal resourceLearningWeight = weight.getWeightStudyResource();
+// //取到学习测评计分标准和权重
+// BigDecimal learningAssessmentScore = weight.getScoringCriteriaForStudyEvaluation();
+// BigDecimal learningAssessmentWeight = weight.getWeightStudyEvaluation();
+// //取到实验实训计分标准和权重
+// BigDecimal experimentalTrainingScore = weight.getScoringCriteriaForExperimentalTraining();
+// BigDecimal experimentalTrainingWeight = weight.getWeightExperimentalTraining();
+// //取到实验报告权重
+// BigDecimal reportWeight = weight.getWeightExperimentalReport();
+
+ StuScoreDetailsExample stuScoreDetailsExample=new StuScoreDetailsExample();
+ stuScoreDetailsExample.createCriteria().andUserIdEqualTo(userId).andProjectEqualTo(module);
+ stuScoreDetailsExample.setOrderByClause("serial_number ASC");
+ List scoreDetailsList = stuScoreDetailsMapper.selectByExample(stuScoreDetailsExample);
+ double score=0;
+ for (int i = 0; i < scoreDetailsList.size(); i++) {
+// StuScoreDetails stuScoreDetails = scoreDetailsList.get(i);
+// if(stuScoreDetails.getLearningProjects().equals(Constant.ZSGY_TCHMODULE)){
+// stuScoreDetails.setScoringCriteria(String.valueOf(knowledgeScore));
+// stuScoreDetails.setScoreWeight(Double.parseDouble(String.valueOf(summaryOfKnowledgeWeight)));
+// }
+// if(stuScoreDetails.getLearningProjects().equals(Constant.ZYXX_TCHMODULE)){
+// stuScoreDetails.setScoringCriteria(String.valueOf(resourceLearningScore));
+// stuScoreDetails.setScoreWeight(Double.parseDouble(String.valueOf(resourceLearningWeight)));
+// }
+// if(stuScoreDetails.getLearningProjects().equals(Constant.XXCP_TCHMODULE)){
+// stuScoreDetails.setScoringCriteria(String.valueOf(learningAssessmentScore));
+// stuScoreDetails.setScoreWeight(Double.parseDouble(String.valueOf(learningAssessmentWeight)));
+// }
+// if(stuScoreDetails.getLearningProjects().equals(Constant.SYSX_TCHMODULE)){
+// stuScoreDetails.setScoringCriteria(String.valueOf(experimentalTrainingScore));
+// stuScoreDetails.setScoreWeight(Double.parseDouble(String.valueOf(experimentalTrainingWeight)));
+// }
+// if(stuScoreDetails.getLearningProjects().equals(Constant.SYBG_TCHMODULE)){
+// stuScoreDetails.setScoreWeight(Double.parseDouble(String.valueOf(reportWeight)));
+// }
+// stuScoreDetailsMapper.updateByPrimaryKey(stuScoreDetails);
+
+ Double scoreProject = scoreDetailsList.get(i).getScoreProject();
+ if (scoreProject==null)
+ {
+ scoreProject=0.0;
+ }
+ Double scoreWeight = scoreDetailsList.get(i).getScoreWeight();
+ Double mul = bigDecimalUtils.mul(scoreProject, scoreWeight);
+ score+=mul;
+ }
+
+ //将所属模块总成绩添加到学生表
+ StuUser stuUser = stuUserMapper.selectByPrimaryKey(userId);
+// if (module.equals(Constant.five_G)) {
+// stuUser.setFiveScore(BigDecimal.valueOf(score));
+// }
+// if (module.equals(Constant.ARTIFICIAL_INTELLIGENCE)) {
+// stuUser.setArtificialIntelligenceScore(BigDecimal.valueOf(score));
+// }
+// if (module.equals(Constant.BIG_DATA)) {
+// stuUser.setBigDataScore(BigDecimal.valueOf(score));
+// }
+// if (module.equals(Constant.CLOUD_COMPUTING)) {
+// stuUser.setCloudComputeScore(BigDecimal.valueOf(score));
+// }
+// if (module.equals(Constant.INTERNET_OF_THINGS)) {
+// stuUser.setInternetOfThingsSocre(BigDecimal.valueOf(score));
+// }
+// if (module.equals(Constant.VIRTUAL_REALITY)) {
+// stuUser.setVirtualRealitySocre(BigDecimal.valueOf(score));
+// }
+// if (module.equals(Constant.INDUSTRIAL_INTERNET)) {
+// stuUser.setIndustrialInternetSocre(BigDecimal.valueOf(score));
+// }
+// if (module.equals(Constant.DIGITAL_TRADE)) {
+// stuUser.setDigitalTradeScore(BigDecimal.valueOf(score));
+// }
+// if (module.equals(Constant.DIGITAL_FINANCE)) {
+// stuUser.setDigitalFinanceScore(BigDecimal.valueOf(score));
+// }
+// if (module.equals("碳金融")) {
+// stuUser.setDigitalGoverSocre(BigDecimal.valueOf(score));
+// }
+ if (score!=0) {
+ stuUser.setResultsOfPracticalCaseStudies(BigDecimal.valueOf(score));
+ }
+ stuUserMapper.updateByPrimaryKey(stuUser);
+// //更新数据价值化和数字产业化成绩和产业数字化和数字治理化成绩
+// Double mul;
+// StuUser stuUser1 = stuUserMapper.selectByPrimaryKey(userId);
+// if(module.equals(Constant.DIGITAL_TRADE)||module.equals(Constant.DIGITAL_FINANCE)){
+// BigDecimal digitalTradeScore = stuUser1.getDigitalTradeScore();
+// BigDecimal digitalFinanceScore = stuUser1.getDigitalFinanceScore();
+//
+// String mul1 = bigDecimalUtils.mul(String.valueOf(digitalTradeScore),String.valueOf(0.5),2);
+// String mul2 = bigDecimalUtils.mul(String.valueOf(digitalFinanceScore), String.valueOf(0.5),2);
+// mul=Double.parseDouble(mul1)+Double.parseDouble(mul2);
+// stuUser1.setIndustryDigitalScore(BigDecimal.valueOf(mul));
+//
+// }
+// if(module.equals(Constant.five_G)||module.equals(Constant.ARTIFICIAL_INTELLIGENCE)||module.equals(Constant.BIG_DATA)||
+// module.equals(Constant.CLOUD_COMPUTING)|| module.equals(Constant.INTERNET_OF_THINGS)||
+// module.equals(Constant.VIRTUAL_REALITY)||module.equals(Constant.INDUSTRIAL_INTERNET)) {
+// BigDecimal fiveScore = stuUser1.getFiveScore();
+// BigDecimal artificialIntelligenceScore = stuUser1.getArtificialIntelligenceScore();
+// BigDecimal bigDataScore = stuUser1.getBigDataScore();
+// BigDecimal cloudComputeScore = stuUser1.getCloudComputeScore();
+// BigDecimal internetOfThingsSocre = stuUser1.getInternetOfThingsSocre();
+// BigDecimal virtualRealitySocre = stuUser1.getVirtualRealitySocre();
+// BigDecimal industrialInternetSocre = stuUser1.getIndustrialInternetSocre();
+// String mul1 = bigDecimalUtils.mul(String.valueOf(fiveScore),String.valueOf(0.1),2);
+// String mul2 = bigDecimalUtils.mul(String.valueOf(artificialIntelligenceScore), String.valueOf(0.3),2);
+// String mul3 = bigDecimalUtils.mul(String.valueOf(bigDataScore),String.valueOf(0.2),2);
+// String mul4 = bigDecimalUtils.mul(String.valueOf(cloudComputeScore), String.valueOf(0.1),2);
+// String mul5 = bigDecimalUtils.mul(String.valueOf(internetOfThingsSocre),String.valueOf(0.1),2);
+// String mul6 = bigDecimalUtils.mul(String.valueOf(virtualRealitySocre),String.valueOf(0.1),2);
+// String mul7 = bigDecimalUtils.mul(String.valueOf(industrialInternetSocre),String.valueOf(0.1),2);
+// mul=Double.parseDouble(mul1)+Double.parseDouble(mul2)+Double.parseDouble(mul3)+Double.parseDouble(mul4)+
+// Double.parseDouble(mul5)+Double.parseDouble(mul6)+Double.parseDouble(mul7);
+// stuUser1.setDigitalIndustryScore(BigDecimal.valueOf(mul));
+// }
+// stuUserMapper.updateByPrimaryKey(stuUser1);
+ }
}
diff --git a/src/main/java/com/sztzjy/trade/service/impl/StuGoodsTradingOrderServiceImpl.java b/src/main/java/com/sztzjy/trade/service/impl/StuGoodsTradingOrderServiceImpl.java
index dc55c1f..1cc0a9b 100644
--- a/src/main/java/com/sztzjy/trade/service/impl/StuGoodsTradingOrderServiceImpl.java
+++ b/src/main/java/com/sztzjy/trade/service/impl/StuGoodsTradingOrderServiceImpl.java
@@ -14,8 +14,9 @@ import com.sztzjy.trade.util.ResultEntity;
import com.sztzjy.trade.util.file.IFileUtil;
import org.apache.tomcat.util.http.fileupload.FileUpload;
import org.bouncycastle.pqc.math.linearalgebra.RandUtils;
-import org.bytedeco.ffmpeg.global.avutil;
-import org.bytedeco.javacv.FFmpegFrameGrabber;
+
+//import org.bytedeco.ffmpeg.global.avutil;
+//import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -23,8 +24,11 @@ import org.springframework.http.HttpEntity;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
+import ws.schild.jave.MultimediaInfo;
+import ws.schild.jave.MultimediaObject;
import javax.annotation.Resource;
+import java.io.File;
import java.util.*;
import java.util.stream.Collectors;
@@ -594,8 +598,10 @@ public class StuGoodsTradingOrderServiceImpl implements StuGoodsTradingOrderServ
//文件大小
long size = file.getSize();
+
+
//视频时长
- Integer duration = testJavaCV(filePath + upload);
+ Long duration = getVedioTime(new File(filePath + upload));
//
StuVideoInfoDTO stuVideoInfoDTO = new StuVideoInfoDTO();
@@ -811,17 +817,22 @@ public class StuGoodsTradingOrderServiceImpl implements StuGoodsTradingOrderServ
// }
- //使用JavaCV获取
- public Integer testJavaCV(String path) throws Exception {
- // 读取视频文件
- FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(path);
- grabber.start();
- // 获取视频长度(单位:秒)
- int duration = (int) (grabber.getLengthInTime() / avutil.AV_TIME_BASE);
- System.out.println("Video duration: " + duration + " seconds");
- grabber.stop();
-
- return duration;
+ /**
+ * 获取视频时长:秒
+ *
+ * @param file
+ * @return
+ */
+ public static Long getVedioTime(File file) {
+ try {
+ MultimediaObject instance = new MultimediaObject(file);
+ MultimediaInfo result = instance.getInfo();
+ long ls = result.getDuration() / 1000;
+ return ls;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return 0l;
}
// 递归查找评论及其回复并返回所有回复的列表
diff --git a/src/main/java/com/sztzjy/trade/service/impl/TchHomeworkExamServiceImpl.java b/src/main/java/com/sztzjy/trade/service/impl/TchHomeworkExamServiceImpl.java
index 1004e26..7017180 100644
--- a/src/main/java/com/sztzjy/trade/service/impl/TchHomeworkExamServiceImpl.java
+++ b/src/main/java/com/sztzjy/trade/service/impl/TchHomeworkExamServiceImpl.java
@@ -21,7 +21,7 @@ import com.sztzjy.trade.util.ConvertUtil;
import com.sztzjy.trade.util.PageUtil;
import com.sztzjy.trade.util.ResultEntity;
import com.sztzjy.trade.util.file.IFileUtil;
-import org.json.JSONObject;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
diff --git a/src/main/java/com/sztzjy/trade/service/impl/TchInteractionImpl.java b/src/main/java/com/sztzjy/trade/service/impl/TchInteractionImpl.java
index ca850fa..a2fc8fe 100644
--- a/src/main/java/com/sztzjy/trade/service/impl/TchInteractionImpl.java
+++ b/src/main/java/com/sztzjy/trade/service/impl/TchInteractionImpl.java
@@ -14,7 +14,7 @@ import com.sztzjy.trade.util.PageUtil;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.stereotype.Service;
-import org.ujmp.core.util.R;
+
import javax.annotation.Resource;
import java.util.*;
diff --git a/src/main/java/com/sztzjy/trade/util/RedisUtil.java b/src/main/java/com/sztzjy/trade/util/RedisUtil.java
index 90096d7..393ed03 100644
--- a/src/main/java/com/sztzjy/trade/util/RedisUtil.java
+++ b/src/main/java/com/sztzjy/trade/util/RedisUtil.java
@@ -1,7 +1,7 @@
package com.sztzjy.trade.util;
-import com.hankcs.hanlp.collection.sequence.SString;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.Cursor;
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 5200762..2a15785 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -11,9 +11,9 @@ spring:
# 文件存储
file:
type: local
- path: D:\home\trade
- url: "http://localhost:99"
-# path: /usr/local/tianzeProject/blockFinance/uploadFile
+ path: /usr/local/tianzeProject/digitalTrade/uploadFile
+ url: "http://118.31.7.2:218/file"
+
item:
name: trade
diff --git a/src/main/resources/mappers/StuKnowledgeSummaryMapper.xml b/src/main/resources/mappers/StuKnowledgeSummaryMapper.xml
new file mode 100644
index 0000000..a9c793f
--- /dev/null
+++ b/src/main/resources/mappers/StuKnowledgeSummaryMapper.xml
@@ -0,0 +1,266 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+ summary_id, directory_id, directory_name, parent_id, summary_content, module, reading_time
+
+
+
+
+ delete from stu_knowledge_summary
+ where summary_id = #{summaryId,jdbcType=VARCHAR}
+
+
+ delete from stu_knowledge_summary
+
+
+
+
+
+ insert into stu_knowledge_summary (summary_id, directory_id, directory_name,
+ parent_id, summary_content, module,
+ reading_time)
+ values (#{summaryId,jdbcType=VARCHAR}, #{directoryId,jdbcType=VARCHAR}, #{directoryName,jdbcType=VARCHAR},
+ #{parentId,jdbcType=VARCHAR}, #{summaryContent,jdbcType=VARCHAR}, #{module,jdbcType=VARCHAR},
+ #{readingTime,jdbcType=TIMESTAMP})
+
+
+ insert into stu_knowledge_summary
+
+
+ summary_id,
+
+
+ directory_id,
+
+
+ directory_name,
+
+
+ parent_id,
+
+
+ summary_content,
+
+
+ module,
+
+
+ reading_time,
+
+
+
+
+ #{summaryId,jdbcType=VARCHAR},
+
+
+ #{directoryId,jdbcType=VARCHAR},
+
+
+ #{directoryName,jdbcType=VARCHAR},
+
+
+ #{parentId,jdbcType=VARCHAR},
+
+
+ #{summaryContent,jdbcType=VARCHAR},
+
+
+ #{module,jdbcType=VARCHAR},
+
+
+ #{readingTime,jdbcType=TIMESTAMP},
+
+
+
+
+
+ update stu_knowledge_summary
+
+
+ summary_id = #{record.summaryId,jdbcType=VARCHAR},
+
+
+ directory_id = #{record.directoryId,jdbcType=VARCHAR},
+
+
+ directory_name = #{record.directoryName,jdbcType=VARCHAR},
+
+
+ parent_id = #{record.parentId,jdbcType=VARCHAR},
+
+
+ summary_content = #{record.summaryContent,jdbcType=VARCHAR},
+
+
+ module = #{record.module,jdbcType=VARCHAR},
+
+
+ reading_time = #{record.readingTime,jdbcType=TIMESTAMP},
+
+
+
+
+
+
+
+ update stu_knowledge_summary
+ set summary_id = #{record.summaryId,jdbcType=VARCHAR},
+ directory_id = #{record.directoryId,jdbcType=VARCHAR},
+ directory_name = #{record.directoryName,jdbcType=VARCHAR},
+ parent_id = #{record.parentId,jdbcType=VARCHAR},
+ summary_content = #{record.summaryContent,jdbcType=VARCHAR},
+ module = #{record.module,jdbcType=VARCHAR},
+ reading_time = #{record.readingTime,jdbcType=TIMESTAMP}
+
+
+
+
+
+ update stu_knowledge_summary
+
+
+ directory_id = #{directoryId,jdbcType=VARCHAR},
+
+
+ directory_name = #{directoryName,jdbcType=VARCHAR},
+
+
+ parent_id = #{parentId,jdbcType=VARCHAR},
+
+
+ summary_content = #{summaryContent,jdbcType=VARCHAR},
+
+
+ module = #{module,jdbcType=VARCHAR},
+
+
+ reading_time = #{readingTime,jdbcType=TIMESTAMP},
+
+
+ where summary_id = #{summaryId,jdbcType=VARCHAR}
+
+
+ update stu_knowledge_summary
+ set directory_id = #{directoryId,jdbcType=VARCHAR},
+ directory_name = #{directoryName,jdbcType=VARCHAR},
+ parent_id = #{parentId,jdbcType=VARCHAR},
+ summary_content = #{summaryContent,jdbcType=VARCHAR},
+ module = #{module,jdbcType=VARCHAR},
+ reading_time = #{readingTime,jdbcType=TIMESTAMP}
+ where summary_id = #{summaryId,jdbcType=VARCHAR}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/java/com/sztzjy/Tset.java b/src/test/java/com/sztzjy/Tset.java
deleted file mode 100644
index dda0e4c..0000000
--- a/src/test/java/com/sztzjy/Tset.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.sztzjy;/**
- * @author 17803
- * @date 2024-08-09 8:52
- */
-
-import org.junit.jupiter.api.Test;
-
-/**
- * @projectName: digital_trade
- * @package: com.sztzjy
- * @className: Tset
- * @author: WangHaoBo
- * @description: TODO
- * @date: 2024/8/9 8:52
- */
-public class Tset {
-
-
-
-
- @Test
- public void test(){
-
- }
-}