Exemple #1
0
        /// <summary>
        /// 获取新增弹窗消息接口参数(炒股大赛)
        /// </summary>
        private string GetAddOutWindowParameter(StockContestData scd)
        {
            /// <summary>
            /// 弹窗链接(炒股大寒高手操盘)
            /// </summary>
            string OutWindowUrlStockContest = ConfigurationManager.AppSettings["OutWindowUrlStockContest"];

            JavaScriptSerializer jss = new JavaScriptSerializer();

            AddKey_Ds ak = new AddKey_Ds();

            ak.id  = scd.Id;
            ak.url = OutWindowUrlStockContest + "?" +
                     "m=" + scd.OperateUserImg +
                     "&n=" + scd.OperateUserName +
                     "&d=" + scd.OperateTime +
                     "&sn=" + scd.StockName +
                     "&sc=" + scd.StockCode +
                     "&q=" + scd.Quantity +
                     "&p=" + scd.Price +
                     "&t=" + scd.OperateType;

            ak.app_user   = scd.UserId;
            ak.begin_time = DateTime.Now.AddMinutes(-15);
            ak.end_time   = DateTime.Now.AddMinutes(30);
            ak.popup_type = 1;

            string jsonStr = jss.Serialize(ak);

            return(EncodeString(jsonStr));
        }
Exemple #2
0
        /// <summary>
        /// 推送(炒股大赛)
        /// </summary>
        public void SsoPushStockContest(StockContestData scd)
        {
            SsoOutWindowBLL ssoOutWindowBll = Factory.BusinessFactory.CreateBll <SsoOutWindowBLL>();
            string          msgTitle        = string.Format(ConfigurationManager.AppSettings["StockContestMobileMsg"], scd.OperateUserName, scd.OperateType, scd.StockName, scd.Price);

            //pc端推送
            string parameter = GetAddOutWindowParameter(scd);
            string res       = RequestHelper.WebRequest(AddOutWindow, "post", parameter, "UTF-8", false);

            if (!string.IsNullOrEmpty(res))
            {
                res = new EncDecUtil().decyptData(res, accesskey);
                SsoRes ssoRes = JsonHelper.DeserializeJson <SsoRes>(res);

                // 调用接口状态码,0:成功,1:该消息id 已存在,2:链接地址不存在,3:用户群组不存在,4:开始时间与结束时间不匹配,9:其它异常
                if (ssoRes.error != 0)
                {
                    Loger.Error("[炒股大赛]  SSO数据推送返回失败, 返回:" + res + "\r\n相关参数:" + JsonHelper.ToJson(scd));
                }
            }
            else
            {
                Loger.Error("SSO接口调用返回空=====error=====(一般情况不会出现, 出现在超时或者无法调用)");
            }

            Loger.Info("[炒股大赛] id=" + scd.Id + "  SSO数据推送返回结果: " + res + "\r\n相关参数:" + JsonHelper.ToJson(scd) + "\r\n手机推送中...");
            //入手机端推送表
            int num = ssoOutWindowBll.UpDataTB_MOBPUSH_USERINFO_StockContest(scd, msgTitle);

            Loger.Info("[炒股大赛] id=" + scd.Id + "  手机推送表更新数:" + num);
        }
Exemple #3
0
        /// <summary>
        /// 更新Oracle移动终端推送信息表(炒股大赛)
        /// </summary>
        public int UpDataTB_MOBPUSH_USERINFO_StockContest(StockContestData scd, string msgTitle)
        {
            var    dbFactory = new OrmLiteConnectionFactory(SqlConnectFactory.BaiduPush, OracleDialect.Provider);
            int    res       = 0;
            string users     = "";

            if (scd.UserId == "")
            {
                Loger.Error("用户id为空, 来自: 移动终端推送信息表(炒股大赛)");
                return(-1);
            }
            if (scd.UserId.IndexOf(",") < 0)
            {
                users = " and UP_USERID = '" + scd.UserId + "' ";
            }
            else
            {
                users = " and UP_USERID in ('" + scd.UserId.Replace(",", "','") + "') ";
            }

            string set = "PUSHEDSTATUS = '1' " +
                         ", PUSHTYPE = '2' " +
                         ", STATICTAG = '" + scd.StaticTag + "' " +
                         ", CREATETIME =  to_date('" + DateTime.Now.ToString() + "','yyyy-mm-dd hh24:mi:ss')" +
                         ", PUSHTIME = null " +
                         ", PLATFORM = 2 " +
                         ", MSGTITLE = " + "'" + msgTitle + "'" +
                         ", MSGCONTENT = '" + scd.OperateUserName + "'";

            for (int i = 0; i < 30; i++)
            {
                int k = 0;
                using (var db = dbFactory.OpenDbConnection())
                {
                    k = db.Select <object>("select * from TB_MOBPUSH_USERINFO t where PUSHEDSTATUS = 1 " + users).Count;
                }
                //Loger.Info("未能推送状态PusherStatus=1的有:" + k + "条");
                if (k == 0)
                {
                    break;
                }
                else
                {
                    System.Threading.Thread.Sleep(30000);
                }
            }

            Loger.Info("Update TB_MOBPUSH_USERINFO set " + set + " where (PUSHEDSTATUS is null or PUSHEDSTATUS != '1') " + users);

            using (var db = dbFactory.OpenDbConnection())
            {
                res = db.Update("TB_MOBPUSH_USERINFO", set, "(PUSHEDSTATUS is null or PUSHEDSTATUS != '1')" + users);
            }
            return(res);
        }
Exemple #4
0
        /// <summary>
        /// SSO数据推送服务(炒股大赛)
        /// </summary>
        /// <param name="planId"></param>
        public static void SsoPush(StockContestData scd)
        {
            var factory = new ChannelFactory <ISsoOutWindow>("SsoService");
            var channel = factory.CreateChannel();

            try
            {
                channel.SsoPushStockContest(scd);
                factory.Close();
                Loger.Info("SSO接口调用成功[炒股大赛]");
            }
            catch (Exception ex)
            {
                Loger.Error(ex);
                factory.Abort();
            }
        }
        public string SosPush(string id, string userId, string stockCode, string stockName, string quantity, string price, string operateUserName, string operateUserImg, string operateType, string operateTime, int staticTag)
        {
            if (string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(stockCode) || string.IsNullOrEmpty(stockName) || string.IsNullOrEmpty(price) || string.IsNullOrEmpty(operateType) || string.IsNullOrEmpty(operateTime))
            {
                return("缺少参数");
            }
            StockContestData scd = new StockContestData();

            scd.Id              = "ds" + Guid.NewGuid().ToString();
            scd.UserId          = userId;
            scd.StockCode       = stockCode;
            scd.StockName       = stockName;
            scd.Quantity        = quantity;
            scd.Price           = price;
            scd.OperateUserName = operateUserName;
            scd.OperateUserImg  = operateUserImg;
            scd.OperateType     = operateType;
            scd.OperateTime     = operateTime;
            scd.StaticTag       = staticTag == 1 ? "4" : "3"; //来源数据: 0为模拟盘, 1为实盘; 手机推送表为3 跟 4

            SsoServer.SsoPush(scd);
            return("1");
        }