互动未读数

beetlsql3-dev
Mlxa0324 2 years ago
parent 00c109698e
commit e24fa32417

@ -2,6 +2,7 @@ package com.ibeetl.jlw.dao;
import com.ibeetl.jlw.entity.TeacherOpenCourseChatLog; import com.ibeetl.jlw.entity.TeacherOpenCourseChatLog;
import com.ibeetl.jlw.entity.TeacherOpenCourseChatLogAnalysis; import com.ibeetl.jlw.entity.TeacherOpenCourseChatLogAnalysis;
import com.ibeetl.jlw.entity.dto.ChatLogUnReadNumDTO;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseChatLogGroupInfoVO; import com.ibeetl.jlw.entity.vo.TeacherOpenCourseChatLogGroupInfoVO;
import com.ibeetl.jlw.web.query.TeacherOpenCourseChatLogQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseChatLogQuery;
import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.core.engine.PageQuery;
@ -44,4 +45,11 @@ public interface TeacherOpenCourseChatLogDao extends BaseMapper<TeacherOpenCours
* @return * @return
*/ */
List<TeacherOpenCourseChatLogGroupInfoVO> groupInfo(Long teacherOpenCourseId); List<TeacherOpenCourseChatLogGroupInfoVO> groupInfo(Long teacherOpenCourseId);
/**
*
* @param dto
* @return
*/
int getUnReadNum(ChatLogUnReadNumDTO dto);
} }

@ -0,0 +1,29 @@
package com.ibeetl.jlw.entity.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* : <br>
*
* @author: mlx
* @description:
* @date: 2023/1/14 21:24
* @version: 1.0
*/
@Data
public class ChatLogUnReadNumDTO {
@NotBlank(message = "开课ID不能为空")
private Long teacherOpenCourseId;
/**
* ID
*/
private Long studentId;
/**
* ID
*/
private Long teacherId;
}

@ -7,13 +7,19 @@ import cn.hutool.json.JSONUtil;
import cn.jlw.util.ToolUtils; import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.CoreBaseService; import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.admin.core.web.JsonReturnCode; import com.ibeetl.admin.core.web.JsonReturnCode;
import com.ibeetl.jlw.dao.StudentDao;
import com.ibeetl.jlw.dao.TeacherDao;
import com.ibeetl.jlw.dao.TeacherOpenCourseChatLogDao; import com.ibeetl.jlw.dao.TeacherOpenCourseChatLogDao;
import com.ibeetl.jlw.entity.Student;
import com.ibeetl.jlw.entity.Teacher;
import com.ibeetl.jlw.entity.TeacherOpenCourseChatLog; import com.ibeetl.jlw.entity.TeacherOpenCourseChatLog;
import com.ibeetl.jlw.entity.TeacherOpenCourseChatLogAnalysis; import com.ibeetl.jlw.entity.TeacherOpenCourseChatLogAnalysis;
import com.ibeetl.jlw.entity.dto.ChatLogUnReadNumDTO;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseChatLogGroupInfoVO; import com.ibeetl.jlw.entity.vo.TeacherOpenCourseChatLogGroupInfoVO;
import com.ibeetl.jlw.web.query.TeacherOpenCourseChatLogQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseChatLogQuery;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -23,12 +29,15 @@ import org.beetl.sql.core.engine.PageQuery;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
/** /**
* Service * Service
* ID使insert(*,true) * ID使insert(*,true)
@ -40,6 +49,10 @@ import java.util.List;
public class TeacherOpenCourseChatLogService extends CoreBaseService<TeacherOpenCourseChatLog> implements DeleteResourcesBy{ public class TeacherOpenCourseChatLogService extends CoreBaseService<TeacherOpenCourseChatLog> implements DeleteResourcesBy{
@Autowired private TeacherOpenCourseChatLogDao teacherOpenCourseChatLogDao; @Autowired private TeacherOpenCourseChatLogDao teacherOpenCourseChatLogDao;
@Autowired
private TeacherDao teacherDao;
@Autowired
private StudentDao studentDao;
public PageQuery<TeacherOpenCourseChatLog>queryByCondition(PageQuery query){ public PageQuery<TeacherOpenCourseChatLog>queryByCondition(PageQuery query){
PageQuery ret = teacherOpenCourseChatLogDao.queryByCondition(query); PageQuery ret = teacherOpenCourseChatLogDao.queryByCondition(query);
@ -216,4 +229,28 @@ public class TeacherOpenCourseChatLogService extends CoreBaseService<TeacherOpen
public List<TeacherOpenCourseChatLogGroupInfoVO> groupInfo(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId) { public List<TeacherOpenCourseChatLogGroupInfoVO> groupInfo(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId) {
return teacherOpenCourseChatLogDao.groupInfo(teacherOpenCourseId); return teacherOpenCourseChatLogDao.groupInfo(teacherOpenCourseId);
} }
/**
*
* @param dto
* @return
*/
public Integer getUnReadNum(@Validated ChatLogUnReadNumDTO dto) {
CoreUser user = getUser();
// 学生或者教师身份才能看到真正的数字
if (user != null && user.isTeacher()) {
Teacher teacher = teacherDao.getByUserId(user.getId());
if (teacher != null) {
dto.setTeacherId(teacher.getTeacherId());
}
}
if (user != null && user.isStudent()) {
Student student = studentDao.getByUserId(user.getId());
if (student != null) {
dto.setStudentId(student.getStudentId());
}
}
return teacherOpenCourseChatLogDao.getUnReadNum(dto);
}
} }

