浏览代码

Merge branch 'zx_saas_message' of http://git.dayaedu.com/yonge/mec into dev

# Conflicts:
#	mec-auth/pom.xml
#	mec-common/common-core/pom.xml
zouxuan 1 年之前
父节点
当前提交
25ef88d559

+ 12 - 30
mec-application/src/main/java/com/ym/mec/student/controller/SysMessageController.java

@@ -8,6 +8,7 @@ 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.exception.BizException;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
@@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.util.Map;
 
 @RestController
@@ -29,23 +31,19 @@ import java.util.Map;
 @RequestMapping("${app-config.url.student:}/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, "请登录");
-		}
-		queryInfo.setUserId(sysUser.getId());
+		queryInfo.setUserId(sysUserService.getUserId());
 		queryInfo.setType(MessageSendMode.PUSH.getCode());
 		queryInfo.setJpushType("STUDENT");
 		return succeed(sysMessageService.queryPage(queryInfo));
@@ -77,32 +75,19 @@ public class SysMessageController 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,"STUDENT") > 0 ? succeed() : failed();
+		return sysMessageService.updateStatus(sysUserService.getUserId(), 1,"STUDENT")? succeed() : failed();
 	}
 
 	@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) ? succeed() : failed();
 	}
 
 	@ApiOperation(value = "查询用户未读消息条数")
 	@GetMapping("/queryCountOfUnread")
 	public Object queryCountOfUnread() {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
+		SysUser sysUser = sysUserService.getUser();
 		Map<String, Integer> map = sysMessageService.queryCountOfUnread(MessageSendMode.PUSH, sysUser.getId(),"STUDENT", sysUser.getTenantId());
 
 		if (map == null || map.size() == 0) {
@@ -114,17 +99,14 @@ public class SysMessageController extends BaseController {
 	@ApiOperation(value = "发送消息")
 	@PostMapping("/sendMessage")
 	public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url, String group) {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
+		SysUser sysUser = sysUserService.getUser();
 		Integer userId = sysUser.getId();
 
 		String mobileNo = sysUser.getPhone();
 		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
 			throw new BizException("请输入正确的手机号");
 		}
-		sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url, group, "STUDENT");
+//		sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url, group, "STUDENT");
 		return succeed();
 	}
 }

+ 3 - 3
mec-application/src/main/java/com/ym/mec/teacher/controller/SysMessageController.java

@@ -58,13 +58,13 @@ public class SysMessageController extends BaseController {
 	@ApiOperation("一键已读")
 	@PostMapping("batchSetRead")
 	public Object batchSetRead() {
-		return sysMessageService.updateStatus(sysUserService.getUserId(), 1,"TEACHER") > 0 ? succeed() : failed();
+		return sysMessageService.updateStatus(sysUserService.getUserId(), 1,"TEACHER")? succeed() : failed();
 	}
 
 	@ApiOperation("设置已读")
 	@PostMapping("setRead")
 	public Object setRead(Long id) {
-		return sysMessageService.updateOneStatus(id, 1) > 0 ? succeed() : failed();
+		return sysMessageService.updateOneStatus(id) ? succeed() : failed();
 	}
 
 	@ApiOperation(value = "查询用户未读消息条数")
@@ -87,7 +87,7 @@ public class SysMessageController extends BaseController {
 		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
 			throw new BizException("请输入正确的手机号");
 		}
-		sysMessageService.sendMessage(messageSender, sysUser.getId(), "", content, receiver, null, readStatus, url, group,"TEACHER");
+//		sysMessageService.sendMessage(messageSender, sysUser.getId(), "", content, receiver, null, readStatus, url, group,"TEACHER");
 		return succeed();
 	}
 }

+ 15 - 0
mec-application/src/main/java/com/ym/mec/vo/PageUtil.java

@@ -2,6 +2,7 @@ package com.ym.mec.vo;
 
 import com.ym.mec.common.page.PageInfo;
 
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -23,4 +24,18 @@ public class PageUtil {
         resultPage.setTotal(total);
         return resultPage;
     }
+
+    public static <T,E> PageInfo<T> pageInfo(com.microsvc.toolkit.common.response.paging.PageInfo<E> source, List<T> rows) {
+        if (Objects.isNull(source)) {
+            return new PageInfo<>(1, 20);
+        }
+        int total = Integer.parseInt(String.valueOf(source.getTotal()));
+        int limit = Integer.parseInt(String.valueOf(source.getLimit()));
+        PageInfo<T> resultPage = new PageInfo<>();
+        resultPage.setRows(rows);
+        resultPage.setPageNo(Long.valueOf(source.getCurrent()).intValue());
+        resultPage.setLimit(limit);
+        resultPage.setTotal(total);
+        return resultPage;
+    }
 }

+ 61 - 39
mec-application/src/main/java/com/ym/mec/web/controller/SchoolMessageController.java

@@ -1,49 +1,85 @@
 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.common.enums.message.EMessageSendMode;
+import com.dayaedu.cbs.common.enums.message.ESendStatus;
+import com.dayaedu.cbs.openfeign.wrapper.message.CbsMessageWrapper;
+import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.ym.mec.biz.dal.dto.SysMessageDto;
+import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
+import com.ym.mec.biz.dal.enums.SendStatusEnum;
 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.common.entity.HttpResponseResult;
+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.apache.commons.collections.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
 @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());
+    public HttpResponseResult<com.ym.mec.common.page.PageInfo<SysMessage>> list(@RequestBody SysMessageQueryInfo queryInfo){
+        queryInfo.setUserId(sysUserService.getUserId());
         queryInfo.setType(3);
         queryInfo.setJpushType("SCHOOL");
-        PageInfo<SysMessageDto> pageInfo = sysMessageService.queryListPage(queryInfo);
-        return succeed(pageInfo);
+        PageInfo<CbsMessageWrapper.SysMessage> pageInfo = sysMessageService.queryListPage(queryInfo).feignData();
+
+        List<SysMessage> sysMessages = new ArrayList<>();
+        if(CollectionUtils.isNotEmpty(pageInfo.getRows())){
+            pageInfo.getRows().forEach(sysMessage -> {
+                SysMessage message = new SysMessage();
+                message.setId(sysMessage.getId());
+                message.setTitle(sysMessage.getTitle());
+                message.setContent(sysMessage.getContent());
+                if(sysMessage.getSendMode() != null){
+                    message.setType(sysMessage.getSendMode() == EMessageSendMode.SMS?MessageSendMode.SMS:
+                            sysMessage.getSendMode() == EMessageSendMode.EMAIL?MessageSendMode.EMAIL:
+                                    sysMessage.getSendMode() == EMessageSendMode.PUSH?MessageSendMode.PUSH:MessageSendMode.SEO);
+                }
+                if(sysMessage.getStatus() != null){
+                    message.setStatus(sysMessage.getStatus() == ESendStatus.FAILED? SendStatusEnum.FAILED:
+                            sysMessage.getStatus() == ESendStatus.SENDING?SendStatusEnum.SENDING:
+                                    sysMessage.getStatus() == ESendStatus.SUCCESSED?SendStatusEnum.SUCCESSED:SendStatusEnum.WAIT);
+                }
+                message.setReceiver(sysMessage.getReceiver());
+                message.setSendTime(sysMessage.getSendTime());
+                message.setErrorMsg(sysMessage.getErrorMsg());
+                message.setCreateOn(sysMessage.getCreateTime());
+                message.setModifyOn(sysMessage.getUpdateTime());
+                if(sysMessage.getUserId() != null){
+                    message.setUserId(sysMessage.getUserId().intValue());
+                }
+                if(sysMessage.getMessageConfigId() != null){
+                    message.setMessageConfigId(sysMessage.getMessageConfigId().intValue());
+                }
+                message.setMemo(sysMessage.getMemo());
+                if (sysMessage.getReadStatus() != null){
+                    message.setReadStatus(sysMessage.getReadStatus()?1:0);
+                }
+                message.setGroup(sysMessage.getGroup());
+                sysMessages.add(message);
+            });
+        }
+        return succeed(PageUtil.pageInfo(pageInfo,sysMessages));
     }
 
     @ApiOperation("获取消息分类类型")
