Beispiel #1
0
        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;
                    }
                }
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }