浏览代码

节拍器自定义发送

zouxuan 5 年之前
父节点
当前提交
f67de035a8

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

@@ -39,10 +39,10 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	/**
 	 * 推送im自定义节拍器消息
 	 * @param senderId
-	 * @param targetIds
+	 * @param roomId
 	 * @param content
 	 */
-	void batchSendImPlayMidiMessage(String senderId,String[] targetIds, String content);
+	void batchSendImPlayMidiMessage(String senderId,String roomId, String content);
 
 	/**
 	 * 批量发送消息

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

@@ -12,6 +12,7 @@ import com.ym.mec.biz.dal.enums.SendStatusEnum;
 import com.ym.mec.biz.service.SysMessageConfigService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.ImGroupMessage;
 import com.ym.mec.common.entity.ImPlayMidiMessage;
 import com.ym.mec.common.entity.ImPrivateMessage;
 import com.ym.mec.common.entity.ImTxtMessage;
@@ -22,7 +23,6 @@ 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.string.MessageFormatter;
-
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -193,13 +193,14 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
-	public void batchSendImPlayMidiMessage(String senderId,String[] targetIds, String content) {
-		ImPrivateMessage privateMessage = new ImPrivateMessage();
-		privateMessage.setObjectName("DY:PlayMidiMessage");
-		privateMessage.setTargetId(targetIds);
-		privateMessage.setSenderId(senderId);
-		privateMessage.setContent(new ImPlayMidiMessage(content,null));
-		imFeignService.privateSend(privateMessage);
+	public void batchSendImPlayMidiMessage(String senderId,String roomId, String content) {
+		ImGroupMessage groupMessage = new ImGroupMessage();
+//		privateMessage.setObjectName("DY:PlayMidiMessage");
+		groupMessage.setTargetId(roomId.split(","));
+		groupMessage.setSenderId(senderId);
+		groupMessage.setContent(new ImPlayMidiMessage(content,null));
+		groupMessage.setType("DY:PlayMidiMessage");
+		imFeignService.privateSendCustom(groupMessage);
 	}
 
 	@Override
@@ -212,7 +213,6 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		privateMessage.setObjectName("RC:TxtMsg");
 		privateMessage.setTargetId(studentId.split(","));
 		privateMessage.setSenderId(sysUser.getId().toString());
-		privateMessage.setIsIncludeSender(1);
 		privateMessage.setContent(new ImTxtMessage(content,null));
 		imFeignService.privateSend(privateMessage);
 	}

+ 12 - 4
mec-client-api/src/main/java/com/ym/mec/im/ImFeignService.java

@@ -1,15 +1,12 @@
 package com.ym.mec.im;
 
-import com.ym.mec.common.entity.ImPrivateMessage;
+import com.ym.mec.common.entity.*;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import com.ym.mec.common.config.FeignConfiguration;
-import com.ym.mec.common.entity.ImGroupModel;
-import com.ym.mec.common.entity.ImResult;
-import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.im.fallback.ImFeignServiceFallback;
 
 import java.util.List;
@@ -99,4 +96,15 @@ public interface ImFeignService {
 	//{"senderId":"325","targetId":[1094986],"objectName":"RC:TxtMsg",
 	// "content":{"content":"www.baidu.com"}}
 	Object privateSend(@RequestBody ImPrivateMessage privateMessage);
+
+	/**
+	 * 发送群组自定义消息
+	 * @param groupMessage
+	 * @return
+	 */
+	@PostMapping(value = "private/sendCustom")
+	//body模板
+	//{"senderId":"325","targetId":[1094986],"objectName":"RC:TxtMsg",
+	// "content":{"content":"www.baidu.com"}}
+	Object privateSendCustom(@RequestBody ImGroupMessage groupMessage);
 }

+ 7 - 6
mec-client-api/src/main/java/com/ym/mec/im/fallback/ImFeignServiceFallback.java

@@ -1,12 +1,8 @@
 package com.ym.mec.im.fallback;
 
-import com.ym.mec.common.entity.ImPrivateMessage;
-import org.springframework.stereotype.Component;
-
-import com.ym.mec.common.entity.ImGroupModel;
-import com.ym.mec.common.entity.ImResult;
-import com.ym.mec.common.entity.ImUserModel;
+import com.ym.mec.common.entity.*;
 import com.ym.mec.im.ImFeignService;
+import org.springframework.stereotype.Component;
 
 import java.util.List;
 
@@ -63,4 +59,9 @@ public class ImFeignServiceFallback implements ImFeignService {
     public Object privateSend(ImPrivateMessage privateMessage) {
         return null;
     }
+
+    @Override
+    public Object privateSendCustom(ImGroupMessage groupMessage) {
+        return null;
+    }
 }