@@ -59,31 +95,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")? 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)? 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));
     }
 }

+ 71 - 30
mec-application/src/main/java/com/ym/mec/web/controller/SysMessageController.java

@@ -1,26 +1,33 @@
 package com.ym.mec.web.controller;
 
 import com.alibaba.fastjson.JSON;
-import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.dayaedu.cbs.common.enums.message.EMessageSendMode;
+import com.dayaedu.cbs.common.enums.message.ESendStatus;
+import com.dayaedu.cbs.openfeign.wrapper.message.CbsMessageWrapper;
 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.entity.SysMessage;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
+import com.ym.mec.biz.dal.enums.SendStatusEnum;
 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.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -29,28 +36,62 @@ 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);
+		com.microsvc.toolkit.common.response.paging.PageInfo<CbsMessageWrapper.SysMessage> pageInfo = sysMessageService.queryListPage(queryInfo).feignData();
+
+		List<SysMessage> sysMessages = new ArrayList<>();
+		if(org.apache.commons.collections.CollectionUtils.isNotEmpty(pageInfo.getRows())){
+			pageInfo.getRows().forEach(sysMessage -> {
+				SysMessage message = new SysMessage();
+				message.setId(sysMessage.getId());
+				message.setTitle(sysMessage.getTitle());
+				message.setContent(sysMessage.getContent());
+				if(sysMessage.getSendMode() != null){
+					message.setType(sysMessage.getSendMode() == EMessageSendMode.SMS?MessageSendMode.SMS:
+							sysMessage.getSendMode() == EMessageSendMode.EMAIL?MessageSendMode.EMAIL:
+									sysMessage.getSendMode() == EMessageSendMode.PUSH?MessageSendMode.PUSH:MessageSendMode.SEO);
+				}
+				if(sysMessage.getStatus() != null){
+					message.setStatus(sysMessage.getStatus() == ESendStatus.FAILED? SendStatusEnum.FAILED:
+							sysMessage.getStatus() == ESendStatus.SENDING?SendStatusEnum.SENDING:
+									sysMessage.getStatus() == ESendStatus.SUCCESSED?SendStatusEnum.SUCCESSED:SendStatusEnum.WAIT);
+				}
+				message.setReceiver(sysMessage.getReceiver());
+				message.setSendTime(sysMessage.getSendTime());
+				message.setErrorMsg(sysMessage.getErrorMsg());
+				message.setCreateOn(sysMessage.getCreateTime());
+				message.setModifyOn(sysMessage.getUpdateTime());
+				if(sysMessage.getUserId() != null){
+					message.setUserId(sysMessage.getUserId().intValue());
+				}
+				if(sysMessage.getMessageConfigId() != null){
+					message.setMessageConfigId(sysMessage.getMessageConfigId().intValue());
+				}
+				message.setMemo(sysMessage.getMemo());
+				if (sysMessage.getReadStatus() != null){
+					message.setReadStatus(sysMessage.getReadStatus()?1:0);
+				}
+				message.setGroup(sysMessage.getGroup());
+				sysMessages.add(message);
+			});
+		}
+		return succeed(PageUtil.pageInfo(pageInfo,sysMessages));
 	}
 
 	@ApiOperation("获取消息分类类型")
@@ -81,21 +122,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)? 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()));
 	}
 
@@ -104,19 +137,27 @@ public class SysMessageController extends BaseController {
 	@PreAuthorize("@pcs.hasPermissions('sysMessage/page')")
 	@PostMapping("/page")
 	public HttpResponseResult<PageInfo<SysMessageVo.SysMessageList>> page(@RequestBody SysMessageVo.SysMessageQuery query) {
-		// 数据类型转换
-		PageInfo<SysMessageVo.SysMessageList> records = sysMessageService.queryMessageCode(query);
-
+		com.microsvc.toolkit.common.response.paging.PageInfo<CbsMessageWrapper.SysMessage> pageInfo = sysMessageService.queryMessageCode(query).feignData();
+		if(CollectionUtils.isEmpty(pageInfo.getRows())){
+			return succeed(new PageInfo<>());
+		}
+		List<SysMessageVo.SysMessageList> sysMessageList = new ArrayList<>();
 		Pattern pattern = Pattern.compile("\\b验证码\\s*(\\d{6})\\b");
-		records.getRows().forEach(next -> {
+		pageInfo.getRows().forEach(next -> {
+			SysMessageVo.SysMessageList sysMessage = new SysMessageVo.SysMessageList();
 			String content = next.getContent();
+			sysMessage.setContent(content);
+			sysMessage.setTitle(next.getTitle());
+			sysMessage.setSendTime(next.getSendTime());
+			sysMessage.setReceiver(next.getReceiver());
 			if (StringUtils.isNotEmpty(content)) {
 				Matcher matcher = pattern.matcher(content);
 				if (matcher.find()) {
-					next.setVerityCode(matcher.group().replace("验证码",""));
+					sysMessage.setVerityCode(matcher.group().replace("验证码",""));
 				}
 			}
+			sysMessageList.add(sysMessage);
 		});
-		return succeed(records);
+		return succeed(PageUtil.pageInfo(pageInfo, sysMessageList));
 	}
 }

+ 12 - 33
mec-application/src/main/java/com/ym/mec/web/controller/education/SysEduMessageController.java

@@ -1,13 +1,13 @@
 package com.ym.mec.web.controller.education;
 
 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.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.exception.BizException;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
@@ -15,13 +15,12 @@ import com.ym.mec.util.validator.CommonValidator;
 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.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.util.Map;
 
 @RestController
@@ -29,23 +28,19 @@ import java.util.Map;
 @RequestMapping("${app-config.url.web:}/sysEduMessage")
 public class SysEduMessageController 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, "请登录");
-		}
-		queryInfo.setUserId(sysUser.getId());
+		queryInfo.setUserId(sysUserService.getUserId());
 		queryInfo.setType(3);
 		queryInfo.setJpushType("SYSTEM");
 		return succeed(sysMessageService.queryPage(queryInfo));
@@ -77,32 +72,19 @@ public class SysEduMessageController 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,"SYSTEM") > 0 ? succeed() : failed();
+		return sysMessageService.updateStatus(sysUserService.getUserId(), 1,"SYSTEM") ? succeed() : failed();
 	}
 
 	@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)? succeed() : failed();
 	}
 
 	@ApiOperation(value = "查询用户未读消息条数")
 	@GetMapping("/queryCountOfUnread")
 	public Object queryCountOfUnread() {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed("请重新登录");
-		}
+		SysUser sysUser = sysUserService.getUser();
 		Map<String, Integer> map = sysMessageService.queryCountOfUnread(MessageSendMode.PUSH, sysUser.getId(),"SYSTEM", sysUser.getTenantId());
 
 		if (map == null || map.size() == 0) {
@@ -114,17 +96,14 @@ public class SysEduMessageController extends BaseController {
 	@ApiOperation(value = "发送消息")
 	@PostMapping("/sendMessage")
 	public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url, String group) {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
+		SysUser sysUser = sysUserService.getUser();
 		Integer userId = sysUser.getId();
 
 		String mobileNo = sysUser.getPhone();
 		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
 			throw new BizException("请输入正确的手机号");
 		}
-		sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url, group,"SYSTEM");
+//		sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url, group,"SYSTEM");
 		return succeed();
 	}
 }

+ 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.2</version>
+			<version>1.0.4</version>
 		</dependency>
 		<!-- 引用Mybatis 和 Mysql驱动开始 -->
 		<dependency>

+ 6 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java

@@ -4,12 +4,15 @@ import com.ym.mec.common.enums.BaseEnum;
 
 public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     SMS_APPLY_MESSAGE("SMS_APPLY_MESSAGE", "报名通知"),
-    SYSTEM_REMIND_EDUCATION_COURSE_TIME("SYSTEM_REMIND_EDUCATION_COURSE_TIME", "排课提醒"),
-    STUDENT_MEMBER_RENEW_MESSAGE("STUDENT_MEMBER_RENEW_MESSAGE", "会员续费提醒"),
+    SMS_SYSTEM_REMIND_EDUCATION_COURSE_TIME("SMS_SYSTEM_REMIND_EDUCATION_COURSE_TIME", "排课提醒"),
+
+    PUSH_SYSTEM_REMIND_EDUCATION_COURSE_TIME("PUSH_SYSTEM_REMIND_EDUCATION_COURSE_TIME", "排课提醒"),
+    SMS_STUDENT_MEMBER_RENEW_MESSAGE("SMS_STUDENT_MEMBER_RENEW_MESSAGE", "会员续费提醒"),
+    PUSH_STUDENT_MEMBER_RENEW_MESSAGE("STUDENT_MEMBER_RENEW_MESSAGE", "会员续费提醒"),
     PUSH_EXPERIENCE_MEMBERSHIP_MESSAGE("PUSH_EXPERIENCE_MEMBERSHIP_MESSAGE", "会员试用提醒"),
     SMS_AUTO_STUDENT_MEMBER_RENEW_MESSAGE("SMS_AUTO_STUDENT_MEMBER_RENEW_MESSAGE", "会员续费提醒"),
     PUSH_AUTO_STUDENT_MEMBER_RENEW_MESSAGE("PUSH_AUTO_STUDENT_MEMBER_RENEW_MESSAGE", "会员续费提醒"),
-    STUDENT_MEMBER_RENEW_QUIT_MESSAGE("STUDENT_MEMBER_RENEW_QUIT_MESSAGE", "会员续费提醒"),
+//    STUDENT_MEMBER_RENEW_QUIT_MESSAGE("STUDENT_MEMBER_RENEW_QUIT_MESSAGE", "会员续费提醒"),
     SMS_VERIFY_CODE_LOGIN("SMS_VERIFY_CODE_LOGIN", "验证码登录"),
     KAPTCHA_SESSION_KEY("KAPTCHA_SESSION_KEY", "登录图形验证码"),
     SMS_PAYMENT_MESSAGE("SMS_PAYMENT_MESSAGE", "缴费通知"),

+ 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(),

+ 17 - 40
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -1,32 +1,25 @@
 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.common.page.PageInfo;
-import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
 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);
 
 	/**
 	 * 推送站内消息
@@ -101,7 +94,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param args 参数
 	 * @return
 	 */
-	public void batchSendMessage(Integer senderTenantId, MessageSender messageSender, MessageTypeEnum messageType, Map<Integer, String> receivers, Date triggerTime,
+	public void batchSendMessage(Integer senderTenantId, MessageSender messageSender, MessageTypeEnum messageType, Map<Integer,String> receivers, Date triggerTime,
 			Integer readStatus, String url,String jpushType, Object... args);
 
 	/**
@@ -115,7 +108,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param args 参数
 	 * @return
 	 */
-	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum messageType, Map<Integer, String> receivers, Date triggerTime,
+	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum messageType, Map<Integer,String> receivers, Date triggerTime,
 			Integer readStatus, String url,String jpushType, Object... args);
 
 
@@ -129,25 +122,9 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param args 参数
 	 * @return
 	 */
