From 62f8184399e2485b87454bf55e96077743fa7751 Mon Sep 17 00:00:00 2001 From: liangqitao <12345678> Date: Wed, 15 Dec 2021 17:06:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BB=99=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E7=9A=84=E4=BC=81=E4=B8=9A=E7=AB=AF=E7=94=A8=E6=88=B7=E5=8F=91?= =?UTF-8?q?=E9=80=81=E7=AB=99=E5=86=85=E6=B6=88=E6=81=AF=E7=9A=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/common/common/ProjectCommon.java | 4 + .../PayCompanyAndContactsManagement.java | 3 + .../company/entity/PayCompanyManagement.java | 3 + .../SystemSendMessageController.java | 125 ++++++++++++++++++ 4 files changed, 135 insertions(+) create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/system/controller/SystemSendMessageController.java diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java index a7d62c56..2a87b1ed 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java @@ -134,6 +134,10 @@ public class ProjectCommon { * 催款提醒 */ public final static String ALERT8 = "8"; + /** + * 系统通知 + */ + public final static String ALERT12 = "12"; /** * 1短信 2邮件 3系统 */ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/company/entity/PayCompanyAndContactsManagement.java b/jero-boot-incoming-payment/src/main/java/com/jero/company/entity/PayCompanyAndContactsManagement.java index 4a26ad26..a47e38c1 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/company/entity/PayCompanyAndContactsManagement.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/company/entity/PayCompanyAndContactsManagement.java @@ -64,4 +64,7 @@ public class PayCompanyAndContactsManagement implements Serializable { /**邮政编码*/ @ApiModelProperty(value = "邮政编码") private String postalCode; + /**会员性质字段*/ + @ApiModelProperty(value = "会员性质字段") + private String memberNature; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/company/entity/PayCompanyManagement.java b/jero-boot-incoming-payment/src/main/java/com/jero/company/entity/PayCompanyManagement.java index d8483a33..35a38243 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/company/entity/PayCompanyManagement.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/company/entity/PayCompanyManagement.java @@ -113,6 +113,9 @@ public class PayCompanyManagement implements Serializable { @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "记录第一次编辑时间") private Date editTime; + /**会员性质字段*/ + @ApiModelProperty(value = "会员性质字段") + private String memberNature; /**创建人*/ @ApiModelProperty(value = "创建人") private String createBy; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/system/controller/SystemSendMessageController.java b/jero-boot-incoming-payment/src/main/java/com/jero/system/controller/SystemSendMessageController.java new file mode 100644 index 00000000..f18b656d --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/system/controller/SystemSendMessageController.java @@ -0,0 +1,125 @@ +package com.jero.system.controller; + +import com.alibaba.fastjson.JSONObject; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.common.ProjectCommon; +import com.jero.common.constant.CommonConstant; +import com.jero.common.constant.WebsocketConst; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.PasswordUtil; +import com.jero.common.util.oConvertUtils; +import com.jero.company.entity.PayContactsManagement; +import com.jero.company.service.IPayContactsManagementService; +import com.jero.modules.message.websocket.WebSocket; +import com.jero.modules.system.entity.SysAnnouncement; +import com.jero.modules.system.entity.SysAnnouncementSend; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysAnnouncementSendService; +import com.jero.modules.system.service.ISysAnnouncementService; +import com.jero.modules.system.service.ISysUserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.core.env.Environment; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.Objects; + + +/** + * @Description: 发送站内消息 + * @Author: jeecg-boot + * @Date: 2021-09-24 + * @Version: V1.0 + */ +@Api(tags="发送站内消息") +@RestController +@RequestMapping("/send/message") +@Slf4j +public class SystemSendMessageController { + + @Resource + private IPayContactsManagementService payContactsManagementService; + @Resource + private ISysUserService sysUserService; + @Resource + private ISysAnnouncementSendService sysAnnouncementSendService; + @Resource + private WebSocket webSocket; + @Resource + private Environment env; + @Resource + private ISysAnnouncementService sysAnnouncementService; + + /** + * 发送站内消息 + * + * @return + */ + @AutoLog(value = "发送站内消息",operateType = 2) + @ApiOperation(value="发送站内消息", notes="发送站内消息") + @PostMapping(value = "/sendAllUserMessage") +// @RequiresPermissions("system:dept:save") + public Result sendAllUserMessage(@RequestParam("content") String content) { + List listPayContactsManagement = payContactsManagementService.list(); + if(!CollectionUtils.isEmpty(listPayContactsManagement)){ + listPayContactsManagement.parallelStream().forEach(p->{ + try { + String toUser = PasswordUtil.decrypt(p.getPhone()); + + SysAnnouncement announcement = new SysAnnouncement(); + announcement.setTitile(ProjectCommon.ALERT12); + announcement.setMsgContent(content); + announcement.setSender(env.getProperty("message.systemEmailUser")); + announcement.setPriority(CommonConstant.PRIORITY_M); + announcement.setMsgType(CommonConstant.MSG_TYPE_UESR); + announcement.setSendStatus(CommonConstant.HAS_SEND); + announcement.setSendTime(new Date()); + announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2); + announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0)); + sysAnnouncementService.save(announcement); + // 2.插入用户通告阅读标记表记录 + String[] userIds = toUser.split(","); + String anntId = announcement.getId(); + for (String id : userIds) { + if (oConvertUtils.isNotEmpty(id)) { + LoginUser user = new LoginUser(); + SysUser sysUser = sysUserService.getUserByName(id); + if (Objects.isNull(sysUser)) { + com.jero.modules.pay.company.entity.PayContactsManagement contactsManagement = sysUserService.getPayContactsManagementByPhone(PasswordUtil.encrypt(id)); + if (contactsManagement == null) { + continue; + } else { + BeanUtils.copyProperties(contactsManagement, user); + } + } else { + BeanUtils.copyProperties(sysUser, user); + } + SysAnnouncementSend announcementSend = new SysAnnouncementSend(); + announcementSend.setAnntId(anntId); + announcementSend.setUserId(user.getId()); + announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG); + sysAnnouncementSendService.save(announcementSend); + JSONObject obj = new JSONObject(); + obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_USER); + obj.put(WebsocketConst.MSG_USER_ID, user.getId()); + obj.put(WebsocketConst.MSG_ID, announcement.getId()); + obj.put(WebsocketConst.MSG_TXT, ProjectCommon.ALERT12); + webSocket.sendMessage(user.getId(), obj.toJSONString()); + } + } + }catch (Exception e){ + log.error("发送消息异常",e); + throw new JeroBootException("消息发送失败!"); + } + }); + } + return Result.OK("操作成功"); + } +}