Esempio n. 1
0
        /// <summary>
        /// 获取群组小程序码和群组名称等内容
        /// </summary>
        /// <param name="path">小程序码跳转路径</param>
        /// <param name="groupID">群组ID</param>
        /// <returns></returns>
        public string GetQRCodeAndGroupDetail(string path, string groupID)
        {
            HF.Cloud.BLL.Common.Logger.Error("GetQRCodeAndGroupDetail方法获取到的参数:path:" + path + "-----groupID:" + groupID);
            Dictionary <string, object> dic = new Dictionary <string, object>();
            JavaScriptSerializer        js  = new JavaScriptSerializer();

            js.MaxJsonLength = int.MaxValue;
            //获取小程序码图片的路径
            string QRCodePath = GetQRCode_Group(path, groupID);

            dic.Add("QRCodePath", QRCodePath);
            //获取群组名称和简介
            GroupEL groupEL = new GroupEL();

            groupEL.ID = long.Parse(groupID);
            groupEL.ExecuteEL(3);
            string groupName      = groupEL.GroupName;
            string groupIntroduce = groupEL.Introduce.Length < 20? groupEL.Introduce: groupEL.Introduce.Substring(0, 20) + "...";

            dic.Add("GroupName", groupName);
            dic.Add("GroupIntroduce", groupIntroduce);
            //获取群成员公司名称(最多5个)
            UserUniteGroupEL userGroupEL = new UserUniteGroupEL();

            userGroupEL.GroupID = long.Parse(groupID);
            DataTable dt = userGroupEL.ExecDT(34);

            HF.Cloud.BLL.Common.Logger.Error("GetQRCodeAndGroupDetail方法获取到的公司个数:" + dt.Rows.Count);
            List <string> companyNameList = new List <string>();

            if (dt != null && dt.Rows.Count > 0)
            {
                if (dt.Rows.Count <= 5)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        companyNameList.Add(dt.Rows[i]["CompanyName"].ToString());
                    }
                }
                else
                {
                    for (int i = 0; i < 5; i++)
                    {
                        companyNameList.Add(dt.Rows[i]["CompanyName"].ToString());
                    }
                }
            }
            dic.Add("CompanyList", companyNameList);
            string returnJS = js.Serialize(dic);

            HF.Cloud.BLL.Common.Logger.Error("GetQRCodeAndGroupDetail方法返回的数据:returnJS:" + returnJS);
            return(returnJS);
        }
Esempio n. 2
0
        /// <summary>
        /// 创建新的面对面群
        /// </summary>
        /// <param name="userID">用户ID</param>
        /// <param name="password">口令</param>
        /// <param name="lon">经度</param>
        /// <param name="lat">纬度</param>
        /// <returns></returns>
        public string CreateNewGroup(string userID, string password, string lon, string lat)
        {
            string  result  = "";
            GroupEL groupEL = new GroupEL();

            groupEL.GroupPassword = password;
            groupEL.GroupName     = "面对面群组" + DateTime.Now.ToString("hhmmss");
            groupEL.Introduce     = "面对面群组";
            groupEL.CreateTime    = DateTime.Now.ToString();
            groupEL.Lon           = lon;
            groupEL.Lat           = lat;

            groupEL.OwnerUserID = long.Parse(userID);
            groupEL.Valid       = 1;
            int  ra;
            long groupResultID = groupEL.ExecNonQuery(1, out ra);

            HF.Cloud.BLL.Common.Logger.Error("CreateNewGroup方法创建群组后结果(大于0成功):" + groupResultID);

            if (groupResultID > 0)
            {
                //创建完群组需要把用户在用户与群关联表中添加记录关联起来
                UserUniteGroupEL uugEL = new UserUniteGroupEL();
                uugEL.UserID     = long.Parse(userID);
                uugEL.GroupID    = groupResultID;
                uugEL.CreateTime = DateTime.Now.ToString();
                uugEL.IsTop      = 0;
                uugEL.Valid      = 1;
                int  uugRa;
                long uugResultID = uugEL.ExecNonQuery(1, out uugRa);
                HF.Cloud.BLL.Common.Logger.Error("CreateNewGroup方法创建群组后用户与群组关联结果(大于0成功):" + uugResultID);
                if (uugResultID > 0)
                {
                    result = groupResultID.ToString();
                }
                else
                {
                    result = "error";
                }
            }
            else
            {
                result = "error";
            }
            return(result);
        }
