package com.yunhai.homeleave.service.impl; import com.yunhai.homeleave.entity.Leave; import com.yunhai.homeleave.enums.LeaveStatusEnum; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; /** * 请假消息通知占位服务。 *

当前版本暂不接入微信/企微推送(计划待确认事项 5 的决策): * 各业务节点先保留调用位置,接入时在对应方法内补充推送实现即可, * 调用方无需改动。所有方法自身吞异常,绝不阻断请假主流程。

*/ @Service public class LeaveNotifyService { private static final Logger log = LoggerFactory.getLogger(LeaveNotifyService.class); /** 学生提交申请 / 教师登记后:通知审批人(班主任) */ public void onSubmitted(Leave leave) { // TODO 接入微信/企微推送:向该班班主任推送「有待审核请假」消息 log.info("[notify:placeholder] 请假提交提醒占位: id={}, stu={}, class={}, status={}", leave.getId(), leave.getStuName(), leave.getClassName(), LeaveStatusEnum.nameById(leave.getStatus())); } /** 教师审批后(审核/撤销审批/销假审批):通知学生(及其家长) */ public void onAudited(Leave leave, Integer targetStatus) { // TODO 接入微信/企微推送:向学生/家长推送审批结果 log.info("[notify:placeholder] 请假审批结果占位: id={}, stu={}, target={}", leave.getId(), leave.getStuName(), LeaveStatusEnum.nameById(targetStatus)); } /** 学生撤销(直接撤销或转待撤销)后:通知班主任 */ public void onWithdraw(Leave leave) { // TODO 接入微信/企微推送:向班主任推送撤销申请 log.info("[notify:placeholder] 请假撤销占位: id={}, stu={}, status={}", leave.getId(), leave.getStuName(), LeaveStatusEnum.nameById(leave.getStatus())); } /** 销假动作后(学生申请销假 / 教师销假):通知对端 */ public void onReportBack(Leave leave, boolean byStudent) { // TODO 接入微信/企微推送:销假申请/结果通知 log.info("[notify:placeholder] 销假占位: id={}, stu={}, byStudent={}, status={}", leave.getId(), leave.getStuName(), byStudent, LeaveStatusEnum.nameById(leave.getStatus())); } }