public static string AdvertiseToJson(WeiXinAdvertse advert)
        {
            string json = "{ 'title':'" + advert.Title + "','description':'" + advert.Description + "','url':'" + advert.Url + "','picurl':'" + advert.Image + "'}";

            json = json.Replace('\'', '\"');
            return(json);
        }
        /// <summary>
        /// 添加一条广告信息
        /// </summary>
        /// <param name="advertise"></param>
        /// <returns></returns>
        public bool AddAdvertise(WeiXinAdvertse advertise)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into WeiXin_Advertise(");
            strSql.Append("Image,Title,Url,ContentXML,LoginID,DateTime)");
            strSql.Append(" values (");
            strSql.Append("@Image,@Title,@Url,@ContentXML,@LoginID,@DateTime)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters =
            {
                new SqlParameter("@Image",      SqlDbType.VarChar),
                new SqlParameter("@Title",      SqlDbType.VarChar,  20),
                new SqlParameter("@Url",        SqlDbType.VarChar,  50),
                new SqlParameter("@ContentXML", SqlDbType.VarChar),
                new SqlParameter("@LoginID",    SqlDbType.Int),
                new SqlParameter("@DateTime",   SqlDbType.DateTime)
            };
            parameters[0].Value = advertise.Image;
            parameters[1].Value = advertise.Title;
            parameters[2].Value = advertise.Url;
            parameters[3].Value = advertise.ContentXML;
            parameters[4].Value = advertise.LoginID;
            parameters[5].Value = advertise.DateTime;


            if (DbHelperSQL.ExecuteSql(strSql.ToString(), parameters) > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        /// <summary>
        /// 根据ID获得广告MODEL
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        public WeiXinAdvertse GetModel(int ID)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  top 1 ID,Image,Title,Url,ContentXML,LoginID,DateTime from WeiXin_Advertise ");
            strSql.Append(" where ID=@ID");
            SqlParameter[] parameters =
            {
                new SqlParameter("@ID", SqlDbType.Int, 4)
            };
            parameters[0].Value = ID;

            WeiXinAdvertse model = new WeiXinAdvertse();
            DataSet        ds    = DbHelperSQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                if (ds.Tables[0].Rows[0]["ID"] != null && ds.Tables[0].Rows[0]["ID"].ToString() != "")
                {
                    model.ID = int.Parse(ds.Tables[0].Rows[0]["ID"].ToString());
                }
                if (ds.Tables[0].Rows[0]["Image"] != null && ds.Tables[0].Rows[0]["Image"].ToString() != "")
                {
                    model.Image = ds.Tables[0].Rows[0]["Image"].ToString();
                }
                if (ds.Tables[0].Rows[0]["Title"] != null && ds.Tables[0].Rows[0]["Title"].ToString() != "")
                {
                    model.Title = ds.Tables[0].Rows[0]["Title"].ToString();
                }
                if (ds.Tables[0].Rows[0]["Url"] != null && ds.Tables[0].Rows[0]["Url"].ToString() != "")
                {
                    model.Url = ds.Tables[0].Rows[0]["Url"].ToString();
                }
                if (ds.Tables[0].Rows[0]["ContentXML"] != null && ds.Tables[0].Rows[0]["ContentXML"].ToString() != "")
                {
                    model.ContentXML = ds.Tables[0].Rows[0]["ContentXML"].ToString();
                }
                if (ds.Tables[0].Rows[0]["LoginID"] != null && ds.Tables[0].Rows[0]["LoginID"].ToString() != "")
                {
                    model.LoginID = new Model.AMS_UserInfo {
                        ID = int.Parse(ds.Tables[0].Rows[0]["LoginID"].ToString())
                    };
                }
                if (ds.Tables[0].Rows[0]["DateTime"] != null && ds.Tables[0].Rows[0]["DateTime"].ToString() != "")
                {
                    model.DateTime = DateTime.Parse(ds.Tables[0].Rows[0]["DateTime"].ToString());
                }
                return(model);
            }
            else
            {
                return(null);
            }
        }
 public override void DataBind()
 {
     if (Request.QueryString["id"] != null)
     {
         WeiXinAdvertse model = WeiXinProxy.GetAdvertseById(Convert.ToInt32(Request.QueryString["id"]));
         txtTitle.Text = model.Title;
         txtURl.Text   = model.Url;
         preview.Src   = model.Image;
         preview.Style.Add("display", "block");
         preview.Width  = 90;
         preview.Height = 90;
     }
 }
        /// <summary>
        /// 广告JOSN
        /// </summary>
        /// <param name="advert"></param>
        /// <returns></returns>
        public string AdvertiseToJson(WeiXinAdvertse advert)
        {
            string json = "{ 'title':'" + advert.Title + "','description':'','url':'" + advert.Url + "','picurl':'" + advert.Image + "'}";

            //            string json = @"{
            //                        'thumb_media_id':'zbwxAdvertise',
            //                        'author':'" + Session["LoginID"].ToString() + "',";
            //            json += "'title':'" + advert.Title + "',";
            //            json += "'content_source_url':'" + advert.Url + "',";
            //            json += "'content':'content',";
            //            json += "'digest':'digest'}";
            json = json.Replace('\'', '\"');
            return(json);
        }
        /// <summary>
        /// 更新一条广告信息
        /// </summary>
        /// <param name="advertise"></param>
        /// <returns></returns>
        public bool UpdateAdvertise(WeiXinAdvertse advertise)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update WeiXin_Advertise set ");
            if (advertise.Image != null)
            {
                strSql.Append("Image=@Image,");
            }
            strSql.Append("Title=@Title,");
            strSql.Append("Url=@Url,");
            strSql.Append("ContentXML=@ContentXML,");
            strSql.Append("LoginID=@LoginID,");
            strSql.Append("DateTime=@DateTime");
            strSql.Append(" where ID=@ID");
            List <SqlParameter> par = new List <SqlParameter> {
                new SqlParameter("@Title", advertise.Title),
                new SqlParameter("@Url", advertise.Url),
                new SqlParameter("@ContentXML", advertise.ContentXML),
                new SqlParameter("@LoginID", advertise.LoginID.ID),
                new SqlParameter("@DateTime", advertise.DateTime),
                new SqlParameter("@ID", advertise.ID)
            };

            if (advertise.Image != "" && advertise.Image != null)
            {
                par.Add(new SqlParameter("@Image", advertise.Image));
            }
            SqlParameter[] parameters = par.ToArray();

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            AMS_UserInfo   userinfo = Session["Login"] as AMS_UserInfo;
            WeiXinAdvertse model    = new WeiXinAdvertse
            {
                Title   = txtTitle.Text,
                Url     = txtURl.Text,
                LoginID = new AMS_UserInfo {
                    ID = userinfo.ID
                },
                DateTime = DateTime.Now
            };
            bool   fileOK = false;
            string path   = "~/Temp/";

            if (FileUpload1.HasFile)
            {
                string a             = FileUpload1.FileName;
                String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
                if (fileExtension == ".gif")
                {
                    fileOK = true;
                }
            }
            if (FileUpload1.FileName == "" && Request.QueryString["id"] == null)
            {
                this.lbltxt.Text = "请上传图片!";
                //this.RegisterStartupScript("错误提示", "<script>alert('图片上传不能等于空');</script>");
                return;
            }
            if (fileOK)
            {
                model.Image = path + FileUpload1.FileName;
                FileUpload1.SaveAs(Server.MapPath(path) + FileUpload1.FileName);
                model.ContentXML = AdvertiseToJson(model);
            }
            else
            {
                if (Request.QueryString["id"] != null)
                {
                    WeiXinAdvertse josns = WeiXinProxy.GetAdvertseById(Convert.ToInt32(Request.QueryString["id"]));
                    josns.Title      = model.Title;
                    josns.Url        = model.Url;
                    model.ContentXML = AdvertiseToJson(josns);
                }
            }
            if (Request.QueryString["id"] != null)
            {
                model.ID = Convert.ToInt32(Request.QueryString["id"]);
                WeiXinProxy.UpdateAdvertise(model);
                Response.Write("<script>window.location.href ='AdvertiseFrom.aspx'</script>");
            }
            else
            {
                if (WeiXinProxy.SaveAdvertise(model))
                {
                    Response.Write("<script>window.location.href ='AdvertiseFrom.aspx'</script>");
                }
                else
                {
                    this.lbltxt.Text = "添加失败";
                    //this.RegisterStartupScript("添加提示", "<script>alert('添加失败');</script>");
                }
            }
        }