+ 0 - 3
mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImBaseMessage.java

@@ -1,9 +1,6 @@
 package com.ym.mec.common.entity;
 
 public abstract class ImBaseMessage {
-    public ImBaseMessage() {
-    }
-
     public abstract String getType();
 
     public abstract String toString();

+ 52 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImGroupMessage.java

@@ -0,0 +1,52 @@
+package com.ym.mec.common.entity;
+
+public class ImGroupMessage extends ImMessageModel {
+    public Integer isIncludeSender;
+    public Integer isPersisted;
+    public Integer contentAvailable;
+    public String[] toUserId;
+    private String type;
+
+    public ImGroupMessage() {
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public Integer getIsIncludeSender() {
+        return isIncludeSender;
+    }
+
+    public void setIsIncludeSender(Integer isIncludeSender) {
+        this.isIncludeSender = isIncludeSender;
+    }
+
+    public Integer getIsPersisted() {
+        return isPersisted;
+    }
+
+    public void setIsPersisted(Integer isPersisted) {
+        this.isPersisted = isPersisted;
+    }
+
+    public Integer getContentAvailable() {
+        return contentAvailable;
+    }
+
+    public void setContentAvailable(Integer contentAvailable) {
+        this.contentAvailable = contentAvailable;
+    }
+
+    public String[] getToUserId() {
+        return toUserId;
+    }
+
+    public void setToUserId(String[] toUserId) {
+        this.toUserId = toUserId;
+    }
+}

+ 1 - 1
mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImPlayMidiMessage.java

@@ -13,7 +13,7 @@ public class ImPlayMidiMessage extends ImBaseMessage {
     }
 
     public String getType() {
-        return "DY:PlayMidiMessage";
+        return TYPE;
     }
 
     public String getContent() {

+ 9 - 10
mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImPrivateMessage.java

@@ -2,6 +2,7 @@ package com.ym.mec.common.entity;
 
 public class ImPrivateMessage extends ImMessageModel {
     public String count;
+    public String type;
     //是否在融云服务器存储, 0: 不存储, 1: 存储, 默认: 1
     public Integer isPersisted;
     public Integer isCounted;
@@ -14,21 +15,19 @@ public class ImPrivateMessage extends ImMessageModel {
     public ImPrivateMessage() {
     }
 
-    public ImPrivateMessage(String senderId, String[] targetId, String objectName, ImTxtMessage content, String pushContent, String pushData, String count, Integer isPersisted, Integer isCounted, Integer verifyBlacklist, Integer isIncludeSender, Integer contentAvailable) {
-        super(senderId, targetId, objectName, content, pushContent, pushData);
-        this.count = count;
-        this.isPersisted = isPersisted;
-        this.isCounted = isCounted;
-        this.verifyBlacklist = verifyBlacklist;
-        this.isIncludeSender = isIncludeSender;
-        this.contentAvailable = contentAvailable;
-    }
-
     public ImPrivateMessage setSenderId(String senderId) {
         super.setSenderId(senderId);
         return this;
     }
 
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
     public String[] getTargetId() {
         return super.getTargetId();
     }

+ 1 - 1
mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImTxtMessage.java

@@ -13,7 +13,7 @@ public class ImTxtMessage extends ImBaseMessage {
     }
 
     public String getType() {
-        return "RC:TxtMsg";
+        return TYPE;
     }
 
     public String getContent() {

+ 16 - 3
mec-im/src/main/java/com/ym/controller/PrivateController.java

@@ -1,10 +1,10 @@
 package com.ym.controller;
 
-import com.ym.mec.common.entity.ImBaseMessage;
-import com.ym.mec.common.entity.ImPrivateMessage;
-import com.ym.mec.common.entity.ImTxtMessage;
+import com.ym.mec.common.entity.*;
+import com.ym.pojo.CustomMessage;
 import com.ym.service.MessageService;
 import io.rong.messages.TxtMessage;
+import io.rong.models.message.GroupMessage;
 import io.rong.models.message.PrivateMessage;
 import io.rong.models.message.RecallMessage;
 import io.rong.models.message.TemplateMessage;
@@ -37,6 +37,19 @@ public class PrivateController {
         return messageService.privateSend(privateMessage);
     }
 
+    @RequestMapping(value = "/sendCustom", method = RequestMethod.POST)
+    public Object sendCustom(@RequestBody ImGroupMessage imGroupMessage) throws Exception {
+        GroupMessage groupMessage = new GroupMessage();
+        ImTxtMessage content = (ImTxtMessage)imGroupMessage.getContent();
+        CustomMessage customMessage = new CustomMessage(content.getContent(),content.getExtra());
+        customMessage.setTYPE(imGroupMessage.getType());
+        groupMessage.setContent(customMessage);
+        groupMessage.setTargetId(imGroupMessage.getTargetId());
+        groupMessage.setSenderId(imGroupMessage.getSenderId());
+        groupMessage.setObjectName(imGroupMessage.getType());
+        return messageService.groupSend(groupMessage);
+    }
+
     @RequestMapping(value = "/recall", method = RequestMethod.POST)
     public Object recall(@RequestBody RecallMessage recallMessage) throws Exception {
         return messageService.privateRecall(recallMessage);

+ 2 - 2
mec-im/src/main/java/com/ym/controller/RoomController.java

@@ -42,8 +42,8 @@ public class RoomController{
     }
 
     @RequestMapping(value = "/sendImPlayMidiMessage", method = RequestMethod.POST)
-    public Object sendImPlayMidiMessage(String userId,String content,String roomId){
-        roomService.sendImPlayMidiMessage(userId,content,roomId);
+    public Object sendImPlayMidiMessage(@RequestBody PlayMidiMessageData playMidiMessageData){
+        roomService.sendImPlayMidiMessage(playMidiMessageData);
         return new BaseResponse<>();
     }
 

+ 43 - 0
mec-im/src/main/java/com/ym/pojo/CustomMessage.java

@@ -0,0 +1,43 @@
+package com.ym.pojo;
+
+import com.alibaba.fastjson.JSONObject;
+import io.rong.messages.BaseMessage;
+
+public class CustomMessage extends BaseMessage {
+    private String content = "";
+    private String extra = "";
+    private String TYPE = "";
+
+    public CustomMessage(String content, String extra) {
+        this.content = content;
+        this.extra = extra;
+    }
+
+    public void setTYPE(String TYPE) {
+        this.TYPE = TYPE;
+    }
+
+    public String getType() {
+        return TYPE;
+    }
+
+    public String getContent() {
+        return this.content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getExtra() {
+        return this.extra;
+    }
+
+    public void setExtra(String extra) {
+        this.extra = extra;
+    }
+
+    public String toString() {
+        return JSONObject.toJSONString(this);
+    }
+}

+ 37 - 0
mec-im/src/main/java/com/ym/pojo/PlayMidiMessageData.java

@@ -0,0 +1,37 @@
+package com.ym.pojo;
+
+import lombok.Data;
+
+/**
+ * Created by weiqinxiao on 2019/3/1.
+ */
+@Data
+public class PlayMidiMessageData {
+	private String content;
+	private String roomId;
+	private String userId;
+
+	public String getContent() {
+		return content;
+	}
+
+	public void setContent(String content) {
+		this.content = content;
+	}
+
+	public String getRoomId() {
+		return roomId;
+	}
+
+	public void setRoomId(String roomId) {
+		this.roomId = roomId;
+	}
+
+	public String getUserId() {
+		return userId;
+	}
+
+	public void setUserId(String userId) {
+		this.userId = userId;
+	}
+}

+ 2 - 14
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -1370,24 +1370,12 @@ public class RoomServiceImpl implements RoomService {
     }
 
     @Override
-    public void sendImPlayMidiMessage(String userId, String content,String roomId) {
+    public void sendImPlayMidiMessage(PlayMidiMessageData playMidiMessageData) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(sysUser == null){
             throw new BizException("用户信息获取失败");
         }
-        String[] targetIds;
-        if(StringUtils.isNotEmpty(userId)){
-            targetIds = userId.split(",");
-        }else {
-            List<RoomMember> roomMembers = roomMemberDao.findByRidAndRole(roomId, RoleEnum.RoleStudent.getValue());
-            if(roomMembers.size() > 0){
-                Set<String> collect = roomMembers.stream().map(e -> e.getUid()).collect(Collectors.toSet());
-                targetIds = (String[]) collect.toArray();
-            }else {
-                return;
-            }
-        }
-        sysMessageService.batchSendImPlayMidiMessage(sysUser.getId().toString(),targetIds,content);
+        sysMessageService.batchSendImPlayMidiMessage(sysUser.getId().toString(),playMidiMessageData.getRoomId(),playMidiMessageData.getContent());
     }
 
     private void updateDisplay(String roomId, String senderId, String display, Integer isIncludeSender) throws ApiException, Exception {

+ 1 - 3
mec-im/src/main/java/com/ym/service/RoomService.java

@@ -69,8 +69,6 @@ public interface RoomService {
 
     /**
      * 发送节拍器自定义消息
-     * @param userId
-     * @param content
      */
-    void sendImPlayMidiMessage(String userId, String content,String roomId);
+    void sendImPlayMidiMessage(PlayMidiMessageData playMidiMessageData);
 }