diff --git a/src/main/java/cn/org/bjca/trust/java/imserver/controller/message/v1/MessageV1Controller.java b/src/main/java/cn/org/bjca/trust/java/imserver/controller/message/v1/MessageV1Controller.java new file mode 100644 index 0000000..7021d1b --- /dev/null +++ b/src/main/java/cn/org/bjca/trust/java/imserver/controller/message/v1/MessageV1Controller.java @@ -0,0 +1,22 @@ +package cn.org.bjca.trust.java.imserver.controller.message.v1; + +import cn.org.bjca.trust.java.imserver.HttpResult; +import cn.org.bjca.trust.java.imserver.bean.group.GroupCreateData; +import cn.org.bjca.trust.java.imserver.common.json.GsonImplHelp; +import cn.org.bjca.trust.java.imserver.request.RequestManager; +import org.springframework.http.HttpHeaders; +import org.springframework.web.bind.annotation.*; + +import static cn.org.bjca.trust.java.imserver.request.RequestConstant.Group_create_v1; + +@RestController +@RequestMapping("message/v1") +public class MessageV1Controller { + + @PostMapping("/getHistory") + public HttpResult create(@RequestBody GroupCreateData groupCreateData, @RequestHeader HttpHeaders headers) throws Exception { + System.out.println(GsonImplHelp.get().toJson(groupCreateData)); + return RequestManager.getInstance().request(Group_create_v1, groupCreateData, headers); + } + +} diff --git a/src/main/java/cn/org/bjca/trust/java/imserver/im/ImManager.java b/src/main/java/cn/org/bjca/trust/java/imserver/im/ImManager.java index 9d84d0b..5d36342 100644 --- a/src/main/java/cn/org/bjca/trust/java/imserver/im/ImManager.java +++ b/src/main/java/cn/org/bjca/trust/java/imserver/im/ImManager.java @@ -3,6 +3,7 @@ package cn.org.bjca.trust.java.imserver.im; import cn.org.bjca.trust.java.imserver.common.SpringUtilsAuTo; import cn.org.bjca.trust.java.imserver.common.json.GsonImplHelp; +import cn.org.bjca.trust.java.imserver.entitys.GroupEntity; import cn.org.bjca.trust.java.imserver.enums.PacketType; import cn.org.bjca.trust.java.imserver.im.bean.PacketMessage; import cn.org.bjca.trust.java.imserver.im.msg.ConnectMessage; @@ -10,6 +11,7 @@ import cn.org.bjca.trust.java.imserver.im.msg.ConnectedMessage; import cn.org.bjca.trust.java.imserver.im.msg.msg.SZYXMessage; import cn.org.bjca.trust.java.imserver.im.msg.msg.SendAckMessage; import cn.org.bjca.trust.java.imserver.repository.ConnectRepository; +import cn.org.bjca.trust.java.imserver.repository.GroupRepository; import cn.org.bjca.trust.java.imserver.repository.MessageRepository; import cn.org.bjca.trust.java.imserver.repository.UserRepository; import cn.org.bjca.trust.java.imserver.request.RequestManager; @@ -22,6 +24,7 @@ public class ImManager { private final UserRepository userRepository = SpringUtilsAuTo.getBean(UserRepository.class); private final MessageRepository messageRepository = SpringUtilsAuTo.getBean(MessageRepository.class); + private final GroupRepository groupRepository = SpringUtilsAuTo.getBean(GroupRepository.class); private final ConnectRepository connectRepository = SpringUtilsAuTo.getBean(ConnectRepository.class); public static ImManager getInstance() { @@ -87,6 +90,17 @@ public class ImManager { message1.setArrive(true); message1.setStatus(1); if (szyxMessage.isGroup()) { + for (GroupEntity groupEntity : groupRepository.findAllByAppIdAndGroupIdAndUserIdNot(message1.getAppId(), message1.getGroupID(), message1.getFromClientId())) { + + SZYXMessage message2 = message1.copy(); + message2.setUserName(groupEntity.getUserId()); + try { + messageRepository.save(message2); + } catch (Exception e) { + System.out.println("--------------" + e.getMessage()); + } + sendPacketMessage(szyxMessage.getPacketType(), message2); + } } else { message1.setUserName(message1.getToClientId()); try { diff --git a/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/RequestMessage.java b/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/RequestMessage.java index 5237fbd..cc32ce6 100644 --- a/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/RequestMessage.java +++ b/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/RequestMessage.java @@ -7,7 +7,6 @@ import jakarta.persistence.Entity; import lombok.Data; @Data -@Entity public class RequestMessage extends PacketMessage { public RequestMessage() { super(PacketType.REQUEST); diff --git a/src/main/java/cn/org/bjca/trust/java/imserver/repository/GroupRepository.java b/src/main/java/cn/org/bjca/trust/java/imserver/repository/GroupRepository.java index e97610b..62958a4 100644 --- a/src/main/java/cn/org/bjca/trust/java/imserver/repository/GroupRepository.java +++ b/src/main/java/cn/org/bjca/trust/java/imserver/repository/GroupRepository.java @@ -10,6 +10,5 @@ import java.util.List; @Repository public interface GroupRepository extends JpaRepository { - GroupEntity getGroupEntityByGroupIdAndAppId(String groupId, String appId); - boolean existsByGroupIdAndAppId(String groupId, String appId); + List findAllByAppIdAndGroupIdAndUserIdNot(String appId, String groupId, String userId); } diff --git a/src/main/java/cn/org/bjca/trust/java/imserver/request/RequestManager.java b/src/main/java/cn/org/bjca/trust/java/imserver/request/RequestManager.java index 91b2fa3..bb85de7 100644 --- a/src/main/java/cn/org/bjca/trust/java/imserver/request/RequestManager.java +++ b/src/main/java/cn/org/bjca/trust/java/imserver/request/RequestManager.java @@ -79,7 +79,7 @@ public class RequestManager { } - public HttpResult groupCreate(GroupCreateData data, String appid, String userid) { + private HttpResult groupCreate(GroupCreateData data, String appid, String userid) { if (null == data.getUserIdList() || data.getUserIdList().isEmpty() || data.getUserIdList().size() < 2) { return new HttpResult<>(201, "群组成员需要大于一", ""); } else { @@ -104,7 +104,6 @@ public class RequestManager { } public void getHistoryForMsg(String appId, String userId, int pageSize, long timestamp) { - } }