Browse Source

消息通知改造

zouxuan 1 năm trước cách đây
mục cha
commit
57def845ad

+ 13 - 37
mec-application/src/main/java/com/ym/mec/web/controller/SchoolMessageController.java

@@ -1,49 +1,39 @@
 package com.ym.mec.web.controller;
 
 import com.alibaba.fastjson.JSON;
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.AppVersionInfoDao;
+import com.dayaedu.cbs.openfeign.wrapper.message.CbsMessageWrapper;
 import com.ym.mec.biz.dal.dto.SysMessageDto;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
 import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.vo.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
+
 @RestController
 @Api(tags = "消息服务")
 @RequestMapping("${app-config.url.web:}/schoolMessage")
 public class SchoolMessageController extends BaseController {
 
-    @Autowired
+    @Resource
     private SysMessageService sysMessageService;
-
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
-
-    @Autowired
-    private AppVersionInfoDao appVersionInfoDao;
+    @Resource
+    private SysUserService sysUserService;
 
     @ApiOperation("获取所有消息列表")
     @PostMapping(value = "list")
     public Object list(@RequestBody SysMessageQueryInfo queryInfo){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-
-        queryInfo.setUserId(sysUserFeignService.queryUserInfo().getId());
+        queryInfo.setUserId(sysUserService.getUserId());
         queryInfo.setType(3);
         queryInfo.setJpushType("SCHOOL");
-        PageInfo<SysMessageDto> pageInfo = sysMessageService.queryListPage(queryInfo);
-        return succeed(pageInfo);
+        return succeed(PageUtil.pageInfo(sysMessageService.queryListPage(queryInfo).feignData()));
     }
 
     @ApiOperation("获取消息分类类型")
@@ -59,31 +49,17 @@ public class SchoolMessageController extends BaseController {
     @ApiOperation("一键已读")
     @PostMapping("batchSetRead")
     public Object batchSetRead() {
-        int status = 1;
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return sysMessageService.updateStatus(sysUser.getId(), status,"SCHOOL") > 0 ? succeed() : failed();
+        return sysMessageService.updateStatus(sysUserService.getUserId(), 1,"SCHOOL") > 0 ? succeed() : failed();
     }
     @ApiOperation("设置已读")
     @PostMapping("setRead")
     public Object setRead(@ApiParam("id") Long id) {
-        int status = 1;
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return sysMessageService.updateOneStatus(id, status) > 0 ? succeed() : failed();
+        return sysMessageService.updateOneStatus(id, 1) > 0 ? succeed() : failed();
     }
 
     @ApiOperation(value = "查询用户未读消息条数")
     @GetMapping("/queryCountOfUnread")
     public Object queryCountOfUnread() {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        return succeed(sysMessageService.queryCountOfUnread(MessageSendMode.PUSH, sysUser.getId(),"SCHOOL", null));
+        return succeed(sysMessageService.queryCountOfUnread(MessageSendMode.PUSH, sysUserService.getUserId(),"SCHOOL", null));
     }
 }

+ 11 - 24
mec-application/src/main/java/com/ym/mec/web/controller/SysMessageController.java

@@ -1,26 +1,25 @@
 package com.ym.mec.web.controller;
 
 import com.alibaba.fastjson.JSON;
-import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.AppVersionInfoDao;
-import com.ym.mec.biz.dal.dto.SysMessageDto;
 import com.ym.mec.biz.dal.dto.SysMessageVo;
 import com.ym.mec.biz.dal.entity.AppVersionInfo;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
 import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.vo.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -29,28 +28,24 @@ import java.util.regex.Pattern;
 @RequestMapping("${app-config.url.web:}/sysMessage")
 public class SysMessageController extends BaseController {
 
-	@Autowired
+	@Resource
 	private SysMessageService sysMessageService;
 
-	@Autowired
-	private SysUserFeignService sysUserFeignService;
+	@Resource
+	private SysUserService sysUserService;
 
-	@Autowired
+	@Resource
 	private AppVersionInfoDao appVersionInfoDao;
 
 	@ApiOperation("获取所有消息列表")
 	@GetMapping(value = "list")
 	public Object list(SysMessageQueryInfo queryInfo){
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
+		SysUser sysUser = sysUserService.getUser();
 		if(!sysUser.getIsSuperAdmin()){
 			queryInfo.setUserId(sysUser.getId());
 		}
 		queryInfo.setType(MessageSendMode.SEO.getCode());
-		PageInfo<SysMessageDto> pageInfo = sysMessageService.queryListPage(queryInfo);
-		return succeed(pageInfo);
+		return succeed(PageUtil.pageInfo(sysMessageService.queryListPage(queryInfo).feignData()));
 	}
 
 	@ApiOperation("获取消息分类类型")
@@ -81,21 +76,13 @@ public class SysMessageController extends BaseController {
 	@ApiOperation("设置已读")
 	@PostMapping("setRead")
 	public Object setRead(Long id) {
-		int status = 1;
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
-		return sysMessageService.updateOneStatus(id, status) > 0 ? succeed() : failed();
+		return sysMessageService.updateOneStatus(id, 1) > 0 ? succeed() : failed();
 	}
 
 	@ApiOperation(value = "查询用户未读消息条数")
 	@GetMapping("/queryCountOfUnread")
 	public Object queryCountOfUnread() {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
+		SysUser sysUser = sysUserService.getUser();
 		return succeed(sysMessageService.queryCountOfUnread(MessageSendMode.SEO, sysUser.getId(),null, sysUser.getTenantId()));
 	}
 

+ 1 - 1
mec-auth/pom.xml

@@ -18,7 +18,7 @@
 		<dependency>
 			<groupId>com.dayaedu.cbs.openfeign</groupId>
 			<artifactId>dayaedu-openfeign-api</artifactId>
-			<version>1.0.0</version>
+			<version>1.0.4</version>
 		</dependency>
 		<!-- 引用Mybatis 和 Mysql驱动开始 -->
 		<dependency>

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/event/listener/SendSeoMessageListener.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.event.SendSeoMessageChangeEvent;
 import com.ym.mec.biz.service.SysEmployeePositionService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.tenant.TenantContextHolder;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.context.ApplicationListener;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
@@ -35,7 +36,7 @@ public class SendSeoMessageListener implements ApplicationListener<SendSeoMessag
         if(event.getTargetId() != null){
             targetUserIdList.add(event.getTargetId());
         }
-        if(targetUserIdList.size() > 0){
+        if(CollectionUtils.isNotEmpty(targetUserIdList)){
             sysMessageService.batchSeoMessage(targetUserIdList,
                     event.getMsgTemplate(),
                     event.getMemo(),

+ 10 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -1,32 +1,26 @@
 package com.ym.mec.biz.service;
 
-import java.net.MalformedURLException;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import com.ym.mec.biz.dal.dto.SysMessageDto;
+import com.dayaedu.cbs.openfeign.wrapper.message.CbsMessageWrapper;
+import com.microsvc.toolkit.common.response.template.R;
 import com.ym.mec.biz.dal.dto.SysMessageVo;
 import com.ym.mec.biz.dal.entity.ImSendGroupMessage;
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
 import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 
+import java.net.MalformedURLException;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 public interface SysMessageService extends BaseService<Long, SysMessage> {
-	
-	PageInfo<SysMessageDto> queryListPage(QueryInfo queryInfo);
 
-	/**
-	 * 修改消息对象
-	 * @param message
-	 * @return
-	 */
-	public int updateMessage(SysMessage message);
+	R<com.microsvc.toolkit.common.response.paging.PageInfo<CbsMessageWrapper.SysMessage>> queryListPage(SysMessageQueryInfo queryInfo);
 
 	/**
 	 * 推送站内消息

+ 40 - 35
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -1,6 +1,13 @@
 package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.dayaedu.cbs.common.enums.EAppKey;
+import com.dayaedu.cbs.common.enums.EClientType;
+import com.dayaedu.cbs.common.enums.message.EMessageSendMode;
+import com.dayaedu.cbs.common.enums.message.ESendStatus;
+import com.dayaedu.cbs.openfeign.client.MessageFeignClientService;
+import com.dayaedu.cbs.openfeign.wrapper.message.CbsMessageWrapper;
+import com.microsvc.toolkit.common.response.template.R;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
@@ -15,6 +22,7 @@ import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.SendStatusEnum;
+import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
 import com.ym.mec.biz.service.SysMessageConfigService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
@@ -24,6 +32,7 @@ import com.ym.mec.common.entity.ImSendMessageUserInfo;
 import com.ym.mec.common.entity.ImTxtMessage;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.PageUtil;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.page.WrapperUtil;
 import com.ym.mec.common.redis.service.RedisCache;
@@ -40,10 +49,10 @@ import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import javax.imageio.ImageIO;
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayOutputStream;
@@ -52,8 +61,6 @@ import java.net.URL;
 import java.util.*;
 import java.util.Map.Entry;
 import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
 
 import static com.ym.mec.biz.dal.enums.MessageTypeEnum.OA_NOTICE_PUSH;
 import static com.ym.mec.biz.dal.enums.MessageTypeEnum.STUDENT_PUSH_VIP_BUY;
@@ -63,26 +70,28 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	private final static Logger LOGGER = LoggerFactory.getLogger(SysMessageServiceImpl.class);
 
-	@Autowired
+	@Resource
 	private SysMessageDao sysMessageDao;
-	@Autowired
+	@Resource
 	private SysMessageConfigService sysMessageConfigService;
-	@Autowired
+	@Resource
 	private MessageSenderPluginContext messageSenderPluginContext;
-	@Autowired
+	@Resource
 	private SysUserFeignService sysUserFeignService;
-	@Autowired
+	@Resource
 	private TeacherDao teacherDao;
-	@Autowired
+	@Resource
 	private WaitSendMessageDao waitSendMessageDao;
-	@Autowired
+	@Resource
 	private SysConfigDao sysConfigDao;
-	@Autowired
+	@Resource
 	private ImFeignService imFeignService;
-	@Autowired
+	@Resource
 	private RedisCache<String, Object> redisCache;
-	@Autowired
+	@Resource
 	private SysEmailServiceImpl sysEmailService;
+	@Resource
+	private MessageFeignClientService messageFeignClientService;
 	// 验证码有效期
 	public static final int CODE_EXPIRE = 60 * 10;
 	// 发送验证码的间隔时间
@@ -99,23 +108,24 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
-	public PageInfo<SysMessageDto> queryListPage(QueryInfo queryInfo) {
-		PageInfo<SysMessageDto> pageInfo = new PageInfo<SysMessageDto>(queryInfo.getPage(), queryInfo.getRows());
-		Map<String, Object> params = new HashMap<String, Object>();
-		MapUtil.populateMap(params, queryInfo);
-
-		List<SysMessageDto> dataList = null;
-		int count = this.findCount(params);
-		if (count > 0) {
-			pageInfo.setTotal(count);
-			params.put("offset", pageInfo.getOffset());
-			dataList = sysMessageDao.queryListPage(params);
-		}
-		if (count == 0) {
-			dataList = new ArrayList<SysMessageDto>();
-		}
-		pageInfo.setRows(dataList);
-		return pageInfo;
+	public R<com.microsvc.toolkit.common.response.paging.PageInfo<CbsMessageWrapper.SysMessage>> queryListPage(SysMessageQueryInfo queryInfo) {
+		CbsMessageWrapper.SysMessageQuery query = new CbsMessageWrapper.SysMessageQuery();
+		query.setPage(queryInfo.getPage());
+		query.setRows(queryInfo.getRows());
+		query.setUserId(queryInfo.getUserId().longValue());
+		query.setClientType(EClientType.SCHOOL);
+		query.setStatus(ESendStatus.WAIT);
+		query.setAppKey(EAppKey.GYM);
+		query.setSendMode(queryInfo.getType() == null?null:queryInfo.getType() == 1? EMessageSendMode.SMS :
+				queryInfo.getType() == 2?EMessageSendMode.EMAIL:
+						queryInfo.getType() == 3?EMessageSendMode.PUSH:EMessageSendMode.SEO);
+		query.setTitle(queryInfo.getTitle());
+		query.setClientId(StringUtils.equals(queryInfo.getJpushType(),"SCHOOL")?EClientType.SCHOOL:
+				StringUtils.equals(queryInfo.getJpushType(),"SYSTEM")?EClientType.BACKEND:
+						StringUtils.equals(queryInfo.getJpushType(),"TEACHER")?EClientType.TEACHER:
+								StringUtils.equals(queryInfo.getJpushType(),"STUDENT")?EClientType.STUDENT:null);
+		query.setReadStatus(queryInfo.getReadStatus() == null?null:queryInfo.getReadStatus()==1);
+		return messageFeignClientService.sysMessagePage(query);
 	}
 
 	/**
@@ -198,11 +208,6 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
     }
 
 	@Override
-	public int updateMessage(SysMessage message) {
-		return sysMessageDao.update(message);
-	}
-
-	@Override
 	public boolean batchSeoMessage(Set<Integer> userIds, MessageTypeEnum messageType,String memo, Object... args) {
 		if(userIds != null){
 			userIds.removeAll(Collections.singleton(null));

+ 1 - 1
mec-common/common-core/pom.xml

@@ -20,7 +20,7 @@
 		<dependency>
 			<groupId>com.dayaedu.cbs.openfeign</groupId>
 			<artifactId>dayaedu-openfeign-client</artifactId>
-			<version>1.0.0</version>
+			<version>1.0.4</version>
 			<exclusions>
 				<exclusion>
 					<groupId>com.alibaba.cloud</groupId>