Esempio n. 3
0
        /// <summary>
        /// 通知列表中同意添加好友
        /// </summary>
        /// <param name="session">本人的session</param>
        /// <param name="noticeID">通知的ID</param>
        /// <param name="sessionFriend">好友的session</param>
        /// <param name="noticeType">标志要请求的通知类型,0全部通知,1个人通知,2系统通知,</param>
        /// <returns></returns>
        public string AddFriendByNotice(string session, string noticeID, string sessionFriend, string noticeType)
        {
            HF.Cloud.BLL.Common.Logger.Error("AddFriendByNotice方法获取到的参数session:" + session + "---sessionFriend:" + sessionFriend + "---noticeType:" + noticeType);
            NoticeEL noticeEL = new NoticeEL();

            //通过noticeID获取NoticeType=3?说明是审核的通知,修改UserUniteGroup表valid=1
            noticeEL.ID = long.Parse(noticeID);
            DataTable dtNotice = noticeEL.ExecDT(2);

            if (dtNotice != null & dtNotice.Rows.Count > 0)
            {
                //如果是加群审核通知
                if (dtNotice.Rows[0]["NoticeType"].ToString() == "3")
                {
                    long groupID = (long)dtNotice.Rows[0]["GroupID"];
                    //UserUniteGroup表中的valid改为1,则通过审核
                    UserUniteGroupEL userGroupEL = new UserUniteGroupEL();
                    userGroupEL.UserID  = long.Parse(dtNotice.Rows[0]["UserID_Friend"].ToString());
                    userGroupEL.GroupID = groupID;
                    int raG;
                    userGroupEL.ExecNonQuery(21, out raG);
                    //通知notice表中的状态NoticeState要给成1通过
                    NoticeEL notice_EL = new NoticeEL();
                    notice_EL.ID          = long.Parse(noticeID);
                    notice_EL.NoticeState = 1;
                    notice_EL.IsLook      = 1;
                    int raNoti;
                    notice_EL.ExecNonQuery(33, out raNoti);
                    HF.Cloud.BLL.Common.Logger.Error("AddFriendByNotice方法更改UserUniteGroupEL的Valid受影响的行数:" + raG + "更改通知表结果:" + raNoti);
                    //审核后给用户发通知(系统通知)
                    GroupEL groupEL = new GroupEL();
                    groupEL.ID = groupID;
                    DataTable dt_group = groupEL.ExecDT(3);
                    if (dt_group != null && dt_group.Rows.Count > 0)
                    {
                        string          groupName      = dt_group.Rows[0]["GroupName"].ToString();
                        Notice_SystemEL noticeSystemEL = new Notice_SystemEL();
                        noticeSystemEL.UserID        = long.Parse(dtNotice.Rows[0]["UserID_Friend"].ToString());
                        noticeSystemEL.NoticeTitle   = "审核通知!";
                        noticeSystemEL.NoticeContent = "您加入群\"" + groupName + "\"的申请已通过!";
                        noticeSystemEL.AddressUrl    = "groupid=" + groupID;
                        noticeSystemEL.NoticeType    = 2;
                        noticeSystemEL.IsLook        = 0;
                        noticeSystemEL.CreateTime    = DateTime.Now.ToString();
                        noticeSystemEL.Valid         = 1;
                        int raNS;
                        noticeSystemEL.ExecNonQuery(1, out raNS);
                    }
                }
                else
                {
                    //添加好友
                    FriendsBLL friendsBLL      = new FriendsBLL();
                    string     addFriendResult = friendsBLL.AddFriend(session, sessionFriend);
                    //修改通知表中记录的状态改为好友
                    noticeEL.ID          = long.Parse(noticeID);
                    noticeEL.NoticeState = 1;
                    int ra;
                    noticeEL.ExecNonQuery(31, out ra);
                    HF.Cloud.BLL.Common.Logger.Error("AddFriendByNotice方法更改NoticeState受影响的行数:" + ra);
                }
            }

            //返回通知列表
            string resultStr = GetNotice(session, noticeType);

            return(resultStr);
        }
