From 985cc16eca6a3a07b6f419e1c867a996b1a64d84 Mon Sep 17 00:00:00 2001 From: firefly <1633489380@qq.com> Date: Thu, 21 Aug 2025 11:34:30 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=90=E5=88=B6=E4=BA=86=E7=BB=99=E8=BE=85?= =?UTF-8?q?=E5=AF=BC=E5=91=98=E5=8F=91=E9=80=81=E5=BF=83=E7=90=86=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E7=9A=84=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/WeChatMentalAlertController.java | 15 +++++++++++++++ .../system/mapper/StudentMentalRatingMapper.java | 9 +++++++++ .../mapper/system/StudentMentalRatingMapper.xml | 8 ++++++++ 3 files changed, 32 insertions(+) diff --git a/srs-admin/src/main/java/com/srs/web/controller/common/WeChatMentalAlertController.java b/srs-admin/src/main/java/com/srs/web/controller/common/WeChatMentalAlertController.java index 9aa2976..f7e6e35 100644 --- a/srs-admin/src/main/java/com/srs/web/controller/common/WeChatMentalAlertController.java +++ b/srs-admin/src/main/java/com/srs/web/controller/common/WeChatMentalAlertController.java @@ -18,6 +18,7 @@ import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.time.LocalDate; /** * Dify心理问题发送企业微信 知无涯 @@ -51,18 +52,32 @@ public class WeChatMentalAlertController extends BaseController { return AjaxResult.error("Token无效或已过期"); } + String studentId = request.getUserId(); + // 查询辅导员信息 SysUser teacher = sysUserMapper.selectTeacherByStuNo(request.getUserId()); if (teacher == null || !StringUtils.hasText(teacher.getUserName())) { log.error("辅导员信息不完整,学号: {}", request.getUserId()); return AjaxResult.error("未分配辅导员或信息不完整"); } + + // 获取今天日期 + LocalDate today = LocalDate.now(); + + // 查询该学生今天已触发的心理预警次数 + int todayCount = studentMentalRatingMapper.countTodayByStudentId(studentId, today); + /* 保存学生心理问题评级 */ StudentMentalRating record = new StudentMentalRating(); record.setStudentId(request.getUserId()); record.setRating(request.getRating()); studentMentalRatingMapper.insert(record); + // === 判断是否超过当日发送上限(3次)=== 陈冠元 + if (todayCount > 3) { + return AjaxResult.success("预警已记录,因当日已达上限未发送通知"); + } + // 构建并发送消息 try { String content = buildContent(request, teacher); diff --git a/srs-system/src/main/java/com/srs/system/mapper/StudentMentalRatingMapper.java b/srs-system/src/main/java/com/srs/system/mapper/StudentMentalRatingMapper.java index bcc0f32..df1bd6f 100644 --- a/srs-system/src/main/java/com/srs/system/mapper/StudentMentalRatingMapper.java +++ b/srs-system/src/main/java/com/srs/system/mapper/StudentMentalRatingMapper.java @@ -3,6 +3,7 @@ package com.srs.system.mapper; import com.srs.system.domain.StudentMentalRating; import org.apache.ibatis.annotations.Param; +import java.time.LocalDate; import java.util.List; public interface StudentMentalRatingMapper { @@ -28,5 +29,13 @@ public interface StudentMentalRatingMapper { /** 单学号全部记录 */ List selectByStuNo(@Param("stuNo") String stuNo); + /** + * 查询今天的心理评级记录 陈冠元 + * @param studentId 学生ID + * @param today 今天的日期 + * @return 记录数 + */ + int countTodayByStudentId(@Param("studentId") String studentId, @Param("today") LocalDate today); + } diff --git a/srs-system/src/main/resources/mapper/system/StudentMentalRatingMapper.xml b/srs-system/src/main/resources/mapper/system/StudentMentalRatingMapper.xml index 88cd1e5..fa7ff54 100644 --- a/srs-system/src/main/resources/mapper/system/StudentMentalRatingMapper.xml +++ b/srs-system/src/main/resources/mapper/system/StudentMentalRatingMapper.xml @@ -43,4 +43,12 @@ WHERE student_id = #{stuNo} ORDER BY created_time DESC + + + \ No newline at end of file