50 lines
2.4 KiB
Java
50 lines
2.4 KiB
Java
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;
|
|
|
|
/**
|
|
* 请假消息通知占位服务。
|
|
* <p>当前版本暂不接入微信/企微推送(计划待确认事项 5 的决策):
|
|
* 各业务节点先保留调用位置,接入时在对应方法内补充推送实现即可,
|
|
* 调用方无需改动。所有方法自身吞异常,绝不阻断请假主流程。</p>
|
|
*/
|
|
@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()));
|
|
}
|
|
}
|