Commit 8fab15d4 by 邓敏

班级通知 添加短信模版

1 parent 899d8777
......@@ -5,10 +5,4 @@ public class CourseNotification {
public static final String UNSENT = "待发送";
public static final String SENT = "已发送";
public static final String ALL = "全部成员";
public static final String NOT_SIGNED_IN = "未签到成员";
public static final String UNFINISHED = "未完课成员";
}
package com.subsidy.common.constant;
import lombok.Getter;
@Getter
public enum SmsCode {
SIGN_IN("SMS_234409992", "签到通知"),
TEST("SMS_234414789", "测试通知"),
CLASS_START("SMS_228017725", "开课通知"),
ALL("SMS_228137810", "全部成员"),
NOT_SIGNED_IN("SMS_234409992","未签到成员"),
UNFINISHED("SMS_234414789","未完课成员");
private String type;
private String code;
SmsCode(String code, String type) {
this.code = code;
this.type = type;
}
}
package com.subsidy.jobs;
import com.subsidy.common.constant.CourseNotification;
import com.subsidy.common.constant.SmsCode;
import com.subsidy.mapper.ClassNoticeMapper;
import com.subsidy.mapper.MemberMapper;
import com.subsidy.model.ClassNoticeDO;
......@@ -12,8 +13,10 @@ import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* <p>
......@@ -36,22 +39,26 @@ public class CourseNotificationJob implements Job {
private SMSUtils smsUtils;
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
public void execute(JobExecutionContext jobExecutionContext) {
Map<String, Object> map = jobExecutionContext.getJobDetail().getJobDataMap();
Map<String, Object> params = (Map<String, Object>) map.get("params");
if(params != null) {
ClassNoticeDO classNoticeDO = classNoticeMapper.selectById((Long) params.get("id"));
if(classNoticeDO != null) {
List<MemberDO> list = memberMapper.getMemberList((Long) params.get("classId"));
if(list != null && list.size() > 0) {
for (MemberDO memberDO : list) {
if(memberDO != null) {
// smsUtils.send(memberDO.getTelephone(), "");
Map<String, String> data = Arrays.stream(SmsCode.values()).collect(Collectors.toMap(SmsCode::getType, SmsCode::getCode));
smsUtils.send(memberDO.getTelephone(), data.get(classNoticeDO.getNoticeType()));
}
}
ClassNoticeDO classNoticeDO = new ClassNoticeDO();
classNoticeDO.setId((Long) params.get("id"));
classNoticeDO.setStatus(CourseNotification.SENT);
classNoticeMapper.updateById(classNoticeDO);
ClassNoticeDO classNotice = new ClassNoticeDO();
classNotice.setId(classNoticeDO.getId());
classNotice.setStatus(CourseNotification.SENT);
classNoticeMapper.updateById(classNotice);
}
}
}
}
......
......@@ -2,6 +2,7 @@ package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.subsidy.common.constant.CourseNotification;
import com.subsidy.common.constant.SmsCode;
import com.subsidy.common.exception.HttpException;
import com.subsidy.dto.classNotice.SendNotificationDTO;
import com.subsidy.jobs.CourseNotificationJob;
......@@ -60,7 +61,7 @@ public class ClassNoticeServiceImpl extends ServiceImpl<ClassNoticeMapper, Class
ClassDictDO classDictDO = classDictService.getById(classNoticeDO.getClassId());
Map<String, Object> params = new HashMap<>();
//params.put("classId", classNoticeDO.getClassId());
params.put("classId", classNoticeDO.getClassId());
params.put("id", classNoticeDO.getId());
String name = classDictDO.getClassName()+"-"+classNoticeDO.getNoticeType()+"-"+classNoticeDO.getNoticeTime();
quartzUtil.addSimpleJob(CourseNotificationJob.class,DateFormatUtil.parse(classNoticeDO.getNoticeTime(), "yyyy-MM-dd") , params, name, "CourseNotificationJob");
......@@ -93,25 +94,25 @@ public class ClassNoticeServiceImpl extends ServiceImpl<ClassNoticeMapper, Class
@Override
public void sendNotification(SendNotificationDTO sendNotificationDTO) {
if(sendNotificationDTO.getSendType().equals(CourseNotification.ALL)) {
if(sendNotificationDTO.getSendType().equals(SmsCode.ALL.getType())) {
List<MemberDO> list = memberMapper.getMemberList(sendNotificationDTO.getClassId());
if(list != null) {
for (MemberDO memberDO : list) {
smsUtils.send(memberDO.getTelephone(), "");
smsUtils.send(memberDO.getTelephone(), SmsCode.ALL.getCode());
}
}
} else if(sendNotificationDTO.getSendType().equals(CourseNotification.NOT_SIGNED_IN)) {
} else if(sendNotificationDTO.getSendType().equals(SmsCode.NOT_SIGNED_IN.getType())) {
List<MemberDO> list = memberMapper.getMemberListBySignInRecord(sendNotificationDTO.getClassId());
if(list != null) {
for (MemberDO memberDO : list) {
smsUtils.send(memberDO.getTelephone(), "");
smsUtils.send(memberDO.getTelephone(), SmsCode.NOT_SIGNED_IN.getCode());
}
}
} else if(sendNotificationDTO.getSendType().equals(CourseNotification.UNFINISHED)) {
} else if(sendNotificationDTO.getSendType().equals(SmsCode.UNFINISHED.getType())) {
List<MemberDO> list = memberMapper.getUnfinishedMemberList(sendNotificationDTO.getClassId());
if(list != null) {
for (MemberDO memberDO : list) {
smsUtils.send(memberDO.getTelephone(), "");
smsUtils.send(memberDO.getTelephone(), SmsCode.UNFINISHED.getCode());
}
}
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!