zouxuan 5 years ago
parent
commit
6cf60ad50c

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -29,6 +29,14 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	boolean batchSeoMessage(Set<Integer> userIds, MessageTypeEnum messageType,String memo, Object... args);
 
 	/**
+	 * 推送站内消息
+	 * @param senderId
+	 * @param messageType
+	 * @return
+	 */
+	void batchSendImMessage(MessageTypeEnum messageType,String senderId, String[] targetIds,String url, Object... args);
+
+	/**
 	 * 批量发送消息
 	 * @param messageSender 消息发送者
 	 * @param subject 消息主题

+ 13 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseReviewServiceImpl.java

@@ -11,6 +11,9 @@ import java.util.stream.Collectors;
 
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.common.entity.ImPrivateMessage;
+import com.ym.mec.common.entity.ImTxtMessage;
+import com.ym.mec.im.ImFeignService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -94,6 +97,9 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
     private SysMessageService sysMessageService;
 
     @Autowired
+    private ImFeignService imFeignService;
+
+    @Autowired
     private TeacherDao teacherDao;
 
     @Autowired
@@ -228,11 +234,14 @@ public class CourseReviewServiceImpl extends BaseServiceImpl<Integer, CourseSche
                         studentCourseHomework.setIsReplied(YesOrNoEnum.NO);
                         studentCourseHomeworkDao.insert(studentCourseHomework);
 
-                        Map<Integer, String> userMap = new HashMap<>();
-                        userMap.put(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getUserId().toString());
+//                        Map<Integer, String> userMap = new HashMap<>();
+//                        userMap.put(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getUserId().toString());
                         String notifyUrl = "3?courseScheduleID=" + courseSchedule.getId() + "&studentCourseHomeworkId=" + studentCourseHomework.getId();
-                        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_REMIND,
-                                userMap, null, 0, notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
+                        sysMessageService.batchSendImMessage(MessageTypeEnum.HOMEWORK_REMIND,courseScheduleReview.getTeacherId().toString(),
+                                                        new String[]{courseScheduleStudentPayment.getUserId().toString()},
+                                                        notifyUrl,teacher.getRealName(), courseSchedule.getName(), dateStr);
+//                        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_REMIND,
+//                                userMap, null, 0, notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
                     }
                 }
             }

+ 14 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkReplyServiceImpl.java

@@ -53,12 +53,15 @@ public class StudentCourseHomeworkReplyServiceImpl extends BaseServiceImpl<Long,
 			throw new BizException("请指定需要回复的作业");
 		}
 		CourseSchedule courseSchedule = courseScheduleDao.get(studentCourseHomework.getCourseScheduleId());
-		Map<Integer, String> userMap = new HashMap<>();
-		userMap.put(courseSchedule.getActualTeacherId(), courseSchedule.getActualTeacherId().toString());
+//		Map<Integer, String> userMap = new HashMap<>();
+//		userMap.put(courseSchedule.getActualTeacherId(), courseSchedule.getActualTeacherId().toString());
 		SysUser user = teacherDao.getUser(studentCourseHomework.getUserId());
 		String notifyUrl = "9?courseScheduleID=" + studentCourseHomework.getId() + "&userId=" + studentCourseHomework.getUserId() + "&studentCourseHomeworkId=" + studentCourseHomework.getId();
-		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_STUDENT_REPLY_PUSH,
-				userMap, null, 0, notifyUrl, "TEACHER", courseSchedule.getName(), DateUtil.dateToString(courseSchedule.getClassDate(),"yyyy年MM月dd日"), user.getUsername());
+		sysMessageService.batchSendImMessage(MessageTypeEnum.HOMEWORK_STUDENT_REPLY_PUSH,studentCourseHomework.getUserId().toString(),
+				new String[]{courseSchedule.getActualTeacherId().toString()},
+				notifyUrl,courseSchedule.getName(), DateUtil.dateToString(courseSchedule.getClassDate(),"yyyy年MM月dd日"), user.getUsername());
+//		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_STUDENT_REPLY_PUSH,
+//				userMap, null, 0, notifyUrl, "TEACHER", courseSchedule.getName(), DateUtil.dateToString(courseSchedule.getClassDate(),"yyyy年MM月dd日"), user.getUsername());
 		return super.insert(bean);
 	}
 
@@ -74,12 +77,15 @@ public class StudentCourseHomeworkReplyServiceImpl extends BaseServiceImpl<Long,
 				studentCourseHomework.getUserId());
 
 		CourseSchedule courseSchedule = courseScheduleDao.get(studentCourseHomework.getCourseScheduleId());
-		Map<Integer, String> userMap = new HashMap<>();
-		userMap.put(studentCourseHomework.getUserId(),studentCourseHomework.getUserId().toString());
+//		Map<Integer, String> userMap = new HashMap<>();
+//		userMap.put(studentCourseHomework.getUserId(),studentCourseHomework.getUserId().toString());
 		SysUser user = teacherDao.get(courseSchedule.getTeacherId());
 		String notifyUrl = "3?courseScheduleID=" + courseSchedule.getId() + "&studentCourseHomeworkId=" + studentCourseHomework.getId();
-		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_TEACHER_REPLY_PUSH,
-				userMap, null, 0, notifyUrl, "STUDENT", user.getRealName(), courseSchedule.getName());
+		sysMessageService.batchSendImMessage(MessageTypeEnum.HOMEWORK_TEACHER_REPLY_PUSH,courseSchedule.getTeacherId().toString(),
+				new String[]{studentCourseHomework.getUserId().toString()},
+				notifyUrl,user.getRealName(), courseSchedule.getName());
+//		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_TEACHER_REPLY_PUSH,
+//				userMap, null, 0, notifyUrl, "STUDENT", user.getRealName(), courseSchedule.getName());
 		super.insert(bean);
 	}
 

+ 5 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -101,13 +101,15 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
                 courseScheduleReviewDao.update(review);
             }
         }
-
         Map<Integer, String> userMap = new HashMap<>();
         userMap.put(courseSchedule.getActualTeacherId(), courseSchedule.getActualTeacherId().toString());
         SysUser user = teacherDao.getUser(bean.getUserId());
         String notifyUrl = "9?courseScheduleID=" + bean.getId() + "&userId=" + bean.getUserId() + "&studentCourseHomeworkId=" + bean.getId();
-        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_SUBMIT_PUSH,
-                userMap, null, 0, notifyUrl, "TEACHER", courseSchedule.getName(), DateUtil.dateToString(courseSchedule.getClassDate(), "yyyy年MM月dd日"), user.getUsername());
+        sysMessageService.batchSendImMessage(MessageTypeEnum.HOMEWORK_SUBMIT_PUSH,bean.getUserId().toString(),
+                new String[]{courseSchedule.getActualTeacherId().toString()},
+                notifyUrl,courseSchedule.getName(), DateUtil.dateToString(courseSchedule.getClassDate(), "yyyy年MM月dd日"), user.getUsername());
+//        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_SUBMIT_PUSH,
+//                userMap, null, 0, notifyUrl, "TEACHER", courseSchedule.getName(), DateUtil.dateToString(courseSchedule.getClassDate(), "yyyy年MM月dd日"), user.getUsername());
         courseHomeworkService.update(courseHomework);
     }
 

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -12,9 +12,12 @@ import com.ym.mec.biz.dal.enums.SendStatusEnum;
 import com.ym.mec.biz.service.SysMessageConfigService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.ImPrivateMessage;
+import com.ym.mec.common.entity.ImTxtMessage;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.redis.service.RedisCache;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.im.ImFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.string.MessageFormatter;
@@ -48,6 +51,9 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	private SysUserFeignService sysUserFeignService;
 
 	@Autowired
+	private ImFeignService imFeignService;
+
+	@Autowired
 	private RedisCache<String, Object> redisCache;
 
 	// 验证码有效期
@@ -166,6 +172,26 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
+	public void batchSendImMessage(MessageTypeEnum type, String senderId, String[] targetIds, String url, Object... args) {
+		SysMessageConfig messageConfig = sysMessageConfigService.queryByType(type);
+		if (messageConfig == null) {
+			throw new BizException("消息类型错误");
+		}else if(messageConfig.getSendFlag() == null || messageConfig.getSendFlag() == 0){
+			return;
+		}
+		String content = MessageFormatter.arrayFormat(messageConfig.getContent(), args);
+		if(StringUtils.isNotEmpty(url)){
+			content += url;
+		}
+		ImPrivateMessage privateMessage = new ImPrivateMessage();
+		privateMessage.setObjectName("RC:TxtMsg");
+		privateMessage.setTargetId(targetIds);
+		privateMessage.setSenderId(senderId);
+		privateMessage.setContent(new ImTxtMessage(content,null));
+		imFeignService.privateSend(privateMessage);
+	}
+
+	@Override
 	@Async
 	public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Map<Integer, String> receivers, Date triggerTime,
 			Integer readStatus, String memo, String group,String jpushType) {