From b2001a7042d511cea1c1b2000edca57253d992ad Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期六, 20 十二月 2025 16:21:51 +0800
Subject: [PATCH] 时间控制修改
---
ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java | 125 +++++++++++++++++++++++++++++------------
1 files changed, 89 insertions(+), 36 deletions(-)
diff --git a/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java
index 6eccd73..31c5f28 100644
--- a/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java
@@ -1,6 +1,8 @@
package com.ycl.service.message.impl;
+import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -23,6 +25,7 @@
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
@@ -79,20 +82,39 @@
RestTemplate restTemplate;
@Override
+ @SneakyThrows
+ @Transactional(rollbackFor = Exception.class)
+ public void sendSMS(Message message) {
+ Integer messageStatus = sendMessages(message);
+
+ if (messageStatus == 2) {
+ message.setStatus(2);
+ message.setRespondResult("鍙戦�佹垚鍔�");
+ }
+ if (messageStatus == 3) {
+ message.setStatus(3);
+ message.setRespondResult("鍙戦�佸け璐�");
+ }
+ message.setUpdateTime(new Date());
+ message.setSendTime(new Date());
+ messageMapper.updateById(message);
+ }
+
+ @Override
@Transactional(rollbackFor = Exception.class)
public void sendMessage(Message message) {
- Message savedMessage = messageMapper.selectOne(new LambdaQueryWrapper<Message>()
- .eq(Message::getTargetTo, message.getTargetTo())
- .eq(Message::getTargetFrom, message.getTargetFrom())
- .eq(Message::getBody, message.getBody())
- .eq(Message::getStatus, 1)
- .eq(Message::getHead, message.getHead()));
- if (savedMessage != null) {
- messageMapper.deleteById(savedMessage);
- }
+// Message savedMessage = messageMapper.selectOne(new LambdaQueryWrapper<Message>()
+// .eq(Message::getTargetTo, message.getTargetTo())
+// .eq(Message::getTargetFrom, message.getTargetFrom())
+// .eq(Message::getBody, message.getBody())
+// .eq(Message::getStatus, 1)
+// .eq(Message::getHead, message.getHead()));
+// if (savedMessage != null) {
+// messageMapper.deleteById(savedMessage);
+// }
- ArrayList<Long> ids = new ArrayList<>();
+ ArrayList<Message> ids = new ArrayList<>();
message.setTargetFrom(umsAdminMapper.selectById(message.getCreateUser()).getUsername());
if (message.getId() == null) {
for (String receive : message.getTargetTo().split(",")) {
@@ -102,33 +124,39 @@
sendMessage.setSendTime(new Date());
sendMessage.setTargetTo(receive);
sendMessage.setSendTime(new Date());
+ sendMessage.setPhoneNumber(message.getTargetTo());
+
+ if (ChannelCode.INNER.equals(message.getChannelCode())) {
+ sendMessage.setIsView(0);
+ }
this.save(sendMessage);
- ids.add(sendMessage.getId());
+ ids.add(sendMessage);
}
}
- switch (message.getChannelCode()) {
- //閭欢鍙戦��
- case ChannelCode.SMS:
- sendSMS(message, ids);
- break;
- //鐭俊鍙戦��
- case ChannelCode.MAIL:
- sendMail(message);
- break;
- case ChannelCode.INNER:
- break;
- default:
- throw new ApiException("鏈尮閰嶅埌璇ョ被鍨�");
- }
+// switch (message.getChannelCode()) {
+// //鐭俊鍙戦��
+// case ChannelCode.SMS:
+// sendSMS(message, ids);
+// break;
+// //閭欢鍙戦��
+// case ChannelCode.MAIL:
+// sendMail(message);
+// break;
+// case ChannelCode.INNER:
+// break;
+// default:
+// throw new ApiException("鏈尮閰嶅埌璇ョ被鍨�");
+// }
}
@SneakyThrows
@Transactional(rollbackFor = Exception.class)
- void sendSMS(Message message, List<Long> mesIds) {
- String[] ids = message.getTargetTo().split(",");
- String[] mobiles = new String[ids.length];
- for (int i = 0; i < ids.length; i++) {
- mobiles[i] = umsAdminMapper.selectById(ids[i]).getMobile();
+ public void sendSMS(Message message, List<Message> messageList) {
+ List<String> mobiles = new ArrayList<>();
+ List<Long> mesIds = new ArrayList<>();
+ for (Message m : messageList) {
+ mobiles.add(m.getPhoneNumber());
+ mesIds.add(m.getId());
}
message.setPhoneNumber(StringUtils.join(mobiles, ","));
Integer messageStatus = sendMessages(message);
@@ -203,13 +231,16 @@
ObjectMapper objectMapper = new ObjectMapper();
HttpEntity<String> stringHttpEntity = new HttpEntity<>(Base64Utils.encodeToString(objectMapper.writeValueAsBytes(mac)), httpHeaders);
-
- SendRes sendRes = objectMapper.readValue(restTemplate.postForEntity(url, stringHttpEntity, String.class).getBody(), SendRes.class);
- if (sendRes.getRspcod().equals("success")) {
- return 2;
- } else {
- return 3;
+ ResponseEntity<String> response = restTemplate.postForEntity(url + "/sms/submit", sendReq, String.class);
+ if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank( response.getBody())) {
+ SendRes sendRes = objectMapper.readValue(response.getBody(), SendRes.class);
+ if (sendRes.getRspcod().equals("success")) {
+ return 2;
+ } else {
+ return 3;
+ }
}
+ return 3;
}
//鍙戦�侀偖浠�
@@ -248,6 +279,28 @@
}
@Override
+ public Page<Message> queryMyMessage(Page<Message> page, Long userId) {
+ List<Message> list = list();
+ ArrayList<Long> ids = new ArrayList<>();
+ list.forEach(item -> {
+ String targetTo = item.getTargetTo();
+ if (StringUtils.isNotBlank(targetTo)) {
+ String[] split = targetTo.split(",");
+ for (String s : split) {
+ if (userId.equals(Long.getLong(s))) {
+ ids.add(item.getId());
+ break;
+ }
+ }
+ }
+ });
+ if (CollUtil.isEmpty(ids)) {
+ return new Page<>();
+ }
+ return baseMapper.selectPage(page, new QueryWrapper<Message>().lambda().in(Message::getId, ids));
+ }
+
+ @Override
public Boolean deleteMessages(List<Long> ids) {
LambdaQueryWrapper<Message> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(Message::getId, ids).or().in(Message::getParentId, ids);
--
Gitblit v1.8.0