/// <summary> /// /// </summary> /// <param name="content"></param> /// <param name="tenantId"></param> public static void SendMobileMessage(string content, int tenantId) { var userDeviceTokenList = GetUserDeviceTokenListByTenantId(tenantId); if (userDeviceTokenList.Any()) { //Dictionary<int, Dictionary<string, int>> allUserDeviceToken = new Dictionary<int, Dictionary<string, int>>(); //var userIds = userDeviceTokenList.Select(p => p.UserId).Distinct(); //foreach (var uid in userIds) //{ // Dictionary<string, int> kv = new Dictionary<string, int>(); // var tmp = userDeviceTokenList.Where(p => p.UserId == uid); // foreach (var item in tmp) // { // kv.Add(item.DeviceToken, item.Device); // } // allUserDeviceToken.Add(uid, kv); //} //MobileMessageInformation messageInfo = new MobileMessageInformation //{ // SendStatus = 0, // AllMessageContent = content, // AllUserDeviceToken = allUserDeviceToken //}; //new RabbitMQHelper(Rabbit_MobileMessageAddress, Rabbit_userName, Rabbit_password, Rabbit_SendMobileMessage, // Rabbit_MobileMessagequeue).SendMessage(messageInfo); var list = new List <MobileMessage>(); var userIds = userDeviceTokenList.Select(p => p.UserId).Distinct(); foreach (var uid in userIds) { var userDeviceToken = new Dictionary <string, int[]>(); var tmp = userDeviceTokenList.Where(p => p.UserId == uid); foreach (var item in tmp) { userDeviceToken.Add(item.DeviceToken, new int[] { item.Device, item.NotSeeMessageCount + 1 }); } list.Add(new MobileMessage { Content = content, UserDeviceToken = userDeviceToken, UserId = uid }); } _dataAccess.UpdateFieldCalc("Sys_UserDeviceToken", "NotSeeMessageCount", "NotSeeMessageCount + 1", "where RecordId in (" + userDeviceTokenList.Select(p => p.RecordId).GetString() + ")"); MobileMessageInformation messageInfo = new MobileMessageInformation { SendStatus = 1, SendList = list }; RibbitMQProvider.SendMessage(messageInfo, "sendMobileMessage"); } }
/// <summary> /// /// </summary> /// <param name="content"></param> /// <param name="userCustomItems"></param> public static void SendMobileMessage(string content, Dictionary <int, Dictionary <string, object[]> > userCustomItems) { var userId = userCustomItems.Keys; //ios var userDeviceTokenList = GetUserDeviceTokenListByUserIds(userId); if (userDeviceTokenList.Count() > 0) { var list = new List <MobileMessage>(); var userIds = userDeviceTokenList.Select(p => p.UserId).Distinct(); foreach (var uid in userIds) { var userDeviceToken = new Dictionary <string, int[]>(); var tmp = userDeviceTokenList.Where(p => p.UserId == uid); foreach (var item in tmp) { userDeviceToken.Add(item.DeviceToken, new int[] { item.Device, item.NotSeeMessageCount + 1 }); } list.Add(new MobileMessage { Content = content, CustomItems = userCustomItems[uid], UserDeviceToken = userDeviceToken, UserId = uid }); } _dataAccess.UpdateFieldCalc("Sys_UserDeviceToken", "NotSeeMessageCount", "NotSeeMessageCount + 1", "where RecordId in (" + userDeviceTokenList.Select(p => p.RecordId).GetString() + ")"); MobileMessageInformation messageInfo = new MobileMessageInformation { SendStatus = 1, SendList = list }; RibbitMQProvider.SendMessage(messageInfo, "sendMobileMessage"); } //Android var mobilemessagelist = new List <RetechWing.Models.Mobile.Sys_MobileMessage>(); foreach (var item in userCustomItems) { mobilemessagelist.Add(new RetechWing.Models.Mobile.Sys_MobileMessage { Content = content, UserId = item.Key, SendTime = DateTime.Now, Status = 0 }); } if (mobilemessagelist.Count > 0) { _dataAccess.AddEntities(mobilemessagelist); } }
/// <summary> /// /// </summary> /// <param name="deviceToken"></param> /// <param name="content"></param> public static void SendMobileMessage(string content, int tenantId) { var userDeviceTokenList = GetUserDeviceTokenListByTenantId(tenantId); if (userDeviceTokenList.Count() > 0) { var list = new List <KeyValuePair <string, string> >(); foreach (var item in userDeviceTokenList) { list.Add(new KeyValuePair <string, string>(item.Realname, item.DeviceToken)); } MobileMessageInformation messageInfo = new MobileMessageInformation { DeviceToken = list, MessageContent = content }; new RabbitMQHelper(Rabbit_MobileMessageAddress, Rabbit_userName, Rabbit_password, Rabbit_SendMobileMessage, Rabbit_MobileMessagequeue).SendMessage(messageInfo); } }