互动未读数

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.TeacherOpenCourseChatLogAnalysis;
import com.ibeetl.jlw.entity.dto.ChatLogUnReadNumDTO;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseChatLogGroupInfoVO;
import com.ibeetl.jlw.web.query.TeacherOpenCourseChatLogQuery;
import org.beetl.sql.core.engine.PageQuery;
@ -44,4 +45,11 @@ public interface TeacherOpenCourseChatLogDao extends BaseMapper<TeacherOpenCours
* @return
*/
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 com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
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.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.entity.Student;
import com.ibeetl.jlw.entity.Teacher;
import com.ibeetl.jlw.entity.TeacherOpenCourseChatLog;
import com.ibeetl.jlw.entity.TeacherOpenCourseChatLogAnalysis;
import com.ibeetl.jlw.entity.dto.ChatLogUnReadNumDTO;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseChatLogGroupInfoVO;
import com.ibeetl.jlw.web.query.TeacherOpenCourseChatLogQuery;
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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
/**
* Service
* ID使insert(*,true)
@ -40,6 +49,10 @@ import java.util.List;
public class TeacherOpenCourseChatLogService extends CoreBaseService<TeacherOpenCourseChatLog> implements DeleteResourcesBy{
@Autowired private TeacherOpenCourseChatLogDao teacherOpenCourseChatLogDao;
@Autowired
private TeacherDao teacherDao;
@Autowired
private StudentDao studentDao;
public PageQuery<TeacherOpenCourseChatLog>queryByCondition(PageQuery 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) {
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.Teacher;
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.TeacherOpenCourseChatLogTeacherDTO;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseChatLogGroupInfoVO;
@ -497,4 +498,19 @@ public class TeacherOpenCourseChatLogController extends BaseController {
String filename = StrUtil.format("讨论分组-汇总数据导出{}.xlsx", DateUtil.now());
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.teacher_open_course_id = #teacherOpenCourseId#
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