public JsonResultModel HandleApply(int applyid, int userid, short result, string reason) { var ds = _dal.HandleApply(applyid, userid, result, reason); //转换成相应的推送model id,applytype,targetid,userid ApplyHandledMessgae message = ds.Tables[0].Rows.Cast <DataRow>().Select(x => new ApplyHandledMessgae { id = x["id"].ToInt(), result = x["result"].ToShort(), applyuid = x["userid"].ToInt(), targetid = x["targetid"].ToInt(), applytype = x["applytype"].ToShort() }).FirstOrDefault(); if (message.result == 1) { #region 返回加好友的信息 if (message.applytype == ApplyType.Friend.GetHashCode()) { //好友信息 //发送给申请方 message.friend = ds.Tables[1].Rows.Cast <DataRow>().Select(x => new UserFriendAddedMessage { groupid = x["groupid"].ToInt(), avatar = x["friendavatar"].ToString(), id = x["friendid"].ToInt(), sign = x["friendremark"].ToString(), type = LayIMConst.LayIMFriendType, username = x["friendname"].ToString() }).FirstOrDefault(); //发送给当前操作人 message.mine = ds.Tables[2].Rows.Cast <DataRow>().Select(x => new UserFriendAddedMessage { groupid = x["groupid"].ToInt(), avatar = x["friendavatar"].ToString(), id = x["friendid"].ToInt(), sign = x["friendremark"].ToString(), type = LayIMConst.LayIMFriendType, username = x["friendname"].ToString() }).FirstOrDefault(); } #endregion #region 返回群信息 if (message.applytype == ApplyType.UserJoinGroup.GetHashCode()) { message.group = ds.Tables[1].Rows.Cast <DataRow>().Select(x => new UserGroupCreatedMessage { id = x["groupid"].ToInt(), groupname = x["groupname"].ToString(), avatar = x["avatar"].ToString(), memebers = x["members"].ToInt(), type = LayIMConst.LayIMGroupType }).FirstOrDefault(); } #endregion } return(JsonResultHelper.CreateJson(message, true)); }
/// <summary> /// 发送请求被处理的消息 /// </summary> /// <param name="message"></param> public static void SendMessage(ApplyHandledMessgae message) { short agreeFlag = 1; short refuseFlag = 2; //只有有消息,并且同意 if (message.id > 0) { var userid = message.applyuid.ToString(); if (message.result == refuseFlag) { //如果是被拒绝,只需要发送一条提示消息即可 var msg = new ApplySendedMessage { msg = "您的" + (message.applytype == 0 ? "好友" : "加群") + "请求已经被处理,请点击查看详情" }; SendMessage(msg, userid, ChatToClientType.ApplyHandledToClient); } else if (message.result == agreeFlag) { //如果同意了,判断如果是加群,需要给群发送消息:某某某已经加入群,如果是加好友,发送一条消息,我们已经成为好友了,开始聊天吧。 var msg = "您的" + (message.applytype == 0 ? "好友" : "加群") + "请求已经被处理,请点击查看详情"; if (message.applytype == ApplyType.Friend.GetHashCode()) { //这里的friend是为了配合 LayIM的 addList接口 SendMessage(new { friend = message.friend, msg = msg }, userid, ChatToClientType.ApplyHandledToClient); } else { //发送群信息 group也是为了配合Layim的addList接口 SendMessage(new { group = message.group, msg = msg }, userid, ChatToClientType.ApplyHandledToClient); //还需要给群发一条,xxx加入群的消息 SendMessage(message.friend.username, message.group.id); } } } }