示例#1
0
        public static async Task <DB.messageDB> SendMsgtoDB(Model.DismissGroupPackage package)
        {
            DB.messageDB msg = new DB.messageDB()
            {
                from         = package.from,
                to           = package.to,
                msgTime      = package.time.Value,
                msgId        = package.id,
                body         = Util.Helpers.Json.ToJson(package.data),
                optionRecord = 1,
                roomId       = package.data.groupId,
                Source       = Util.Helpers.Json.ToJson(package),
                roomType     = 1//群聊窗体显示
            };

            msg.content = $"该群已经被解散!";

            msg.msgType = nameof(SDKProperty.MessageType.notification);
            try
            {
                await SDKProperty.SQLiteConn.InsertAsync(msg);

                return(msg);
            }
            catch (Exception ex)
            {
                SDKClient.logger.Error($"消息处理异常:error:{ex.Message},stack:{ex.StackTrace};\r\n");
                return(null);
            }
        }
示例#2
0
        public static async Task <DB.messageDB> SendMsgtoDB(Model.JoinGroupAcceptedPackage package)
        {
            DB.messageDB msg = new DB.messageDB()
            {
                from         = package.from,
                to           = package.to,
                msgTime      = package.time.Value,
                msgId        = package.id,
                body         = Util.Helpers.Json.ToJson(package.data),
                optionRecord = 1,
                roomId       = package.data.groupId,
                Source       = Util.Helpers.Json.ToJson(package),
                roomType     = 1//群聊窗体显示
            };
            // msg.content = $"{package.data.inviteUserName}\t邀请:{string.Join<int>(",",package.data.userIds)}\t入群:{package.data.groupName}";
            if (package.data.userName == SDKClient.Instance.property.CurrentAccount.userName)
            {
                msg.content = $"你进入群聊";
            }
            else
            {
                msg.content = $"[{package.data.userName}] 进入群聊";
            }
            msg.msgType = nameof(SDKProperty.MessageType.notification);
            try
            {
                await SDKProperty.SQLiteConn.InsertAsync(msg);

                return(msg);
            }
            catch (Exception)
            {
                return(null);
            }
        }
示例#3
0
        public static async Task <DB.messageDB> SendMsgtoDB(Model.InviteJoinGroupPackage package, SDKProperty.MessageState state = SDKProperty.MessageState.noRead, bool isFoward = false)
        {
            var msgId   = string.Empty;
            var isGroup = false;

            if (package.data.targetGroupId == 0)
            {
                //var userId = isFoward ? package.to : package.from;
                msgId = package.id + package.to + "single";
            }
            else
            {
                isGroup = true;
                msgId   = package.id + package.data.targetGroupId + "group";
            }
            int roomId = 0;

            if (isFoward)
            {
                int.TryParse(package.to, out roomId);
            }
            else
            {
                int.TryParse(package.from, out roomId);
            }
            DB.messageDB msg = new DB.messageDB()
            {
                from         = package.from,
                to           = package.to,
                msgTime      = package.time.Value,
                msgId        = msgId,
                body         = Util.Helpers.Json.ToJson(package.data),
                optionRecord = (int)state,//收到群名片消息,消息为未读
                roomId       = isGroup ? package.data.targetGroupId : roomId,
                Source       = Util.Helpers.Json.ToJson(package),
                roomType     = isGroup ? 1 : 0//单聊窗体显示
            };
            // msg.content = $"{package.data.inviteUserName}\t邀请:{string.Join<int>(",",package.data.userIds)}\t入群:{package.data.groupName}";
            msg.content = "群名片";
            msg.msgType = nameof(SDKProperty.MessageType.invitejoingroup);
            try
            {
                await SDKProperty.SQLiteConn.InsertAsync(msg);

                return(msg);
            }
            catch (Exception ex)
            {
                SDKClient.logger.Error($"消息处理异常:error:{ex.Message},stack:{ex.StackTrace};\r\n");
                return(null);
            }
        }
示例#4
0
        public static async Task <DB.messageDB> SendMsgtoDB(Model.ExitGroupPackage package)
        {
            DB.messageDB msg = new DB.messageDB()
            {
                from         = package.from,
                to           = package.to,
                msgTime      = package.time.Value,
                msgId        = package.id,
                body         = Util.Helpers.Json.ToJson(package.data),
                optionRecord = 1,
                roomId       = package.data.groupId,
                Source       = Util.Helpers.Json.ToJson(package),
                roomType     = 1//群聊窗体显示
            };

            string prefix = string.Empty;
            string suffix = package.data.adminId == 0 ? "退出群聊" : "被移出群聊";
            string tip    = string.Empty;

            //if (package.data.userIds.Count == 1 && package.data.userIds[0] == SDKClient.Instance.property.CurrentAccount.userID)
            if (package.data.userIds.Contains(SDKClient.Instance.property.CurrentAccount.userID))
            {
                prefix = package.data.adminId == 0 ? "我" : "你";
                tip    = string.Format("{0}{1}", prefix, suffix);
            }
            else
            {
                foreach (var item in package.data.userNames)
                {
                    prefix += item + "、";
                }
                prefix = prefix.TrimEnd('、');
                tip    = string.Format("[{0}] {1}", prefix, suffix);
            }

            msg.content = tip;

            msg.msgType = nameof(SDKProperty.MessageType.notification);
            try
            {
                await SDKProperty.SQLiteConn.InsertAsync(msg);

                return(msg);
            }
            catch (Exception ex)
            {
                SDKClient.logger.Error($"消息处理异常:error:{ex.Message},stack:{ex.StackTrace};\r\n");
                return(null);
            }
        }
