From 42bdd03da78c520aa10db4ce05b827b9a5e4b551 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Wed, 2 Mar 2022 18:53:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=BA=93--=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/enums/MessageTypeEnum.java | 36 +++++++++ .../SysAnnouncementSendController.java | 81 +++++++++++++------ .../system/entity/SysAnnouncement.java | 11 ++- .../mapper/SysAnnouncementSendMapper.java | 6 +- .../modules/system/mapper/SysUserMapper.java | 16 ++-- .../mapper/xml/SysAnnouncementMapper.xml | 16 ++-- .../mapper/xml/SysAnnouncementSendMapper.xml | 44 ++++++++-- .../system/mapper/xml/SysUserMapper.xml | 15 +++- .../system/model/AnnouncementSendModel.java | 8 +- .../service/ISysAnnouncementSendService.java | 4 +- .../impl/SysAnnouncementSendServiceImpl.java | 10 ++- .../impl/SysAnnouncementServiceImpl.java | 8 +- .../BussDocumentLibraryEOServiceImpl.java | 80 +++++++++++++++--- 13 files changed, 267 insertions(+), 68 deletions(-) create mode 100644 jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/MessageTypeEnum.java diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/MessageTypeEnum.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/MessageTypeEnum.java new file mode 100644 index 000000000..7b5e997ef --- /dev/null +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/MessageTypeEnum.java @@ -0,0 +1,36 @@ +package com.jero.common.constant.enums; + +/** + * @description + * @date 2022/1/21 15:22 + * @auth zhn + */ +public enum MessageTypeEnum { + READ("订阅通知","1"), + WARN("预警信息","2"), + PUSH("转发推送","3"); + + String name; + String value; + + private MessageTypeEnum(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysAnnouncementSendController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysAnnouncementSendController.java index fe8cc372a..e6440be47 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysAnnouncementSendController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysAnnouncementSendController.java @@ -1,11 +1,11 @@ package com.jero.modules.system.controller; -import java.util.Arrays; -import java.util.Date; - -import javax.servlet.http.HttpServletRequest; - -import org.apache.shiro.SecurityUtils; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; import com.jero.common.constant.CommonConstant; import com.jero.common.system.vo.LoginUser; @@ -13,6 +13,9 @@ import com.jero.common.util.oConvertUtils; import com.jero.modules.system.entity.SysAnnouncementSend; import com.jero.modules.system.model.AnnouncementSendModel; import com.jero.modules.system.service.ISysAnnouncementSendService; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -23,14 +26,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; - -import lombok.extern.slf4j.Slf4j; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; /** * @Title: Controller @@ -39,13 +39,15 @@ import lombok.extern.slf4j.Slf4j; * @Date: 2019-02-21 * @Version: V1.0 */ + +@Api(tags="消息") @RestController @RequestMapping("/sys/sysAnnouncementSend") @Slf4j public class SysAnnouncementSendController { @Autowired private ISysAnnouncementSendService sysAnnouncementSendService; - + /** * 分页列表查询 * @param sysAnnouncementSend @@ -81,7 +83,7 @@ public class SysAnnouncementSendController { result.setResult(pageList); return result; } - + /** * 添加 * @param sysAnnouncementSend @@ -99,7 +101,7 @@ public class SysAnnouncementSendController { } return result; } - + /** * 编辑 * @param sysAnnouncementSend @@ -118,10 +120,10 @@ public class SysAnnouncementSendController { result.success("修改成功!"); } } - + return result; } - + /** * 通过id删除 * @param id @@ -139,10 +141,10 @@ public class SysAnnouncementSendController { result.success("删除成功!"); } } - + return result; } - + /** * 批量删除 * @param ids @@ -159,7 +161,7 @@ public class SysAnnouncementSendController { } return result; } - + /** * 通过id查询 * @param id @@ -177,7 +179,7 @@ public class SysAnnouncementSendController { } return result; } - + /** * @功能:更新用户系统消息阅读状态 * @param json @@ -198,7 +200,7 @@ public class SysAnnouncementSendController { result.setSuccess(true); return result; } - + /** * @功能:获取我的消息 * @return @@ -239,4 +241,35 @@ public class SysAnnouncementSendController { result.setMessage("全部已读"); return result; } + + /** + * @功能:标记已读 + * @return + */ + @GetMapping(value = "/read") + public Result read(String ids) { + Result result = new Result(); + List list = new ArrayList<>(); + for (String id : ids.split(",")) { + SysAnnouncementSend sysAnnouncementSend = new SysAnnouncementSend(); + sysAnnouncementSend.setId(id); + sysAnnouncementSend.setReadFlag("1"); + list.add(sysAnnouncementSend); + } + sysAnnouncementSendService.updateBatchById(list); + result.setSuccess(true); + result.setMessage("标记已读"); + return result; + } + /** + * @功能:查询所有的未读消息 + * @return + */ + @GetMapping(value = "/getMessageUnreadList") + public Result getMessageUnreadList() { + Result result = new Result(); + List messageUnreadList = sysAnnouncementSendService.getMessageUnreadList(); + result.OK(messageUnreadList); + return result; + } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysAnnouncement.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysAnnouncement.java index 01642f1e0..779be4cd2 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysAnnouncement.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysAnnouncement.java @@ -38,6 +38,11 @@ public class SysAnnouncement implements Serializable { */ @Excel(name = "内容", width = 30) private java.lang.String msgContent; + + /** + * 详细内容 + */ + private java.lang.String msgContentInfo; /** * 开始时间 */ @@ -63,7 +68,7 @@ public class SysAnnouncement implements Serializable { @Excel(name = "优先级", width = 15, dicCode = "priority") @Dict(dicCode = "priority") private java.lang.String priority; - + /** * 消息类型1:通知公告2:系统消息 */ @@ -144,4 +149,8 @@ public class SysAnnouncement implements Serializable { * 摘要 */ private java.lang.String msgAbstract; + /** + * 文档id + */ + private java.lang.String documentId; } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysAnnouncementSendMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysAnnouncementSendMapper.java index bf116af71..7da638996 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysAnnouncementSendMapper.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysAnnouncementSendMapper.java @@ -22,10 +22,12 @@ public interface SysAnnouncementSendMapper extends BaseMapper getMyAnnouncementSendList(Page page,@Param("announcementSendModel") AnnouncementSendModel announcementSendModel); + public List getMessageUnreadList(@Param("userId") String userId); + } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysUserMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysUserMapper.java index 0032e1c00..3fcbe8ebb 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysUserMapper.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysUserMapper.java @@ -27,6 +27,12 @@ public interface SysUserMapper extends BaseMapper { * @return */ public SysUser getUserByName(@Param("username") String username); + /** + * 通过用户账号查询用户信息(批量) + * @param usernames + * @return + */ + public List getUserListByNames(@Param("usernames") String usernames); /** * 根据部门Id查询用户信息 @@ -58,22 +64,22 @@ public interface SysUserMapper extends BaseMapper { * @return */ IPage getUserByRoleId(Page page, @Param("roleId") String roleId, @Param("username") String username); - + /** * 根据用户名设置部门ID * @param username * @param departId */ void updateUserDepart(@Param("username") String username,@Param("orgCode") String orgCode); - + /** * 根据手机号查询用户信息 * @param phone * @return */ public SysUser getUserByPhone(@Param("phone") String phone); - - + + /** * 根据邮箱查询用户信息 * @param email @@ -132,7 +138,7 @@ public interface SysUserMapper extends BaseMapper { /** 更新空字符串为null【此写法有sql注入风险,禁止随便用】 */ int updateNullByEmptyString(@Param("fieldName") String fieldName); - + /** * 根据部门Ids,查询部门下用户信息 * @param departIds diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysAnnouncementMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysAnnouncementMapper.xml index 7fd44a618..1efdc73a6 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysAnnouncementMapper.xml +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysAnnouncementMapper.xml @@ -6,6 +6,7 @@ + @@ -25,16 +26,17 @@ + - - + + - \ No newline at end of file + diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysAnnouncementSendMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysAnnouncementSendMapper.xml index de13e8b6b..13c9a18aa 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysAnnouncementSendMapper.xml +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysAnnouncementSendMapper.xml @@ -1,13 +1,14 @@ - + + @@ -15,13 +16,14 @@ + - + - + + - \ No newline at end of file + diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml index 4166c093f..8056f6b43 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml @@ -6,6 +6,15 @@ + + - + UPDATE sys_user SET org_code = #{orgCode} where username = #{username} @@ -55,7 +64,7 @@ - + - \ No newline at end of file + diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/model/AnnouncementSendModel.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/model/AnnouncementSendModel.java index f6ba49567..6e252d172 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/model/AnnouncementSendModel.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/model/AnnouncementSendModel.java @@ -20,7 +20,7 @@ import lombok.Data; @Data public class AnnouncementSendModel implements Serializable { private static final long serialVersionUID = 1L; - + /**id*/ @TableId(type = IdType.ASSIGN_ID) private java.lang.String id; @@ -32,6 +32,8 @@ public class AnnouncementSendModel implements Serializable { private java.lang.String titile; /**内容*/ private java.lang.String msgContent; + /**详细内容*/ + private java.lang.String msgContentInfo; /**发布人*/ private java.lang.String sender; /**优先级(L低,M中,H高)*/ @@ -76,5 +78,9 @@ public class AnnouncementSendModel implements Serializable { * 摘要 */ private java.lang.String msgAbstract; + /** + * 文档id + */ + private java.lang.String documentId; } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysAnnouncementSendService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysAnnouncementSendService.java index 744130027..d80d113d5 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysAnnouncementSendService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysAnnouncementSendService.java @@ -17,7 +17,7 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface ISysAnnouncementSendService extends IService { public List queryByUserId(String userId); - + /** * @功能:获取我的消息 * @param announcementSendModel @@ -25,4 +25,6 @@ public interface ISysAnnouncementSendService extends IService getMyAnnouncementSendPage(Page page,AnnouncementSendModel announcementSendModel); + List getMessageUnreadList(); + } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementSendServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementSendServiceImpl.java index 52a65b6a4..c9f62b243 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementSendServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementSendServiceImpl.java @@ -4,10 +4,12 @@ import java.util.List; import javax.annotation.Resource; +import com.jero.common.system.vo.LoginUser; import com.jero.modules.system.entity.SysAnnouncementSend; import com.jero.modules.system.mapper.SysAnnouncementSendMapper; import com.jero.modules.system.model.AnnouncementSendModel; import com.jero.modules.system.service.ISysAnnouncementSendService; +import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -24,7 +26,7 @@ public class SysAnnouncementSendServiceImpl extends ServiceImpl queryByUserId(String userId) { return sysAnnouncementSendMapper.queryByUserId(userId); @@ -36,4 +38,10 @@ public class SysAnnouncementSendServiceImpl extends ServiceImpl getMessageUnreadList() { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + return sysAnnouncementSendMapper.getMessageUnreadList(sysUser.getId()); + } + } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementServiceImpl.java index 65e36eb80..b296f7b6f 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementServiceImpl.java @@ -32,10 +32,10 @@ public class SysAnnouncementServiceImpl extends ServiceImpl fieldFileList, List fieldPullList, String cut) { + StringBuilder sb = getUpdateInfo(map, dataList, fieldList, fieldDateList, fieldFileList, fieldPullList, cut); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (StringUtils.isNotBlank(sb)) { + String content = sb.substring(0, sb.length() - 1); + BussLogEO bussLogEO = new BussLogEO(); + bussLogEO.setDocumentId((String) map.get("id")); + bussLogEO.setContent(content); + bussLogEO.setCreateBy(sysUser.getRealname()); + iBussLogEOService.add(bussLogEO); + } + } + + @NotNull + private StringBuilder getUpdateInfo(Map map, List> dataList, List fieldList, List fieldDateList, List fieldFileList, List fieldPullList, String cut) { Map mapTemp = new HashMap<>(); mapCopy(map, mapTemp); //时间类型的字段 @@ -860,15 +887,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl map, List> dataList) { + private void sendMessage(Map map, + List> dataList, + List fieldList, + List fieldDateList, + List fieldFileList, + List fieldPullList, + String cut) { + //修改的内容 + StringBuilder sb = getUpdateInfo(map, dataList, fieldList, fieldDateList, fieldFileList, fieldPullList, cut); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String serialNumber = (String) dataList.get(0).get("serial_number"); + //只要修改了标准,就需要向订阅用户发送消息(内容为-->XXX对“GB 7258 进行了修改请及时查看”) + //1.先判断是否订阅 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(OnlCgformSubscribe::getDocumentId, (String)map.get("id")); + List onlCgformSubscribeList = iOnlCgformSubscribeService.list(lambdaQueryWrapper); + List userNameList = new ArrayList<>(); + if(onlCgformSubscribeList.size() != 0){ + for (OnlCgformSubscribe onlCgformSubscribe : onlCgformSubscribeList) { + userNameList.add(onlCgformSubscribe.getCreateBy()); + } + List userList = sysUserMapper.getUserListByNames(StringUtils.join(userNameList, ",")); + List userIdList = userList.stream().map(SysUser::getId).collect(Collectors.toList()); + + SysAnnouncement sysAnnouncement = new SysAnnouncement(); + sysAnnouncement.setDelFlag("0"); + sysAnnouncement.setSendStatus("0"); + sysAnnouncement.setSendTime(new Date()); + sysAnnouncement.setDocumentId((String) dataList.get(0).get("id")); + sysAnnouncement.setMsgCategory(MessageTypeEnum.READ.getValue());//消息类型 + sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_UESR);//指定用户 + sysAnnouncement.setMsgContent(sysUser.getRealname()+"对"+serialNumber+"进行了修改请及时查看"); + sysAnnouncement.setMsgContentInfo(sysUser.getRealname()+"修改标准"+serialNumber+"中"+sb.toString()); + sysAnnouncement.setUserIds(StringUtils.join(userIdList,",")); +//111111111111111111111111111111111 + sysAnnouncementService.saveAnnouncement(sysAnnouncement); + } //处理修改代替标准,发送通知 //修改时前端传参 String replaceStandard = (String) map.get("replace_standard"); @@ -1186,13 +1241,16 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.in(OnlCgformCollection::getDocumentId, idList); + wrapper.eq(OnlCgformCollection::getCreateBy,sysUser.getUsername()); List collectList = iOnlCgformCollectionService.list(wrapper); List collectIdList = collectList.stream().map(OnlCgformCollection::getDocumentId).collect(Collectors.toList()); //订阅 LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.in(OnlCgformSubscribe::getDocumentId, idList); + lambdaQueryWrapper.eq(OnlCgformSubscribe::getCreateBy,sysUser.getUsername()); List subscribeList = iOnlCgformSubscribeService.list(lambdaQueryWrapper); List subscribeIdList = subscribeList.stream().map(OnlCgformSubscribe::getDocumentId).collect(Collectors.toList());