-	public void batchPushMessage(MessageTypeEnum messageType, Map<Integer, String> receivers, Date triggerTime,
+	public void batchPushMessage(MessageTypeEnum messageType, Map<Integer,String> receivers, Date triggerTime,
 			Integer readStatus, String url,String jpushType,String sound,String channelId, Object... args);
 
-	/**
-	 * 发送消息
-	 * @param messageSender 消息发送者
-	 * @param userId 用户编号
-	 * @param mode 消息模式
-	 * @param title 消息标题
-	 * @param content 消息内容
-	 * @param receiver 消息接受者
-	 * @param triggerTime 触发时间
-	 * @param readStatus 阅读状态(0-未读  1-已读)
-	 * @param url 超链接地址
-	 * @param group 组
-	 * @return
-	 */
-	public void sendMessage(MessageSender messageSender, Integer userId, String title, String content, String receiver, Date triggerTime, Integer readStatus,
-			String url, String group,String jpushType);
 
 	/**
 	 * 发送验证码
@@ -189,14 +166,14 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param status 状态/1 已读,0未读
 	 * @return
 	 */
-	public int updateStatus(Integer userId, int status,String jpushType);
+	public Boolean updateStatus(Integer userId, int status,String jpushType);
 
 	/**
 	 * 修改单条消息状态
 	 */
-	public int updateOneStatus(Long id, int status);
+	public Boolean updateOneStatus(Long id);
 	
-	public List<SysMessage> queryUserInRecentMinList(String mobile, int recentMin, MessageSendMode type);
+	public List<CbsMessageWrapper.SysMessage> queryUserInRecentMinList(String mobile, int recentMin, MessageSendMode type);
 
 	/**
 	 * 发送私聊消息
@@ -220,5 +197,5 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	void pushWaitSendMessageTask();
 
 	//获取短信验证码
-	PageInfo<SysMessageVo.SysMessageList> queryMessageCode(SysMessageVo.SysMessageQuery query);
+	R<com.microsvc.toolkit.common.response.paging.PageInfo<CbsMessageWrapper.SysMessage>> queryMessageCode(SysMessageVo.SysMessageQuery query);
 }

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSchoolTermCourseDetailServiceImpl.java

@@ -183,7 +183,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 					Map<Integer,String> userMap = new HashMap<>(1);
 					userMap.put(musicGroup.getEducationalTeacherId(),educationPhoneMap.get(musicGroup.getEducationalTeacherId()));
 					sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
-							MessageTypeEnum.SYSTEM_REMIND_EDUCATION_COURSE_TIME,
+							MessageTypeEnum.SMS_SYSTEM_REMIND_EDUCATION_COURSE_TIME,
 							userMap,
 							null,
 							0,
@@ -193,7 +193,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 					Map<Integer,String> userMap1 = new HashMap<>(1);
 					userMap1.put(musicGroup.getEducationalTeacherId(),musicGroup.getEducationalTeacherId().toString());
 					sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
-							MessageTypeEnum.SYSTEM_REMIND_EDUCATION_COURSE_TIME,
+							MessageTypeEnum.PUSH_SYSTEM_REMIND_EDUCATION_COURSE_TIME,
 							userMap1,
 							null,
 							0,
@@ -221,7 +221,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 					userMap1.put(studentId,studentId.toString());
 				}
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
-						MessageTypeEnum.STUDENT_MEMBER_RENEW_MESSAGE,
+						MessageTypeEnum.SMS_STUDENT_MEMBER_RENEW_MESSAGE,
 						userMap,
 						null,
 						0,
@@ -229,7 +229,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 						null,memberName,pushMemberRenewAgain);
 
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
-						MessageTypeEnum.STUDENT_MEMBER_RENEW_MESSAGE,
+						MessageTypeEnum.PUSH_STUDENT_MEMBER_RENEW_MESSAGE,
 						userMap1,
 						null,
 						0,

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SmsCodeServiceImpl.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import java.util.List;
 
+import com.dayaedu.cbs.openfeign.wrapper.message.CbsMessageWrapper;
 import com.ym.mec.auth.api.enums.YesOrNoEnum;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,7 +55,7 @@ public class SmsCodeServiceImpl implements SmsCodeService {
 			times = Integer.parseInt(sysConfig.getParanValue());
 		}
 		// 十分钟内只能发3条
-		List<SysMessage> list = sysMessageService.queryUserInRecentMinList(mobile, 10, MessageSendMode.SMS);
+		List<CbsMessageWrapper.SysMessage> list = sysMessageService.queryUserInRecentMinList(mobile, 10, MessageSendMode.SMS);
 		if (list != null && list.size() >= times) {
 			throw new BizException("对不起,您发送太频繁请稍后重试!");
 		}

+ 208 - 389
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -1,61 +1,60 @@
 package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
+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.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dao.SysMessageDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dao.WaitSendMessageDao;
-import com.ym.mec.biz.dal.dto.Mapper;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
-import com.ym.mec.biz.dal.dto.SysMessageDto;
 import com.ym.mec.biz.dal.dto.SysMessageVo;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.ImSendGroupMessage;
+import com.ym.mec.biz.dal.entity.SysMessage;
+import com.ym.mec.biz.dal.entity.SysMessageConfig;
+import com.ym.mec.biz.dal.entity.WaitSendMessage;
 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.biz.service.SysUserService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImMessageDto;
 import com.ym.mec.common.entity.ImPrivateMessage;
 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.QueryInfo;
-import com.ym.mec.common.page.WrapperUtil;
 import com.ym.mec.common.redis.service.RedisCache;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.im.ImFeignService;
-import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
-import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.string.MessageFormatter;
 import net.coobird.thumbnailator.Thumbnails;
 import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.collections.CollectionUtils;
 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;
 import java.io.IOException;
 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;
 
 @Service
@@ -63,26 +62,24 @@ 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
-	private MessageSenderPluginContext messageSenderPluginContext;
-	@Autowired
-	private SysUserFeignService sysUserFeignService;
-	@Autowired
+	@Resource
+	private SysUserService sysUserService;
+	@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
-	private SysEmailServiceImpl sysEmailService;
+	@Resource
+	private MessageFeignClientService messageFeignClientService;
 	// 验证码有效期
 	public static final int CODE_EXPIRE = 60 * 10;
 	// 发送验证码的间隔时间
@@ -99,107 +96,20 @@ 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;
-	}
-
-	/**
-	 * 添加消息
-	 * @param subject 消息主题
-	 * @param content 消息内容
-	 * @param receivers 接收人,多个人用逗号分开
-	 * @param triggerTime 触发时间
-	 * @param mode 消息的发送模式
-	 * @param status 消息的当前状态
-	 * @param errorMsg 错误消息
-	 * @param readStatus 阅读状态
-	 * @param memo 备注
-	 * @param group 消息组
-	 * @return
-	 */
-	private int addMessage(Integer receiverTenantId, Map<Integer, String> receivers, String subject, String content, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
-			String errorMsg, Integer readStatus, String memo, String group,String jpushType) {
-		return addMessage(receiverTenantId,receivers,subject,content,triggerTime,mode,status,errorMsg,readStatus,memo,group,jpushType,null);
-	}
-
-
-    /**
-     * 添加消息
-     * @param subject 消息主题
-     * @param content 消息内容
-     * @param receivers 接收人,多个人用逗号分开
-     * @param triggerTime 触发时间
-     * @param mode 消息的发送模式
-     * @param status 消息的当前状态
-     * @param errorMsg 错误消息
-     * @param readStatus 阅读状态
-     * @param memo 备注
-     * @param group 消息组
-     * @return
-     */
-    private int addMessage(Integer receiverTenantId, Map<Integer, String> receivers, String subject, String content, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
-                           String errorMsg, Integer readStatus, String memo, String group,String jpushType,Integer messageConfigId) {
-        SysMessage message = null;
-        Date date = new Date();
-
-        List<SysMessage> messages = new ArrayList<>();
-
-        Integer userId = null;
-        String receiver;
-        for (Entry<Integer, String> entry : receivers.entrySet()) {
-            userId = entry.getKey();
-            receiver = entry.getValue();
-
-            message = new SysMessage();
-            if (userId == null) {
-                SysUser user = sysUserFeignService.queryUserByMobile(receiver);
-                if (user != null) {
-                    userId = user.getId();
-                }
-            }
-            message.setTenantId(receiverTenantId);
-            message.setUserId(userId);
-            message.setContent(content);
-            message.setCreateOn(date);
-            message.setModifyOn(date);
-            message.setReceiver(receiver);
-            if (triggerTime == null) {
-                triggerTime = date;
-            }
-            message.setMessageConfigId(messageConfigId);
-            message.setSendTime(triggerTime);
-            message.setTitle(subject);
-            message.setStatus(status);
-            message.setType(mode);
-            message.setErrorMsg(errorMsg);
-            message.setReadStatus(readStatus);
-            message.setMemo(memo);
-            message.setGroup(group);
-            message.setJpushType(jpushType);
-            messages.add(message);
-        }
-
-        return sysMessageDao.batchInsert(messages);
-    }
-
-	@Override
-	public int updateMessage(SysMessage message) {
-		return sysMessageDao.update(message);
+	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.setStatus(ESendStatus.SUCCESSED);
+		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(queryInfo.getJpushType());
+		query.setReadStatus(queryInfo.getReadStatus() == null?null:queryInfo.getReadStatus()==1);
+		return messageFeignClientService.sysMessagePage(query);
 	}
 
 	@Override
@@ -207,39 +117,36 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if(userIds != null){
 			userIds.removeAll(Collections.singleton(null));
 		}
-		if (userIds == null || userIds.size() == 0) {
+		if (CollectionUtils.isEmpty(userIds)) {
 			LOGGER.error("接收地址不能为空");
 			return false;
 		}
-		SysMessageConfig messageConfig = sysMessageConfigService.queryByType(messageType);
-		if (messageConfig == null) {
-			throw new BizException("消息类型错误");
-		}else if(messageConfig.getSendFlag() == null || messageConfig.getSendFlag() == 0){
-			return true;
-		}
-		Date date = new Date();
-		SendStatusEnum status = SendStatusEnum.SUCCESSED;
-		String content = MessageFormatter.arrayFormat(messageConfig.getContent(), args);
-		SysMessage message = null;
-
-		List<SysMessage> messages = new ArrayList<>();
-		for (Integer userId : userIds) {
-			message = new SysMessage();
-			message.setUserId(userId);
-			message.setContent(content);
-			message.setCreateOn(date);
-			message.setModifyOn(date);
-			message.setReceiver(userId.toString());
-			message.setSendTime(date);
-			message.setStatus(status);
-			message.setType(MessageSendMode.SEO);
-			message.setTitle(messageConfig.getDescription());
-			message.setReadStatus(0);
-			message.setMemo(memo);
-			message.setGroup(messageConfig.getGroup());
-			messages.add(message);
+		List<SimpleUserDto> userDtoList = teacherDao.getUsersSimpleInfo(new ArrayList<>(userIds));
+		List<CbsMessageWrapper.MessageParam> messageParams = new ArrayList<>();
+		for (SimpleUserDto user : userDtoList) {
+			CbsMessageWrapper.MessageParam messageParam = new CbsMessageWrapper.MessageParam();
+			messageParam.setUserId(user.getUserId().longValue());
+			messageParam.setAppKey(EAppKey.GYM);
+			messageParam.setClientType(EClientType.BACKEND.getCode());
+			messageParam.setType(messageType.getCode());
+			Map<Long, String> params = new HashMap<>();
+			params.put(user.getUserId().longValue(), user.getPhone());
+			messageParam.setReceivers(params);
+			messageParam.setRealSend(!debugMode);
+			if(args != null && args.length > 0){
+				String[] argsStr = new String[args.length];
+				for (int i = 0; i < args.length; i++) {
+					if (args[i]!=null){
+						argsStr[i] = args[i].toString();
+					}else {
+						argsStr[i] = "";
+					}
+				}
+				messageParam.setContentArgs(argsStr);
+			}
+			messageParams.add(messageParam);
 		}
-		sysMessageDao.batchInsert(messages);
+		messageFeignClientService.sysMessageBatchSendMessage(messageParams);
 		return true;
 	}
 
@@ -425,13 +332,10 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	public void sendPrivateMessage(String studentId, String content, String extra) {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if(sysUser == null){
-			throw new BizException("用户信息获取失败");
-		}
+		Integer userId = sysUserService.getUserId();
 		//ExecutorService executor = Executors.newCachedThreadPool();
 		CompletableFuture.runAsync(()->{
-			imFeignService.privateSend(getImGroupMessage("RC:TxtMsg", sysUser.getId().toString(),
+			imFeignService.privateSend(getImGroupMessage("RC:TxtMsg", userId.toString(),
 				studentId.split(","), content, extra));
 		});
 		//executor.shutdown();
@@ -466,253 +370,149 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
     @Override
-    public PageInfo<SysMessageVo.SysMessageList> queryMessageCode(SysMessageVo.SysMessageQuery queryInfo) {
-		PageInfo<SysMessageVo.SysMessageList> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-		Map<String, Object> params = new HashMap<String, Object>();
-		MapUtil.populateMap(params, queryInfo);
-
-		List<SysMessageVo.SysMessageList> dataList = null;
-		int count = sysMessageDao.countMessageCode(params);
-		if (count > 0) {
-			pageInfo.setTotal(count);
-			params.put("offset", pageInfo.getOffset());
-			dataList = sysMessageDao.queryMessageCode(params);
-		}
-		if (count == 0) {
-			dataList = new ArrayList<>();
-		}
-		pageInfo.setRows(dataList);
-		return pageInfo;
+    public R<com.microsvc.toolkit.common.response.paging.PageInfo<CbsMessageWrapper.SysMessage>> queryMessageCode(SysMessageVo.SysMessageQuery queryInfo) {
+		CbsMessageWrapper.SysMessageQuery query = new CbsMessageWrapper.SysMessageQuery();
+		query.setPage(queryInfo.getPage());
+		query.setRows(queryInfo.getRows());
+		query.setStatus(ESendStatus.SUCCESSED);
+		query.setAppKey(EAppKey.GYM);
+		query.setTitle(queryInfo.getTitle());
+		query.setSendMode(EMessageSendMode.SMS);
+		query.setSendTimeStart(queryInfo.getSendTime() == null?null:DateUtil.stringToDate(queryInfo.getSendTime()+" 00:00:00"));
+		return messageFeignClientService.sysMessagePage(query);
 	}
 
     @Override
-	public void batchSendMessage(Integer senderTenantId, MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
-			String url,String jpushType, Object... args) {
+	public void batchSendMessage(Integer senderTenantId, MessageSender messageSender, MessageTypeEnum type, Map<Integer,String> receivers, Date triggerTime, Integer readStatus,
+								 String url, String jpushType, Object... args) {
 		LOGGER.info("batchSendMessage tenantId {} msgSender {}, type {}, receivers {} ", senderTenantId, messageSender, type, receivers);
-		if (receivers == null || receivers.size() == 0) {
+		if (receivers == null || receivers.isEmpty()) {
 			LOGGER.error("接收地址不能为空");
 			return;
 		}
-		Integer userId = receivers.keySet().iterator().next();
-		Integer receiverTenantId = 0;
-		SimpleUserDto simpleUserDto = teacherDao.getSimpleUser(userId);
-		if(simpleUserDto != null){
-			receiverTenantId = simpleUserDto.getTenantId();
-		}
-
-		// email data from database load, 使用接收者 tenantId, 假设发送者和接收者为同一机构
-		if (Objects.equals(messageSender.getSendMode(), "EMAIL")) {
-			LOGGER.info("batch 发送邮件 {} ", receiverTenantId);
-			loadEmailInfo(senderTenantId);
-			// debugMode = false;
-		}
-		if(StringUtils.isNotEmpty(jpushType) && jpushType.equals("STUDENT")){
+		if("STUDENT".equals(jpushType) && type != STUDENT_PUSH_VIP_BUY){
 			//如果不是缴费信息
-			if(type != STUDENT_PUSH_VIP_BUY){
-				int hour = DateUtil.getHour(new Date());
-				//如果当前时间在22点之后
-				String messageTime = sysConfigDao.findConfigValue("wait_send_message_time");
-				if(StringUtils.isEmpty(messageTime)){
-					messageTime = "22";
-				}
-				if(messageTime.contains(":")){
-					messageTime = messageTime.substring(0,messageTime.indexOf(":"));
-				}
-				if(hour > Integer.parseInt(messageTime)-1){
-					//保存推送信息
-					WaitSendMessage waitSendMessage = new WaitSendMessage();
-					if(args != null){
-						waitSendMessage.setAgrs(JSON.toJSONString(args));
-					}
-					waitSendMessage.setJpushType(jpushType);
-					waitSendMessage.setMessageSender(messageSender.name());
-					waitSendMessage.setMessageType(type.name());
-					waitSendMessage.setReceivers(JSON.toJSONString(receivers));
-					waitSendMessage.setUrl(url);
-					waitSendMessageDao.insert(waitSendMessage);
-					return;
+			int hour = DateUtil.getHour(new Date());
+			//如果当前时间在22点之后
+			String messageTime = sysConfigDao.findConfigValue("wait_send_message_time");
+			if(StringUtils.isEmpty(messageTime)){
+				messageTime = "22";
+			}
+			if(messageTime.contains(":")){
+				messageTime = messageTime.substring(0,messageTime.indexOf(":"));
+			}
+			if(hour > Integer.parseInt(messageTime)-1){
+				//保存推送信息
+				WaitSendMessage waitSendMessage = new WaitSendMessage();
+				if(args != null){
+					waitSendMessage.setAgrs(JSON.toJSONString(args));
 				}
+				waitSendMessage.setJpushType(jpushType);
+				waitSendMessage.setMessageSender(messageSender.name());
+				waitSendMessage.setMessageType(type.name());
+				waitSendMessage.setReceivers(JSON.toJSONString(receivers));
+				waitSendMessage.setUrl(url);
+				waitSendMessageDao.insert(waitSendMessage);
+				return;
 			}
 		}
-		String[] tos = receivers.values().toArray(new String[receivers.size()]);
-		LOGGER.error("batch 接收人 {} ", tos  );
-		SysMessageConfig messageConfig = sysMessageConfigService.queryByType(type);
-		if (messageConfig == null) {
-			throw new BizException("消息类型错误");
-		}else if(messageConfig.getSendFlag() == null || messageConfig.getSendFlag() == 0){
-			LOGGER.error("batch 发送标志为空" );
-			return;
-		}
-		Date date = new Date();
-		SendStatusEnum status = SendStatusEnum.WAIT;
-		String errorMsg = null;
-		// 立即发送
-		if (triggerTime == null || date.after(triggerTime)) {
-			status = SendStatusEnum.SENDING;
-			try {
-				if (debugMode == true || messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
-								MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType,"default",null)) {
-					status = SendStatusEnum.SUCCESSED;
-				} else {
-					status = SendStatusEnum.FAILED;
+		List<SimpleUserDto> userDtoList = teacherDao.getUsersSimpleInfo(new ArrayList<>(receivers.keySet()));
+		List<CbsMessageWrapper.MessageParam> messageParams = new ArrayList<>();
+		for (SimpleUserDto user : userDtoList) {
+			CbsMessageWrapper.MessageParam messageParam = new CbsMessageWrapper.MessageParam();
+			messageParam.setUserId(user.getUserId().longValue());
+			messageParam.setAppKey(EAppKey.GYM);
+			messageParam.setClientType(jpushType);
+			messageParam.setType(type.getCode());
+			messageParam.setUrl(url);
+			Map<Long, String> params = new HashMap<>();
+			params.put(user.getUserId().longValue(), user.getPhone());
+			messageParam.setReceivers(params);
+			messageParam.setRealSend(!debugMode);
+			if(args != null && args.length > 0){
+				String[] argsStr = new String[args.length];
+				for (int i = 0; i < args.length; i++) {
+					if (args[i]!=null){
+						argsStr[i] = args[i].toString();
+					}else {
+						argsStr[i] = "";
+					}
 				}
-			} catch (Exception e) {
-				status = SendStatusEnum.FAILED;
-				errorMsg = e.getMessage();
-				LOGGER.warn("消息发送失败", e);
+				messageParam.setContentArgs(argsStr);
 			}
+			messageParams.add(messageParam);
 		}
-		MessageSendMode mode = MessageSendMode.SMS;
-		if (messageSender.getSendMode().equals("PUSH")) {
-			mode = MessageSendMode.PUSH;
-		} else if (messageSender.getSendMode().equals("EMAIL")) {
-			mode = MessageSendMode.EMAIL;
-		}
-		// oa 待审批只推送 不记录表
-		if (type == OA_NOTICE_PUSH) {
-			return;
-		}
-		addMessage(receiverTenantId, receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, mode, status, errorMsg, readStatus,
-				url, messageConfig.getGroup(),jpushType,messageConfig.getId());
+		messageFeignClientService.sysMessageBatchSendMessage(messageParams);
 	}
 
     @Override
-	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
+	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Integer,String> receivers, Date triggerTime, Integer readStatus,
 			String url,String jpushType, Object... args) {
 		batchSendMessage(TenantContextHolder.getTenantId(), messageSender, type, receivers, triggerTime, readStatus, url, jpushType, args);
 	}
 
 
 	@Override
-	public void batchPushMessage(MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
+	public void batchPushMessage(MessageTypeEnum type, Map<Integer,String> receivers, Date triggerTime, Integer readStatus,
 			String url,String jpushType,String sound,String channelId, Object... args) {
-		if (receivers == null || receivers.size() == 0) {
-			throw new BizException("接收地址不能为空");
-		}
-		SimpleUserDto simpleUserDto = teacherDao.getSimpleUser(receivers.keySet().iterator().next());
-		Integer receiverTenantId = simpleUserDto.getTenantId();
-		
-		if(StringUtils.isNotEmpty(jpushType) && jpushType == "STUDENT"){
-			//如果不是缴费信息
-			if(type != STUDENT_PUSH_VIP_BUY){
-				int hour = DateUtil.getHour(new Date());
-				//如果当前时间在22点之后
-				String messageTime = sysConfigDao.findConfigValue("wait_send_message_time");
-				if(StringUtils.isEmpty(messageTime)){
-					messageTime = "22";
-				}
-				if(messageTime.contains(":")){
-					messageTime = messageTime.substring(0,messageTime.indexOf(":"));
-				}
-				if(hour > Integer.parseInt(messageTime)-1){
-					//保存推送信息
-					WaitSendMessage waitSendMessage = new WaitSendMessage();
-					if(args != null){
-						waitSendMessage.setAgrs(JSON.toJSONString(args));
-					}
-					waitSendMessage.setJpushType(jpushType);
-					waitSendMessage.setMessageSender(MessageSender.JIGUANG.name());
-					waitSendMessage.setMessageType(type.name());
-					waitSendMessage.setReceivers(JSON.toJSONString(receivers));
-					waitSendMessage.setUrl(url);
-					waitSendMessageDao.insert(waitSendMessage);
-					return;
-				}
-			}
-		}
-		String[] tos = receivers.values().toArray(new String[receivers.size()]);
-		SysMessageConfig messageConfig = sysMessageConfigService.queryByType(type);
-		if (messageConfig == null) {
-			throw new BizException("消息类型错误");
-		}else if(messageConfig.getSendFlag() == null || messageConfig.getSendFlag() == 0){
+		if (receivers == null || receivers.isEmpty()) {
+			LOGGER.error("接收地址不能为空");
 			return;
 		}
-		Date date = new Date();
-		SendStatusEnum status = SendStatusEnum.WAIT;
-		String errorMsg = null;
-		// 立即发送
-		if (triggerTime == null || date.after(triggerTime)) {
-			status = SendStatusEnum.SENDING;
-			try {
-				if (debugMode == true || messageSenderPluginContext.batchSend(MessageSender.JIGUANG, messageConfig.getDescription(),
-								MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType,sound,channelId)) {
-					status = SendStatusEnum.SUCCESSED;
-				} else {
-					status = SendStatusEnum.FAILED;
+		if("STUDENT".equals(jpushType) && type != STUDENT_PUSH_VIP_BUY){
+			int hour = DateUtil.getHour(new Date());
+			//如果当前时间在22点之后
+			String messageTime = sysConfigDao.findConfigValue("wait_send_message_time");
+			if(StringUtils.isEmpty(messageTime)){
+				messageTime = "22";
+			}
+			if(messageTime.contains(":")){
+				messageTime = messageTime.substring(0,messageTime.indexOf(":"));
+			}
+			if(hour > Integer.parseInt(messageTime)-1){
+				//保存推送信息
+				WaitSendMessage waitSendMessage = new WaitSendMessage();
+				if(args != null){
+					waitSendMessage.setAgrs(JSON.toJSONString(args));
 				}
-			} catch (Exception e) {
-				status = SendStatusEnum.FAILED;
-				errorMsg = e.getMessage();
-				LOGGER.warn("消息发送失败", e);
+				waitSendMessage.setJpushType(jpushType);
+				waitSendMessage.setMessageSender(MessageSender.JIGUANG.name());
+				waitSendMessage.setMessageType(type.name());
+				waitSendMessage.setReceivers(JSON.toJSONString(receivers));
+				waitSendMessage.setUrl(url);
+				waitSendMessageDao.insert(waitSendMessage);
+				return;
 			}
 		}
-		addMessage(receiverTenantId, receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, MessageSendMode.PUSH, status, errorMsg, readStatus,
-				url, messageConfig.getGroup(),jpushType);
-	}
-
-	@Override
-	public void sendMessage(MessageSender messageSender, Integer userId, String title, String content, String receiver, Date triggerTime, Integer readStatus, String url, String group,String jpushType) {
-		LOGGER.info("batchSendMessage {}, userId {}, receivers {} ", messageSender, userId, receiver);
-		if (StringUtils.isBlank(receiver)) {
-			throw new BizException("接收地址不能为空");
-		}
-		SimpleUserDto simpleUserDto = teacherDao.getSimpleUser(userId);
-		Integer receiverTenantId = simpleUserDto.getTenantId();
-		
-		// email data from database load
-		if (Objects.equals(messageSender.getSendMode(), "EMAIL")) {
-			loadEmailInfo(simpleUserDto.getTenantId());
-			debugMode = false;
-			LOGGER.info("batch 发送邮件 {} ", userId);
-		}
-		Date date = new Date();
-		SendStatusEnum status = SendStatusEnum.WAIT;
-		String errorMsg = null;
-		// 立即发送
-		if (triggerTime == null || date.after(triggerTime)) {
-			status = SendStatusEnum.SENDING;
-			try {
-				if (debugMode == true || messageSenderPluginContext.send(messageSender, receiver, title, content, url,jpushType,"default",null)) {
-					status = SendStatusEnum.SUCCESSED;
-				} else {
-					status = SendStatusEnum.FAILED;
+		List<SimpleUserDto> userDtoList = teacherDao.getUsersSimpleInfo(new ArrayList<>(receivers.keySet()));
+		List<CbsMessageWrapper.MessageParam> messageParams = new ArrayList<>();
+		for (SimpleUserDto user : userDtoList) {
+			CbsMessageWrapper.MessageParam messageParam = new CbsMessageWrapper.MessageParam();
+			messageParam.setUserId(user.getUserId().longValue());
+			messageParam.setAppKey(EAppKey.GYM);
+			messageParam.setClientType(EClientType.STUDENT.getCode());
+			messageParam.setType(type.getCode());
+			messageParam.setUrl(url);
+			Map<Long, String> params = new HashMap<>();
+			params.put(user.getUserId().longValue(), user.getPhone());
+			messageParam.setReceivers(params);
+			messageParam.setRealSend(!debugMode);
+			if(args != null && args.length > 0){
+				String[] argsStr = new String[args.length];
+				for (int i = 0; i < args.length; i++) {
+					if (args[i]!=null){
+						argsStr[i] = args[i].toString();
+					}else {
+						argsStr[i] = "";
+					}
 				}
-			} catch (Exception e) {
-				status = SendStatusEnum.FAILED;
-				errorMsg = e.getMessage();
-				LOGGER.warn("消息发送失败", e);
+				messageParam.setContentArgs(argsStr);
 			}
+			messageParams.add(messageParam);
 		}
-		MessageSendMode mode = MessageSendMode.SMS;
-		if (messageSender.getSendMode().equals("PUSH")) {
-			mode = MessageSendMode.PUSH;
-		} else if (messageSender.getSendMode().equals("EMAIL")) {
-			mode = MessageSendMode.EMAIL;
-			LOGGER.info("发送邮件 {} ");
-		}
-		Map<Integer, String> receivers = new HashMap<Integer, String>();
-		receivers.put(userId, receiver);
-		addMessage(receiverTenantId, receivers, title, content, triggerTime, mode, status, errorMsg, readStatus, url, null,jpushType);
+		messageFeignClientService.sysMessageBatchSendMessage(messageParams);
 	}
 
-	private void loadEmailInfo(Integer tenantId) {
-		try {
-			SysEmail email1 = sysEmailService.getOne(new WrapperUtil<SysEmail>().hasEq("tenant_id_", tenantId).queryWrapper());
-			if (email1 == null) {
-				LOGGER.error("未找到邮件配置 tenantId" + tenantId);
-				throw new RuntimeException("未找到邮件配置 tenantId" + tenantId);
-			}
-
-			messageSenderPluginContext.sysEmail.setHostName(email1.getHostName());
-			messageSenderPluginContext.sysEmail.setSmtpPort(email1.getSmtpPort());
-			messageSenderPluginContext.sysEmail.setUserName(email1.getUserName());
-			messageSenderPluginContext.sysEmail.setPassword(email1.getPassword());
-			messageSenderPluginContext.sysEmail.setFromName(email1.getFromName());
-			messageSenderPluginContext.sysEmail.setFrom(email1.getFrom());
-		} catch (Exception e) {
-		    LOGGER.error("设置邮件配置错误: {} " + e);
-		}
-	}
 
 	@Override
 	public boolean sendSecurityCode(MessageSender messageSender, Integer userId, MessageTypeEnum messageType, String receiver) {
@@ -723,12 +523,12 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 		String key = getVerificationCodeCacheKey(messageType, receiver);
 		int code = DEFAULT_CODE;
-		if (debugMode == false) {
+		if (!debugMode) {
 			code = getRandomCode(messageType, receiver);
 		}
 		Map<Integer, String> receivers = new HashMap<>(1);
 		receivers.put(userId, receiver);
-		batchSendMessage(messageSender, messageType, receivers, null, 1, "","", code);
+		batchSendMessage(messageSender, messageType, receivers, null, 1, "","", Integer.toString(code));
 		redisCache.put(key, code + "", CODE_EXPIRE);
 		redisCache.put(key1, code + "", CODE_INTERVAL_TIME);
 		return true;
@@ -736,7 +536,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	public String getSendedVerificationCode(MessageTypeEnum type, String mobileNOOrEmailAddr) {
-		if (debugMode == true) {
+		if (debugMode) {
 			return DEFAULT_CODE + "";
 		}
 		String key = getVerificationCodeCacheKey(type, mobileNOOrEmailAddr);
@@ -754,12 +554,22 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	public Map<String, Integer> queryCountOfUnread(MessageSendMode type, Integer userId, String jpushType, Integer tenantId) {
-		List<Mapper> mappers = sysMessageDao.queryCountOfUnread(type, userId, jpushType, tenantId);
+		CbsMessageWrapper.SysMessageQuery query = new CbsMessageWrapper.SysMessageQuery();
+		query.setUserId(userId.longValue());
+		query.setClientType(jpushType);
+		query.setStatus(ESendStatus.SUCCESSED);
+		query.setAppKey(EAppKey.GYM);
+		query.setSendMode(type == null?null:type == MessageSendMode.SMS?EMessageSendMode.SMS:
+				type == MessageSendMode.EMAIL?EMessageSendMode.EMAIL:
+						type == MessageSendMode.PUSH?EMessageSendMode.PUSH:EMessageSendMode.SEO);
+		query.setReadStatus(false);
+		List<CbsMessageWrapper.MessageUnreadStat> messageUnreadStats = messageFeignClientService.messageUnreadStat(query).feignData();
+//		List<Mapper> mappers = sysMessageDao.queryCountOfUnread(type, userId, jpushType, tenantId);
 
 		Map<String, Integer> map = new HashMap<String, Integer>();
 
-		for (Mapper mapper : mappers) {
-			map.put(mapper.getKey().toString(), Integer.parseInt(mapper.getValue().toString()));
+		for (CbsMessageWrapper.MessageUnreadStat mapper : messageUnreadStats) {
+			map.put(mapper.getGroup(), mapper.getNumber());
 		}
 
 		return map;
@@ -792,17 +602,26 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	 * @return 修改的条数
 	 */
 	@Override
-	public int updateStatus(Integer userId, int status,String jpushType) {
-		return sysMessageDao.updateStatus(userId, status,jpushType);
+	public Boolean updateStatus(Integer userId, int status,String jpushType) {
+		CbsMessageWrapper.MessageRead messageRead = new CbsMessageWrapper.MessageRead();
+		messageRead.setUserId(userId.longValue());
+		messageRead.setAppKey(EAppKey.GYM);
+		messageRead.setClientType(jpushType);
+		return messageFeignClientService.batchSetRead(messageRead).feignData();
 	}
 
 	@Override
-	public int updateOneStatus(Long id, int status) {
-		return sysMessageDao.updateOneStatus(id, status);
+	public Boolean updateOneStatus(Long id) {
+		return messageFeignClientService.setRead(id).feignData();
 	}
 
 	@Override
-	public List<SysMessage> queryUserInRecentMinList(String mobile, int recentMin, MessageSendMode type) {
-		return sysMessageDao.queryUserInRecentMinList(mobile, recentMin, type);
+	public List<CbsMessageWrapper.SysMessage> queryUserInRecentMinList(String mobile, int recentMin, MessageSendMode type) {
+		CbsMessageWrapper.UserRecentMessageQuery query = new CbsMessageWrapper.UserRecentMessageQuery();
+		query.setPhone(mobile);
+		query.setRecentMin(recentMin);
+		query.setSendMode(EMessageSendMode.SMS);
+		query.setAppKey(EAppKey.GYM);
+		return messageFeignClientService.userRecentMessageRecords(query).feignData();
 	}
 }

+ 22 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserServiceImpl.java

@@ -1,7 +1,11 @@
 package com.ym.mec.biz.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.dayaedu.cbs.common.enums.EAppKey;
+import com.dayaedu.cbs.openfeign.client.MessageFeignClientService;
+import com.dayaedu.cbs.openfeign.wrapper.message.CbsMessageWrapper;
 import com.google.common.collect.Lists;
+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.TeacherDao;
@@ -17,9 +21,9 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.jetbrains.annotations.Nullable;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.io.Serializable;
 import java.util.*;
 
@@ -27,17 +31,18 @@ import java.util.*;
 @Service
 public class SysUserServiceImpl implements SysUserService {
 
-    @Autowired
+    @Resource
     private SysUserFeignService sysUserFeignService;
-    @Autowired
+    @Resource
     private TeacherDao teacherDao;
-    @Autowired
+    @Resource
     private SysConfigService sysConfigService;
-    @Autowired
+    @Resource
     private ImGroupCoreService imGroupCoreService;
-
-    @Autowired
+    @Resource
     private MessageSenderPluginContext messageSenderPluginContext;
+    @Resource
+    private MessageFeignClientService messageFeignClientService;
 
     @Override
     public Integer getUserId(){
@@ -149,13 +154,16 @@ public class SysUserServiceImpl implements SysUserService {
 
     @Override
     public void imDeviceId(UserInfoWrapper.UpdateUser info) {
-
-
-        teacherDao.updateImDeviceId(info.getImDeviceId(), info.getClient().getCode(), info.getUserId());
-
-
-        messageSenderPluginContext.getMessageSenderPlugin(MessageSenderPluginContext.MessageSender.JIGUANG)
-            .deviceRemoveAlias(info.getUserId().toString(),Lists.newArrayList(info.getImDeviceId()),info.getClient().getCode());
+        CbsMessageWrapper.UpdateDevice updateDevice = new CbsMessageWrapper.UpdateDevice();
+        updateDevice.setUserId(info.getUserId().longValue());
+        updateDevice.setDeviceIds(Lists.newArrayList(info.getImDeviceId()));
+        updateDevice.setClientType(info.getClient().getCode());
+        updateDevice.setAppKey(EAppKey.GYM);
+        R<Boolean> booleanR = messageFeignClientService.updateDevice(updateDevice);
+        if (booleanR != null && booleanR.feignData()) {
+            teacherDao.updateImDeviceId(info.getImDeviceId(), info.getClient().getCode(), info.getUserId());
+        }
+        log.error("更新用户设备信息失败,userId:{}", info.getUserId());
     }
 
     @Nullable

+ 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.2</version>
+			<version>1.0.4</version>
 			<exclusions>
 				<exclusion>
 					<groupId>com.alibaba.cloud</groupId>

+ 0 - 25
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/MessageSenderPluginContext.java

@@ -82,31 +82,6 @@ public class MessageSenderPluginContext implements ApplicationContextAware {
 		return future.join();
 	}
 
-	/**
-	 * 批量发送消息至目的地
-	 * @param messageSender 消息发送方
-	 * @param subject 消息主题
-	 * @param content 消息内容
-	 * @param receivers 收件人列表
-	 * @param url 链接地址
-	 * @return 是否发送成功
-	 * @throws IOException
-	 */
-	public boolean batchSend(MessageSender messageSender, String subject, String content, String[] receivers, String url, String jpushType,String sound,String channelId) throws Exception {
-		ExecutorService executor = Executors.newFixedThreadPool(5);
-		CompletableFuture<Boolean> future = CompletableFuture.supplyAsync(()->{
-			messageSenderPlugin = getMessageSenderPlugin(messageSender);
-			try {
-				return messageSenderPlugin.batchSend(subject, content, receivers, url, jpushType,sound,channelId);
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-			return false;
-		},executor);
-		executor.shutdown();
-		return future.join();
-	}
-
 	@Override
 	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
 		this.applicationContext = applicationContext;