示例#5
0
        public static async Task <DB.messageDB> SendMsgtoDB(Model.JoinGroupPackage package)
        {
            DB.messageDB msg = new DB.messageDB()
            {
                from         = package.from,
                to           = package.to,
                msgTime      = package.time.Value,
                msgId        = package.id,
                body         = Util.Helpers.Json.ToJson(package.data),
                optionRecord = package.data.isAccepted == true?1:0,//
                roomId       = package.data.groupId,
                Source       = Util.Helpers.Json.ToJson(package),
                roomType     = 1
            };
            if (!package.data.isAccepted)
            {
                msg.content = $"[{package.data.userName}] 申请进入群聊";
            }
            else
            {
                if (package.data.userId != SDKClient.Instance.property.CurrentAccount.userID)
                {
                    msg.content = $"[{package.data.userName}] 进入群聊";
                }
                else
                {
                    msg.content = $"你进入群聊";
                }
            }

            msg.msgType = nameof(SDKProperty.MessageType.notification);
            try
            {
                await SDKProperty.SQLiteConn.InsertAsync(msg);

                return(msg);
            }
            catch (Exception ex)
            {
                SDKClient.logger.Error($"消息处理异常:error:{ex.Message},stack:{ex.StackTrace};\r\n");
                return(null);
            }
        }
示例#6
0
        public static async Task <DB.messageDB> SendMsgtoDB(Model.CreateGroupComponsePackage package)
        {
            DB.messageDB msg = new DB.messageDB()
            {
                from         = package.from,
                to           = package.to,
                msgTime      = package.time.Value,
                msgId        = package.id,
                body         = Util.Helpers.Json.ToJson(package.data),
                optionRecord = 1,
                roomId       = package.data.groupId,
                Source       = Util.Helpers.Json.ToJson(package),
                roomType     = 1//群聊窗体显示
            };
            StringBuilder sb = new StringBuilder();

            foreach (var item in package.data.items)
            {
                sb.Append(item.userName);
                sb.Append("、");
            }
            sb.Remove(sb.Length - 1, 1);
            // msg.content = $"{package.data.inviteUserName}\t邀请:{string.Join<int>(",",package.data.userIds)}\t入群:{package.data.groupName}";
            msg.content = $"[{sb.ToString()}] 进入群聊";

            msg.msgType = nameof(SDKProperty.MessageType.notification);
            try
            {
                await SDKProperty.SQLiteConn.InsertAsync(msg);

                await DAL.DALGroupOptionHelper.InsertGroupInfo(package);

                return(msg);
            }
            catch (Exception ex)
            {
                SDKClient.logger.Error($"消息处理异常:error:{ex.Message},stack:{ex.StackTrace};\r\n");
                return(null);
            }
        }
示例#7
0
        public static async Task SendMsgtoDB(Model.SysNotifyPackage package)
        {
            DB.messageDB msg = new DB.messageDB()
            {
                from         = package.from,
                to           = package.to,
                msgTime      = package.time.Value,
                msgId        = package.id,
                body         = Util.Helpers.Json.ToJson(package.data),
                optionRecord = 1,
                roomId       = package.from.ToInt(),
                Source       = Util.Helpers.Json.ToJson(package),
                roomType     = 1
            };
            StringBuilder sb = new StringBuilder();

            if (package.data.body.type == nameof(chatType.groupChat))
            {
                msg.roomId   = package.data.body.groupInfo.groupId;
                msg.roomType = 1;
            }
            else
            {
                msg.roomType = 0;
            }
            msg.content = "[红包退款通知]";

            msg.msgType = nameof(SDKProperty.MessageType.notification);
            try
            {
                await SDKProperty.SQLiteConn.InsertAsync(msg);
            }
            catch (Exception ex)
            {
                SDKClient.logger.Error($"消息处理异常:error:{ex.Message},stack:{ex.StackTrace};\r\n");
            }
        }
