public static void AUTOALERT() { lock (islock) { var txLst = new SZHL_TXSXB().GetEntities(p => p.Status == "0"); foreach (var model in txLst) { try { bool canclose = false; //是否结束 bool cansend = false; //是否发送提醒 bool upcount = false; //是否更新次数 switch (model.TXType) { case "0": //立即发送 { cansend = true; canclose = true; upcount = true; } break; case "1": //仅一次 { DateTime sd = DateTime.Parse(model.Date + " " + model.Hour + ":" + model.Minute + ":00"); if (DateTime.Now >= sd) { cansend = true; canclose = true; upcount = true; } } break; case "2": //每个工作日 { DateTime sd = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + model.Hour + ":" + model.Minute + ":00"); if ((DateTime.Now.DayOfWeek == DayOfWeek.Monday || DateTime.Now.DayOfWeek == DayOfWeek.Tuesday || DateTime.Now.DayOfWeek == DayOfWeek.Wednesday || DateTime.Now.DayOfWeek == DayOfWeek.Thursday || DateTime.Now.DayOfWeek == DayOfWeek.Friday ) && DateTime.Now > sd && (model.LstSendTime == null || model.LstSendTime.Value.ToString("yyyy-MM-dd") != DateTime.Now.ToString("yyyy-MM-dd"))) { upcount = true; } } break; case "3": //每天 { DateTime sd = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + model.Hour + ":" + model.Minute + ":00"); if ((DateTime.Now > sd && (model.LstSendTime == null || model.LstSendTime.Value.ToString("yyyy-MM-dd") != DateTime.Now.ToString("yyyy-MM-dd")))) { upcount = true; } } break; case "5": //每月 { DateTime sd = DateTime.Parse(DateTime.Now.ToString("yyyy-MM") + "-" + model.Days + " " + model.Hour + ":" + model.Minute + ":00"); if ((DateTime.Now > sd && (model.LstSendTime == null || model.LstSendTime.Value.ToString("yyyy-MM") != DateTime.Now.ToString("yyyy-MM")))) { upcount = true; } } break; case "4": //自定义 { string Days = model.Days; foreach (var d in Days.Split(',')) { if (getWkDays(d) == DateTime.Now.DayOfWeek) { DateTime sd = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + model.Hour + ":" + model.Minute + ":00"); if ((DateTime.Now > sd && (model.LstSendTime == null || model.LstSendTime.Value.ToString("yyyy-MM-dd") != DateTime.Now.ToString("yyyy-MM-dd")))) { upcount = true; } } } } break; } if (upcount) { if (model.CFType == "1") { cansend = true; } else if (model.CFType == "2" && model.CFCount.Value > model.ZXCount) //次数 { cansend = true; if (model.CFCount.Value == model.ZXCount.Value + 1) //到次数,可以结束 { canclose = true; } } else if (model.CFType == "3" && DateTime.Now < model.CFJZDate.Value) { cansend = true; } new SZHL_TXSXB().ExsSql("update SZHL_TXSX set ZXCount=isnull(ZXCount,0)+1,LstSendTime=getdate() where ID=" + model.ID); } if (cansend) { bool smsg = false; bool swx = false; bool swxapi = false; if (model.Type == "0") //短信和微信 { smsg = true; swx = true; } else if (model.Type == "1") //短信 { smsg = true; } else if (model.Type == "2") //微信 { swx = true; } else if (model.Type == "3") //调接口 { swxapi = true; } if (smsg) //发短信 { foreach (var m in model.TXUser.Split(',')) { object u = new SZHL_TXSXB().ExsSclarSql("select mobphone from JH_Auth_User where UserName='******' and comid='" + model.ComId + "'"); if (u != null) { CommonHelp.SendSMS(u.ToString(), model.CRUserRealName + "给您添加了提醒\n" + model.TXContent, model.ComId.Value); } } } if (swx) //发微信 { Senparc.Weixin.QY.Entities.Article a = new Senparc.Weixin.QY.Entities.Article(); a.Title = "日程提醒"; a.Description = model.CRUserRealName + "给您添加了提醒\n" + model.TXContent; a.Url = model.ID.ToString(); List <Senparc.Weixin.QY.Entities.Article> al = new List <Senparc.Weixin.QY.Entities.Article>(); al.Add(a); JH_Auth_UserB.UserInfo UserInfo = new JH_Auth_UserB().GetUserInfo(model.ComId.Value, model.CRUser); try { new JH_Auth_User_CenterB().SendMsg(UserInfo, model.TXMode, model.TXContent, model.ID.ToString(), model.TXUser, "A", 0, model.ISCS); } catch (Exception) { } WXHelp wx = new WXHelp(UserInfo.QYinfo); wx.SendTH(al, model.TXMode, model.WXLink, model.TXUser); } if (swxapi) //调接口 { try { Msg_Result Model = new Msg_Result() { Action = model.FunName, ErrorMsg = "" }; var container = ServiceContainerV.Current().Resolve <IWsService>(model.APIName.ToUpper()); container.ProcessRequest(HttpContext.Current, ref Model, JsonConvert.SerializeObject(model), "", null); if (Model.ErrorMsg == "") { canclose = true; } else { canclose = true; upcount = true; } } catch (Exception ex) { canclose = true; new JH_Auth_LogB().Insert(new JH_Auth_Log() { LogType = "TXSX", LogContent = ex.ToString(), CRDate = DateTime.Now }); } } } if (canclose) { new SZHL_TXSXB().ExsSql("update SZHL_TXSX set Status='1' where ID=" + model.ID); } } catch (Exception ex) { string ss = ex.Message; } } } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.AddHeader("Access-Control-Allow-Origin", "*"); context.Response.AddHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS,DELETE"); //支持的http 动作 context.Response.AddHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type,authorization"); context.Response.AddHeader("Access-Control-Allow-Credentials", "true"); context.Response.AddHeader("pragma", "no-cache"); context.Response.AddHeader("cache-control", ""); context.Response.CacheControl = "no-cache"; string strAction = context.Request["Action"] ?? ""; string P1 = context.Request["P1"] ?? ""; string P2 = context.Request["P2"] ?? ""; string P3 = context.Request["P3"] ?? ""; string UserName = context.Request["UserName"] ?? ""; string szhlcode = context.Request["szhlcode"] ?? ""; //string cook = context.Request.Cookies["szhlcode"].Value; string authcode = context.Request.Headers["Authorization"] ?? ""; string strIP = CommonHelp.getIP(context); //用户IP int intTimeOut = 60; //用户超时间隔时间即szhlcode失效时间 Msg_Result Model = new Msg_Result() { Action = strAction.ToUpper(), ErrorMsg = "" }; if (!string.IsNullOrEmpty(strAction)) { try { string strCheckString = new CommonHelp().checkconetst(context); if (strCheckString != "") { Model.ErrorMsg = strAction + "有敏感字符串"; new JH_Auth_LogB().InsertLog(strAction, Model.ErrorMsg, strCheckString, UserName, "", 0, strIP); } else { #region 必须登录执行接口 Model.ErrorMsg = ""; var bl = true; var acs = Model.Action.Split('_'); if (Model.Action.IndexOf("_") > 0) { if (acs[0].ToUpper() == "Commanage".ToUpper()) { bl = false; var container = ServiceContainerV.Current().Resolve <IWsService>(acs[0].ToUpper());// Model.Action = acs[1]; container.ProcessRequest(context, ref Model, P1.TrimEnd(), P2.TrimEnd(), new JH_Auth_UserB.UserInfo()); int cid = 0; string un = string.Empty; if (Model.Result4 != null) { JH_Auth_User UserInfo = Model.Result4; cid = UserInfo.ComId.Value; un = UserInfo.UserRealName; } } } if (bl) { if (szhlcode != "")//如果存在TOKEN,根据TOKEN找到用户信息,并根据权限执行具体ACTION { //通过Code获取用户名,然后执行接口方法 var container = ServiceContainerV.Current().Resolve <IWsService>(acs[0].ToUpper()); JH_Auth_UserB.UserInfo UserInfo = new JH_Auth_UserB().GetUserInfo(szhlcode); if (UserInfo.User != null) { if (UserInfo.User.logindate == null) { UserInfo.User.logindate = DateTime.Now; } TimeSpan ts = new TimeSpan(UserInfo.User.logindate.Value.Ticks).Subtract(new TimeSpan(DateTime.Now.Ticks)).Duration(); if (ts.TotalMinutes > intTimeOut) // 超过五分钟了,超时了哦; { UserInfo.User.pccode = ""; new JH_Auth_UserB().Update(UserInfo.User);//清除PCCode Model.ErrorMsg = "WXTIMEOUT"; } else { Model.Action = Model.Action.Substring(acs[0].Length + 1); container.ProcessRequest(context, ref Model, P1.TrimEnd(), P2.TrimEnd(), UserInfo); new JH_Auth_LogB().InsertLog(Model.Action, "调用接口", context.Request.Url.AbsoluteUri, UserInfo.User.UserName, UserInfo.User.UserRealName, UserInfo.QYinfo.ComId, strIP); new JH_Auth_UserB().UpdateloginDate(UserInfo.User.ComId.Value, UserInfo.User.UserName);//更新用户最近的操作时间 } } else { Model.ErrorMsg = "NOSESSIONCODE"; } } else { Model.ErrorMsg = "NOSESSIONCODE"; } } #endregion } } catch (Exception ex) { Model.ErrorMsg = strAction + "接口调用失败,请检查日志"; Model.Result = ex.ToString(); new JH_Auth_LogB().InsertLog(strAction, Model.ErrorMsg + ex.StackTrace.ToString(), ex.ToString(), UserName, "", 0, strIP); } } string jsonpcallback = context.Request["jsonpcallback"] ?? ""; IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; string Result = JsonConvert.SerializeObject(Model, Formatting.Indented, timeConverter).Replace("null", "\"\""); if (jsonpcallback != "") { Result = jsonpcallback + "(" + Result + ")";//支持跨域 } context.Response.Write(Result); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.AddHeader("Access-Control-Allow-Origin", "*"); context.Response.AddHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS,DELETE"); //支持的http 动作 context.Response.AddHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type,authorization"); context.Response.AddHeader("Access-Control-Allow-Credentials", "true"); context.Response.AddHeader("pragma", "no-cache"); context.Response.AddHeader("cache-control", ""); context.Response.CacheControl = "no-cache"; string strAction = context.Request["Action"] ?? ""; string P1 = context.Request["P1"] ?? ""; string P2 = context.Request["P2"] ?? ""; string P3 = context.Request["P3"] ?? ""; string UserName = context.Request["UserName"] ?? ""; string szhlcode = context.Request["szhlcode"] ?? ""; string authcode = context.Request.Headers["Authorization"] ?? ""; string strIP = CommonHelp.getIP(context); //用户IP int intTimeOut = 60; //用户超时间隔时间即szhlcode失效时间 Msg_Result Model = new Msg_Result() { Action = strAction.ToUpper(), ErrorMsg = "" }; if (!string.IsNullOrEmpty(strAction)) { try { string strCheckString = new CommonHelp().checkconetst(context); if (strCheckString != "") { Model.ErrorMsg = strAction + "有敏感字符串"; new JH_Auth_LogB().InsertLog(strAction, Model.ErrorMsg, strCheckString, UserName, "", 0, strIP); } else { #region 必须登录执行接口 Model.ErrorMsg = ""; var bl = true; var acs = Model.Action.Split('_'); //if (Model.Action.IndexOf("_") > 0) //{ // if (acs[0].ToUpper() == "Commanage".ToUpper()) // { // bl = false; // var container = ServiceContainerV.Current().Resolve<IWsService>(acs[0].ToUpper()); // Model.Action = acs[1]; // container.ProcessRequest(context, ref Model, P1.TrimEnd(), P2.TrimEnd(), new JH_Auth_UserB.UserInfo()); // int cid = 0; // string un = string.Empty; // if (Model.Result4 != null) // { // JH_Auth_User UserInfo = Model.Result4; // cid = UserInfo.ComId.Value; // un = UserInfo.UserRealName; // } // } //} if (bl) { var container = ServiceContainerV.Current().Resolve <IWsService>(acs[0].ToUpper()); Model.Action = Model.Action.Substring(acs[0].Length + 1); container.ProcessRequest(context, ref Model, P1.TrimEnd(), P2.TrimEnd(), new JH_Auth_UserB.UserInfo()); } #endregion } } catch (Exception ex) { Model.ErrorMsg = strAction + "接口调用失败,请检查日志"; Model.Result = ex.ToString(); new JH_Auth_LogB().InsertLog(strAction, Model.ErrorMsg + ex.StackTrace.ToString(), ex.ToString(), UserName, "", 0, strIP); } } string jsonpcallback = context.Request["jsonpcallback"] ?? ""; IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; string Result = JsonConvert.SerializeObject(Model, Formatting.Indented, timeConverter).Replace("null", "\"\""); if (jsonpcallback != "") { Result = jsonpcallback + "(" + Result + ")";//支持跨域 } context.Response.Write(Result); }