/// <summary> /// 以发送聊天室消息方法实现:业务处理聊天室禁言与解禁 /// </summary> /// <returns></returns> public ReturnValueModel ChatroomSend(ChatroomSendInputDto dto, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); var meetInfo = _rep.FirstOrDefault <MeetInfo>(s => s != null && s.IsDeleted != 1 && s.Id == dto.Id); if (meetInfo == null) { rvm.Msg = "获取会议失败"; rvm.Success = false; rvm.Result = ""; return(rvm); } string appKey = ConfigurationManager.AppSettings["RongCloudAppKey"]; string appSecret = ConfigurationManager.AppSettings["RongCloudAppSecret"]; string _host = ConfigurationManager.AppSettings["RongCloudUrl"]; string url = $"{_host}/message/chatroom/publish.json"; StringBuilder sb = new StringBuilder(); var content = RongJsonUtil.ObjToJsonString(new { content = dto.Content, messageName = "TextMessage", extra = "extra" //user = new //{ // id = workUser.User.Id, // name = "系统管理员", // icon = "http://example.com/p1.png", // extra = "extra" //} }); var objectName = $"RCFK:{dto.Content}"; sb.Append("&fromUserId=").Append(HttpUtility.UrlEncode(workUser.User.Id, Encoding.UTF8)); //发送人用户 Id sb.Append("&toChatroomId=").Append(HttpUtility.UrlEncode(dto.Id, Encoding.UTF8)); //接收聊天室 Id sb.Append("&objectName=").Append(HttpUtility.UrlEncode(objectName, Encoding.UTF8)); sb.Append("&content=").Append(HttpUtility.UrlEncode(content, Encoding.UTF8)); String body = sb.ToString(); if (body.IndexOf("&") == 0) { body = body.Substring(1, body.Length - 1); } string result = RongHttpClient.ExecutePost(appKey, appSecret, body, url, "application/x-www-form-urlencoded"); var res = (ResponseResult)RongJsonUtil.JsonStringToObj <ResponseResult>(result); if (res.Code == 200) { meetInfo.UpdateTime = DateTime.Now; meetInfo.UpdateUser = workUser.User.Id; meetInfo.IsForbiddenWords = dto.Content == "Close" ? 1 : 0; _rep.Update(meetInfo); _rep.Insert <RongCloudChatRoomHandle>(new RongCloudChatRoomHandle { Id = Guid.NewGuid().ToString(), CreateUser = workUser.User.Id, CreateTime = DateTime.UtcNow.AddHours(8), ChatRoomId = dto.Id, Event = dto.Content, }); _rep.SaveChanges(); rvm.Msg = "success"; rvm.Success = true; rvm.Result = res; return(rvm); } else { rvm.Msg = "消息失败"; rvm.Success = false; rvm.Result = result; return(rvm); } }
public IHttpActionResult ChatroomSend(ChatroomSendInputDto inputDto) { var ret = _rongCloudService.ChatroomSend(inputDto, WorkUser); return(Ok(ret)); }