Esempio n. 4
0
        /// <summary>
        /// 获取通知列表
        /// </summary>
        /// <param name="session">用户session</param>
        /// <param name="noticeType">标志要请求的通知类型,0全部通知,1个人通知,2系统通知</param>
        /// <returns></returns>
        public string GetNotice(string session, string noticeType)
        {
            HF.Cloud.BLL.Common.Logger.Error("GetNotice方法获取到参数session:" + session);
            JavaScriptSerializer js = new JavaScriptSerializer();
            List <Dictionary <string, object> > list = new List <Dictionary <string, object> >();
            //通过session获取用户ID
            UserBLL userBLL = new UserBLL();
            long    userID  = userBLL.GetUserIDBySession(session);

            HF.Cloud.BLL.Common.Logger.Error("GetNotice方法获取到userID:" + userID);
            NoticeEL noticeEL = new NoticeEL();

            noticeEL.UserID = userID;
            DataTable dt = new DataTable();

            if (noticeType == "0")//全部通知
            {
                string sqlString = "select* from (" +
                                   "select N.ID as NID, S.ID as SID, N.UserID_Friend,N.GroupID," +
                                   "ISNULL(N.UserID, S.UserID) as UserID," +
                                   "ISNULL(N.NoticeType, S.NoticeType) as NoticeType," +
                                   "N.NoticeState, S.NoticeTitle, S.NoticeContent, s.AddressUrl," +
                                   "ISNULL(N.IsLook, S.IsLook) as IsLook," +
                                   "ISNULL(N.CreateTime, S.CreateTime) as CreateTime," +
                                   "ISNULL(N.Valid, S.Valid) as Valid " +
                                   "from Notice as N full join Notice_System as S  on N.CreateTime = S.CreateTime) as T " +
                                   "WHERE[UserID] = " + userID +
                                   " and[Valid] = 1 order by CreateTime desc";

                HF.Cloud.BLL.Common.Logger.Error("GetNotice方法联表查询语句:" + sqlString);
                dt = noticeEL.ExecuteSqlString(sqlString);
            }
            if (noticeType == "1")//个人通知
            {
                dt = noticeEL.ExecDT(21);
            }
            if (noticeType == "2")//系统通知
            {
                Notice_SystemEL nsEL = new Notice_SystemEL();
                nsEL.UserID = userID;
                dt          = nsEL.ExecDT(21);
            }
            HF.Cloud.BLL.Common.Logger.Error("GetNotice方法获取到通知个数:" + dt.Rows.Count);
            SB_UserEL  userEL    = new SB_UserEL();
            CompanysEL companyEL = new CompanysEL();
            GroupEL    groupEL   = new GroupEL();

            foreach (DataRow dr in dt.Rows)
            {
                Dictionary <string, object> dic = new Dictionary <string, object>();
                if (noticeType == "0")
                {
                    if (dr["NoticeType"].ToString() == "2")        //如果是系统通知
                    {
                        dic.Add("NoticeID", dr["SID"].ToString()); //联合表里系统通知表的通知ID
                        string noticeTitleStr = dr["NoticeTitle"].ToString();
                        string noticeTitle    = noticeTitleStr.Length > 10 ? noticeTitleStr.Substring(0, 10) + "..." : noticeTitleStr;
                        dic.Add("NoticeTitle", noticeTitle);
                        string noticeContentStr = dr["NoticeContent"].ToString();
                        string noticeContent    = noticeContentStr.Length > 20 ? noticeContentStr.Substring(0, 20) + "..." : noticeContentStr;
                        dic.Add("NoticeContent", noticeContent);
                        dic.Add("AddressUrl", dr["AddressUrl"].ToString());
                        dic.Add("NoticeType", "2");
                        dic.Add("IsLook", dr["IsLook"].ToString());
                        dic.Add("CreateTime", dr["CreateTime"].ToString());
                    }
                    else
                    {
                        long userID_Friend = long.Parse(dr["UserID_Friend"].ToString());
                        //通过UserID_Friend获取用户头像名字公司ID
                        userEL.ID = userID_Friend;
                        userEL.ExecuteEL(4);
                        HF.Cloud.BLL.Common.Logger.Error("GetNotice方法获取到好友名字:" + userEL.UserName);
                        string friend_Img       = userEL.ImgUrl;
                        string friend_Name      = userEL.UserName;
                        string friend_Session   = userEL.Session_True;
                        long   friend_CompanyID = userEL.CompanyID;

                        companyEL.ID = friend_CompanyID;
                        companyEL.ExecuteEL(2);
                        HF.Cloud.BLL.Common.Logger.Error("GetNotice方法获取到好友公司名字:" + companyEL.CompanyName);
                        string friend_CompanyName = companyEL.CompanyName;
                        //获取群组相关
                        if (dr["NoticeType"].ToString() == "3")//3为群组审核通知
                        {
                            long groupID = long.Parse(dr["GroupID"].ToString());
                            groupEL.ID = groupID;
                            groupEL.ExecuteEL(3);
                            HF.Cloud.BLL.Common.Logger.Error("GetNotice方法获取到群组名称:" + groupEL.GroupName + "---群组ID:" + groupID);
                            dic.Add("GroupID", groupID.ToString());  //群组ID,入群审核用
                            dic.Add("GroupName", groupEL.GroupName); //群组名称,入群审核用
                        }

                        dic.Add("UserName", friend_Name);
                        dic.Add("Session", friend_Session);
                        dic.Add("ImgUrl", friend_Img);
                        dic.Add("CompanyName", friend_CompanyName);
                        dic.Add("NoticeID", dr["NID"].ToString());//NID这里是用的联表查询里的个人通知的ID
                        dic.Add("CreateTime", dr["CreateTime"].ToString());
                        dic.Add("NoticeType", dr["NoticeType"].ToString());
                        dic.Add("NoticeState", dr["NoticeState"].ToString());
                        dic.Add("IsLook", dr["IsLook"].ToString());
                    }
                }
                if (noticeType == "1")//个人通知
                {
                    long userID_Friend = long.Parse(dr["UserID_Friend"].ToString());
                    //通过UserID_Friend获取用户头像名字公司ID
                    userEL.ID = userID_Friend;
                    userEL.ExecuteEL(4);
                    HF.Cloud.BLL.Common.Logger.Error("GetNotice方法获取到好友名字:" + userEL.UserName);
                    string friend_Img       = userEL.ImgUrl;
                    string friend_Name      = userEL.UserName;
                    string friend_Session   = userEL.Session_True;
                    long   friend_CompanyID = userEL.CompanyID;

                    companyEL.ID = friend_CompanyID;
                    companyEL.ExecuteEL(2);
                    HF.Cloud.BLL.Common.Logger.Error("GetNotice方法获取到好友公司名字:" + companyEL.CompanyName);
                    string friend_CompanyName = companyEL.CompanyName;
                    //获取群组相关
                    if (dr["NoticeType"].ToString() == "3")//3为群组审核通知
                    {
                        long groupID = long.Parse(dr["GroupID"].ToString());
                        groupEL.ID = groupID;
                        groupEL.ExecuteEL(3);
                        HF.Cloud.BLL.Common.Logger.Error("GetNotice方法获取到群组名称:" + groupEL.GroupName + "---群组ID:" + groupID);
                        dic.Add("GroupID", groupID.ToString());  //群组ID,入群审核用
                        dic.Add("GroupName", groupEL.GroupName); //群组名称,入群审核用
                    }
                    dic.Add("UserName", friend_Name);
                    dic.Add("Session", friend_Session);
                    dic.Add("ImgUrl", friend_Img);
                    dic.Add("CompanyName", friend_CompanyName);
                    dic.Add("NoticeID", dr["ID"].ToString());//ID:这里是单个Notice表里的ID
                    dic.Add("CreateTime", dr["CreateTime"].ToString());
                    dic.Add("NoticeType", dr["NoticeType"].ToString());
                    dic.Add("NoticeState", dr["NoticeState"].ToString());
                    dic.Add("IsLook", dr["IsLook"].ToString());
                }
                if (noticeType == "2")                        //系统通知
                {
                    dic.Add("NoticeID", dr["ID"].ToString()); //系统通知表的通知ID
                    string noticeTitleStr = dr["NoticeTitle"].ToString();
                    string noticeTitle    = noticeTitleStr.Length > 10 ? noticeTitleStr.Substring(0, 10) + "..." : noticeTitleStr;
                    dic.Add("NoticeTitle", noticeTitle);
                    string noticeContentStr = dr["NoticeContent"].ToString();
                    string noticeContent    = noticeContentStr.Length > 20 ? noticeContentStr.Substring(0, 20) + "..." : noticeContentStr;
                    dic.Add("NoticeContent", noticeContent);
                    dic.Add("AddressUrl", dr["AddressUrl"].ToString());
                    dic.Add("NoticeType", "2");
                    dic.Add("IsLook", dr["IsLook"].ToString());
                    dic.Add("CreateTime", dr["CreateTime"].ToString());
                }

                list.Add(dic);
            }
            ////调用此接口后默认都查看通知了,把通知都变为已经查看
            //noticeEL.IsLook = 1;
            //int ra;
            //long noticQue = noticeEL.ExecNonQuery(3, out ra);
            //HF.Cloud.BLL.Common.Logger.Error("GetNotice方法更改为已经查看的记录数为:" + ra.ToString());
            string strJson = js.Serialize(list);

            HF.Cloud.BLL.Common.Logger.Error("GetNotice方法返回json数据:" + strJson);
            return(strJson);
        }
