/// <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)); }
/// <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); }
/// <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); }
/// <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"); }