From bef4c71340bed052d99b1da3cb08a1d312a23a20 Mon Sep 17 00:00:00 2001
From: haungxing <1203316822@qq.com>
Date: Thu, 6 Apr 2023 16:17:26 +0800
Subject: [PATCH] =?UTF-8?q?#=20=E6=B6=88=E6=81=AF=E6=A8=A1=E5=9D=97?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
hzims-service-api/message-api/pom.xml | 8 +-
.../com/hnac/hzims/message/MessageConstants.java | 11 ++
.../hzims/message/constants/XxlJobConstants.java | 5 +-
.../message/entity/MessagePushRecordEntity.java | 69 ++++++++
.../entity/config/MessageTemplateEntity.java | 21 ++-
.../hnac/hzims/message/config/MessageFactory.java | 34 ++++
.../controller/MessagePushRecordController.java | 60 +++++++
.../controller/MessageTemplateController.java | 66 ++++++++
.../message/mapper/MessagePushRecordMapper.java | 8 +
.../message/schedule/MessagePushSchedule.java | 183 +++++++++------------
.../message/schedule/MessagePushScheduleOld.java | 130 +++++++++++++++
.../message/service/IMessagePushRecordService.java | 35 ++++
.../hzims/message/service/IMessageService.java | 3 +
.../message/service/IMessageTemplateService.java | 28 ++++
.../service/impl/MailMessageServiceImpl.java | 6 +
.../service/impl/MessagePushRecordServiceImpl.java | 55 +++++++
.../service/impl/MessageTemplateServiceImpl.java | 44 +++++
.../service/impl/PushMessageServiceImpl.java | 44 +++++
.../service/impl/SmsMessageServiceImpl.java | 18 ++
.../message/service/impl/WebsocketServiceImpl.java | 6 +
20 files changed, 717 insertions(+), 117 deletions(-)
create mode 100644 hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/MessagePushRecordEntity.java
create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/config/MessageFactory.java
create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/controller/MessagePushRecordController.java
create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/controller/MessageTemplateController.java
create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/mapper/MessagePushRecordMapper.java
create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/schedule/MessagePushScheduleOld.java
create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessagePushRecordService.java
create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessageTemplateService.java
create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MessagePushRecordServiceImpl.java
create mode 100644 hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MessageTemplateServiceImpl.java
diff --git a/hzims-service-api/message-api/pom.xml b/hzims-service-api/message-api/pom.xml
index 0be6322..c09c119 100644
--- a/hzims-service-api/message-api/pom.xml
+++ b/hzims-service-api/message-api/pom.xml
@@ -16,9 +16,9 @@
org.springblade
blade-resource-api
-
- com.hnac.hzims
- hzims-biz-common
-
+
+
+
+
diff --git a/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/MessageConstants.java b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/MessageConstants.java
index 3a9dcca..b0a2aae 100644
--- a/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/MessageConstants.java
+++ b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/MessageConstants.java
@@ -62,4 +62,15 @@ public class MessageConstants {
}
}
+ /**====================================推送状态====================================**/
+ /**未推送**/
+ public final static Integer NOT_PUSH = 0;
+ /**推送成功**/
+ public final static Integer PUSH_SUCCESS = 1;
+ /**推送失败**/
+ public final static Integer PUSH_FAILED = 2;
+ /**已确认**/
+ public final static Integer CONFIRM = 3;
+ /**====================================推送状态====================================**/
+
}
diff --git a/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/constants/XxlJobConstants.java b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/constants/XxlJobConstants.java
index a1ef43d..76a8a92 100644
--- a/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/constants/XxlJobConstants.java
+++ b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/constants/XxlJobConstants.java
@@ -6,7 +6,10 @@ package com.hnac.hzims.message.constants;
*/
public interface XxlJobConstants {
- /**消息中心消息按通知人分时段集中推送**/
+ /**消息中心短信消息按通知人分时段集中推送**/
String PUSH_SMS_MESSAGE_BY_NOTICE = "pushSmsMessageByNotice";
+ /**消息中心消息按通知人分时段集中推送**/
+ String PUSH_MESSAGE_BY_NOTICE = "pushMessageByNotice";
+
}
diff --git a/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/MessagePushRecordEntity.java b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/MessagePushRecordEntity.java
new file mode 100644
index 0000000..9d871bd
--- /dev/null
+++ b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/MessagePushRecordEntity.java
@@ -0,0 +1,69 @@
+package com.hnac.hzims.message.entity;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.hnac.hzims.message.entity.config.MessageTemplateEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.support.QueryField;
+import org.springblade.core.mp.support.SqlCondition;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel(value = "消息推送记录",description = "消息推送记录")
+@TableName("hzims_message_push_record")
+@EqualsAndHashCode
+public class MessagePushRecordEntity extends MessageTemplateEntity {
+
+ @ApiModelProperty("业务任务ID")
+ @QueryField(condition = SqlCondition.EQUAL)
+ private Long taskId;
+
+ @ApiModelProperty("消息模板ID")
+ @QueryField(condition = SqlCondition.EQUAL)
+ private Long templateId;
+
+ @ApiModelProperty("资源编码")
+ @QueryField(condition = SqlCondition.EQUAL)
+ private String resourceCode;
+
+ @ApiModelProperty(value = "推送人")
+ @QueryField(condition = SqlCondition.LIKE)
+ private String pusher;
+
+ @ApiModelProperty(value = "推送账号:手机号,邮箱")
+ private String account;
+
+ @ApiModelProperty(value = "推送人名称")
+ @QueryField(condition = SqlCondition.LIKE)
+ private String pusherName;
+
+ @ApiModelProperty(value = "内容")
+ private String content;
+
+ @ApiModelProperty(value = "计划推送时间")
+ @JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
+ @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
+ private LocalDateTime planTime;
+
+ @ApiModelProperty(value = "实际推送时间")
+ @JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
+ @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
+ private LocalDateTime pushTime;
+
+ @ApiModelProperty(value = "响应时间")
+ @JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
+ @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
+ private LocalDateTime respondTime;
+
+ @ApiModelProperty(value = "响应说明")
+ private String respondRemark;
+
+}
diff --git a/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/config/MessageTemplateEntity.java b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/config/MessageTemplateEntity.java
index 6e139bb..3da5a62 100644
--- a/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/config/MessageTemplateEntity.java
+++ b/hzims-service-api/message-api/src/main/java/com/hnac/hzims/message/entity/config/MessageTemplateEntity.java
@@ -1,20 +1,23 @@
package com.hnac.hzims.message.entity.config;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.springblade.core.mp.support.QueryField;
import org.springblade.core.mp.support.SqlCondition;
+import org.springblade.core.tenant.mp.TenantEntity;
import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+@Data
+@ApiModel("消息配置")
+@TableName("hzims_message_template")
+@EqualsAndHashCode(callSuper = false)
+public class MessageTemplateEntity extends TenantEntity implements Serializable {
-/**
- * @ClassName MessageTemplateEntity
- * @description:
- * @author: hx
- * @create: 2023-04-06 14:55
- * @Version 4.0
- **/
-public class MessageTemplateEntity {
-
@ApiModelProperty(value = "消息类型")
@NotNull(message = "消息类型不能为空")
@QueryField(condition = SqlCondition.EQUAL)
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/config/MessageFactory.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/config/MessageFactory.java
new file mode 100644
index 0000000..898685e
--- /dev/null
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/config/MessageFactory.java
@@ -0,0 +1,34 @@
+package com.hnac.hzims.message.config;
+
+import com.hnac.hzims.message.MessageConstants;
+import com.hnac.hzims.message.service.IMessageService;
+import org.springblade.core.tool.utils.SpringUtil;
+
+
+public class MessageFactory {
+
+ /** @Author hx
+ * @Description 获取方法类型
+ * @Date 2023/4/4 14:22
+ * @Param [messageType] 消息类型
+ * @return com.hnac.hzims.message.service.IMessageService
+ **/
+ public static IMessageService getMessageSend(String messageType) {
+ if(MessageConstants.APP_PUSH.equals(messageType)) {
+ return SpringUtil.getBean("pushMessageService");
+ }
+ else if(MessageConstants.SMS_PUSH.equals(messageType)) {
+ return SpringUtil.getBean("smsMessageService");
+ }
+ else if(MessageConstants.MAIL_PUSH.equals(messageType)) {
+ return SpringUtil.getBean("mailMessageService");
+ }
+ else if(MessageConstants.WS_PUSH.equals(messageType)) {
+ return SpringUtil.getBean("websocketService");
+ }
+ else {
+ return null;
+ }
+ }
+
+}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/controller/MessagePushRecordController.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/controller/MessagePushRecordController.java
new file mode 100644
index 0000000..ff38d71
--- /dev/null
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/controller/MessagePushRecordController.java
@@ -0,0 +1,60 @@
+package com.hnac.hzims.message.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.hnac.hzims.message.entity.MessagePushRecordEntity;
+import com.hnac.hzims.message.service.IMessagePushRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/message/record")
+@Api(value = "消息推送记录",tags = "消息推送记录")
+@AllArgsConstructor
+public class MessagePushRecordController extends BladeController {
+
+ private final IMessagePushRecordService messagePushRecordService;
+
+ @PostMapping("/save")
+ @ApiOperation("保存消息推送")
+ @ApiOperationSupport(order = 1)
+ public R save(@RequestBody MessagePushRecordEntity request) {
+ return R.status(messagePushRecordService.save(request));
+ }
+
+ @PostMapping("/update")
+ @ApiOperation("更新消息推送记录")
+ @ApiOperationSupport(order = 2)
+ public R update(@RequestBody MessagePushRecordEntity request) {
+ return R.status(messagePushRecordService.updateById(request));
+ }
+
+ @GetMapping("/list")
+ @ApiOperation("查询消息推送记录列表")
+ @ApiOperationSupport(order = 3)
+ public R> list(MessagePushRecordEntity request) {
+ return R.data(messagePushRecordService.list(request));
+ }
+
+ @GetMapping("/listPage")
+ @ApiOperation("分页查询消息推送记录列表")
+ @ApiOperationSupport(order = 4)
+ public R> listPage(MessagePushRecordEntity request, Query query) {
+ return R.data(messagePushRecordService.listPage(request,query));
+ }
+
+ @GetMapping("/send/{id}")
+ @ApiOperation("推送消息记录")
+ @ApiOperationSupport(order = 4)
+ public R send(@PathVariable @ApiParam("消息记录ID") String id) {
+ return R.data(messagePushRecordService.send(id));
+ }
+}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/controller/MessageTemplateController.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/controller/MessageTemplateController.java
new file mode 100644
index 0000000..9e22aad
--- /dev/null
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/controller/MessageTemplateController.java
@@ -0,0 +1,66 @@
+package com.hnac.hzims.message.controller;
+
+import com.aliyun.oss.ServiceException;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.hnac.hzims.message.entity.config.MessageTemplateEntity;
+import com.hnac.hzims.message.service.IMessageTemplateService;
+import groovy.util.logging.Slf4j;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/message/template")
+@Api(value = "消息模板管理",tags = "消息模板管理")
+public class MessageTemplateController extends BladeController {
+
+ private final IMessageTemplateService messageTemplateService;
+
+ @PostMapping("/save")
+ @ApiOperation("保存消息模板")
+ @ApiOperationSupport(order = 1)
+ public R save(@RequestBody MessageTemplateEntity request) {
+ return R.status(messageTemplateService.save(request));
+ }
+
+ @GetMapping("/list")
+ @ApiOperation("查询列表")
+ @ApiOperationSupport(order = 2)
+ public R> list(MessageTemplateEntity request) {
+ return R.data(messageTemplateService.list(request));
+ }
+
+ @GetMapping("/listPage")
+ @ApiOperation("分页查询")
+ @ApiOperationSupport(order = 3)
+ public R> listPage(MessageTemplateEntity request, Query query) {
+ return R.data(messageTemplateService.listPage(request,query));
+ }
+
+ @DeleteMapping("/delete/{ids}")
+ @ApiOperation("删除消息模板")
+ @ApiOperationSupport(order = 4)
+ public R delete(@PathVariable String ids) {
+ return R.status(messageTemplateService.deleteLogic(Func.toLongList(",",ids)));
+ }
+
+ @PutMapping("/update")
+ @ApiOperation("修改消息模板")
+ @ApiOperationSupport(order = 5)
+ public R update(@RequestBody MessageTemplateEntity request) {
+ Assert.isTrue(Func.isNotEmpty(request.getId()),() -> {
+ throw new ServiceException("消息模板编辑时传入ID不能为空");
+ });
+ return R.status(messageTemplateService.updateById(request));
+ }
+}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/mapper/MessagePushRecordMapper.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/mapper/MessagePushRecordMapper.java
new file mode 100644
index 0000000..37b4698
--- /dev/null
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/mapper/MessagePushRecordMapper.java
@@ -0,0 +1,8 @@
+package com.hnac.hzims.message.mapper;
+
+import com.hnac.hzims.message.entity.MessagePushRecordEntity;
+import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
+
+public interface MessagePushRecordMapper extends UserDataScopeBaseMapper {
+
+}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/schedule/MessagePushSchedule.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/schedule/MessagePushSchedule.java
index a5f0b53..797bec7 100644
--- a/hzims-service/message/src/main/java/com/hnac/hzims/message/schedule/MessagePushSchedule.java
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/schedule/MessagePushSchedule.java
@@ -1,135 +1,112 @@
package com.hnac.hzims.message.schedule;
-import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hnac.hzims.common.utils.DateUtil;
-import com.hnac.hzims.message.configure.service.ISmsConfigService;
-import com.hnac.hzims.message.constants.RedisKeyConstants;
-import com.hnac.hzims.message.dto.PushMessageDTO;
-import com.hnac.hzims.message.dto.SmsPushDto;
-import com.hnac.hzims.message.entity.PushMessageEntity;
-import com.hnac.hzims.message.entity.config.SmsConfigEntity;
-import com.hnac.hzims.message.push.service.IPushService;
-import com.hnac.hzims.message.service.IPushMessageService;
+import com.hnac.hzims.message.MessageConstants;
+import com.hnac.hzims.message.config.MessageFactory;
+import com.hnac.hzims.message.entity.MessagePushRecordEntity;
+import com.hnac.hzims.message.entity.config.MessageTemplateEntity;
+import com.hnac.hzims.message.service.IMessagePushRecordService;
+import com.hnac.hzims.message.service.IMessageService;
+import com.hnac.hzims.message.service.IMessageTemplateService;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
-import com.xxl.job.core.log.XxlJobLogger;
+import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.BeanUtil;
-import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.Func;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.data.redis.core.RedisTemplate;
+import org.springblade.core.tool.utils.ObjectUtil;
import org.springframework.stereotype.Component;
-import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
-import java.time.ZoneOffset;
-import java.util.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
-import static com.hnac.hzims.message.constants.XxlJobConstants.*;
+import static com.hnac.hzims.message.constants.XxlJobConstants.PUSH_MESSAGE_BY_NOTICE;
+import static com.hnac.hzims.message.constants.XxlJobConstants.PUSH_SMS_MESSAGE_BY_NOTICE;
/**
- * 消息中心定时推送任务调度
- * @author hx
- */
+ * @ClassName MessagePushSchedule
+ * @description: 消息推送
+ * @author: hx
+ * @create: 2023-04-04 14:31
+ * @Version 4.0
+ **/
@Component
+@AllArgsConstructor
@Slf4j
public class MessagePushSchedule {
- @Autowired
- private ISmsConfigService smsConfigService;
- @Autowired
- private IPushMessageService pushMessageService;
- @Autowired
- @Qualifier("smsPushService")
- private IPushService pushService;
+ private final IMessageTemplateService templateService;
+ private final IMessagePushRecordService recordService;
- public static final String MESSAGE_ID = "messageId";
-
- /**
- * 消息推送根据推送人分时段推送任务调度
- * @param params 暂不支持参数参入执行调度任务
- * @return
- */
- @XxlJob(PUSH_SMS_MESSAGE_BY_NOTICE)
+ @XxlJob(PUSH_MESSAGE_BY_NOTICE)
public ReturnT pushSmsMessageByNotice(String params) {
- List list = smsConfigService.list();
- list.stream().filter(e -> Func.isNotEmpty(e.getDuration()) && Func.isNotEmpty(e.getTimeUnit())).forEach(smsConfigEntity -> {
- //查询出规定时段内的短信数量统一发送
- // 获取配置的时间范围内的消息
- LocalDateTime endTime = DateUtil.plus(LocalDateTime.now(), smsConfigEntity.getDuration(), smsConfigEntity.getTimeUnit());
- PushMessageDTO pushMessageDTO = new PushMessageDTO();
- pushMessageDTO.setStartTime(LocalDateTime.now());
- pushMessageDTO.setEndTime(endTime);
- pushMessageDTO.setBusinessKey(smsConfigEntity.getBusinessKey());
- pushMessageDTO.setIsPush(false);
- List pushMessageList = pushMessageService.list(pushMessageDTO);
- XxlJobLogger.log("开始推送短信,推送条数为:"+pushMessageList.size());
- // 获取推送消息内容体 根据用户拆分出多条短信推送
- List splitSmsList = this.transform(pushMessageList);
- if(CollectionUtil.isEmpty(splitSmsList)) {
- return;
- }
- this.push(splitSmsList,smsConfigEntity);
-
+ // 获取消息模板
+ List templateList = templateService.list();
+ LocalDateTime now = LocalDateTime.now();
+ templateList.forEach(template -> {
+ LocalDateTime endTime = DateUtil.plus(LocalDateTime.now(), template.getConcentratedDuration(), template.getConcentratedTimeUnit());
+ endTime = DateUtil.plus(endTime, template.getAdvanceDuration(), template.getAdvanceTimeUnit());
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery()
+ .eq(MessagePushRecordEntity::getStatus, MessageConstants.NOT_PUSH)
+ .ge(MessagePushRecordEntity::getPlanTime, now)
+ .le(MessagePushRecordEntity::getPlanTime, endTime);
+ List list = recordService.list(lqw);
+ this.sendMessage(list);
});
return ReturnT.SUCCESS;
}
- /**
- * 推送短信
- * @param splitSmsList 短信内容
- * @param configEntity 短信配置
- */
- private void push(List splitSmsList,SmsConfigEntity configEntity) {
- Map> phoneMap = splitSmsList.stream().collect(Collectors.groupingBy(sms -> sms.getString("phones")));
- phoneMap.forEach((phone,messages) -> {
- String messageIds = messages.stream().map(message -> message.getString(MESSAGE_ID)).collect(Collectors.joining(","));
- List smsPushDtoList = JSONArray.parseArray(JSON.toJSONString(messages), SmsPushDto.class);
- SmsPushDto templatePush = smsPushDtoList.get(0);
- Map params = new HashMap<>();
- Arrays.stream(configEntity.getContentVariables().split(",")).forEachOrdered(contentVariable ->{
- String value = smsPushDtoList.stream().map(SmsPushDto::getParams)
- .map(pm -> MapUtil.getStr(pm,contentVariable)).collect(Collectors.joining(","));
- params.put(contentVariable,value);
- });
- templatePush.setParams(params);
- XxlJobLogger.log(">>>>>>>>>>开始推送消息,推送内容为:"+JSONObject.toJSONString(templatePush)+"<<<<<<<<<<");
- LambdaUpdateWrapper pushLU = Wrappers.lambdaUpdate()
- .set(PushMessageEntity::getIsPush, true)
- .in(PushMessageEntity::getId, messageIds.split(","));
- pushMessageService.update(pushLU);
- R pushResult = pushService.send(templatePush);
- LambdaUpdateWrapper successLU = Wrappers.lambdaUpdate();
- if(pushResult.isSuccess()) {
- successLU.set(PushMessageEntity::getIsSuccess,true);
- }
- else {
- successLU.set(PushMessageEntity::getIsSuccess,false);
- }
- successLU.in(PushMessageEntity::getId, messageIds.split(","));
- pushMessageService.update(successLU);
+ /** @Author hx
+ * @Description 消息集中推送
+ * @Date 2023/4/4 15:31
+ * @Param [list] 消息推送记录
+ * @return void
+ **/
+ private void sendMessage(List list) {
+ Map> collect = list.stream().collect(Collectors.groupingBy(MessagePushRecordEntity::getAccount));
+ String type = list.get(0).getType();
+ IMessageService service = MessageFactory.getMessageSend(type);
+ collect.forEach((account,records) -> {
+ MessagePushRecordEntity request = records.get(0);
+ // 完善推送内容
+ request.setContent(this.getPushContent(type,records));
+ Boolean flag = service.send(request);
+ List ids = records.stream().map(MessagePushRecordEntity::getId).collect(Collectors.toList());
+ // 更新消息推送状态
+ LambdaUpdateWrapper lwq = Wrappers.lambdaUpdate()
+ .set(MessagePushRecordEntity::getStatus, flag ? MessageConstants.PUSH_SUCCESS : MessageConstants.PUSH_FAILED)
+ .set(MessagePushRecordEntity::getPushTime,LocalDateTime.now())
+ .in(MessagePushRecordEntity::getId, ids);
+ recordService.update(lwq);
});
}
- /**
- * 获取推送消息内容体 根据用户拆分出多条短信推送
- * @param pushMessageList
- * @return
- */
- private List transform(List pushMessageList) {
- return pushMessageList.stream().map(m -> {
- JSONObject object = JSONObject.parseObject(m.getMessageContent());
- object.put(MESSAGE_ID,m.getId());
- return object;
- }).filter(object -> Func.isNotEmpty(object.getString("phones"))).collect(Collectors.toList());
+ /** @Author hx
+ * @Description 获取群推送内容
+ * @Date 2023/4/4 16:06
+ * @Param [type, list]
+ * @return java.lang.String
+ **/
+ private String getPushContent(String type,List list) {
+ if(MessageConstants.APP_NAME.equals(type)) {
+ return list.stream().map(MessagePushRecordEntity::getContent).collect(Collectors.joining("\r\n"));
+ }
+ else if(MessageConstants.SMS_PUSH.equals(type)) {
+ Map params = new HashMap<>();
+ list.stream().map(MessagePushRecordEntity::getContent).forEachOrdered(record -> {
+ JSONObject param = JSONObject.parseObject(record);
+ param.forEach((k,v) -> {
+ params.put(k, params.containsKey(k) && Func.isNotEmpty(params.get(k)) ? params.get(k) + "," + v : (String) v);
+ });
+ });
+ return JSON.toJSONString(params);
+ }
+ return null;
}
-
}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/schedule/MessagePushScheduleOld.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/schedule/MessagePushScheduleOld.java
new file mode 100644
index 0000000..00862dc
--- /dev/null
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/schedule/MessagePushScheduleOld.java
@@ -0,0 +1,130 @@
+package com.hnac.hzims.message.schedule;
+
+import cn.hutool.core.map.MapUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.hnac.hzims.common.utils.DateUtil;
+import com.hnac.hzims.message.configure.service.ISmsConfigService;
+import com.hnac.hzims.message.dto.PushMessageDTO;
+import com.hnac.hzims.message.dto.SmsPushDto;
+import com.hnac.hzims.message.entity.PushMessageEntity;
+import com.hnac.hzims.message.entity.config.SmsConfigEntity;
+import com.hnac.hzims.message.push.service.IPushService;
+import com.hnac.hzims.message.service.IPushMessageService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import com.xxl.job.core.log.XxlJobLogger;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.CollectionUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.hnac.hzims.message.constants.XxlJobConstants.*;
+
+/**
+ * 消息中心定时推送任务调度
+ * @author hx
+ */
+@Component
+@Slf4j
+public class MessagePushScheduleOld {
+ @Autowired
+ private ISmsConfigService smsConfigService;
+ @Autowired
+ private IPushMessageService pushMessageService;
+ @Autowired
+ @Qualifier("smsPushService")
+ private IPushService pushService;
+
+ public static final String MESSAGE_ID = "messageId";
+
+ /**
+ * 消息推送根据推送人分时段推送任务调度
+ * @param params 暂不支持参数参入执行调度任务
+ * @return
+ */
+ @XxlJob(PUSH_SMS_MESSAGE_BY_NOTICE)
+ public ReturnT pushSmsMessageByNotice(String params) {
+ List list = smsConfigService.list();
+ list.stream().filter(e -> Func.isNotEmpty(e.getDuration()) && Func.isNotEmpty(e.getTimeUnit())).forEach(smsConfigEntity -> {
+ //查询出规定时段内的短信数量统一发送
+ // 获取配置的时间范围内的消息
+ LocalDateTime endTime = DateUtil.plus(LocalDateTime.now(), smsConfigEntity.getDuration(), smsConfigEntity.getTimeUnit());
+ PushMessageDTO pushMessageDTO = new PushMessageDTO();
+ pushMessageDTO.setStartTime(LocalDateTime.now());
+ pushMessageDTO.setEndTime(endTime);
+ pushMessageDTO.setBusinessKey(smsConfigEntity.getBusinessKey());
+ pushMessageDTO.setIsPush(false);
+ List pushMessageList = pushMessageService.list(pushMessageDTO);
+ XxlJobLogger.log("开始推送短信,推送条数为:"+pushMessageList.size());
+ // 获取推送消息内容体 根据用户拆分出多条短信推送
+ List splitSmsList = this.transform(pushMessageList);
+ if(CollectionUtil.isEmpty(splitSmsList)) {
+ return;
+ }
+ this.push(splitSmsList,smsConfigEntity);
+
+ });
+ return ReturnT.SUCCESS;
+ }
+
+ /**
+ * 推送短信
+ * @param splitSmsList 短信内容
+ * @param configEntity 短信配置
+ */
+ private void push(List splitSmsList,SmsConfigEntity configEntity) {
+ Map> phoneMap = splitSmsList.stream().collect(Collectors.groupingBy(sms -> sms.getString("phones")));
+ phoneMap.forEach((phone,messages) -> {
+ String messageIds = messages.stream().map(message -> message.getString(MESSAGE_ID)).collect(Collectors.joining(","));
+ List smsPushDtoList = JSONArray.parseArray(JSON.toJSONString(messages), SmsPushDto.class);
+ SmsPushDto templatePush = smsPushDtoList.get(0);
+ Map params = new HashMap<>();
+ Arrays.stream(configEntity.getContentVariables().split(",")).forEachOrdered(contentVariable ->{
+ String value = smsPushDtoList.stream().map(SmsPushDto::getParams)
+ .map(pm -> MapUtil.getStr(pm,contentVariable)).collect(Collectors.joining(","));
+ params.put(contentVariable,value);
+ });
+ templatePush.setParams(params);
+ XxlJobLogger.log(">>>>>>>>>>开始推送消息,推送内容为:"+JSONObject.toJSONString(templatePush)+"<<<<<<<<<<");
+ LambdaUpdateWrapper pushLU = Wrappers.lambdaUpdate()
+ .set(PushMessageEntity::getIsPush, true)
+ .in(PushMessageEntity::getId, messageIds.split(","));
+ pushMessageService.update(pushLU);
+ R pushResult = pushService.send(templatePush);
+ LambdaUpdateWrapper successLU = Wrappers.lambdaUpdate();
+ if(pushResult.isSuccess()) {
+ successLU.set(PushMessageEntity::getIsSuccess,true);
+ }
+ else {
+ successLU.set(PushMessageEntity::getIsSuccess,false);
+ }
+ successLU.in(PushMessageEntity::getId, messageIds.split(","));
+ pushMessageService.update(successLU);
+ });
+ }
+
+ /**
+ * 获取推送消息内容体 根据用户拆分出多条短信推送
+ * @param pushMessageList
+ * @return
+ */
+ private List transform(List pushMessageList) {
+ return pushMessageList.stream().map(m -> {
+ JSONObject object = JSONObject.parseObject(m.getMessageContent());
+ object.put(MESSAGE_ID,m.getId());
+ return object;
+ }).filter(object -> Func.isNotEmpty(object.getString("phones"))).collect(Collectors.toList());
+ }
+
+}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessagePushRecordService.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessagePushRecordService.java
new file mode 100644
index 0000000..4ae863a
--- /dev/null
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessagePushRecordService.java
@@ -0,0 +1,35 @@
+package com.hnac.hzims.message.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.hnac.hzims.message.entity.MessagePushRecordEntity;
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.core.mp.support.Query;
+
+import java.util.List;
+
+public interface IMessagePushRecordService extends BaseService {
+
+ /**
+ * 查询消息推送记录列表
+ * @param request 查询条件
+ * @return 消息记录列表
+ */
+ List list(MessagePushRecordEntity request);
+
+ /**
+ * 分页查询消息推送记录列表
+ * @param request 查询条件
+ * @param query 分页
+ * @return 消息记录列表
+ */
+ IPage listPage(MessagePushRecordEntity request, Query query);
+
+ /** @Author hx
+ * @Description 根据ID发送短信
+ * @Date 2023/4/4 17:37
+ * @Param ids 消息记录ID
+ * @return
+ **/
+ Boolean send(String id);
+
+}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessageService.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessageService.java
index c0f9574..fbb4ae0 100644
--- a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessageService.java
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessageService.java
@@ -2,6 +2,7 @@ package com.hnac.hzims.message.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hnac.hzims.message.dto.PushDto;
+import com.hnac.hzims.message.entity.MessagePushRecordEntity;
import org.springblade.core.tool.api.R;
/**
@@ -16,4 +17,6 @@ public interface IMessageService {
*/
R send(T pushObject);
+ Boolean send(MessagePushRecordEntity request);
+
}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessageTemplateService.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessageTemplateService.java
new file mode 100644
index 0000000..14fb453
--- /dev/null
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessageTemplateService.java
@@ -0,0 +1,28 @@
+package com.hnac.hzims.message.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.hnac.hzims.message.entity.config.MessageTemplateEntity;
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.core.mp.support.Query;
+
+import java.util.List;
+
+public interface IMessageTemplateService extends BaseService {
+
+ /**
+ * 查询消息模板列表
+ * @param req 查询条件
+ * @return 消息模板列表
+ */
+ List list(MessageTemplateEntity req);
+
+
+ /**
+ * 分页查询消息
+ * @param req 查询条件
+ * @param query 分页条件
+ * @return 消息模板分页查询结果
+ */
+ IPage listPage(MessageTemplateEntity req, Query query);
+
+}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MailMessageServiceImpl.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MailMessageServiceImpl.java
index 1181a69..03051ba 100644
--- a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MailMessageServiceImpl.java
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MailMessageServiceImpl.java
@@ -3,6 +3,7 @@ package com.hnac.hzims.message.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.hnac.hzims.message.MessageConstants;
+import com.hnac.hzims.message.entity.MessagePushRecordEntity;
import com.hnac.hzims.message.log.aspect.SaveLog;
import com.hnac.hzims.message.dto.MailPushDto;
import com.hnac.hzims.message.dto.PushDto;
@@ -75,4 +76,9 @@ public class MailMessageServiceImpl implements IMessageService {
return R.success("发送成功!");
}
+ @Override
+ public Boolean send(MessagePushRecordEntity request) {
+ return null;
+ }
+
}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MessagePushRecordServiceImpl.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MessagePushRecordServiceImpl.java
new file mode 100644
index 0000000..7f615b3
--- /dev/null
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MessagePushRecordServiceImpl.java
@@ -0,0 +1,55 @@
+package com.hnac.hzims.message.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.hnac.hzims.message.config.MessageFactory;
+import com.hnac.hzims.message.entity.MessagePushRecordEntity;
+import com.hnac.hzims.message.mapper.MessagePushRecordMapper;
+import com.hnac.hzims.message.service.IMessagePushRecordService;
+import com.hnac.hzims.message.service.IMessageService;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+@Slf4j
+public class MessagePushRecordServiceImpl extends BaseServiceImpl implements IMessagePushRecordService {
+
+ @Override
+ public List list(MessagePushRecordEntity request) {
+ return this.list(this.getQueryWrapper(request));
+ }
+
+ @Override
+ public IPage listPage(MessagePushRecordEntity request, Query query) {
+ return this.page(Condition.getPage(query),this.getQueryWrapper(request));
+ }
+
+ @Override
+ public Boolean send(String id) {
+ MessagePushRecordEntity record = this.getById(id);
+ IMessageService messageSend = MessageFactory.getMessageSend(record.getType());
+ return messageSend.send(record);
+ }
+
+ /**
+ * 获取 QueryWrapper
+ * @param request 查询条件
+ * @return QueryWrapper
+ */
+ private LambdaQueryWrapper getQueryWrapper(MessagePushRecordEntity request) {
+ LambdaQueryWrapper lambda = Condition.getQueryWrapper(request).lambda();
+ if(Func.isNotEmpty(request.getStatus())) {
+ lambda.eq(MessagePushRecordEntity::getStatus,request.getStatus());
+ }
+ return lambda;
+ }
+}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MessageTemplateServiceImpl.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MessageTemplateServiceImpl.java
new file mode 100644
index 0000000..a446c39
--- /dev/null
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MessageTemplateServiceImpl.java
@@ -0,0 +1,44 @@
+package com.hnac.hzims.message.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.hnac.hzims.common.utils.Condition;
+import com.hnac.hzims.message.entity.config.MessageTemplateEntity;
+import com.hnac.hzims.message.mapper.MessageTemplateMapper;
+import com.hnac.hzims.message.service.IMessageTemplateService;
+import groovy.util.logging.Slf4j;
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+@Slf4j
+public class MessageTemplateServiceImpl extends BaseServiceImpl implements IMessageTemplateService {
+ @Override
+ public List list(MessageTemplateEntity req) {
+ return this.list(this.getQueryWrapper(req));
+ }
+
+ @Override
+ public IPage listPage(MessageTemplateEntity req, Query query) {
+ return this.page(Condition.getPage(query) , this.getQueryWrapper(req));
+ }
+
+ /**
+ * 根据查询条件获取消息模板QueryWrapper
+ * @param req 查询条件
+ * @return 消息模板QueryWrapper
+ */
+ private LambdaQueryWrapper getQueryWrapper(MessageTemplateEntity req) {
+ LambdaQueryWrapper lambda = Condition.getQueryWrapper(req).lambda();
+ if(Func.isNotEmpty(req.getStatus())) {
+ lambda.eq(MessageTemplateEntity::getStatus,req.getStatus());
+ }
+ return lambda;
+ }
+}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/PushMessageServiceImpl.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/PushMessageServiceImpl.java
index 24c6107..6f19844 100644
--- a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/PushMessageServiceImpl.java
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/PushMessageServiceImpl.java
@@ -2,23 +2,32 @@ package com.hnac.hzims.message.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Lists;
import com.hnac.hzims.message.MessageConstants;
+import com.hnac.hzims.message.entity.MessagePushRecordEntity;
import com.hnac.hzims.message.log.aspect.SaveLog;
import com.hnac.hzims.message.dto.AppPushDto;
import com.hnac.hzims.message.dto.PushDto;
import com.hnac.hzims.message.service.IMessageService;
import com.hnac.hzinfo.core.push.enums.PlatformType;
+import com.hnac.hzinfo.core.push.enums.PushAudienceType;
import com.hnac.hzinfo.core.push.model.PushAudience;
import com.hnac.hzinfo.core.push.model.PushInfo;
import com.hnac.hzinfo.core.push.model.PushPlatform;
+import com.hnac.hzinfo.core.push.model.PushResponse;
import lombok.AllArgsConstructor;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.log.logger.BladeLogger;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.resource.feign.IPushClient;
import org.springblade.resource.vo.PushInfoVO;
import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicReference;
@@ -30,6 +39,7 @@ import java.util.concurrent.atomic.AtomicReference;
public class PushMessageServiceImpl implements IMessageService {
private final IPushClient pushClient;
+ private final BladeLogger logger;
@Override
@SaveLog(type = MessageConstants.APP_NAME)
@@ -73,4 +83,38 @@ public class PushMessageServiceImpl implements IMessageService {
});
return R.success("推送成功");
}
+
+ @Override
+ public Boolean send(MessagePushRecordEntity request) {
+ PushInfoVO pushInfoVO = new PushInfoVO();
+ pushInfoVO.setTenantId(Func.isNotEmpty(AuthUtil.getTenantId()) ? AuthUtil.getTenantId() : request.getTenantId());
+ ArrayList platformTypes = Lists.newArrayList(PlatformType.Android, PlatformType.IOS);
+ platformTypes.forEach(platformType -> {
+ PushPlatform platform = PushPlatform.newBuilder().addPlatformType(platformType).build();
+ R response;
+ // 安卓推送
+ if(PlatformType.Android.equals(platformType)) {
+ PushAudience pushAudience = PushAudience.newBuilder().addPushAudienceType(PushAudienceType.TAG, Lists.newArrayList(request.getPusher())).build();
+ PushInfo pushInfo = new PushInfo("ops-push-android", request.getSubject(), request.getContent(),
+ "", null, platform, pushAudience);
+ pushInfoVO.setPushInfo(pushInfo);
+ response = pushClient.tenantPush(pushInfoVO);
+ }
+ // IOS推送
+ else if(PlatformType.IOS.equals(platformType)) {
+ PushAudience pushAudience = PushAudience.newBuilder().addPushAudienceType(PushAudienceType.TAG, Lists.newArrayList(request.getPusher())).build();
+ PushInfo pushInfo = new PushInfo("ops-push-ios", request.getSubject(), request.getContent(),
+ "", null, platform, pushAudience);
+ pushInfoVO.setPushInfo(pushInfo);
+ response = pushClient.tenantPush(pushInfoVO);
+ } else {
+ response = null;
+ }
+ Assert.isTrue(ObjectUtil.isNotEmpty(response) && response.isSuccess(),() -> {
+ logger.error("hzims-message:PushMessageServiceImpl:send", "请求参数为:"+JSON.toJSONString(pushInfoVO)+"错误信息为:"+response.getMsg());
+ throw new ServiceException(response.getMsg());
+ });
+ });
+ return true;
+ }
}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/SmsMessageServiceImpl.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/SmsMessageServiceImpl.java
index 2f1bc0f..b614eb6 100644
--- a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/SmsMessageServiceImpl.java
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/SmsMessageServiceImpl.java
@@ -2,7 +2,9 @@ package com.hnac.hzims.message.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.google.api.client.util.Value;
import com.hnac.hzims.message.MessageConstants;
+import com.hnac.hzims.message.entity.MessagePushRecordEntity;
import com.hnac.hzims.message.log.aspect.SaveLog;
import com.hnac.hzims.message.dto.PushDto;
import com.hnac.hzims.message.dto.SmsPushDto;
@@ -10,11 +12,13 @@ import com.hnac.hzims.message.service.IMessageService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.sms.model.SmsResponse;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.resource.feign.ISmsClient;
import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
/**
* @author hx
@@ -41,4 +45,18 @@ public class SmsMessageServiceImpl implements IMessageService {
}
return response;
}
+
+ @Override
+ public Boolean send(MessagePushRecordEntity request) {
+ R response = smsClient.sendMessage(
+ Func.isNotEmpty(AuthUtil.getTenantId()) ? AuthUtil.getTenantId() : request.getTenantId(),
+ request.getResourceCode(),
+ request.getContent(),
+ request.getAccount()
+ );
+ Assert.isTrue(response.isSuccess(),() -> {
+ throw new ServiceException(response.getMsg());
+ });
+ return response.getData().isSuccess();
+ }
}
diff --git a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/WebsocketServiceImpl.java b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/WebsocketServiceImpl.java
index b71b4ce..9b9ddfb 100644
--- a/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/WebsocketServiceImpl.java
+++ b/hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/WebsocketServiceImpl.java
@@ -3,6 +3,7 @@ package com.hnac.hzims.message.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.hnac.hzims.message.MessageConstants;
+import com.hnac.hzims.message.entity.MessagePushRecordEntity;
import com.hnac.hzims.message.log.aspect.SaveLog;
import com.hnac.hzims.message.dto.PushDto;
import com.hnac.hzims.message.dto.WsPushDto;
@@ -83,4 +84,9 @@ public class WebsocketServiceImpl implements IMessageService {
}
return R.success("推送成功");
}
+
+ @Override
+ public Boolean send(MessagePushRecordEntity request) {
+ return null;
+ }
}