Esempio n. 5
0
        /// <summary>
        /// 群组人员置顶 取消置顶  删除
        /// </summary>
        /// <param name="userID">人员ID</param>
        /// <param name="groupID">群组ID</param>
        /// <param name="cookie">操作的功能(top置顶distop取消置顶delete删除)</param>
        /// <returns></returns>
        public string EditUser(string session, string userID, string groupID, string cookie)
        {
            string retunStr = "";

            HF.Cloud.BLL.Common.Logger.Error("EditUser编辑群组人员方法,获取的参数userID:" + userID + "------groupID:" + groupID + "------cookie:" + cookie);
            UserUniteGroupEL userGroupEL = new UserUniteGroupEL();

            if (!string.IsNullOrEmpty(userID) && !string.IsNullOrEmpty(groupID) && !string.IsNullOrEmpty(cookie))
            {
                userGroupEL.UserID  = long.Parse(userID);
                userGroupEL.GroupID = long.Parse(groupID);
                if (cookie == "top")//置顶
                {
                    //获取当前置顶的istop最大值
                    int       maxIsTop    = 0;
                    DataTable dtUserGroup = userGroupEL.ExecDT(35);
                    if (dtUserGroup != null && dtUserGroup.Rows.Count > 0)
                    {
                        maxIsTop = Int32.Parse(dtUserGroup.Rows[0]["IsTop"].ToString());
                    }
                    userGroupEL.IsTop = maxIsTop + 1;
                    int  ra;
                    long returnVel = userGroupEL.ExecNonQuery(22, out ra);
                    if (ra > 0)
                    {
                        retunStr = GetGroupFriendList(session, groupID);
                    }
                    else
                    {
                        retunStr = "error";
                    }
                }
                if (cookie == "distop")//取消置顶
                {
                    userGroupEL.IsTop = 0;
                    int  ra;
                    long returnVel = userGroupEL.ExecNonQuery(23, out ra);
                    if (ra > 0)
                    {
                        retunStr = GetGroupFriendList(session, groupID);
                    }
                    else
                    {
                        retunStr = "error";
                    }
                }
                if (cookie == "del")//删除
                {
                    //不可删自己
                    //通过groupID获取群信息
                    GroupEL groupEL      = new GroupEL();
                    long    groupID_long = long.Parse(groupID);
                    groupEL.ID = groupID_long;
                    groupEL.ExecuteEL(3);
                    //群主ID
                    string userID_Group = groupEL.OwnerUserID.ToString();
                    //通过sesison 获取userID
                    SB_UserEL userEL = new SB_UserEL();
                    userEL.Session_True = session;
                    DataTable dtUserEl    = userEL.ExecDT(41);
                    string    userID_User = "";
                    if (dtUserEl != null && dtUserEl.Rows.Count > 0)
                    {
                        userID_User = dtUserEl.Rows[0]["ID"].ToString();
                    }
                    //如果不是群主
                    if (userID_Group != userID_User)
                    {
                        int  ra;
                        long returnVel = userGroupEL.ExecNonQuery(2, out ra);
                        if (ra < 0)
                        {
                            retunStr = "error";
                        }
                    }
                    retunStr = GetGroupFriendList(session, groupID);
                }
            }
            return(retunStr);
        }
Esempio n. 6
0
        /// <summary>
        /// 获取群组小程序码图片路径
        /// </summary>
        /// <param name="path">小程序码跳转路径</param>
        /// <param name="groupID">群组ID</param>
        /// <returns></returns>
        public string GetQRCode_Group(string path, string groupID)
        {
            HF.Cloud.BLL.Common.Logger.Error("GetQRCode_Group方法,获取的参数path:" + path + "------groupID:" + groupID);
            string imgPath = "";
            //判断数据库中是否有值
            GroupEL groupEL = new GroupEL();

            groupEL.ID = long.Parse(groupID);
            DataTable dt = groupEL.ExecDT(3);

            HF.Cloud.BLL.Common.Logger.Error("GetQRCode_Group方法,查找群组记录:" + dt.Rows.Count);
            if (dt != null && dt.Rows.Count > 0)
            {
                //如果数据库中"QRCode"有值,则从数据库中取值
                if (!string.IsNullOrEmpty(dt.Rows[0]["QRCode"].ToString()) && dt.Rows[0]["QRCode"].ToString() != "")
                {
                    //获取图片名称
                    string qrCodeImageName = dt.Rows[0]["QRCode"].ToString();
                    //获取图片路径
                    string qrCodeImagePath = System.Configuration.ConfigurationManager.AppSettings["QRCodeGet_Group"];
                    imgPath = qrCodeImagePath + qrCodeImageName;
                }
                //如果没有值则请求小程序服务器获取小程序码图片,并把图片名称保存到数据库中
                else
                {
                    //获取token
                    WX_TokenBLL tokenBLL = new WX_TokenBLL();
                    string      token    = tokenBLL.GetToken();
                    //获取小程序码接口
                    string url = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" + token;
                    Dictionary <string, object> dic = new Dictionary <string, object>();
                    dic.Add("path", path);
                    JavaScriptSerializer js = new JavaScriptSerializer();
                    js.MaxJsonLength = int.MaxValue;
                    string json = js.Serialize(dic);
                    HF.Cloud.BLL.Common.Logger.Error("GetQRCode_Group方法,url:" + url + "-----Path:" + path);
                    //post返回的小程序码流
                    Stream QRCodeStream = WeChatAppDecrypt.Post(url, json);
                    //将图片流转换成图片
                    Bitmap tp = new Bitmap(QRCodeStream);
                    string QRCodeSave_Group = System.Configuration.ConfigurationManager.AppSettings["QRCodeSave_Group"];
                    string image_userName   = Guid.NewGuid().ToString();
                    string qrCodeImageName  = image_userName + ".jpg";
                    tp.Save(QRCodeSave_Group + qrCodeImageName);
                    //把小程序码图片名称保存到数据库中
                    groupEL.QRCode = qrCodeImageName;
                    int  ra;
                    long returnValue = groupEL.ExecNonQuery(21, out ra);
                    HF.Cloud.BLL.Common.Logger.Error("GetQRCode_Group方法,保存小程序图片名称结果:" + ra);
                    if (ra > 0)
                    {
                        string QRCodeGet_Group = System.Configuration.ConfigurationManager.AppSettings["QRCodeGet_Group"];
                        imgPath = QRCodeGet_Group + qrCodeImageName;
                    }
                    else
                    {
                        imgPath = "error";
                    }
                }
            }
            else
            {
                imgPath = "error";
            }
            HF.Cloud.BLL.Common.Logger.Error("GetQRCode_Group方法,小程序码图片路径:" + imgPath);
            return(imgPath);
        }