@ -18,6 +18,7 @@ import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.entity.Student; import com.ibeetl.jlw.entity.Student;
import com.ibeetl.jlw.entity.Teacher; import com.ibeetl.jlw.entity.Teacher;
import com.ibeetl.jlw.entity.TeacherOpenCourseChatLog; import com.ibeetl.jlw.entity.TeacherOpenCourseChatLog;
import com.ibeetl.jlw.entity.dto.ChatLogUnReadNumDTO;
import com.ibeetl.jlw.entity.dto.TeacherOpenCourseChatLogStudentDTO; import com.ibeetl.jlw.entity.dto.TeacherOpenCourseChatLogStudentDTO;
import com.ibeetl.jlw.entity.dto.TeacherOpenCourseChatLogTeacherDTO; import com.ibeetl.jlw.entity.dto.TeacherOpenCourseChatLogTeacherDTO;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseChatLogGroupInfoVO; import com.ibeetl.jlw.entity.vo.TeacherOpenCourseChatLogGroupInfoVO;
@ -497,4 +498,19 @@ public class TeacherOpenCourseChatLogController extends BaseController {
String filename = StrUtil.format("讨论分组-汇总数据导出{}.xlsx", DateUtil.now()); String filename = StrUtil.format("讨论分组-汇总数据导出{}.xlsx", DateUtil.now());
write(response, filename,"Sheet1", TeacherOpenCourseChatLogGroupInfoVO.class, list); write(response, filename,"Sheet1", TeacherOpenCourseChatLogGroupInfoVO.class, list);
} }
/**
*
*
* @param teacherOpenCourseId ID
* @param coreUser
* @return
*/
@SneakyThrows
@GetMapping(API + "/getUnReadNum.do")
public JsonResult getUnReadNum(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId, @SCoreUser CoreUser coreUser) {
ChatLogUnReadNumDTO dto = new ChatLogUnReadNumDTO();
dto.setTeacherOpenCourseId(teacherOpenCourseId);
return JsonResult.success(teacherOpenCourseChatLogService.getUnReadNum(dto));
}
} }

@ -587,3 +587,41 @@ groupInfo
and t.chat_log_send_type is not null and t.chat_log_send_type is not null
and t.teacher_open_course_id = #teacherOpenCourseId# and t.teacher_open_course_id = #teacherOpenCourseId#
group by t.chat_log_send_type group by t.chat_log_send_type
getUnReadNum
===
* 获取没有回复的消息
SELECT
count( 1 )
FROM
teacher_open_course_chat_log t
WHERE
1
@if(isNotEmpty(teacherOpenCourseId)) {
AND t.teacher_open_course_id = #teacherOpenCourseId#
@}
@if(isNotEmpty(studentId)) {
AND t.student_id = #studentId#
@}
@if(isNotEmpty(teacherId)) {
AND t.teacher_id = #teacherId#
@}
AND NOT EXISTS (
SELECT
1
FROM
teacher_open_course_chat_log ta
WHERE
1
@if(isNotEmpty(studentId)) {
AND t.student_id = #studentId#
@}
@if(isNotEmpty(teacherId)) {
AND t.teacher_id = #teacherId#
@}
@if(isNotEmpty(teacherOpenCourseId)) {
AND t.teacher_open_course_id = #teacherOpenCourseId#
@}
AND ta.teacher_open_course_chat_log_parent_id = teacher_open_course_chat_log_id
)
Loading…
Cancel
Save