Пример #8
0
        //菜单点击
        void service_MenuClickEvent(object sender, WeixinEventMsg arge)
        {
            WeiXinUsers   user        = WeiXinProxy.GetWeiXinUser(arge.FromUserName); //获取用户信息
            WeiXinTextMsg responseTxt = new WeiXinTextMsg();                          //要回复的信息

            responseTxt.MsgType      = EnumWeiXinMsgType.Text;
            responseTxt.FromUserName = arge.ToUserName;
            responseTxt.ToUserName   = arge.FromUserName;
            string domain       = ConfigurationManager.AppSettings["Domain"];
            string pocketdomain = ConfigurationManager.AppSettings["PocketDomain"];
            IMainFunctionPageBll mainFunctionBll = null;

            if (user == null)//连接地址未填写
            {
                context.Response.Flush();
                context.Response.Close();
                WeiXinAdvertse ad = new WeiXinAdvertse();
                ad.Title       = "绑定学号";
                ad.Image       = domain + "/Images/Bd.jpg";
                ad.Url         = domain + "/BindUsers.aspx? WXID=" + arge.FromUserName;
                ad.Description = "请先绑定学号";
                //-------------------------------------------------
                ad.ContentXML = WeiXinJsonArticle.AdvertiseToJson(ad);
                //-------------------------------------------------
                List <WeiXinAdvertse> lw = new List <WeiXinAdvertse>();
                lw.Add(ad);
                ads.SendArticleMessage(arge.FromUserName, lw);
                return;
            }
            WeiXinJK.Model.WexinEventClickMenu click = (WeiXinJK.Model.WexinEventClickMenu)arge;
            string resultValue = "";

            switch (click.EventKey)
            {
            case EnumMenuKey.GetMyInfo:
                break;

            case WeiXinJK.Model.EnumMenuKey.BindWeiXinId:    //修改绑定*******修改绑定连接未实现
                #region 修改绑定
                context.Response.Flush();
                context.Response.Close();
                WeiXinAdvertse ad = new WeiXinAdvertse();
                ad.Title       = "我的资料";
                ad.Image       = domain + "/Images/Bd.jpg";
                ad.Url         = domain + "/BindUsers.aspx?WXID=" + click.FromUserName;
                ad.Description = "点击查看我的资料";
                //---------------------------------------------------
                ad.ContentXML = WeiXinJsonArticle.AdvertiseToJson(ad);
                //---------------------------------------------------
                List <WeiXinAdvertse> lw = new List <WeiXinAdvertse>();
                lw.Add(ad);
                ads.SendArticleMessage(arge.FromUserName, lw);
                #endregion
                break;

            case WeiXinJK.Model.EnumMenuKey.FreeSeat:    //释放座位
                #region 释放座位

                lock (lockObject)
                {
                    mainFunctionBll = new TcpClient_BespeakSeatAllMethod(user.SchoolInfo);
                    try
                    {
                        resultValue = mainFunctionBll.FreeSeat(user.SchoolInfo, new ReaderInfo()
                        {
                            CardNo = user.CardNo
                        });
                    }
                    catch (Exception ex)
                    {
                        resultValue = ex.Message;
                    }
                    finally
                    {
                        (mainFunctionBll as TcpClient_BespeakSeatAllMethod).Dispose();
                    }
                }
                responseTxt.Content = resultValue;
                context.Response.Write(responseTxt.ToXML());

                #endregion
                break;

            case WeiXinJK.Model.EnumMenuKey.GetBespeakLog:    //获取预约记录预留接口
                #region 查看预约信息
                List <BespeakLogInfo> li = new List <BespeakLogInfo>();
                lock (lockObject)
                {
                    try
                    {
                        Loghandler = new TcpClient_BespeakSeatAllMethod(user.SchoolInfo);

                        li = Loghandler.GetBookLogs(user.SchoolInfo, user.CardNo, null, 7);

                        (Loghandler as TcpClient_BespeakSeatAllMethod).Dispose();
                    }
                    catch (Exception ex)
                    {
                        responseTxt.Content = "执行出错误,请再次尝试";
                        context.Response.Write(responseTxt.ToXML());
                        SeatManage.SeatManageComm.WriteLog.Write(string.Format("获取预约信息失败:{0},异常来自:{1}", ex.Message, ex.Source));
                        return;
                    }
                }
                string content = "";
                if (li.Count == 0)
                {
                    content = "您暂无预约记录!";
                }
                else
                {
                    content += "以下是您7天内的预约记录:" + Environment.NewLine;
                    //content += "地点".PadRight(5, ' ') + "座位号".PadRight(8, ' ') + "时间".PadRight(5, ' ') + Environment.NewLine;
                    foreach (BespeakLogInfo log in li)
                    {
                        content += "地点:" + Environment.NewLine;
                        content += log.ReadingRoomName + Environment.NewLine;
                        content += "座位号:" + log.ShortSeatNum + Environment.NewLine;
                        content += "时间:" + log.BsepeakTime.ToString("yy/MM/dd") + Environment.NewLine;
                    }
                }
                responseTxt.Content = content;
                context.Response.Write(responseTxt.ToXML());
                #endregion
                break;

            case WeiXinJK.Model.EnumMenuKey.GetRoomUsedState:    //获取阅览室剩余座位
                #region 获取阅览室剩余座位
                context.Response.Flush();
                context.Response.Close();

                Dictionary <string, ReadingRoomSeatUsedState_Ex> dic = new Dictionary <string, ReadingRoomSeatUsedState_Ex>();
                lock (lockObject)
                {
                    mainFunctionBll = new TcpClient_BespeakSeatAllMethod(user.SchoolInfo);
                    try
                    {
                        dic = mainFunctionBll.GetAllRoomSeatUsedState(user.SchoolInfo);
                    }
                    catch (Exception ex)
                    {
                        ads.SendTxtMessage(responseTxt.ToUserName, "执行出错误,请再次尝试。");
                        SeatManage.SeatManageComm.WriteLog.Write(string.Format("获取可用座位数失败:{0},异常来自:{1}", ex.Message, ex.Source));
                    }
                    finally
                    {
                        (mainFunctionBll as TcpClient_BespeakSeatAllMethod).Dispose();
                    }
                }
                StringBuilder strtxt = new StringBuilder();
                foreach (ReadingRoomSeatUsedState_Ex seatUsedState in dic.Values)
                {
                    strtxt.Append(string.Format("{0}:{1}/{2}(已用/总共)", seatUsedState.ReadingRoom.Name, seatUsedState.SeatAmountUsed.ToString(), seatUsedState.SeatAmountAll.ToString()) + Environment.NewLine);
                }
                ads.SendTxtMessage(responseTxt.ToUserName, strtxt.ToString());

                #endregion
                break;

            case WeiXinJK.Model.EnumMenuKey.ShortLeave:    //设置暂离
                #region 设置暂离
                lock (lockObject)
                {
                    mainFunctionBll = new TcpClient_BespeakSeatAllMethod(user.SchoolInfo);
                    try
                    {
                        resultValue = mainFunctionBll.SetShortLeave(user.SchoolInfo, new ReaderInfo()
                        {
                            CardNo = user.CardNo
                        });
                        responseTxt.Content = resultValue;
                    }
                    catch (Exception ex)
                    {
                        responseTxt.Content = ex.Message;
                    }
                    finally
                    {
                        (mainFunctionBll as TcpClient_BespeakSeatAllMethod).Dispose();
                    }
                }

                context.Response.Write(responseTxt.ToXML());
                #endregion
                break;

            case WeiXinJK.Model.EnumMenuKey.ReserveSeat:
                #region 预约座位

                #endregion
                break;

            case EnumMenuKey.BlackList:
                #region 黑名单

                #endregion
                break;

            case EnumMenuKey.GetReaderState:
                #region 读者状态
                ReaderInfo readerIn = new ReaderInfo();
                lock (lockObject)
                {
                    try
                    {
                        mainFunctionBll = new TcpClient_BespeakSeatAllMethod(user.SchoolInfo);
                        readerIn        = mainFunctionBll.GetReaderInfo(user.SchoolInfo, user.CardNo);
                    }
                    catch
                    {
                        responseTxt.Content = "执行出错误,请再次尝试";
                        context.Response.Write(responseTxt.ToXML());
                    }
                    finally
                    {
                        (mainFunctionBll as TcpClient_BespeakSeatAllMethod).Dispose();
                    }
                }
                string state = "";
                if (readerIn.EnterOutLog == null)
                {
                    state = "Leave";
                }
                else
                {
                    state = readerIn.EnterOutLog.EnterOutState.ToString();
                }

                if (readerIn.BespeakLog.Count > 0)
                {
                    state = "Booking";
                }
                string message = "";
                switch (state)
                {
                case "SelectSeat":
                case "ComeBack":
                case "ContinuedTime":
                case "WaitingSuccess":
                case "BookingConfirmation":
                case "ReselectSeat": message = "当前状态:在座"; break;

                case "Leave": message = ""; break;

                case "Booking": message = "今天有预约未确认"; break;

                case "Waiting": message = "您正在等待座位"; break;

                case "ShortLeave": message = "当前状态:暂离"; break;

                default: message = "";
                    SeatManage.SeatManageComm.WriteLog.Write(string.Format("获取到读者信息,读者状态为:", state));
                    break;
                }
                if (readerIn.EnterOutLog != null && readerIn.EnterOutLog.EnterOutState != SeatManage.EnumType.EnterOutLogType.Leave)
                {
                    string nowMessage = "";
                    //座位号 readerIn.EnterOutLog.ShortSeatNo;
                    if (message != "")
                    {
                        string seatNo = readerIn.EnterOutLog.ShortSeatNo;
                        nowMessage         += string.Format("阅览室:{0}\n座位号:{1}\n学号:{2}\n{3}", readerIn.AtReadingRoom.Name, seatNo, readerIn.CardNo, message);
                        responseTxt.Content = nowMessage;
                        context.Response.Write(responseTxt.ToXML());
                    }
                }
                else
                {
                    responseTxt.Content = "您当前还没有座位!";
                    context.Response.Write(responseTxt.ToXML());
                }
                #endregion
                break;

            case EnumMenuKey.GetRules:
                #region 查看规则
                #endregion
                break;

            case EnumMenuKey.ReservationService:
                #region 预约多图文
                context.Response.Flush();
                context.Response.Close();
                List <WeiXinAdvertse> ListWeiXin = new List <WeiXinAdvertse>();
                WeiXinAdvertse        adv        = new WeiXinAdvertse();
                adv.Title = "更多资讯";                        //标题
                adv.Image = domain + "/Images/ysgg.jpg";   //图片地址
                adv.Url   = "http://shanghai.longre.com/"; //访问地址
                //-------------------------------------------------
                adv.ContentXML = WeiXinJsonArticle.AdvertiseToJson(adv);
                ListWeiXin.Add(adv);
                //---------------------------------------------------

                adv       = new WeiXinAdvertse();
                adv.Title = "预约座位";
                adv.Image = domain + "/Images/yyzw.jpg";
                string para = SeatManage.SeatManageComm.AESAlgorithm.DESEncode(string.Format("cardNo={0}&schoolId={1}&operateKey={2}", user.CardNo, user.SchoolInfo.Id, Convert.ToInt32(EnumMenuKey.ReserveSeat)));
                para           = HttpUtility.UrlEncode(para);
                adv.Url        = pocketdomain + "/AutoLogin.aspx?parameters=" + para;
                adv.ContentXML = WeiXinJsonArticle.AdvertiseToJson(adv);
                ListWeiXin.Add(adv);
                //------------------------------------------------------
                adv       = new WeiXinAdvertse();
                adv.Title = "预约记录";
                adv.Image = domain + "/Images/yyjl.jpg";
                string par = SeatManage.SeatManageComm.AESAlgorithm.DESEncode(string.Format("cardNo={0}&schoolId={1}&operateKey={2}", user.CardNo, user.SchoolInfo.Id, Convert.ToInt32(EnumMenuKey.GetBespeakLog)));
                par            = HttpUtility.UrlEncode(par);
                adv.Url        = pocketdomain + "/AutoLogin.aspx?parameters=" + par;
                adv.ContentXML = WeiXinJsonArticle.AdvertiseToJson(adv);
                ListWeiXin.Add(adv);
                ads.SendArticleMessage(arge.FromUserName, ListWeiXin);
                break;

                #endregion
            case EnumMenuKey.Weather:
                context.Response.Flush();
                context.Response.Close();
                WeiXinAdvertse Weathers = new WeiXinAdvertse();
                Weathers.Title = "回复城市+天气名可获取输入城市的实况天气\t如:南京天气";
                Weathers.Image = domain + "/Images/Bd.jpg";
                Weathers.Url   = "";
                //-------------------------------------------------
                Weathers.ContentXML = WeiXinJsonArticle.AdvertiseToJson(Weathers);
                //-------------------------------------------------
                List <WeiXinAdvertse> ListWeather = new List <WeiXinAdvertse>();
                ListWeather.Add(Weathers);
                ads.SendArticleMessage(arge.FromUserName, ListWeather);
                break;

            case EnumMenuKey.Service:
                WeixinTransfer WXXml = new WeixinTransfer();
                WXXml.ToUserName   = arge.FromUserName;
                WXXml.FromUserName = arge.ToUserName;
                WXXml.MsgType      = EnumWeiXinMsgType.transfer_customer_service;
                context.Response.Write(WXXml.ToXML());
                break;

            case EnumMenuKey.Press:
                context.Response.Flush();
                context.Response.Close();
                List <WeiXinAdvertse> ListPress = new List <WeiXinAdvertse>();
                WeiXinAdvertse        press     = new WeiXinAdvertse();
                press.Title = "0";         //标题
                press.Image = domain + ""; //图片地址
                press.Url   = "";          //访问地址
                //-------------------------------------------------
                press.ContentXML = WeiXinJsonArticle.AdvertiseToJson(press);
                ListPress.Add(press);
                //---------------------------------------------------

                press            = new WeiXinAdvertse();
                press.Title      = "1";
                press.Image      = domain + "";
                press.Url        = "";
                press.ContentXML = WeiXinJsonArticle.AdvertiseToJson(press);
                ListPress.Add(press);
                //------------------------------------------------------
                press            = new WeiXinAdvertse();
                press.Title      = "2";
                press.Image      = domain + "";
                press.Url        = "";
                press.ContentXML = WeiXinJsonArticle.AdvertiseToJson(press);
                ListPress.Add(press);
                //------------------------------------------------------
                press            = new WeiXinAdvertse();
                press.Title      = "3";
                press.Image      = domain + "";
                press.Url        = "";
                press.ContentXML = WeiXinJsonArticle.AdvertiseToJson(press);
                ListPress.Add(press);
                //------------------------------------------------------
                press            = new WeiXinAdvertse();
                press.Title      = "4";
                press.Image      = domain + "";
                press.Url        = "";
                press.ContentXML = WeiXinJsonArticle.AdvertiseToJson(press);
                ListPress.Add(press);
                //------------------------------------------------------
                press            = new WeiXinAdvertse();
                press.Title      = "4";
                press.Image      = domain + "";
                press.Url        = "";
                press.ContentXML = WeiXinJsonArticle.AdvertiseToJson(press);
                ListPress.Add(press);
                //------------------------------------------------------
                ads.SendArticleMessage(arge.FromUserName, ListPress);
                break;
            }
        }