Esempio n. 7
0
        /// <summary>
        /// 加入群组
        /// </summary>
        /// <param name="session">session</param>
        /// <param name="groupID">群组ID</param>
        /// <returns></returns>
        public string  IntoGroup(string session, string groupID)
        {
            string result = "";

            HF.Cloud.BLL.Common.Logger.Error("IntoGroup方法获取的参数session:" + session + "----groupID:" + groupID);
            //通过session获取UserID
            UserBLL userBLL = new UserBLL();
            long    userID  = userBLL.GetUserIDBySession(session);//用户ID
            //判断群是否是私密的群
            GroupEL groupEL = new GroupEL();

            groupEL.ID = long.Parse(groupID);
            DataTable dtGroup = groupEL.ExecDT(3);

            if (dtGroup != null && dtGroup.Rows.Count > 0)
            {
                //先查看数据库中是否有记录
                UserUniteGroupEL userUniteGroupEL = new UserUniteGroupEL();
                userUniteGroupEL.UserID  = userID;
                userUniteGroupEL.GroupID = long.Parse(groupID);
                DataTable dt = userUniteGroupEL.ExecDT(32);
                //如果有记录,就不添加直接修改valid就可以
                if (dt != null && dt.Rows.Count > 0)
                {
                    //如果是私密群还需修改通知
                    if (dtGroup.Rows[0]["IsOpen"].ToString() == "0")
                    {
                        NoticeEL noticeEL = new NoticeEL();
                        noticeEL.UserID_Friend = userID;
                        noticeEL.GroupID       = long.Parse(groupID);
                        noticeEL.NoticeState   = 0;
                        noticeEL.IsLook        = 0;
                        noticeEL.CreateTime    = DateTime.Now.ToString();
                        noticeEL.Valid         = 1;
                        int raNotice;
                        noticeEL.ExecNonQuery(32, out raNotice);
                        HF.Cloud.BLL.Common.Logger.Error("IntoGroup方法从新加入群组,跟新通知,修改结果(大于0成功):" + raNotice);
                        if (raNotice > 0)
                        {
                            result = "secsuccess";
                        }
                        else
                        {
                            result = "error";
                        }
                    }
                    else
                    {
                        //修改用户和群关联表
                        int raup;
                        userUniteGroupEL.ExecNonQuery(21, out raup);
                        HF.Cloud.BLL.Common.Logger.Error("IntoGroup方法用户已经在群组,修改Valid结果(大于0成功):" + raup);
                        if (raup > 0)
                        {
                            result = "success";
                        }
                        else
                        {
                            result = "error";
                        }
                    }
                }
                //无记录就添加(包括添加通知)
                else
                {
                    int userUniteGroup_Valid = 1;
                    //0是私密的群需要审核(发通知),修改Valid为2
                    if (dtGroup.Rows[0]["IsOpen"].ToString() == "0")
                    {
                        userUniteGroup_Valid = 2;//暂时无效,需要审核
                        //发通知
                        NoticeEL noticeEL = new NoticeEL();
                        noticeEL.UserID        = (long)dtGroup.Rows[0]["OwnerUserID"];
                        noticeEL.UserID_Friend = userID;
                        noticeEL.GroupID       = long.Parse(groupID);
                        noticeEL.NoticeType    = 3;//3是加入群审核
                        noticeEL.NoticeState   = 0;
                        noticeEL.IsLook        = 0;
                        noticeEL.CreateTime    = DateTime.Now.ToString();
                        noticeEL.Valid         = 1;
                        int  raN;
                        long returnVelue = noticeEL.ExecNonQuery(1, out raN);
                        HF.Cloud.BLL.Common.Logger.Error("IntoGroup方法发审核通知,(大于0成功):" + returnVelue);
                    }
                    userUniteGroupEL.CreateTime = DateTime.Now.ToString();
                    userUniteGroupEL.IsTop      = 0;
                    userUniteGroupEL.Valid      = userUniteGroup_Valid;
                    int  ra;
                    long exeResult = userUniteGroupEL.ExecNonQuery(1, out ra);
                    HF.Cloud.BLL.Common.Logger.Error("IntoGroup方法加入群组结果(大于0成功):" + exeResult + "----userUniteGroupEL.Valid:" + userUniteGroup_Valid);
                    if (exeResult > 0 && userUniteGroup_Valid == 1)
                    {
                        result = "success";
                    }
                    else if (exeResult > 0 && userUniteGroup_Valid == 2)
                    {
                        result = "secsuccess";
                    }
                    else
                    {
                        result = "error";
                    }
                }
            }

            return(result);
        }
