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(){ - - } -}