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