Esempio n. 8
0
        /// <summary>
        /// 搜索群
        /// </summary>
        /// <param name="session">用户session</param>
        /// <param name="groupName">群名称</param>
        /// <returns></returns>
        public string  SearchGroup(string session, string groupName)
        {
            HF.Cloud.BLL.Common.Logger.Error("SearchFriend方法获取的参数session:" + session + "---groupName:" + groupName);
            JavaScriptSerializer js = new JavaScriptSerializer();
            List <Dictionary <string, object> > list = new List <Dictionary <string, object> >();
            //通过Session获取UerID
            UserBLL userBLL = new UserBLL();
            long    userID  = userBLL.GetUserIDBySession(session);

            HF.Cloud.BLL.Common.Logger.Error("SearchFriend方法获取到的UserID:" + userID);
            GroupEL groupEL = new GroupEL();
            //获取到userID用户所有群中包含groupName名字的群组
            DataTable        dt          = groupEL.ExecuteSqlString("select * from ViewGroupUnite where UserID=" + userID + " and GroupName like '%" + groupName + "%' and Group_Valid=1 and Unite_Valid=1");
            UserUniteGroupEL userGroupEL = new UserUniteGroupEL();
            SB_UserEL        userEL      = new SB_UserEL();

            if (dt != null && dt.Rows.Count > 0)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    ////通过群ID获取群信息
                    //long groupID = (long)/*dr["GroupID"]*/;
                    //groupEL.ID = groupID;
                    //groupEL.ExecuteEL(3);
                    //HF.Cloud.BLL.Common.Logger.Error("SearchGroup方法获取到群组名称:" + groupEL.GroupName);
                    string groupName_true = dr["GroupName"].ToString();
                    long   ownerUserID    = (long)dr["OwnerUserID"];
                    string createTime     = dr["Group_CreateTime"].ToString();
                    //if (!string.IsNullOrEmpty(groupEL.GroupName))
                    //{
                    //    groupName_true = groupEL.GroupName;
                    //    ownerUserID = groupEL.OwnerUserID;
                    //    createTime = groupEL.CreateTime;
                    //}
                    //通过ownerUserID获取群主Name
                    userEL.ID = ownerUserID;
                    userEL.ExecuteEL(4);
                    HF.Cloud.BLL.Common.Logger.Error("SearchGroup方法获取到群主姓名:" + userEL.UserName);
                    string ownerUserName = "";
                    if (!string.IsNullOrEmpty(userEL.UserName))
                    {
                        ownerUserName = userEL.UserName;
                    }
                    //通过群ID获取群有多少人
                    userGroupEL.GroupID = (long)dr["Group_ID"];
                    DataTable dt_Count = userGroupEL.ExecDT(31);
                    HF.Cloud.BLL.Common.Logger.Error("SearchGroup方法获取到本群人数:" + dt_Count.Rows.Count);
                    int groupCount = dt_Count.Rows.Count;

                    Dictionary <string, object> dic = new Dictionary <string, object>();
                    dic.Add("GroupName", groupName_true);
                    dic.Add("GroupOwnerName", ownerUserName);
                    dic.Add("CreateTime", createTime);
                    dic.Add("GroupCount", groupCount.ToString());
                    dic.Add("GroupID", dr["Group_ID"].ToString());
                    list.Add(dic);
                }
            }
            string strJson = js.Serialize(list);

            HF.Cloud.BLL.Common.Logger.Error("SearchGroup方法返回的json数据:" + strJson);
            return(strJson);
        }
Esempio n. 9
0
        /// <summary>
        /// 新建群组  修改群组
        /// </summary>
        /// <param name="session">session</param>
        /// <param name="groupName">群组名称</param>
        /// <param name="Introduce">群组简介</param>
        /// <param name="isOpen">公开或私密</param>
        /// <param name="groupID">群组ID 0添加 大于0修改</param>
        /// <returns></returns>
        public string CreateGroup(string session, string groupName, string introduce, string isOpen, string groupID)
        {
            string result = "";

            HF.Cloud.BLL.Common.Logger.Error("CreateGroup方法获取到的参数session:" + session + "----groupName:" + groupName + "---Introduce:" + introduce + "---isOpen:" + isOpen + "---groupID:" + groupID);
            GroupEL groupEL = new GroupEL();

            groupEL.GroupName  = groupName;
            groupEL.Introduce  = introduce;
            groupEL.CreateTime = DateTime.Now.ToString();
            //通过session获取UserID
            UserBLL userBLL = new UserBLL();
            long    userID  = userBLL.GetUserIDBySession(session);

            groupEL.OwnerUserID = userID;
            groupEL.IsOpen      = Int32.Parse(isOpen);
            groupEL.Valid       = 1;
            long groupResultID       = 0; //添加群组返回值
            long updateGroupResultID = 0; //修改群组返回值

            if (groupID == "0")           //添加群组
            {
                int ra;
                groupResultID = groupEL.ExecNonQuery(1, out ra);
                HF.Cloud.BLL.Common.Logger.Error("CreateGroup方法创建群组后结果(大于0成功):" + groupResultID);
            }
            else//修改群组
            {
                groupEL.ID = long.Parse(groupID);
                int ra;
                updateGroupResultID = groupEL.ExecNonQuery(22, out ra);
                //updateGroupResultID = groupID;
                HF.Cloud.BLL.Common.Logger.Error("CreateGroup方法修改群组后结果(大于0成功):" + ra);
            }

            if (groupResultID > 0)
            {
                //创建完群组需要把用户在用户与群关联表中添加记录关联起来
                UserUniteGroupEL uugEL = new UserUniteGroupEL();
                uugEL.UserID     = userID;
                uugEL.GroupID    = groupResultID;
                uugEL.CreateTime = DateTime.Now.ToString();
                uugEL.IsTop      = 0;
                uugEL.Valid      = 1;
                int  uugRa;
                long uugResultID = uugEL.ExecNonQuery(1, out uugRa);
                HF.Cloud.BLL.Common.Logger.Error("CreateGroup方法创建群组后用户与群组关联结果(大于0成功):" + uugResultID);
                if (uugResultID > 0)
                {
                    result = groupResultID.ToString();
                }
                else
                {
                    result = "error";
                }
            }
            else if (updateGroupResultID > 0)
            {
                result = groupID;
            }
            else
            {
                result = "error";
            }
            return(result);
        }
