From 12bc14b95528e7644e15db9e436a7c81ac5fccc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=85=81=E6=9E=9E?= <3422692813@qq.com> Date: Mon, 7 Apr 2025 17:41:51 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A9=BE=E6=A0=A1=E6=96=B0=E5=A2=9E=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/constant/SchoolBaseConstants.java | 15 +++++ .../SchoolNotifyMessageSendService.java | 19 +++++++ .../SchoolNotifyMessageSendServiceImpl.java | 56 +++++++++++++++++++ .../service/impl/ProcessServiceImpl.java | 14 +++++ 4 files changed, 104 insertions(+) create mode 100644 dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/SchoolNotifyMessageSendService.java create mode 100644 dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/SchoolNotifyMessageSendServiceImpl.java diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/constant/SchoolBaseConstants.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/constant/SchoolBaseConstants.java index ef5d9f13..15630795 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/constant/SchoolBaseConstants.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/constant/SchoolBaseConstants.java @@ -59,4 +59,19 @@ public interface SchoolBaseConstants { * 驾校评价类型:考试 */ public static final String EVALUATE_TYPE_EXAM = "1"; +// ========================= 驾校消息 ======================== + /** + * 驾校消息类型:管理员 + */ + public static final String SCHOOL_NOTIFY_MESSAGE_TYPE_ADMIN= "admin"; + + /** + * 驾校消息类型:学员 + */ + public static final String SCHOOL_NOTIFY_MESSAGE_TYPE_MEMBER= "member"; + + /** + * 驾校消息模板:分配教练通知 + */ + public static final String SCHOOL_NOTIFY_MESSAGE_TEMPLATE_ASSIGN_COACH= "已为您分配教练,科目一教练:%s,科目二教练:%s,科目三教练:%s,科目四教练:%s"; } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/SchoolNotifyMessageSendService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/SchoolNotifyMessageSendService.java new file mode 100644 index 00000000..c3f16aa1 --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/SchoolNotifyMessageSendService.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.base.service; + +/** + * @Description: 驾校站内信发送服务 + * @Author: 86187 + * @Date: 2025/04/07 17:02 + * @Version: 1.0 + */ +public interface SchoolNotifyMessageSendService { + + /** + * 发送站内信 + * + * @param userId 用户id + * @param message 消息内容 + * @param type admin为管理员 member为会员 + */ + void sendMessage(Long userId, String message, String type); +} diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/SchoolNotifyMessageSendServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/SchoolNotifyMessageSendServiceImpl.java new file mode 100644 index 00000000..5cba46e7 --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/SchoolNotifyMessageSendServiceImpl.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.base.service.impl; + +import cn.iocoder.yudao.common.BaseConstants; +import cn.iocoder.yudao.common.SystemEnum; +import cn.iocoder.yudao.module.base.constant.SchoolBaseConstants; +import cn.iocoder.yudao.module.base.service.SchoolNotifyMessageSendService; +import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi; +import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +import static cn.iocoder.yudao.module.base.constant.SchoolBaseConstants.SCHOOL_NOTIFY_MESSAGE_TYPE_ADMIN; +import static cn.iocoder.yudao.module.base.constant.SchoolBaseConstants.SCHOOL_NOTIFY_MESSAGE_TYPE_MEMBER; + +/** + * @Description: 驾校站内信发送 + * @Author: 86187 + * @Date: 2025/04/07 17:02 + * @Version: 1.0 + */ +@Service +@RequiredArgsConstructor +public class SchoolNotifyMessageSendServiceImpl implements SchoolNotifyMessageSendService { + + private final NotifyMessageSendApi sendApi; + + /** + * 发送站内信 + * + * @param userId 用户id + * @param message 消息内容 + */ + @Override + public void sendMessage(Long userId, String message, String type) { + NotifySendSingleToUserReqDTO dto = new NotifySendSingleToUserReqDTO(); + dto.setUserId(userId); + dto.setTemplateCode(SystemEnum.SCHOOL.getCode()); + dto.setTemplateCode(BaseConstants.TICKET_EMPLOY); + + // 准备发送参数 + Map templateParams = new HashMap<>(); + // 发送模版内容 + templateParams.put("text", message); + dto.setTemplateParams(templateParams); + + // 发送消息 + if (SCHOOL_NOTIFY_MESSAGE_TYPE_ADMIN.equals(type)) { + sendApi.sendSingleMessageToAdmin(dto); + } else if (SCHOOL_NOTIFY_MESSAGE_TYPE_MEMBER.equals(type)) { + sendApi.sendSingleMessageToMember(dto); + } + } +} diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java index d6f5ae5f..780e4a0d 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.base.constant.SchoolBaseConstants; import cn.iocoder.yudao.module.base.service.DlDriveSchoolStudentService; +import cn.iocoder.yudao.module.base.service.SchoolNotifyMessageSendService; import cn.iocoder.yudao.module.course.entity.Process; import cn.iocoder.yudao.module.course.entity.SchoolCommission; import cn.iocoder.yudao.module.course.entity.SchoolCourseOrder; @@ -63,6 +64,9 @@ public class ProcessServiceImpl extends ServiceImpl impl @Autowired private ExamBatchItemMapper examBatchItemMapper; + @Autowired + private SchoolNotifyMessageSendService schoolNotifyMessageSendService; + /** * 教练查自己带教的课程和科目 @@ -320,6 +324,16 @@ public class ProcessServiceImpl extends ServiceImpl impl .eq(SchoolCourseOrder::getId, request.getOrderId()) .set(SchoolCourseOrder::getIfAssignmentCoach, SchoolBaseConstants.SCHOOL_COURSE_ORDER_IS_ASSIGN_COACH)); + // 发送通知内容 + String message = String.format(SchoolBaseConstants.SCHOOL_NOTIFY_MESSAGE_TEMPLATE_ASSIGN_COACH, + processes.get(0).getCoachName(), + processes.get(1).getCoachName(), + processes.get(2).getCoachName(), + processes.get(3).getCoachName()); + + // 发送消息给学员 + schoolNotifyMessageSendService.sendMessage(userId, message, SchoolBaseConstants.SCHOOL_NOTIFY_MESSAGE_TYPE_MEMBER); + } @Override