From 8f00d07377a009c31afed7a055ab965292065b7b Mon Sep 17 00:00:00 2001 From: wanghao Date: Mon, 30 Mar 2026 14:54:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=81=A5=E5=BA=B7=E5=92=A8=E8=AF=A2):=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=9F=B3=E8=A7=86=E9=A2=91=E5=92=A8=E8=AF=A2?= =?UTF-8?q?=E8=B6=85=E6=97=B6=E5=85=B3=E9=97=AD=E5=8A=9F=E8=83=BD=E5=8F=8A?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 endVideoSession 接口,供手动触发和定时任务调用 - Mapper 层添加 UPDATE SQL:预约日期已过的视频咨询,有通话记录改为待评价(4),无记录改为取消(6) - SyncScheduleJob 新增 XXL-Job 任务 endVideoSession,每日自动处理过期视频咨询 Co-Authored-By: Claude Sonnet 4.6 --- .../api/controller/ConSessionApiController.java | 6 ++++++ .../api/service/ConSessionApiService.java | 2 ++ .../api/service/impl/ConSessionApiServiceImpl.java | 4 ++++ .../consultation/mapper/ConSessionMapper.java | 9 +++++++++ .../renkang/consultation/task/SyncScheduleJob.java | 13 +++++++++++-- 5 files changed, 32 insertions(+), 2 deletions(-) diff --git a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/controller/ConSessionApiController.java b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/controller/ConSessionApiController.java index be1e301..3ae5e2a 100644 --- a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/controller/ConSessionApiController.java +++ b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/controller/ConSessionApiController.java @@ -480,4 +480,10 @@ public class ConSessionApiController { return conSessionApiService.insertUserAndHelperSessionNew(); } + @Operation(summary = "超时关闭视频咨询", description = "超时关闭视频咨询") + @GetMapping("/endVideoSession") + public Result endVideoSession() { + return Result.ok(conSessionApiService.endVideoSession()); + } + } diff --git a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/service/ConSessionApiService.java b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/service/ConSessionApiService.java index 7b7dc21..a2abff5 100644 --- a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/service/ConSessionApiService.java +++ b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/service/ConSessionApiService.java @@ -115,4 +115,6 @@ public interface ConSessionApiService { UserSessionCount countForUser(); + String endVideoSession(); + } diff --git a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/service/impl/ConSessionApiServiceImpl.java b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/service/impl/ConSessionApiServiceImpl.java index 79dddc5..89a8ef9 100644 --- a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/service/impl/ConSessionApiServiceImpl.java +++ b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/service/impl/ConSessionApiServiceImpl.java @@ -2114,4 +2114,8 @@ public class ConSessionApiServiceImpl implements ConSessionApiService { return conSessionMapper.selectCount(wrapper).intValue(); } + public String endVideoSession() { + return conSessionMapper.endVideoSession(); + } + } diff --git a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConSessionMapper.java b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConSessionMapper.java index 1b8cad1..e15cc34 100644 --- a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConSessionMapper.java +++ b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConSessionMapper.java @@ -294,4 +294,13 @@ public interface ConSessionMapper extends BaseMapper , MPJBaseMapper @Param("doctorjob")String doctorjob, @Param("contentType")String contentType, @Param("toAccount")String toAccount); + + /** + * 音视频咨询过期处理:预约日期已过的视频咨询,有通话记录则改为待评价,无通话记录则改为取消 + * content_status: 4=待评价,6=取消 + */ + @Update("UPDATE con_session SET content_status = CASE WHEN session_time IS NOT NULL THEN 4 ELSE 6 END " + + "WHERE content_type = 2 AND CURDATE() > session_date " + + "AND content_status NOT IN (4, 5, 6, 7, 8) AND del_flag = 0 AND status = 1") + String endVideoSession(); } diff --git a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/task/SyncScheduleJob.java b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/task/SyncScheduleJob.java index 7319091..8ee463b 100644 --- a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/task/SyncScheduleJob.java +++ b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/task/SyncScheduleJob.java @@ -7,6 +7,7 @@ import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.config.shiro.ClientSignThreadLocal; import org.parboiled.common.StringUtils; @@ -36,10 +37,10 @@ public class SyncScheduleJob { String expireHour = "168"; String param = XxlJobHelper.getJobParam(); - if(StringUtils.isNotEmpty(param)){ + if (StringUtils.isNotEmpty(param)) { JSONObject jsonObject = JSONObject.parseObject(param); String expireHourRequest = jsonObject.getString("expireHour"); - if(StringUtils.isNotEmpty(expireHourRequest)){ + if (StringUtils.isNotEmpty(expireHourRequest)) { expireHour = jsonObject.getString("expireHour"); } } @@ -53,4 +54,12 @@ public class SyncScheduleJob { return ReturnT.SUCCESS; } + + @XxlJob(value = "endVideoSession") + public Result endVideoSession() { + // 20260327 新增 音视频咨询过期处理 规则为:超过预约时间,比如预约的是 12月9日和专家视频沟通,但超过时间一天,即为过期,需要关闭咨询 + conSessionApiController.endVideoSession(); + return Result.ok("success"); + } + }