Esempio n. 10
0
        /// <summary>
        /// 面对面加群(创建新群或加群)
        /// </summary>
        /// <param name="session">session</param>
        /// <param name="password">口令</param>
        /// <param name="lon">经度</param>
        /// <param name="lat">纬度</param>
        /// <returns></returns>
        public string FaceToFaceCreateGroup(string session, string password, string lon, string lat)
        {
            string result = "";

            HF.Cloud.BLL.Common.Logger.Error("FaceToFaceCreateGroup方法获取的参数session:" + session + "----password:"******"---lon:" + lon + "---lat:" + lat);
            if (!string.IsNullOrEmpty(session) && !string.IsNullOrEmpty(password) && !string.IsNullOrEmpty(lon) && !string.IsNullOrEmpty(lat))
            {
                //通过session获取UserID
                UserBLL userBLL = new UserBLL();
                long    userID  = userBLL.GetUserIDBySession(session);//用户ID
                //先查找群组Group表中查找当前时间段内是否有口令password的数据
                GroupEL groupEL = new GroupEL();
                groupEL.GroupPassword = password;
                DataTable dt = groupEL.ExecDT(31);
                HF.Cloud.BLL.Common.Logger.Error("FaceToFaceCreateGroup方法获取的群组个数为:" + dt.Rows.Count);
                if (dt.Rows.Count > 0)//大于0说明可能已经有人创建了此群,继续验证经纬度
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        float lon_dt = float.Parse(dt.Rows[i]["lon"].ToString());
                        float lat_dt = float.Parse(dt.Rows[i]["lat"].ToString());
                        float lon_u  = float.Parse(lon);
                        float lat_u  = float.Parse(lat);
                        float lon_re = System.Math.Abs(lon_u - lon_dt);
                        float lat_re = System.Math.Abs(lat_u - lat_dt);
                        //经纬度111.3222222m对应0.001度
                        //如果距离够小的话说明已经有面对面群,直接加入关联群即可
                        if (lon_re < 0.1 && lat_re < 0.1)
                        {
                            UserUniteGroupEL uugEL = new UserUniteGroupEL();
                            //判断是否已经在群里面,如果在群里面则跳出循环,结束
                            uugEL.UserID  = userID;
                            uugEL.GroupID = (long)dt.Rows[i]["ID"];
                            DataTable dt_IsInGroup = uugEL.ExecDT(33);
                            if (dt_IsInGroup != null && dt_IsInGroup.Rows.Count > 0)
                            {
                                result = dt.Rows[i]["ID"].ToString();//返回群组ID
                            }
                            else
                            {
                                //把用户在用户与群关联表中添加记录关联起来
                                uugEL.UserID     = userID;
                                uugEL.GroupID    = (long)dt.Rows[i]["ID"];
                                uugEL.CreateTime = DateTime.Now.ToString();
                                uugEL.IsTop      = 0;
                                uugEL.Valid      = 1;
                                int  uugRa;
                                long uugResultID = uugEL.ExecNonQuery(1, out uugRa);
                                HF.Cloud.BLL.Common.Logger.Error("FaceToFaceCreateGroup方法用户与群组关联结果(大于0成功):" + uugResultID);
                                if (uugResultID > 0)
                                {
                                    result = dt.Rows[i]["ID"].ToString();//返回群组ID
                                }
                                else
                                {
                                    result = "error";
                                }
                            }
                            break;                       //跳出for循环
                        }
                        else if (i == dt.Rows.Count - 1) //执行到最后依然没找到,那么就新创建个面对面群
                        {
                            result = CreateNewGroup(userID.ToString(), password, lon, lat);
                        }

                        else  //距离太大,不是当前的面对面群,继续找其他符合条件的群
                        {
                            continue;
                        }
                    }
                }
                else//无记录说明自己是第一个,然后创建新的面对面群
                {
                    result = CreateNewGroup(userID.ToString(), password, lon, lat);
                }
            }
            else
            {
                result = "error";
            }
            HF.Cloud.BLL.Common.Logger.Error("FaceToFaceCreateGroup方法返回的数据为:" + result);
            return(result);
        }