示例#8
0
        public static async Task <DB.messageDB> SendMsgtoDB(Model.UpdateGroupPackage package)
        {
            DB.messageDB msg = new DB.messageDB()
            {
                from         = package.from,
                to           = package.to,
                msgTime      = package.time.Value,
                msgId        = package.id,
                body         = Util.Helpers.Json.ToJson(package.data),
                optionRecord = 1,
                roomId       = package.data.groupId,
                Source       = Util.Helpers.Json.ToJson(package),
                roomType     = 1//群聊窗体显示
            };
            // msg.content = $"{package.data.inviteUserName}\t邀请:{string.Join<int>(",",package.data.userIds)}\t入群:{package.data.groupName}";
            switch (package.data.setType)
            {
            case (int)Model.SetGroupOption.修改群名称:
                msg.content = $"群名称修改为:[{package.data.content}]";
                break;

            case (int)Model.SetGroupOption.修改群头像:
                msg.content = "群头像已修改";
                return(null);    //不需要显示 该条信息

            case (int)Model.SetGroupOption.修改群简介:
                msg.content = $"修改群简介:[{package.data.content}]";
                break;

            case (int)Model.SetGroupOption.设置入群验证方式:
                switch (package.data.content)
                {
                case "1":
                    msg.content = "入群方式修改为: [管理员审批入群]";
                    break;

                case "2":
                    msg.content = "移动端入群方式修改为: [自由入群]";
                    break;

                case "3":
                    msg.content = "移动端入群方式修改为: [密码入群]";
                    break;

                default:
                    break;
                }
                break;

            default:
                break;
            }

            msg.msgType = nameof(SDKProperty.MessageType.notification);
            try
            {
                await SDKProperty.SQLiteConn.InsertAsync(msg);

                return(msg);
            }
            catch (Exception ex)
            {
                SDKClient.logger.Error($"入库异常:error:{ex.Message},stack:{ex.StackTrace};\r\n");
                return(null);
            }
        }
示例#9
0
        public static async Task <List <DB.messageDB> > SendMsgtoDB(Model.SetMemberPowerPackage package)
        {
            int index = 0;
            List <DB.messageDB> lst = new List <DB.messageDB>();

            try
            {
                foreach (var item in package.data.userIds)
                {
                    DB.messageDB msg = new DB.messageDB()
                    {
                        from         = package.from,
                        to           = package.to,
                        msgTime      = package.time.Value,
                        msgId        = SDKProperty.RNGId,
                        body         = Util.Helpers.Json.ToJson(package.data),
                        optionRecord = 1,
                        roomId       = package.data.groupId,
                        Source       = Util.Helpers.Json.ToJson(package),
                        roomType     = 1//群聊窗体显示
                    };
                    msg.msgType = nameof(SDKProperty.MessageType.notification);
                    string info = string.Empty;
                    if (package.data.userNames == null)
                    {
                        if (package.data.type == "admin")
                        {
                            if (item == SDKClient.Instance.property.CurrentAccount.userID)
                            {
                                info = "你成为群管理员";
                            }
                            else
                            {
                                info = $"[{package.data.userNames[index]}] 成为群管理员";
                            }
                        }
                        else
                        {
                            if (item == SDKClient.Instance.property.CurrentAccount.userID)
                            {
                                info = "你被取消群管理员";
                                Util.Helpers.Async.Run(async() => await DAL.DALJoinGroupHelper.DeleteJoinGroupItem(package.data.groupId)); //删除该群的入群申请列表
                            }
                            else
                            {
                                info = $"[{package.data.userNames[index]}] 被取消群管理员";
                            }
                        }
                    }
                    else
                    {
                        if (package.data.type == "admin")
                        {
                            if (item == SDKClient.Instance.property.CurrentAccount.userID)
                            {
                                info = "你成为群管理员";
                            }
                            else
                            {
                                info = $"[{package.data.userNames[index]}] 成为群管理员";
                            }
                        }
                        else
                        {
                            if (item == SDKClient.Instance.property.CurrentAccount.userID)
                            {
                                info = "你被取消群管理员";
                                Util.Helpers.Async.Run(async() => await DAL.DALJoinGroupHelper.DeleteJoinGroupItem(package.data.groupId)); //删除该群的入群申请列表
                            }
                            else
                            {
                                info = $"[{package.data.userNames[index]}] 被取消群管理员";
                            }
                        }
                    }

                    msg.content = info;
                    try
                    {
                        await SDKProperty.SQLiteConn.InsertAsync(msg);

                        lst.Add(msg);
                    }
                    catch (Exception ex)
                    {
                        SDKClient.logger.Error($"InsertAsync异常:error:{ex.Message},stack:{ex.StackTrace};\r\n");
                    }
                    index++;
                }
                return(lst);
            }
            catch (Exception ex)
            {
                Util.Logs.Log.GetLog().Error(ex.Message);
                return(null);
            }
        }