123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- package com.ym.controller;
- import com.google.common.collect.Lists;
- import com.ym.mec.common.entity.ImMessageDto;
- import com.ym.pojo.NoticeMessage;
- import com.ym.service.GroupService;
- import com.ym.service.MessageService;
- import io.rong.messages.FileMessage;
- import io.rong.messages.ImgMessage;
- import io.rong.messages.TxtMessage;
- import io.rong.models.Result;
- import io.rong.models.group.GroupMember;
- import io.rong.models.group.GroupModel;
- import io.rong.models.group.UserGroup;
- import io.rong.models.message.GroupMessage;
- import io.rong.models.message.MentionMessage;
- import io.rong.models.message.RecallMessage;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RestController;
- import java.util.Arrays;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * Created by weiqinxiao on 2019/2/25.
- */
- @RestController
- @RequestMapping("/group")
- public class GroupController{
- @Autowired
- MessageService messageService;
- @Autowired
- GroupService groupService;
- @RequestMapping(value = "/send", method = RequestMethod.POST)
- public Object send(@RequestBody ImMessageDto imMessageDto) throws Exception {
- GroupMessage groupMessage = new GroupMessage();
- String objectName = imMessageDto.getObjectName();
- if("DY:NoticeMsg".equals(objectName)){
- NoticeMessage noticeMessage = new NoticeMessage(imMessageDto.getMessageContent(),imMessageDto.getExtra());
- groupMessage.setContent(noticeMessage);
- }else if("RC:ImgMsg".equals(objectName)){
- ImgMessage imgMessage = new ImgMessage(imMessageDto.getMessageContent(),imMessageDto.getExtra(),imMessageDto.getFileUrl());
- groupMessage.setContent(imgMessage);
- }else if("RC:FileMsg".equals(objectName)){
- FileMessage imgMessage = new FileMessage(imMessageDto.getFileName(),imMessageDto.getFileSize(),imMessageDto.getFileUrl(),imMessageDto.getExtra());
- groupMessage.setContent(imgMessage);
- }else {
- TxtMessage txtMessage = new TxtMessage(imMessageDto.getMessageContent(),imMessageDto.getExtra());
- groupMessage.setContent(txtMessage);
- }
- groupMessage.setSenderId(imMessageDto.getSenderId());
- groupMessage.setObjectName(imMessageDto.getObjectName());
- groupMessage.setIsIncludeSender(imMessageDto.getIsIncludeSender());
- //融云只支持3个群以内的群发
- String[] targetIds = imMessageDto.getTargetIds();
- List<String> imGroupIds = Arrays.stream(targetIds).collect(Collectors.toList());
- List<List<String>> partition = Lists.partition(imGroupIds, 3);
- Result result = null;
- for (List<String> integers : partition) {
- String[] strings = integers.toArray(new String[integers.size()]);
- groupMessage.setTargetId(strings);
- result = messageService.groupSend(groupMessage);
- }
- return result;
- }
- @RequestMapping(value = "/sendDirection", method = RequestMethod.POST)
- public Object sendDirection(@RequestBody GroupMessage groupMessage) throws Exception {
- return messageService.groupSendDirection(groupMessage);
- }
- @RequestMapping(value = "/sendMention", method = RequestMethod.POST)
- public Object sendMention(@RequestBody MentionMessage mentionMessage) throws Exception {
- return messageService.groupSendMention(mentionMessage);
- }
- @RequestMapping(value = "/recall", method = RequestMethod.POST)
- public Object recall(@RequestBody RecallMessage recallMessage) throws Exception {
- return messageService.groupRecall(recallMessage);
- }
- @RequestMapping(value = "/sync", method = RequestMethod.POST)
- public Object sync(@RequestBody UserGroup userGroup) throws Exception {
- return groupService.groupSync(userGroup);
- }
- @RequestMapping(value = "/create", method = RequestMethod.POST)
- public Object create(@RequestBody GroupModel groupModel) throws Exception {
- return groupService.groupCreate(groupModel);
- }
- @RequestMapping(value = "/batchCreate", method = RequestMethod.POST)
- public void batchCreate(@RequestBody List<GroupModel> groupModels){
- groupService.batchCreate(groupModels);
- }
- @RequestMapping(value = "/get", method = RequestMethod.POST)
- public Object get(@RequestBody GroupModel groupModel) throws Exception {
- return groupService.groupGet(groupModel);
- }
- @RequestMapping(value = "/update", method = RequestMethod.POST)
- public Object update(@RequestBody GroupModel groupModel) throws Exception {
- return groupService.groupUpdate(groupModel);
- }
- @RequestMapping(value = "/join", method = RequestMethod.POST)
- public Object join(@RequestBody GroupModel groupModel) throws Exception {
- return groupService.groupJoin(groupModel);
- }
- @RequestMapping(value = "/batchJoin", method = RequestMethod.POST)
- public void batchJoin(@RequestBody List<GroupModel> groupModels) throws Exception {
- groupService.groupBatchJoin(groupModels);
- }
- @RequestMapping(value = "/quit", method = RequestMethod.POST)
- public Object quit(@RequestBody GroupModel groupModel) throws Exception {
- return groupService.groupQuit(groupModel);
- }
- @RequestMapping(value = "/batchQuit", method = RequestMethod.POST)
- public void batchQuit(@RequestBody List<GroupModel> groupModels) throws Exception {
- groupService.groupBatchQuit(groupModels);
- }
- @RequestMapping(value = "/dismiss", method = RequestMethod.POST)
- public Object dismiss(@RequestBody GroupModel groupModel) throws Exception {
- GroupMember[] groupMember = {new GroupMember("1",null,null)};
- groupModel.setMembers(groupMember);
- return groupService.groupDismiss(groupModel);
- }
- @RequestMapping(value = "/batchDismiss", method = RequestMethod.POST)
- public void batchDismiss(@RequestBody List<GroupModel> groupModels){
- groupService.groupBatchDismiss(groupModels);
- }
- }
|