Esempio n. 11
0
        /// <summary>
        /// 群组人员列表
        /// </summary>
        /// <param name="groupID">群组ID</param>
        /// <returns></returns>
        public string GetGroupFriendList(string session, string groupID)
        {
            HF.Cloud.BLL.Common.Logger.Error("GetGroupFriendList方法获取到的参数groupID:" + groupID);
            JavaScriptSerializer                js   = new JavaScriptSerializer();
            Dictionary <string, object>         dic  = new Dictionary <string, object>();
            List <Dictionary <string, object> > list = new List <Dictionary <string, object> >();
            //通过groupID获取群信息
            GroupEL          groupEL      = new GroupEL();
            SB_UserEL        userEL       = new SB_UserEL();
            UserUniteGroupEL userGroupEL  = new UserUniteGroupEL();
            long             groupID_long = long.Parse(groupID);

            groupEL.ID = groupID_long;
            groupEL.ExecuteEL(3);
            HF.Cloud.BLL.Common.Logger.Error("GetGroupFriendList方法获取到群组名称:" + groupEL.GroupName);
            string groupName   = ""; //群名称
            long   ownerUserID = 0;  //群主userID
            string introduce   = ""; //群简介
            string isOpen      = ""; //1公开或0私密

            if (!string.IsNullOrEmpty(groupEL.GroupName))
            {
                groupName   = groupEL.GroupName;
                ownerUserID = groupEL.OwnerUserID;
                introduce   = groupEL.Introduce;
                isOpen      = groupEL.IsOpen.ToString();
            }
            //通过ownerUserID获取群主Name
            userEL.ID = ownerUserID;
            userEL.ExecuteEL(4);
            HF.Cloud.BLL.Common.Logger.Error("GetGroupFriendList方法获取到群主姓名:" + userEL.UserName);
            string ownerUserName = "";

            if (!string.IsNullOrEmpty(userEL.UserName))
            {
                ownerUserName = userEL.UserName;
            }
            string userSession = userEL.Session_True;

            //通过群ID获取群有多少人
            userGroupEL.GroupID = groupID_long;
            DataTable dt_Count = userGroupEL.ExecDT(31);

            HF.Cloud.BLL.Common.Logger.Error("GetGroupFriendList方法获取到本群人数:" + dt_Count.Rows.Count);
            int groupCount = dt_Count.Rows.Count;

            foreach (DataRow dr in dt_Count.Rows)
            {
                //获取到userID
                string  userID   = dr["UserID"].ToString();
                UserBLL userBLL  = new UserBLL();
                string  userInfo = userBLL.GetUserInfoByUserID(userID);
                //把userInfo反序列化出来
                Dictionary <string, object> json_userInfo = new Dictionary <string, object>();
                json_userInfo = js.Deserialize <Dictionary <string, object> >(userInfo);
                //加上置顶字段 IsTop 2018-1-15
                json_userInfo.Add("IsTop", dr["IsTop"].ToString());
                list.Add(json_userInfo);
            }
            dic.Add("GroupName", groupName);
            dic.Add("GroupOwnerName", ownerUserName);
            dic.Add("Introduce", introduce);
            dic.Add("IsOpen", isOpen);
            dic.Add("GroupCount", groupCount.ToString());
            dic.Add("GroupID", groupID.ToString());
            dic.Add("IsGroupOwner", session == userSession?"1":"0");
            dic.Add("User", list);

            string strJson = js.Serialize(dic);

            HF.Cloud.BLL.Common.Logger.Error("GetGroupFriendList方法返回的json数据:" + strJson);
            return(strJson);
        }
Esempio n. 12
0
        /// <summary>
        /// 我的群组列表
        /// </summary>
        /// <param name="session">session</param>
        /// <returns></returns>
        public string GetMyGroups(string session)
        {
            HF.Cloud.BLL.Common.Logger.Error("GetMyGroups方法获取到的参数session:" + session);
            JavaScriptSerializer js = new JavaScriptSerializer();
            List <Dictionary <string, object> > list = new List <Dictionary <string, object> >();
            //通过Session获取UerID
            UserBLL userBLL = new UserBLL();
            long    userID  = userBLL.GetUserIDBySession(session);

            HF.Cloud.BLL.Common.Logger.Error("GetMyGroups方法获取到的UserID:" + userID);
            //通过userID获取GroupID
            UserUniteGroupEL userGroupEL = new UserUniteGroupEL();

            userGroupEL.UserID = userID;
            DataTable dt = userGroupEL.ExecDT(3);

            HF.Cloud.BLL.Common.Logger.Error("GetMyGroups方法获取到群组个数为:" + dt.Rows.Count);
            GroupEL   groupEL = new GroupEL();
            SB_UserEL userEL  = new SB_UserEL();

            foreach (DataRow dr in dt.Rows)
            {
                //通过群ID获取群信息
                long groupID = (long)dr["GroupID"];
                groupEL.ID = groupID;
                groupEL.ExecuteEL(3);
                HF.Cloud.BLL.Common.Logger.Error("GetMyGroups方法获取到群组名称:" + groupEL.GroupName);
                string groupName   = "";
                long   ownerUserID = 0;
                string createTime  = "";
                if (!string.IsNullOrEmpty(groupEL.GroupName))
                {
                    groupName   = groupEL.GroupName;
                    ownerUserID = groupEL.OwnerUserID;
                    createTime  = groupEL.CreateTime;
                }
                //通过ownerUserID获取群主Name
                userEL.ID = ownerUserID;
                userEL.ExecuteEL(4);
                HF.Cloud.BLL.Common.Logger.Error("GetMyGroups方法获取到群主姓名:" + userEL.UserName);
                string ownerUserName = "";
                if (!string.IsNullOrEmpty(userEL.UserName))
                {
                    ownerUserName = userEL.UserName;
                }
                //通过群ID获取群有多少人
                userGroupEL.GroupID = groupID;
                DataTable dt_Count = userGroupEL.ExecDT(31);
                HF.Cloud.BLL.Common.Logger.Error("GetMyGroups方法获取到本群人数:" + dt_Count.Rows.Count);
                int groupCount = dt_Count.Rows.Count;

                Dictionary <string, object> dic = new Dictionary <string, object>();
                dic.Add("GroupName", groupName);
                dic.Add("GroupOwnerName", ownerUserName);
                dic.Add("CreateTime", createTime);
                dic.Add("GroupCount", groupCount.ToString());
                dic.Add("GroupID", groupID.ToString());
                list.Add(dic);
            }

            string strJson = js.Serialize(list);

            HF.Cloud.BLL.Common.Logger.Error("GetMyGroups方法返回的json数据:" + strJson);
            return(strJson);
        }