From b700af25265eac7a1f76e1c3f53965d48cb25855 Mon Sep 17 00:00:00 2001
From: yaodan <1421553879@qq.com>
Date: Thu, 4 May 2023 04:03:18 +0800
Subject: [PATCH 1/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BC=80=E8=AF=BE?=
=?UTF-8?q?=E6=8E=88=E6=9D=83=E7=A0=81=E5=8F=AA=E8=83=BD=E5=90=8C=E4=B8=93?=
=?UTF-8?q?=E4=B8=9A=E7=8F=AD=E7=BA=A7=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C?=
=?UTF-8?q?=E6=94=B9=E4=B8=BA=E4=B8=8D=E9=99=90=E5=88=B6=EF=BC=8C=E5=8F=AA?=
=?UTF-8?q?=E9=99=90=E5=88=B6=E5=90=8C=E9=99=A2=E6=A0=A1=20=E4=BF=AE?=
=?UTF-8?q?=E5=A4=8D=E6=B7=BB=E5=8A=A0=E9=A2=98=E7=9B=AE=E6=97=B6=E4=BC=9A?=
=?UTF-8?q?=E6=8A=8A
=E8=BF=99=E7=A7=8D=E6=B2=A1=E6=9C=89?=
=?UTF-8?q?=E5=86=85=E5=AE=B9=E7=9A=84=E6=A0=87=E7=AD=BE=E5=B8=A6=E4=B8=8A?=
=?UTF-8?q?=E6=9D=A5=E5=B9=B6=E4=BF=9D=E5=AD=98=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../jlw/service/ResourcesQuestionService.java | 11 ++
.../TeacherOpenCourseMergeStudentService.java | 114 +++++++++++-------
.../jlw/web/ResourcesQuestionController.java | 20 ++-
3 files changed, 99 insertions(+), 46 deletions(-)
diff --git a/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionService.java b/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionService.java
index 5b77ebb4..a1e06b2f 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionService.java
@@ -822,6 +822,17 @@ public class ResourcesQuestionService extends CoreBaseService
return "";
}
+
+ public String formatQuestion(String question) {
+
+ if (StringUtils.isNotBlank(question)&&StringUtils.isNotBlank(question.replace("","").replace("
","").replace("
","").replace("
","").trim())){
+ return question;
+ }else {
+ return "";
+ }
+
+ }
+
public String getCellFormatValue(Cell cell) {
String value = null;
if (cell != null) {
diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeStudentService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeStudentService.java
index b42acace..38322a18 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeStudentService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeStudentService.java
@@ -1,5 +1,6 @@
package com.ibeetl.jlw.service;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.jlw.util.ToolUtils;
import cn.jlw.validate.ValidateConfig;
@@ -30,6 +31,7 @@ import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
import static cn.hutool.core.util.ObjectUtil.defaultIfNull;
import static com.ibeetl.admin.core.util.StreamUtils.listJoin;
@@ -45,39 +47,48 @@ import static com.ibeetl.jlw.enums.OpenCourseMergeJoinTypeEnum.student_join;
@Transactional
@Validated
@Slf4j
-public class TeacherOpenCourseMergeStudentService extends CoreBaseService implements DeleteResourcesBy{
+public class TeacherOpenCourseMergeStudentService extends CoreBaseService implements DeleteResourcesBy {
- @Autowired private UserConsoleService userConsoleService;
- @Autowired private TeacherOpenCourseMergeStudentDao teacherOpenCourseMergeStudentDao;
- @Autowired private TeacherOpenCourseMergeTeacherDao teacherOpenCourseMergeTeacherDao;
- @Autowired private TeacherOpenCourseMergeSchoolClassDao teacherOpenCourseMergeSchoolClassDao;
- @Autowired private StudentDao studentDao;
- @Autowired private TeacherDao teacherDao;
+ @Autowired
+ private UserConsoleService userConsoleService;
+ @Autowired
+ private TeacherOpenCourseMergeStudentDao teacherOpenCourseMergeStudentDao;
+ @Autowired
+ private TeacherOpenCourseMergeTeacherDao teacherOpenCourseMergeTeacherDao;
+ @Autowired
+ private TeacherOpenCourseMergeSchoolClassDao teacherOpenCourseMergeSchoolClassDao;
+ @Autowired
+ private StudentDao studentDao;
- public PageQueryqueryByCondition(PageQuery query){
- PageQuery ret = teacherOpenCourseMergeStudentDao.queryByCondition(query);
+
+ @Autowired
+ private TeacherService teacherService;
+
+
+ public PageQuery queryByCondition(PageQuery query) {
+ PageQuery ret = teacherOpenCourseMergeStudentDao.queryByCondition(query);
queryListAfter(ret.getList());
return ret;
}
- public PageQueryqueryByConditionQuery(PageQuery query){
- PageQuery ret = teacherOpenCourseMergeStudentDao.queryByConditionQuery(query);
+ public PageQuery queryByConditionQuery(PageQuery query) {
+ PageQuery ret = teacherOpenCourseMergeStudentDao.queryByConditionQuery(query);
queryListAfter(ret.getList());
return ret;
}
- public void deleteByList(List list){
+ public void deleteByList(List list) {
String ids = "";
ToolUtils.deleteNullList(list);
- for(int i=0;null != list && i teacherOpenCourseMergeStudentList = new ArrayList<>();
try {
@@ -93,10 +104,11 @@ public class TeacherOpenCourseMergeStudentService extends CoreBaseService0){
- for(int i=0;i 0) {
+ for (int i = 0; i < teacherOpenCourseMergeStudentList.size(); i++) {
TeacherOpenCourseMergeStudent teacherOpenCourseMergeStudent = teacherOpenCourseMergeStudentList.get(i);
teacherOpenCourseMergeStudent.setOrgId(teacherOpenCourseMergeStudentQuery.getOrgId());
teacherOpenCourseMergeStudent.setTeacherOpenCourseSchoolClassMergeStudentAddTime(new Date());
@@ -129,7 +141,7 @@ public class TeacherOpenCourseMergeStudentService extends CoreBaseService 0;
- if(!flag){
+ if (!flag) {
msg = "更新指定参数失败";
}
- }else{
+ } else {
msg = "指定参数为空";
}
return msg;
}
- public List getValues (Object paras){
+ public List getValues(Object paras) {
return sqlManager.select(SqlId.of("jlw.teacherOpenCourseMergeStudent.getTeacherOpenCourseMergeStudentValues"), TeacherOpenCourseMergeStudent.class, paras);
}
- public List getValuesByQuery (TeacherOpenCourseMergeStudentQuery teacherOpenCourseMergeStudentQuery){
+ public List getValuesByQuery(TeacherOpenCourseMergeStudentQuery teacherOpenCourseMergeStudentQuery) {
List valuesByQuery = teacherOpenCourseMergeStudentDao.getValuesByQuery(teacherOpenCourseMergeStudentQuery);
queryListAfter(valuesByQuery);
return valuesByQuery;
}
- public List getValuesByQueryNotWithPermission (TeacherOpenCourseMergeStudentQuery teacherOpenCourseMergeStudentQuery){
+ public List getValuesByQueryNotWithPermission(TeacherOpenCourseMergeStudentQuery teacherOpenCourseMergeStudentQuery) {
List valuesByQueryNotWithPermission = teacherOpenCourseMergeStudentDao.getValuesByQueryNotWithPermission(teacherOpenCourseMergeStudentQuery);
queryListAfter(valuesByQueryNotWithPermission);
return valuesByQueryNotWithPermission;
}
- public TeacherOpenCourseMergeStudent getInfo (Long teacherOpenCourseSchoolClassMergeStudentId){
+ public TeacherOpenCourseMergeStudent getInfo(Long teacherOpenCourseSchoolClassMergeStudentId) {
TeacherOpenCourseMergeStudentQuery teacherOpenCourseMergeStudentQuery = new TeacherOpenCourseMergeStudentQuery();
teacherOpenCourseMergeStudentQuery.setTeacherOpenCourseSchoolClassMergeStudentId(teacherOpenCourseSchoolClassMergeStudentId);
teacherOpenCourseMergeStudentQuery.setTeacherOpenCourseSchoolClassMergeStudentStatusPlural("1,2");//需要根据实际情况来
List list = teacherOpenCourseMergeStudentDao.getValuesByQuery(teacherOpenCourseMergeStudentQuery);
- if(null != list && list.size()>0){
+ if (null != list && list.size() > 0) {
return list.get(0);
- }else{
+ } else {
return null;
}
}
- public TeacherOpenCourseMergeStudent getInfo (TeacherOpenCourseMergeStudentQuery teacherOpenCourseMergeStudentQuery){
+ public TeacherOpenCourseMergeStudent getInfo(TeacherOpenCourseMergeStudentQuery teacherOpenCourseMergeStudentQuery) {
List list = teacherOpenCourseMergeStudentDao.getValuesByQuery(teacherOpenCourseMergeStudentQuery);
- if(null != list && list.size()>0){
+ if (null != list && list.size() > 0) {
return list.get(0);
- }else{
+ } else {
return null;
}
}
@@ -215,7 +227,7 @@ public class TeacherOpenCourseMergeStudentService extends CoreBaseService studentIdList = teacherOpenCourseMergeStudentDao.selectStudentIdListByTeacherId(teacher.getTeacherId());
diff --git a/web/src/main/java/com/ibeetl/jlw/web/ResourcesQuestionController.java b/web/src/main/java/com/ibeetl/jlw/web/ResourcesQuestionController.java
index 6fac3cf1..4102362b 100644
--- a/web/src/main/java/com/ibeetl/jlw/web/ResourcesQuestionController.java
+++ b/web/src/main/java/com/ibeetl/jlw/web/ResourcesQuestionController.java
@@ -294,11 +294,21 @@ public class ResourcesQuestionController{
BigDecimal questionScore = resourcesQuestion.getQuestionScore();
String questionStem = resourcesQuestion.getQuestionStem();
- String questionOptionA = resourcesQuestion.getQuestionOptionA();
- String questionOptionB = resourcesQuestion.getQuestionOptionB();
- String questionOptionC = resourcesQuestion.getQuestionOptionC();
- String questionOptionD = resourcesQuestion.getQuestionOptionD();
- String questionOptionE = resourcesQuestion.getQuestionOptionE();
+ String questionOptionA = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionA());
+ resourcesQuestion.setQuestionOptionA(questionOptionA);
+
+ String questionOptionB = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionB());
+ resourcesQuestion.setQuestionOptionB(questionOptionB);
+
+ String questionOptionC = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionC());
+ resourcesQuestion.setQuestionOptionC(questionOptionC);
+
+ String questionOptionD = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionD());
+ resourcesQuestion.setQuestionOptionD(questionOptionD);
+
+ String questionOptionE = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionE());
+ resourcesQuestion.setQuestionOptionE(questionOptionE);
+
String questionAnswer = resourcesQuestion.getQuestionAnswer();
questionAnswer = resourcesQuestionService.answerFormat(questionType,questionAnswer);//格式化
From 5a81d0319da5e6b92e16b97af3e52c8cc11352ab Mon Sep 17 00:00:00 2001
From: yaodan <1421553879@qq.com>
Date: Sat, 6 May 2023 02:24:28 +0800
Subject: [PATCH 2/7] =?UTF-8?q?=E5=AD=A6=E7=94=9F=E6=8F=90=E9=97=AE?=
=?UTF-8?q?=EF=BC=8C=E6=95=99=E5=B8=88=E6=8F=90=E9=97=AE=E6=A8=A1=E5=9D=97?=
=?UTF-8?q?=E7=9A=84=E6=9C=AA=E8=AF=BB=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../jlw/dao/TeacherOpenCourseChatLogDao.java | 8 ++
.../jlw/entity/TeacherOpenCourseChatLog.java | 6 ++
.../TeacherOpenCourseChatLogService.java | 60 ++++++++++++++
.../TeacherOpenCourseChatLogController.java | 36 +++++++-
.../jlw/web/TeacherOpenCourseController.java | 11 +++
.../query/TeacherOpenCourseChatLogQuery.java | 21 +++++
.../sql/jlw/teacherOpenCourseChatLog.md | 82 ++++++++++++++++++-
7 files changed, 220 insertions(+), 4 deletions(-)
diff --git a/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseChatLogDao.java b/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseChatLogDao.java
index f958a0b4..f47ccd14 100644
--- a/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseChatLogDao.java
+++ b/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseChatLogDao.java
@@ -62,4 +62,12 @@ public interface TeacherOpenCourseChatLogDao extends BaseMapper> getMyselfValues(TeacherOpenCourseQuery param, @TTeacher Teacher teacher) {
+ param.setTeacherId(teacher.getTeacherId());
+ Listlist = teacherOpenCourseService.getValuesByQuery(param);
+ return JsonResult.success(list);
+ }
+
+
@PostMapping(MODEL + "/delete.json")
@Function("teacherOpenCourse.delete")
@ResponseBody
diff --git a/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseChatLogQuery.java b/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseChatLogQuery.java
index a4887763..8f324271 100644
--- a/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseChatLogQuery.java
+++ b/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseChatLogQuery.java
@@ -82,6 +82,9 @@ public class TeacherOpenCourseChatLogQuery extends PageParam {
@Query(name = "回复状态 1 待回复 2已回复", display = false)
private Integer replyStatus;
+ private Integer teacherReadStatus;
+
+ private Integer studentReadStatus;
private String teacherOpenCourseChatLogIdPlural;
private String teacherOpenCourseChatLogParentIdPlural;
private String teacherOpenCourseIdPlural;
@@ -198,6 +201,8 @@ public class TeacherOpenCourseChatLogQuery extends PageParam {
pojo.setChatLogSendType(ObjectUtil.defaultIfNull(this.getChatLogSendType(), normal));
pojo.setOrgId(this.getOrgId());
pojo.setUserId(this.getUserId());
+ pojo.setTeacherReadStatus(this.getTeacherReadStatus());
+ pojo.setStudentReadStatus(this.getStudentReadStatus());
return pojo;
}
@@ -292,4 +297,20 @@ public class TeacherOpenCourseChatLogQuery extends PageParam {
public void setChatLogSendTypePlural(String chatLogSendTypePlural) {
this.chatLogSendTypePlural = chatLogSendTypePlural;
}
+
+ public Integer getTeacherReadStatus() {
+ return teacherReadStatus;
+ }
+
+ public void setTeacherReadStatus(Integer teacherReadStatus) {
+ this.teacherReadStatus = teacherReadStatus;
+ }
+
+ public Integer getStudentReadStatus() {
+ return studentReadStatus;
+ }
+
+ public void setStudentReadStatus(Integer studentReadStatus) {
+ this.studentReadStatus = studentReadStatus;
+ }
}
diff --git a/web/src/main/resources/sql/jlw/teacherOpenCourseChatLog.md b/web/src/main/resources/sql/jlw/teacherOpenCourseChatLog.md
index 706f8bf4..1844323e 100644
--- a/web/src/main/resources/sql/jlw/teacherOpenCourseChatLog.md
+++ b/web/src/main/resources/sql/jlw/teacherOpenCourseChatLog.md
@@ -132,6 +132,10 @@ queryByConditionQuery
@pageTag(){
t.*,
tc.class_name,
+ ifnull((select count(1) from teacher_open_course_chat_log a
+ where a.teacher_open_course_chat_log_status = 1
+ and a.teacher_open_course_chat_log_parent_id = t.teacher_open_course_chat_log_id
+ ), 0) as comment_count,
@// 指定提问,随机提问类型,查询学生回答的数据。只查询一级
(case when find_in_set(t.chat_log_send_type, 'specify_ask,random_ask') then
(select chat_content
@@ -686,4 +690,80 @@ chatLogAnalysis
@if(isNotEmpty(teacherOpenCourseId)) {
AND t.teacher_open_course_id = #teacherOpenCourseId#
@}
- AND t.teacher_open_course_chat_log_status = 1
\ No newline at end of file
+ AND t.teacher_open_course_chat_log_status = 1
+
+
+
+getTeacherAskUnReadCountByTeacher
+===
+ * 获取老师提问模块未读数量,对于老师来说
+ SELECT IFNULL(sum(
+ (select count(*)
+ from teacher_open_course_chat_log t2
+ where t2.teacher_open_course_chat_log_parent_id = t.teacher_open_course_chat_log_id
+ and t2.teacher_read_status = 0)
+ ),0)
+ FROM teacher_open_course_chat_log t
+ WHERE 1
+ AND t.teacher_open_course_id = #teacherOpenCourseId#
+ AND t.teacher_id = #teacherId#
+ AND t.chat_log_send_type in ('specify_ask', 'random_ask')
+
+
+
+
+getTeacherAskUnReadCountByStudent
+===
+ * 获取老师提问模块未读数量,对于学生来说
+
+ SELECT count(*)
+ FROM teacher_open_course_chat_log t
+ WHERE 1
+ AND t.teacher_open_course_id = #teacherOpenCourseId#
+ AND t.student_id = #studentId#
+ AND t.chat_log_send_type in ('specify_ask','random_ask')
+ @//这里的未读我们可以认为就是不存在回复
+ AND NOT EXISTS(
+ SELECT 1
+ FROM teacher_open_course_chat_log ta
+ WHERE 1
+ and t.student_id = #studentId#
+ AND t.teacher_open_course_id = #teacherOpenCourseId#
+ AND ta.teacher_open_course_chat_log_parent_id = t.teacher_open_course_chat_log_id
+ )
+
+
+getStudentAskUnReadCountByTeacher
+===
+ * 获取学生提问模块未读数量,对于老师来说
+
+ SELECT count(*)
+ FROM teacher_open_course_chat_log t
+ WHERE 1
+ AND t.teacher_open_course_id = #teacherOpenCourseId#
+ AND t.chat_log_send_type = 'student_ask'
+ AND NOT EXISTS(
+ SELECT 1
+ FROM teacher_open_course_chat_log ta
+ WHERE 1
+ and t.teacher_id = #teacherId#
+ AND t.teacher_open_course_id = #teacherOpenCourseId#
+ AND ta.teacher_open_course_chat_log_parent_id = t.teacher_open_course_chat_log_id
+ )
+
+
+getStudentAskUnReadCountByStudent
+===
+ * 获取学生提问模块未读数量,对于学生来说
+
+ SELECT IFNULL(sum(
+ (select count(*)
+ from teacher_open_course_chat_log t2
+ where t2.teacher_open_course_chat_log_parent_id = t.teacher_open_course_chat_log_id
+ and t2.teacher_read_status = 0)
+ ),0)
+ FROM teacher_open_course_chat_log t
+ WHERE 1
+ AND t.student_id = #studentId#
+ AND t.teacher_open_course_id = #teacherOpenCourseId#
+ AND t.chat_log_send_type = 'student_ask'
\ No newline at end of file
From 56b70d5fb9d518e27e240056c0316c8e3a798f48 Mon Sep 17 00:00:00 2001
From: yaodan <1421553879@qq.com>
Date: Sat, 6 May 2023 02:57:18 +0800
Subject: [PATCH 3/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E5=88=A0=E9=99=A4?=
=?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=88=86=E7=B1=BB=E6=97=B6=EF=BC=8C=E9=AA=8C?=
=?UTF-8?q?=E8=AF=81=E6=98=AF=E5=90=A6=E6=9C=89=E5=85=B3=E8=81=94=E7=9A=84?=
=?UTF-8?q?=E8=AF=BE=E7=A8=8B=EF=BC=8C=E6=9C=89=E5=B0=B1=E4=B8=8D=E8=AE=A9?=
=?UTF-8?q?=E5=88=A0=E9=99=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../jlw/service/CourseLabelService.java | 40 +++++++++++++++++++
.../ibeetl/jlw/web/CourseLabelController.java | 12 +-----
2 files changed, 41 insertions(+), 11 deletions(-)
diff --git a/web/src/main/java/com/ibeetl/jlw/service/CourseLabelService.java b/web/src/main/java/com/ibeetl/jlw/service/CourseLabelService.java
index 2cdfaaae..29004de6 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/CourseLabelService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/CourseLabelService.java
@@ -1,9 +1,14 @@
package com.ibeetl.jlw.service;
+import cn.hutool.core.lang.Assert;
+import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.util.PlatformException;
+import com.ibeetl.admin.core.web.JsonResult;
+import com.ibeetl.jlw.dao.CourseInfoDao;
import com.ibeetl.jlw.dao.CourseLabelDao;
+import com.ibeetl.jlw.entity.CourseInfo;
import com.ibeetl.jlw.entity.CourseLabel;
import com.ibeetl.jlw.web.query.CourseLabelQuery;
import org.apache.commons.collections4.CollectionUtils;
@@ -13,8 +18,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Arrays;
import java.util.List;
+import static com.ibeetl.jlw.enums.AddTypeEnum.ADMIN_ADD;
+
/**
* CourseLabel Service
@@ -27,6 +35,10 @@ public class CourseLabelService extends CoreBaseService {
@Autowired
private CourseLabelDao courseLabelDao;
+ @Autowired
+ private CourseInfoDao courseInfoDao;
+
+
public PageQuery queryByCondition(PageQuery query) {
PageQuery ret = courseLabelDao.queryByCondition(query);
queryListAfter(ret.getList());
@@ -66,4 +78,32 @@ public class CourseLabelService extends CoreBaseService {
List list = courseLabelDao.template(courseLabel);
return CollectionUtils.isEmpty(list) ? null : list.get(0);
}
+
+ public JsonResult delCourseLabelHandler(CourseLabel courseLabel, CoreUser coreUser) {
+ Assert.isTrue(coreUser.isUniAdmin() || coreUser.isAdmin(), "只允许学校管理员和超管访问该接口!");
+ CourseLabel cl = queryById(courseLabel.getCourseLabelId());
+ // 只有超管才能修改系统分配的数据
+ Assert.isFalse(ADMIN_ADD.equals(cl.getAddType()) && coreUser.isUniAdmin(), "用户无法修改系统分配的数据!");
+
+ CourseInfo courseInfo = new CourseInfo();
+ courseInfo.setCourseLabelId(courseLabel.getCourseLabelId());
+ courseInfo.setCourseInfoType(1);
+
+ long count = courseInfoDao.createLambdaQuery()
+ .andEq(CourseInfo::getCourseLabelId, courseLabel.getCourseLabelId())
+ .andEq(CourseInfo::getCourseInfoType, 1)
+ .andIn(CourseInfo::getCourseInfoStatus, Arrays.asList(1, 2))
+ .count();
+
+ if (count>0){
+ return JsonResult.failMessage("该标签下有课程,无法删除!");
+ }
+
+ boolean success = updateTemplate(courseLabel);
+ if (success) {
+ return JsonResult.success();
+ } else {
+ return JsonResult.failMessage("更新失败");
+ }
+ }
}
\ No newline at end of file
diff --git a/web/src/main/java/com/ibeetl/jlw/web/CourseLabelController.java b/web/src/main/java/com/ibeetl/jlw/web/CourseLabelController.java
index db29c67f..c63d5aca 100644
--- a/web/src/main/java/com/ibeetl/jlw/web/CourseLabelController.java
+++ b/web/src/main/java/com/ibeetl/jlw/web/CourseLabelController.java
@@ -125,17 +125,7 @@ public class CourseLabelController{
if(result.hasErrors()){
return JsonResult.failMessage(result);
}else {
- Assert.isTrue(coreUser.isUniAdmin() || coreUser.isAdmin(), "只允许学校管理员和超管访问该接口!");
- CourseLabel cl = courseLabelService.queryById(courseLabel.getCourseLabelId());
- // 只有超管才能修改系统分配的数据
- Assert.isFalse(ADMIN_ADD.equals(cl.getAddType()) && coreUser.isUniAdmin(), "用户无法修改系统分配的数据!");
-
- boolean success = courseLabelService.updateTemplate(courseLabel);
- if (success) {
- return JsonResult.success();
- } else {
- return JsonResult.failMessage("更新失败");
- }
+ return courseLabelService.delCourseLabelHandler(courseLabel,coreUser);
}
}
From 07b82433823fedafa4ac545d93b877e9e5c02999 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A7=9A=E4=B8=B9ab?= <1421553879@qq.com>
Date: Sat, 6 May 2023 03:36:41 +0800
Subject: [PATCH 4/7] =?UTF-8?q?=E6=8E=92=E8=AF=BE=E7=AE=A1=E7=90=86?=
=?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A1=B5=E9=9D=A2-=E5=B0=86=E8=AF=BE?=
=?UTF-8?q?=E7=A8=8B=E8=8A=82=E6=AC=A1=E7=9A=84table=E9=87=8C=E9=9D=A2?=
=?UTF-8?q?=E7=9A=84=E8=BE=93=E5=85=A5=E6=94=B9=E6=88=90input=EF=BC=8C?=
=?UTF-8?q?=E9=A1=BA=E4=BE=BF=E6=94=B9=E4=BA=86=E4=B8=AA=E5=8F=8D=E6=98=BE?=
=?UTF-8?q?=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../teacherOpenCourseScheduleSession/add.js | 109 +++++++++++++++---
.../initSetCourseScheduleCondition.js | 3 +-
.../jlw/teacher/statisticalReport.html | 6 +-
.../jlw/teacher/studentUsageLog.html | 6 +-
.../teacherOpenCourseScheduleSession/add.html | 7 +-
5 files changed, 103 insertions(+), 28 deletions(-)
diff --git a/web/src/main/resources/static/js/jlw/teacherOpenCourseScheduleSession/add.js b/web/src/main/resources/static/js/jlw/teacherOpenCourseScheduleSession/add.js
index f69b5193..ad39b2fd 100644
--- a/web/src/main/resources/static/js/jlw/teacherOpenCourseScheduleSession/add.js
+++ b/web/src/main/resources/static/js/jlw/teacherOpenCourseScheduleSession/add.js
@@ -11,6 +11,8 @@ layui.define(['form', 'laydate', 'table', 'xmSelect', 'teacherOpenCourseSchedule
window.classList = Common.postAjax('/jlw/teacherOpenCourseScheduleSessionClass/levelList.json').data;
var teacherOpenCourseScheduleSessionId = $("input[name='teacherOpenCourseScheduleSessionId']").val();//排课id
+
+
//?universitySystemId=TODO姚丹,这里要获取教师所在的专业ID
var classData = Common.getAjax('/jlw/schoolClass/getValues.json').data;//上课班级多选框data
@@ -57,12 +59,14 @@ layui.define(['form', 'laydate', 'table', 'xmSelect', 'teacherOpenCourseSchedule
item.teacherOpenCourseScheduleSessionClassId = '';
});
var kkJieciTableValue = $('#kkJieciTable').data('value');
+
if (!$.isEmpty(kkJieciTableValue)) {
if (Object.keys(kkJieciTableValue).length > 1) {
$("#moreRoom").attr('checked', 'true');
} else {
$("#oneRoom").attr('checked', 'true');
}
+ var teacherOpenCourseScheduleSessionClassIdValue='';
var data = Object.values(kkJieciTableValue);
kkJieciTableData.forEach(function (item, index) {
data.forEach(function (t, i) {
@@ -70,11 +74,15 @@ layui.define(['form', 'laydate', 'table', 'xmSelect', 'teacherOpenCourseSchedule
if (item.teacherOpenCourseScheduleSessionTagName == e.teacherOpenCourseScheduleSessionTagName) {
item.teacherOpenCourseScheduleSessionTagStartTime = e.teacherOpenCourseScheduleSessionTagStartTime;
item.teacherOpenCourseScheduleSessionTagEndTime = e.teacherOpenCourseScheduleSessionTagEndTime;
- item.teacherOpenCourseScheduleSessionClassId = Object.keys(kkJieciTableValue)[i]
+ item.teacherOpenCourseScheduleSessionClassId = Object.keys(kkJieciTableValue)[i];
item.LAY_CHECKED = true;
}
+ if(Object.keys(kkJieciTableValue).length == 1){
+ item.teacherOpenCourseScheduleSessionClassId = Object.keys(kkJieciTableValue)[0]
+ }
});
});
+
});
if (Object.keys(kkJieciTableValue).length === 0) {
merge(kkJieciTableData)
@@ -110,13 +118,15 @@ layui.define(['form', 'laydate', 'table', 'xmSelect', 'teacherOpenCourseSchedule
field: 'teacherOpenCourseScheduleSessionTagStartTime',
title: '开始时间',
align: "center",
- edit: 'text'
+ templet: StartTime,
+ event: "startTime"
},
{
field: 'teacherOpenCourseScheduleSessionTagEndTime',
title: '结束时间',
align: "center",
- edit: 'text'
+ templet: EndTime,
+ event: "endTime"
},
{
field: 'teacherOpenCourseScheduleSessionClassId',
@@ -163,6 +173,7 @@ layui.define(['form', 'laydate', 'table', 'xmSelect', 'teacherOpenCourseSchedule
}
};
+ /*教师关联班级下拉选项*/
form.on('select(select_teacherId)', function (obj) {
classData = Common.getAjax('/jlw/schoolClass/getValues.json', {teacherId: obj.value}).data;//上课班级多选框data
demo1.update({
@@ -221,7 +232,7 @@ layui.define(['form', 'laydate', 'table', 'xmSelect', 'teacherOpenCourseSchedule
offset: 'auto',
title: '设置时间',
shadeClose: 'true',
- area: ['700px', '260px'],
+ area: ['700px', '280px'],
scrollbar: 'false',
btnAlign: 'c',
content: $("#setTime_demo"),
@@ -310,16 +321,83 @@ layui.define(['form', 'laydate', 'table', 'xmSelect', 'teacherOpenCourseSchedule
});
});
+ /*表单编辑*/
+ function StartTime(obj) {
+ var teacherOpenCourseScheduleSessionTagStartTime = obj.teacherOpenCourseScheduleSessionTagStartTime;
+ var id = "startTime" + obj.LAY_INDEX;
+ return '';
+ }
+
+ function EndTime(obj) {
+ var teacherOpenCourseScheduleSessionTagEndTime = obj.teacherOpenCourseScheduleSessionTagEndTime;
+ var id = "endTime" + obj.LAY_INDEX;
+ return '';
+ }
+
/*表格编辑*/
- /*table.on('edit(kkJieciTable)', function (obj) { //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
- (obj.value); //得到修改后的值
- (obj.field); //当前编辑的字段名
- (obj.data); //所在行的所有相关数据
- (table.cache["kkJieciTable"])
- (kkJieciTableData)
- kkJieciTableData.forEach(function (item, index) {
- });
- });*/
+ table.on('tool(kkJieciTable)', function (obj) { //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
+ /* (obj.value); //得到修改后的值
+ (obj.field); //当前编辑的字段名
+ (obj.data); //所在行的所有相关数据
+ (table.cache["kkJieciTable"])
+ (kkJieciTableData)
+ kkJieciTableData.forEach(function (item, index) {
+ });*/
+ var data = obj.data;
+ var index = Number($(obj.tr[0]).attr('data-index'));
+ if (obj.event === 'startTime') {
+ var id = '#startTime' + (index + 1);
+ laydate.render({
+ elem: id
+ , type: 'time'
+ , trigger: 'click'
+ , format: 'HH:mm'
+ , done: function (value, date, endDate) {
+ kkJieciTableData[index].teacherOpenCourseScheduleSessionTagStartTime = value;
+ var endTime = data.teacherOpenCourseScheduleSessionTagEndTime;
+ var eHh = 0;
+ var eMm = 0;
+ if (!$.isEmpty(endTime)) {
+ eHh = Number(endTime.split(":")[0]);
+ eMm = Number(endTime.split(":")[1]);
+ }
+ var starDate = new Date(date.year, date.month, date.date, date.hours, date.minutes, 0); //开始时间
+ var endDate = new Date(date.year, date.month, date.date, eHh, eMm, 0); //结束时间
+ var resultDate = endDate.getTime() - starDate.getTime() //时间差的毫秒数
+ var minutes = Math.floor(resultDate / (60 * 1000));
+ kkJieciTableData[index].teacherOpenCourseScheduleSessionTagDuration = minutes;
+ table.reload('kkJieciTable', {data: kkJieciTableData});
+ }
+ });
+ } else if (obj.event == 'endTime') {
+ var id = '#endTime' + (index + 1);
+ laydate.render({
+ elem: id
+ , type: 'time'
+ , trigger: 'click'
+ , format: 'HH:mm'
+ , min: data.teacherOpenCourseScheduleSessionTagStartTime
+ , show: true
+ , done: function (value, date, endDate) {
+ kkJieciTableData[index].teacherOpenCourseScheduleSessionTagEndTime = value;
+ var starTime = data.teacherOpenCourseScheduleSessionTagStartTime;
+ var starHh = 0;
+ var starMm = 0;
+ if (!$.isEmpty(starTime)) {
+ starHh = Number(starTime.split(":")[0]);
+ starMm = Number(starTime.split(":")[1]);
+ }
+ var endDate = new Date(date.year, date.month, date.date, date.hours, date.minutes, 0); //开始时间
+ var starDate = new Date(date.year, date.month, date.date, starHh, starMm, 0); //结束时间
+ var resultDate = endDate.getTime() - starDate.getTime() //时间差的毫秒数
+ var minutes = Math.floor(resultDate / (60 * 1000));
+ kkJieciTableData[index].teacherOpenCourseScheduleSessionTagDuration = minutes;
+ table.reload('kkJieciTable', {data: kkJieciTableData});
+
+ }
+ });
+ }
+ });
/*课程时间增加*/
$("#add").click(function () {
@@ -392,7 +470,7 @@ layui.define(['form', 'laydate', 'table', 'xmSelect', 'teacherOpenCourseSchedule
$("#teacherId option[value='" + data.teacherId + "']").attr("selected", "selected");
var xmSeValue = data.schoolClassIds;
- if(!$.isEmpty(xmSeValue)){
+ if (!$.isEmpty(xmSeValue)) {
demo1.setValue(xmSeValue.split(","))//xmselect多选下拉 取值 回显
}
@@ -413,7 +491,7 @@ layui.define(['form', 'laydate', 'table', 'xmSelect', 'teacherOpenCourseSchedule
//课程来源:0:教师开课课程,1:授权课程
var courseType = $("#addForm select[name='teacherOpenCourseId']").find("option:selected").attr("status");
var teacherOpenCourseId = $("#addForm select[name='teacherOpenCourseId']").val();
- if(!$.isEmpty(teacherOpenCourseId_default)){
+ if (!$.isEmpty(teacherOpenCourseId_default)) {
teacherOpenCourseId = teacherOpenCourseId_default;
courseType = '0';
}
@@ -493,7 +571,6 @@ layui.define(['form', 'laydate', 'table', 'xmSelect', 'teacherOpenCourseSchedule
return;
}
-
var param = {
scheduleSessionTitle: scheduleSessionTitle,
teacherOpenCourseScheduleSessionId: teacherOpenCourseScheduleSessionId,
diff --git a/web/src/main/resources/static/js/jlw/teacherOpenCourseScheduleSessionTag/initSetCourseScheduleCondition.js b/web/src/main/resources/static/js/jlw/teacherOpenCourseScheduleSessionTag/initSetCourseScheduleCondition.js
index d3252a64..c8a191e1 100644
--- a/web/src/main/resources/static/js/jlw/teacherOpenCourseScheduleSessionTag/initSetCourseScheduleCondition.js
+++ b/web/src/main/resources/static/js/jlw/teacherOpenCourseScheduleSessionTag/initSetCourseScheduleCondition.js
@@ -286,8 +286,7 @@ layui.define(['laydate', 'layer', 'form', 'table', 'treetable', 'element'], func
submitTag(teacherOpenCourseScheduleSessionTagId, data);//修改课次
}
});
- }
- if (obj.event == 'endTime') {
+ }else if (obj.event == 'endTime') {
var id = '#endTime' + (Number($(obj.tr[0]).attr('data-index')) + 1);
laydate.render({
elem: id
diff --git a/web/src/main/resources/templates/jlw/teacher/statisticalReport.html b/web/src/main/resources/templates/jlw/teacher/statisticalReport.html
index 5e46376e..17916f2a 100644
--- a/web/src/main/resources/templates/jlw/teacher/statisticalReport.html
+++ b/web/src/main/resources/templates/jlw/teacher/statisticalReport.html
@@ -169,7 +169,7 @@
hide: "${isSignRole.get()!''}" != 2 ? false : true,
},
{
- field: 'loginCount', title: '登录人数', align: "center"
+ field: 'loginCount', title: '登录人次', align: "center"
},
{
field: 'onLineCount', title: '实时在线人数', align: "center"
@@ -196,10 +196,10 @@
type: 'numbers', title: '序号', align: "center",
},
{
- field: 'secondName', title: '子系统名称', align: "center",
+ field: 'secondName', title: '子系统名称', align: "center",hide:'false'
},
{
- field: 'firstName', title: '归属模块', align: "center",
+ field: 'firstName', title: '模块名称', align: "center",
},
{
field: 'universitiesCollegesName', title: '使用院校', align: "center",
diff --git a/web/src/main/resources/templates/jlw/teacher/studentUsageLog.html b/web/src/main/resources/templates/jlw/teacher/studentUsageLog.html
index d18c4d11..fe84057b 100644
--- a/web/src/main/resources/templates/jlw/teacher/studentUsageLog.html
+++ b/web/src/main/resources/templates/jlw/teacher/studentUsageLog.html
@@ -135,13 +135,13 @@
hide: "${isSignRole.get()!''}" != 2 ? true: false
},
{
- field: 'platform', title: '使用子系统名称', align: "center",
+ field: 'platform', title: '使用模块名称', align: "center",
},
{
- field: 'loginTime', title: '登入子系统时间', align: "center",
+ field: 'loginTime', title: '登入时间', align: "center",
},
{
- field: 'logoutTime', title: '登出子系统时间', align: "center",
+ field: 'logoutTime', title: '登出时间', align: "center",
},
{
field: 'onlineDuration', title: '使用时长', align: "center",
diff --git a/web/src/main/resources/templates/jlw/teacherOpenCourseScheduleSession/add.html b/web/src/main/resources/templates/jlw/teacherOpenCourseScheduleSession/add.html
index fea1f84e..977a6f4b 100644
--- a/web/src/main/resources/templates/jlw/teacherOpenCourseScheduleSession/add.html
+++ b/web/src/main/resources/templates/jlw/teacherOpenCourseScheduleSession/add.html
@@ -238,10 +238,9 @@
{{# layui.each(window.classList, function(index, item){ }}
{{# layui.each(item.children, function(i, e){ }}
-
+
{{# }); }}
{{# }); }}
From 8dde08da8a0ea39b59ecf0ba0b4037c7b41c48f0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A7=9A=E4=B8=B9ab?= <1421553879@qq.com>
Date: Sat, 6 May 2023 16:06:45 +0800
Subject: [PATCH 5/7] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=88=86=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
web/src/main/resources/templates/jlw/courseLabel/index.html | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/web/src/main/resources/templates/jlw/courseLabel/index.html b/web/src/main/resources/templates/jlw/courseLabel/index.html
index 494851a2..ab8c61c8 100644
--- a/web/src/main/resources/templates/jlw/courseLabel/index.html
+++ b/web/src/main/resources/templates/jlw/courseLabel/index.html
@@ -255,6 +255,7 @@
//删除相应的分类
function classDel() {
var this_ = $(this);
+ var value = $(this).val();
layer.confirm('是否确定删除该分类?', function (index) {
var ret = Common.postAjax("/jlw/courseLabel/edit.json", {
courseLabelId: this_.parents(".layui-form-item").attr("courseLabelId"),
@@ -267,10 +268,11 @@
}, function () {
if (ret.code == 0) {
this_.parent().prev().text(value);
+ this_.parents(".layui-form-item").remove();
layer.close(index);
}
});
- this_.parents(".layui-form-item").remove();
+
layer.close(index);
});
}
From 218b477b311ec5ff196a602f3efcad18f8530f29 Mon Sep 17 00:00:00 2001
From: yaodan <1421553879@qq.com>
Date: Tue, 9 May 2023 23:21:05 +0800
Subject: [PATCH 6/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B7=B2=E8=AF=BB?=
=?UTF-8?q?=E6=93=8D=E4=BD=9C=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../TeacherOpenCourseChatLogService.java | 182 +++++++++++++-----
.../TeacherOpenCourseChatLogController.java | 19 +-
.../sql/jlw/teacherOpenCourseChatLog.md | 14 +-
3 files changed, 160 insertions(+), 55 deletions(-)
diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseChatLogService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseChatLogService.java
index 3f68e416..9caf12e6 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseChatLogService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseChatLogService.java
@@ -1,6 +1,7 @@
package com.ibeetl.jlw.service;
import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
@@ -38,6 +39,8 @@ import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
@@ -49,9 +52,10 @@ import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
@Service
@Transactional
@Slf4j
-public class TeacherOpenCourseChatLogService extends CoreBaseService implements DeleteResourcesBy{
+public class TeacherOpenCourseChatLogService extends CoreBaseService implements DeleteResourcesBy {
- @Autowired private TeacherOpenCourseChatLogDao teacherOpenCourseChatLogDao;
+ @Autowired
+ private TeacherOpenCourseChatLogDao teacherOpenCourseChatLogDao;
@Autowired
private TeacherDao teacherDao;
@Autowired
@@ -59,8 +63,8 @@ public class TeacherOpenCourseChatLogService extends CoreBaseServicequeryByCondition(PageQuery query){
- PageQuery ret = teacherOpenCourseChatLogDao.queryByCondition(query);
+ public PageQuery queryByCondition(PageQuery query) {
+ PageQuery ret = teacherOpenCourseChatLogDao.queryByCondition(query);
CollectionUtil.emptyIfNull(ret.getList()).forEach(item -> {
String headImg = webPlatformService.getHeadImgByIdentity(item.getUserId());
item.set("headImg", headImg);
@@ -68,8 +72,9 @@ public class TeacherOpenCourseChatLogService extends CoreBaseService queryByCondition(PageQuery query, Boolean placeholder){
- PageQuery ret = teacherOpenCourseChatLogDao.queryByCondition2(query);
+
+ public PageQuery queryByCondition(PageQuery query, Boolean placeholder) {
+ PageQuery ret = teacherOpenCourseChatLogDao.queryByCondition2(query);
CollectionUtil.emptyIfNull(ret.getList()).forEach(item -> {
String headImg = webPlatformService.getHeadImgByIdentity(item.getUserId());
item.set("headImg", headImg);
@@ -78,8 +83,8 @@ public class TeacherOpenCourseChatLogService extends CoreBaseServicequeryByConditionQuery(PageQuery query){
- PageQuery ret = teacherOpenCourseChatLogDao.queryByConditionQuery(query);
+ public PageQuery queryByConditionQuery(PageQuery query) {
+ PageQuery ret = teacherOpenCourseChatLogDao.queryByConditionQuery(query);
CollectionUtil.emptyIfNull(ret.getList()).forEach(item -> {
String headImg = webPlatformService.getHeadImgByIdentity(item.getUserId());
item.set("headImg", headImg);
@@ -88,18 +93,106 @@ public class TeacherOpenCourseChatLogService extends CoreBaseService queryByConditionQueryWithChangStatus(TeacherOpenCourseChatLogQuery query) {
+ PageQuery ret = teacherOpenCourseChatLogDao.queryByConditionQuery(query.getPageQuery());
+
+ if (CollUtil.isNotEmpty(ret.getList())) {
+ CoreUser user = getUser();
+ Object bean = null;
+ // 学生或者教师身份才能看到真正的数字
+ if (user != null && user.isTeacher()) {
+ Teacher teacher = teacherDao.getByUserId(user.getId());
+ if (teacher != null) {
+ bean = teacher;
+ }
+ } else if (user != null && user.isStudent()) {
+ Student student = studentDao.getByUserId(user.getId());
+ if (student != null) {
+ bean = student;
+ }
+ }
+ //remark /api/teacherOpenCourseChatLog/setScore.do 也有标记已读的逻辑
+ if (bean != null) {
+ switch (query.getChatLogSendType()==null?ChatLogSendTypeEnum.normal:query.getChatLogSendType()) {
+ case normal:
+ if (query.getTeacherOpenCourseChatLogParentId()!=null){
+ if (bean instanceof Student){
+ List idList = ret.getList().stream().filter(e->Objects.equals(e.getStudentReadStatus(),0)).map(TeacherOpenCourseChatLog::getTeacherOpenCourseChatLogId).collect(Collectors.toList());
+ readChatLogByIds(idList,1);
+ }
+ }
+ break;
+ case student_ask:
+ if (bean instanceof Teacher) {
+ List idList = ret.getList().stream().filter(e->Objects.equals(e.getTeacherReadStatus(),0)).map(TeacherOpenCourseChatLog::getTeacherOpenCourseChatLogId).collect(Collectors.toList());
+ readChatLogByIds(idList,2);
+ }
+ break;
+ case specify_ask:
+ case random_ask:
+ //if (bean instanceof Student) {
+ // List idList = ret.getList().stream().filter(e->Objects.equals(e.getStudentReadStatus(),0)).map(TeacherOpenCourseChatLog::getTeacherOpenCourseChatLogId).collect(Collectors.toList());
+ // readChatLogByIds(idList,1);
+ //}
+ break;
+
+ default:
+
+ break;
+
+ }
+
+ }
+
+ }
+
+ CollectionUtil.emptyIfNull(ret.getList()).forEach(item -> {
+ String headImg = webPlatformService.getHeadImgByIdentity(item.getUserId());
+ item.set("headImg", headImg);
+ });
+ queryListAfter(ret.getList());
+ return ret;
+ }
+
+
+ /**
+ * 标记消息为已读
+ *
+ * @param ids id
+ * @param type 类型 1学生 2教师
+ * @author zhouzhao
+ * @date 2023/05/09 10:38:44
+ */
+ public void readChatLogByIds(List ids,int type) {
+ if (CollUtil.isEmpty(ids)) {
+ return;
+ }
+ for (Long id : ids) {
+ TeacherOpenCourseChatLog teacherOpenCourseChatLog = teacherOpenCourseChatLogDao.unique(id);
+ if (teacherOpenCourseChatLog != null) {
+ if (type==1) {
+ teacherOpenCourseChatLog.setStudentReadStatus(1);
+ }else {
+ teacherOpenCourseChatLog.setTeacherReadStatus(1);
+ }
+ teacherOpenCourseChatLog.setTeacherReadStatus(1);
+ teacherOpenCourseChatLogDao.updateById(teacherOpenCourseChatLog);
+ }
+ }
+ }
+
+ public void deleteByList(List list) {
String ids = "";
ToolUtils.deleteNullList(list);
- for(int i=0;null != list && i teacherOpenCourseChatLogList = new ArrayList<>();
try {
@@ -115,11 +208,12 @@ public class TeacherOpenCourseChatLogService extends CoreBaseService0){
- for(int i=0;i 0) {
+ for (int i = 0; i < teacherOpenCourseChatLogList.size(); i++) {
TeacherOpenCourseChatLog teacherOpenCourseChatLog = teacherOpenCourseChatLogList.get(i);
teacherOpenCourseChatLog.setTeacherOpenCourseChatLogAddTime(new Date());
teacherOpenCourseChatLog.setUserId(teacherOpenCourseChatLogQuery.getUserId());
@@ -130,7 +224,7 @@ public class TeacherOpenCourseChatLogService extends CoreBaseService 0;
- if(!flag){
+ if (!flag) {
msg = "更新指定参数失败";
}
- }else{
+ } else {
msg = "指定参数为空";
}
return msg;
}
- public List getValues (Object paras){
+ public List getValues(Object paras) {
return sqlManager.select(SqlId.of("jlw.teacherOpenCourseChatLog.getTeacherOpenCourseChatLogValues"), TeacherOpenCourseChatLog.class, paras);
}
- public List getValuesByQuery (TeacherOpenCourseChatLogQuery teacherOpenCourseChatLogQuery){
+ public List getValuesByQuery(TeacherOpenCourseChatLogQuery teacherOpenCourseChatLogQuery) {
return teacherOpenCourseChatLogDao.getValuesByQuery(teacherOpenCourseChatLogQuery);
}
- public TeacherOpenCourseChatLog getInfo (Long teacherOpenCourseChatLogId){
+ public TeacherOpenCourseChatLog getInfo(Long teacherOpenCourseChatLogId) {
TeacherOpenCourseChatLogQuery teacherOpenCourseChatLogQuery = new TeacherOpenCourseChatLogQuery();
teacherOpenCourseChatLogQuery.setTeacherOpenCourseChatLogId(teacherOpenCourseChatLogId);
teacherOpenCourseChatLogQuery.setTeacherOpenCourseChatLogStatusPlural("1,2");//需要根据实际情况来
List list = teacherOpenCourseChatLogDao.getValuesByQuery(teacherOpenCourseChatLogQuery);
- if(null != list && list.size()>0){
+ if (null != list && list.size() > 0) {
return list.get(0);
- }else{
+ } else {
return null;
}
}
- public TeacherOpenCourseChatLog getInfo (TeacherOpenCourseChatLogQuery teacherOpenCourseChatLogQuery){
+ public TeacherOpenCourseChatLog getInfo(TeacherOpenCourseChatLogQuery teacherOpenCourseChatLogQuery) {
List list = teacherOpenCourseChatLogDao.getValuesByQuery(teacherOpenCourseChatLogQuery);
- if(null != list && list.size()>0){
+ if (null != list && list.size() > 0) {
return list.get(0);
- }else{
+ } else {
return null;
}
}
@@ -279,7 +374,7 @@ public class TeacherOpenCourseChatLogService extends CoreBaseService
* 讨论日志-分析
*
- * @param teacherOpenCourseId 开课ID
+ * @param teacherOpenCourseId 开课ID
* @return {@link TeacherOpenCourseChatLogAnalysis}
* @Author: lx
* @Date: 2022/12/12 23:14
@@ -292,7 +387,7 @@ public class TeacherOpenCourseChatLogService extends CoreBaseService
* 评论添加的类型,分组汇总
*
- * @param teacherOpenCourseId 开课ID
+ * @param teacherOpenCourseId 开课ID
* @return {@link List< TeacherOpenCourseChatLogGroupInfoVO>}
* @Author: lx
* @Date: 2022/12/12 23:14
@@ -303,6 +398,7 @@ public class TeacherOpenCourseChatLogService extends CoreBaseService values = teacherOpenCourseChatLogService.getValues(teacherOpenCourseChatLog);
+ if (CollUtil.isNotEmpty(values)){
+ List idList = values.stream().filter(e-> Objects.equals(e.getTeacherReadStatus(),0)).map(TeacherOpenCourseChatLog::getTeacherOpenCourseChatLogId).collect(Collectors.toList());
+ teacherOpenCourseChatLogService.readChatLogByIds(idList,2);
+ }
return JsonResult.success();
} else {
return JsonResult.failMessage("更新失败," + msg);
diff --git a/web/src/main/resources/sql/jlw/teacherOpenCourseChatLog.md b/web/src/main/resources/sql/jlw/teacherOpenCourseChatLog.md
index 1844323e..41cfba5c 100644
--- a/web/src/main/resources/sql/jlw/teacherOpenCourseChatLog.md
+++ b/web/src/main/resources/sql/jlw/teacherOpenCourseChatLog.md
@@ -698,10 +698,10 @@ getTeacherAskUnReadCountByTeacher
===
* 获取老师提问模块未读数量,对于老师来说
SELECT IFNULL(sum(
- (select count(*)
+ IF((select count(*)
from teacher_open_course_chat_log t2
where t2.teacher_open_course_chat_log_parent_id = t.teacher_open_course_chat_log_id
- and t2.teacher_read_status = 0)
+ and t2.teacher_read_status = 0)>0,1,0)
),0)
FROM teacher_open_course_chat_log t
WHERE 1
@@ -727,8 +727,8 @@ getTeacherAskUnReadCountByStudent
SELECT 1
FROM teacher_open_course_chat_log ta
WHERE 1
- and t.student_id = #studentId#
- AND t.teacher_open_course_id = #teacherOpenCourseId#
+ and ta.student_id = #studentId#
+ AND ta.teacher_open_course_id = #teacherOpenCourseId#
AND ta.teacher_open_course_chat_log_parent_id = t.teacher_open_course_chat_log_id
)
@@ -746,8 +746,8 @@ getStudentAskUnReadCountByTeacher
SELECT 1
FROM teacher_open_course_chat_log ta
WHERE 1
- and t.teacher_id = #teacherId#
- AND t.teacher_open_course_id = #teacherOpenCourseId#
+ and ta.teacher_id = #teacherId#
+ AND ta.teacher_open_course_id = #teacherOpenCourseId#
AND ta.teacher_open_course_chat_log_parent_id = t.teacher_open_course_chat_log_id
)
@@ -760,7 +760,7 @@ getStudentAskUnReadCountByStudent
(select count(*)
from teacher_open_course_chat_log t2
where t2.teacher_open_course_chat_log_parent_id = t.teacher_open_course_chat_log_id
- and t2.teacher_read_status = 0)
+ and t2.student_read_status = 0)
),0)
FROM teacher_open_course_chat_log t
WHERE 1
From 6993a027758ce8f77d2aa0e57a3ab025f421e6ac Mon Sep 17 00:00:00 2001
From: yangdj <18302547071@163>
Date: Wed, 10 May 2023 16:40:10 +0800
Subject: [PATCH 7/7] =?UTF-8?q?=E5=AF=BC=E8=88=AA=E6=A0=8F=E5=8F=8A?=
=?UTF-8?q?=E7=99=BB=E5=BD=95=E9=A1=B5=E7=9A=84=E9=93=BE=E6=8E=A5=E6=8E=92?=
=?UTF-8?q?=E5=BA=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
web/src/main/resources/sql/jlw/studentClientLink.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/src/main/resources/sql/jlw/studentClientLink.md b/web/src/main/resources/sql/jlw/studentClientLink.md
index 1e470072..434edf69 100644
--- a/web/src/main/resources/sql/jlw/studentClientLink.md
+++ b/web/src/main/resources/sql/jlw/studentClientLink.md
@@ -385,6 +385,6 @@ getValuesByQueryNotWithPermission
@if(!isEmpty(orgIdPlural)){
and find_in_set(t.org_id,#orgIdPlural#)
@}
-
+ order by t.student_client_link_order asc