From 8b7258c9427882bb1798f1502eaa35184c6e374e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:29:18 +0800
Subject: [PATCH] 短信指定楼栋发送

---
 src/main/java/org/springblade/modules/messageRecord/service/impl/MessageRecordServiceImpl.java |   70 ++++++++++++++++++++++------------
 1 files changed, 45 insertions(+), 25 deletions(-)

diff --git a/src/main/java/org/springblade/modules/messageRecord/service/impl/MessageRecordServiceImpl.java b/src/main/java/org/springblade/modules/messageRecord/service/impl/MessageRecordServiceImpl.java
index 5badb91..e0d0cf9 100644
--- a/src/main/java/org/springblade/modules/messageRecord/service/impl/MessageRecordServiceImpl.java
+++ b/src/main/java/org/springblade/modules/messageRecord/service/impl/MessageRecordServiceImpl.java
@@ -18,8 +18,12 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import liquibase.pro.packaged.S;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.modules.email.service.IEmailAccountService;
 import org.springblade.modules.email.service.IEmailService;
 import org.springblade.modules.messageRecord.entity.MessageRecord;
@@ -35,8 +39,10 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.mail.MessagingException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 消息记录表 服务实现类
@@ -60,9 +66,10 @@
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public Boolean customizeSave(MessageRecordVO messageRecord) {
-
+		if (StringUtils.isBlank(messageRecord.getType())) {
+			return false;
+		}
 		List<User> userList = new ArrayList();
-
 		if (messageRecord.getMessageResource().equals("1")) {
 			//系统消息(receiveUser指定的是部门,所以要通过部门去查人)
 			userList = userService.getUserListByDeptIds(messageRecord.getReceiver());
@@ -73,34 +80,39 @@
 
 		//保存消息记录
 		boolean saveRecord = save(messageRecord);
-
 		List<MessageUser> messageUserList = new ArrayList<>();
 		userList.forEach(user -> {
-			MessageUser messageUser = new MessageUser();
-
-			messageUser.setUserId(user.getId().toString());
-			messageUser.setMessageRecordId(messageRecord.getId().toString());
-			messageUser.setType(messageRecord.getType());
-			messageUser.setCreateTime(DateUtil.now());
-			messageUser.setUpdateTime(DateUtil.now());
-
-			if (messageRecord.getType().indexOf("2") > -1) {
-				messageUser.setEmail(user.getEmail());
+			List<String> longs = Func.toStrList(messageRecord.getType());
+			for (String type : longs) {
+				MessageUser messageUser = new MessageUser();
+				messageUser.setUserId(user.getId().toString());
+				messageUser.setMessageRecordId(messageRecord.getId());
+				messageUser.setType(type);
+				messageUser.setCreateTime(DateUtil.now());
+				messageUser.setUpdateTime(DateUtil.now());
+				messageUser.setSendStatus("1");
+				if (messageUser.getType().indexOf("1") > -1) {
+					messageUser.setSendStatus("2");
+				} else if (messageUser.getType().indexOf("2") > -1) {
+					messageUser.setEmail(user.getEmail());
+				} else if (messageUser.getType().indexOf("3") > -1) {
+					messageUser.setSendStatus("2");
+					messageUser.setPhone(user.getPhone());
+				}
+				messageUserList.add(messageUser);
 			}
-
-			if (messageRecord.getType().indexOf("3") > -1) {
-				messageUser.setPhone(user.getPhone());
-			}
-
-			messageUserList.add(messageUser);
 		});
 		//在message_user表里存数据
 		boolean saveBatch = messageUserService.saveBatch(messageUserList);
 
-		if (saveBatch&&saveRecord){
+		if (saveBatch && saveRecord) {
 			if (messageRecord.getType().indexOf("2") > -1) {
-				emailAccountService.sendMessageUserEmail(messageRecord.getTitle(), messageRecord.getContent(), messageUserList);
-				return true;
+				Boolean aBoolean = emailAccountService.sendMessageUserEmail(messageRecord.getTitle(), messageRecord.getContent(), messageUserList);
+				// 邮件发送成功,更新邮件状态
+				if (aBoolean) {
+					List<MessageUser> collect = messageUserList.stream().filter(e -> StringUtil.isNotBlank(e.getEmail())).collect(Collectors.toList());
+					messageUserService.updateBatchById(collect);
+				}
 			}
 
 			if (messageRecord.getType().indexOf("3") > -1) {
@@ -120,8 +132,7 @@
 		List<MessageUser> messageUserList = messageUserService.list(new QueryWrapper<MessageUser>().eq("message_record_id", id));
 
 		if (messageRecord.getType().indexOf("2") > -1) {
-			emailAccountService.sendMessageUserEmail(messageRecord.getTitle(), messageRecord.getContent(), messageUserList);
-			return true;
+			return emailAccountService.sendMessageUserEmail(messageRecord.getTitle(), messageRecord.getContent(), messageUserList);
 		}
 
 		if (messageRecord.getType().indexOf("3") > -1) {
@@ -131,5 +142,14 @@
 		return true;
 	}
 
-
+	@Override
+	public List<MessageRecordVO> getUnreadList() {
+		try {
+			List<MessageRecordVO> aa = emailAccountService.getUnreadList();
+			return aa;
+		} catch (MessagingException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
 }

--
Gitblit v1.9.3