GroupController.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package com.ym.controller;
  2. import com.google.common.collect.Lists;
  3. import com.ym.mec.common.entity.ImMessageDto;
  4. import com.ym.pojo.NoticeMessage;
  5. import com.ym.service.GroupService;
  6. import com.ym.service.MessageService;
  7. import io.rong.messages.FileMessage;
  8. import io.rong.messages.ImgMessage;
  9. import io.rong.messages.TxtMessage;
  10. import io.rong.models.Result;
  11. import io.rong.models.group.GroupMember;
  12. import io.rong.models.group.GroupModel;
  13. import io.rong.models.group.UserGroup;
  14. import io.rong.models.message.GroupMessage;
  15. import io.rong.models.message.MentionMessage;
  16. import io.rong.models.message.RecallMessage;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.web.bind.annotation.RequestBody;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.RequestMethod;
  21. import org.springframework.web.bind.annotation.RestController;
  22. import java.util.Arrays;
  23. import java.util.List;
  24. import java.util.stream.Collectors;
  25. /**
  26. * Created by weiqinxiao on 2019/2/25.
  27. */
  28. @RestController
  29. @RequestMapping("/group")
  30. public class GroupController{
  31. @Autowired
  32. MessageService messageService;
  33. @Autowired
  34. GroupService groupService;
  35. @RequestMapping(value = "/send", method = RequestMethod.POST)
  36. public Object send(@RequestBody ImMessageDto imMessageDto) throws Exception {
  37. GroupMessage groupMessage = new GroupMessage();
  38. String objectName = imMessageDto.getObjectName();
  39. if("DY:NoticeMsg".equals(objectName)){
  40. NoticeMessage noticeMessage = new NoticeMessage(imMessageDto.getMessageContent(),imMessageDto.getExtra());
  41. groupMessage.setContent(noticeMessage);
  42. }else if("RC:ImgMsg".equals(objectName)){
  43. ImgMessage imgMessage = new ImgMessage(imMessageDto.getMessageContent(),imMessageDto.getExtra(),imMessageDto.getFileUrl());
  44. groupMessage.setContent(imgMessage);
  45. }else if("RC:FileMsg".equals(objectName)){
  46. FileMessage imgMessage = new FileMessage(imMessageDto.getFileName(),imMessageDto.getFileSize(),imMessageDto.getFileUrl(),imMessageDto.getExtra());
  47. groupMessage.setContent(imgMessage);
  48. }else {
  49. TxtMessage txtMessage = new TxtMessage(imMessageDto.getMessageContent(),imMessageDto.getExtra());
  50. groupMessage.setContent(txtMessage);
  51. }
  52. groupMessage.setSenderId(imMessageDto.getSenderId());
  53. groupMessage.setObjectName(imMessageDto.getObjectName());
  54. groupMessage.setIsIncludeSender(imMessageDto.getIsIncludeSender());
  55. //融云只支持3个群以内的群发
  56. String[] targetIds = imMessageDto.getTargetIds();
  57. List<String> imGroupIds = Arrays.stream(targetIds).collect(Collectors.toList());
  58. List<List<String>> partition = Lists.partition(imGroupIds, 3);
  59. Result result = null;
  60. for (List<String> integers : partition) {
  61. String[] strings = integers.toArray(new String[integers.size()]);
  62. groupMessage.setTargetId(strings);
  63. result = messageService.groupSend(groupMessage);
  64. }
  65. return result;
  66. }
  67. @RequestMapping(value = "/sendDirection", method = RequestMethod.POST)
  68. public Object sendDirection(@RequestBody GroupMessage groupMessage) throws Exception {
  69. return messageService.groupSendDirection(groupMessage);
  70. }
  71. @RequestMapping(value = "/sendMention", method = RequestMethod.POST)
  72. public Object sendMention(@RequestBody MentionMessage mentionMessage) throws Exception {
  73. return messageService.groupSendMention(mentionMessage);
  74. }
  75. @RequestMapping(value = "/recall", method = RequestMethod.POST)
  76. public Object recall(@RequestBody RecallMessage recallMessage) throws Exception {
  77. return messageService.groupRecall(recallMessage);
  78. }
  79. @RequestMapping(value = "/sync", method = RequestMethod.POST)
  80. public Object sync(@RequestBody UserGroup userGroup) throws Exception {
  81. return groupService.groupSync(userGroup);
  82. }
  83. @RequestMapping(value = "/create", method = RequestMethod.POST)
  84. public Object create(@RequestBody GroupModel groupModel) throws Exception {
  85. return groupService.groupCreate(groupModel);
  86. }
  87. @RequestMapping(value = "/batchCreate", method = RequestMethod.POST)
  88. public void batchCreate(@RequestBody List<GroupModel> groupModels){
  89. groupService.batchCreate(groupModels);
  90. }
  91. @RequestMapping(value = "/get", method = RequestMethod.POST)
  92. public Object get(@RequestBody GroupModel groupModel) throws Exception {
  93. return groupService.groupGet(groupModel);
  94. }
  95. @RequestMapping(value = "/update", method = RequestMethod.POST)
  96. public Object update(@RequestBody GroupModel groupModel) throws Exception {
  97. return groupService.groupUpdate(groupModel);
  98. }
  99. @RequestMapping(value = "/join", method = RequestMethod.POST)
  100. public Object join(@RequestBody GroupModel groupModel) throws Exception {
  101. return groupService.groupJoin(groupModel);
  102. }
  103. @RequestMapping(value = "/batchJoin", method = RequestMethod.POST)
  104. public void batchJoin(@RequestBody List<GroupModel> groupModels) throws Exception {
  105. groupService.groupBatchJoin(groupModels);
  106. }
  107. @RequestMapping(value = "/quit", method = RequestMethod.POST)
  108. public Object quit(@RequestBody GroupModel groupModel) throws Exception {
  109. return groupService.groupQuit(groupModel);
  110. }
  111. @RequestMapping(value = "/batchQuit", method = RequestMethod.POST)
  112. public void batchQuit(@RequestBody List<GroupModel> groupModels) throws Exception {
  113. groupService.groupBatchQuit(groupModels);
  114. }
  115. @RequestMapping(value = "/dismiss", method = RequestMethod.POST)
  116. public Object dismiss(@RequestBody GroupModel groupModel) throws Exception {
  117. GroupMember[] groupMember = {new GroupMember("1",null,null)};
  118. groupModel.setMembers(groupMember);
  119. return groupService.groupDismiss(groupModel);
  120. }
  121. @RequestMapping(value = "/batchDismiss", method = RequestMethod.POST)
  122. public void batchDismiss(@RequestBody List<GroupModel> groupModels){
  123. groupService.groupBatchDismiss(groupModels);
  124. }
  125. }