public async Task <Base_UserDecimal> wxlogins(Login login) { var url = "https://api.weixin.qq.com/sns/jscode2session?appid=wxa0e02c3ef617fc0c&secret=2f0cb4e82542d5453456108f7b8e615e&js_code=" + login.code + "&grant_type=authorization_code"; var s = await Client_Post(url); //await GetUsers(s); if (s != null) { var res = await _db.GetIQueryable <Base_UserDecimal>().FirstOrDefaultAsync(p => p.Openid == s); if (res == null) { Base_UserDecimal base_UserDecimal = new Base_UserDecimal { Openid = s, Name = login.NickName, data3 = 0, data4 = login.Img,//头像 data2 = "2" }; InitEntity(base_UserDecimal); int i = await _db.InsertAsync(base_UserDecimal); if (i > 0) { Menu_Servise menu_Servised = new Menu_Servise { // 客户 MenuID = "1235", UserID = base_UserDecimal.Id }; InitEntity(menu_Servised); await _db.InsertAsync(menu_Servised); } return(base_UserDecimal); } //else //{ // if (res.data2 == "3") // { // using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("127.0.0.1:6379")) // { // var c = redis.GetDatabase(0); // await c.HashSetAsync(res.Id, "", "", When.Always, CommandFlags.None); // } // } return(res); // } } else { Base_UserDecimal base_UserDecimal = new Base_UserDecimal(); return(base_UserDecimal); } }
public async Task <Object> RemoveUser(Base_UserDecimal base_) { try { // result.CloseStatusDescription websMiddleware.webUser[base_.Id].Abort(); websMiddleware.webUser.Remove(base_.Id); return(JsonConvert.DeserializeObject("移除成功")); } catch (Exception) { throw; } }
public async Task SaveData(Base_UserDecimal data) { if (data.Id.IsNullOrEmpty()) { InitEntity(data); await _base_UserDecimalBus.AddDataAsync(data); } else { if (data.data2 == "3") { var p = await _db.GetIQueryable <Menu_Servise>().FirstOrDefaultAsync(p => p.UserID == data.Id); if (p != null) { await _db.DeleteAsync(p); } Menu_Servise menu_Servised = new Menu_Servise { // 客户 MenuID = "1234", UserID = data.Id }; InitEntity(menu_Servised); await _db.InsertAsync(menu_Servised); } else { var ps = await _db.GetIQueryable <Menu_Servise>().FirstOrDefaultAsync(p => p.UserID == data.Id); ps.MenuID = "1235"; await _db.UpdateAsync(ps); } await _base_UserDecimalBus.UpdateDataAsync(data); } }
public async Task CloseUser(Base_UserDecimal base_) { websMiddleware.webUser[base_.Id].Abort(); websMiddleware.webUser.Remove(base_.Id); }
public async Task <Base_UserDecimal> GetAllKefu(Base_UserDecimal UserDecimal) { var message = "您好请问您有什么疑问呢?"; var sd = JsonConvert.SerializeObject(message); var aa = Encoding.Default.GetBytes(sd); List <string> test = new List <string>(); List <Base_UserDecimal> vs = new List <Base_UserDecimal>(); if (websMiddleware.webUser.Keys.Count != 0) { // test.Add(webServise.webUser.Keys.ToString()); foreach (var item in websMiddleware.webUser.Keys) { test.Add(item); } } for (int i = 0; i < test.Count; i++) { var users = await _db.GetIQueryable <Base_UserDecimal>().FirstOrDefaultAsync(p => p.Id == test[i] && p.data2 == "3"); if (users != null) { vs.Add(users); } } if (vs.Count == 0) { Base_UserDecimal ts = new Base_UserDecimal(); var q = await _db.GetIQueryable <Base_UserDecimal>().Where(p => p.data2 == "3").ToListAsync(); var t = q.Min(s => s.data3); if (t.Equals(0)) { var s = _db.GetIQueryable <Base_UserDecimal>().FirstOrDefault(p => p.data2 == "3"); s.data3 = s.data3 + 1; await _db.UpdateAsync(s); if (!string.IsNullOrWhiteSpace(UserDecimal.UserId)) { if (websMiddleware.webUser[UserDecimal.UserId].State == WebSocketState.Open) { await websMiddleware.webUser[UserDecimal.UserId].SendAsync(new ArraySegment <byte>(aa, 0, aa.Length), WebSocketMessageType.Text, true, CancellationToken.None); } } return(s); } else { var s = _db.GetIQueryable <Base_UserDecimal>().FirstOrDefault(p => p.data2 == "3"); s.data3 = s.data3 + 1; await _db.UpdateAsync(s); if (!string.IsNullOrWhiteSpace(UserDecimal.UserId)) { if (websMiddleware.webUser[UserDecimal.UserId].State == WebSocketState.Open) { await websMiddleware.webUser[UserDecimal.UserId].SendAsync(new ArraySegment <byte>(aa, 0, aa.Length), WebSocketMessageType.Text, true, CancellationToken.None); } } return(s); } } else { var t = vs.Min(s => s.data3); var res = vs.FirstOrDefault(s => s.data3 == t); var result = _db.GetIQueryable <Base_UserDecimal>().FirstOrDefault(r => r.Id == res.Id); result.data3 = result.data3 + 1; if (!string.IsNullOrWhiteSpace(UserDecimal.UserId)) { if (websMiddleware.webUser[UserDecimal.UserId].State == WebSocketState.Open) { await websMiddleware.webUser[UserDecimal.UserId].SendAsync(new ArraySegment <byte>(aa, 0, aa.Length), WebSocketMessageType.Text, true, CancellationToken.None); } } await _db.UpdateAsync(result); return (res); } }
public async Task <string> GetUsersd(Base_UserDecimal UserDecimal) { //获取在线客服 try { List <Base_UserDecimal> vs = new List <Base_UserDecimal>(); // webServise.webUser.Add("1306422215759106048", webSocket); List <string> test = new List <string>(); if (websMiddleware.webUser.Keys.Count != 0) { // test.Add(webServise.webUser.Keys.ToString()); foreach (var item in websMiddleware.webUser.Keys) { test.Add(item); } } for (int i = 0; i < test.Count; i++) { var users = await _db.GetIQueryable <Base_UserDecimal>().FirstOrDefaultAsync(p => p.Id == test[i] && p.data2 == "3"); if (users != null) { vs.Add(users); } } //foreach (var item in webServise.webUser) //{ // var usid = item.Key; // var users = await _db.GetIQueryable<Base_UserDecimal>().FirstOrDefaultAsync(p => p.Id == usid && p.data2 == "3"); // if (users != null) // { // vs.Add(users); // } // } using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("127.0.0.1:6379")) { var c = redis.GetDatabase(0); if (vs.Count == 0) { var users = await _db.GetIQueryable <Base_UserDecimal>().FirstOrDefaultAsync(p => p.Id != null && p.data2 == "3"); await c.HashSetAsync(users.Id, UserDecimal.Id, DateTime.Now.ToString(), When.Always, CommandFlags.None); var resd = new { have = "1", Id = users.Id, msg = users.Name }; return(resd.ToJson()); } List <Demolist> vs1 = new List <Demolist>(); //获取这个客服 foreach (var item in vs) { var count = c.HashGetAll(item.Id); //获取这个客服下的客户数量 List <Object> demolist = new List <Object>(); if (count.Length == 0) { await c.HashSetAsync(item.Id, UserDecimal.Id, DateTime.Now.ToString(), When.Always, CommandFlags.None); var resd = new { have = "1", Id = item.Id, msg = item.Name }; return(resd.ToJson()); } else { foreach (var items in count) { var pw = items.ToString(); // var hashmodel = JsonConvert.DeserializeObject(pw); if (items != null) { demolist.Add(items); } } //客户对应的数量 vs1.Add(new Demolist { Name = item.Name, Id = item.Id, Count = demolist.Count }); } } var pd = vs1.Min(t => t.Count); var p = vs1.FirstOrDefault(s => s.Count == pd); await c.HashSetAsync(p.Id, UserDecimal.Id, DateTime.Now.ToString(), When.Always, CommandFlags.None); var res = new { have = "1", Id = p.Id, msg = p.Name }; return(res.ToJson()); } // await c.HashSetAsync(message.ReceiveId, message.SendId, message.SendId, When.Always, CommandFlags.None); } catch (Exception ex) { throw; } }