小牛之路——提醒功能

阅读: 评论:0

小牛之路——提醒功能

小牛之路——提醒功能

直接上代码~
PS:作为职场新人,欢迎大牛批评指正,小弟不胜感激!
视图层:
1、设置定时器,根据自己的业务需求设置定时器时间和当前时间的格式

2、触发 Ajax 时尽量减少请求次数,做一个服务器是否响应的判断

     $(function () {
        run();              //加载页面时启动
        var interval;       //设置定时器
        function run() {    //设置参数
            interval = setInterval(chat, "60000");
        }
        function chat() {   //执行函数
            //1、获取当前时间
            var date = new Date()
            var Y = FullYear()
            var M = Month() + 1
            var D = Date()
            var h = Hours();
            var m = Minutes();
            var s = Seconds();
            time = Y + "/" + (M < 10 ? "0" + M : M) + "/" + (D < 10 ? "0" + D : D) + " " + (h < 10 ? "0" + h : h) + ":" + (m < 10 ? "0" + m : m);
            //alert(time);
            //2、判断是否响应
            var judge = true;
            if (judge)
            {
                judge = false;
                $.ajax({
                    url: "/Schedule/Remind",
                    data: { time: time },
                    success: function (data) {
                        judge = true;
                        if (data == "0") {
                            //alert("没有请求到数据!");接下来的操作~
                        }
                        else {
                            var obj = JSON.parse(data);
                            //$("#number").val(obj[0].Number);
                            //alert("请求到数据!");接下来的操作~                           
                            $(".remind img").attr("src", "localhost/Image/Index/reminders.png");
                            $(".remind img").bind({
                                mousemove: function () {
                                    $(this).css("cursor", "pointer");
                                    $(this).attr("src", "localhost/Image/Index/remingers.hover.png");
                                },
                                mouseout: function () {
                                    $(this).attr("src", "localhost/Image/Index/reminders.png");
                                },
                                click: function () {
                                    location.href = "/Employee/EmployeeInfo";
                                }
                            })
                        }
                    }
                })
            }           
        }
        function end() {    //关闭
            clearTimeout(interval);
        }
        function start() {  //重新启动
            end();
            interval = setInterval(chat, "60000");
        }
    })

控制器:
1、根据是否获取到数据,分别处理
2、list 转换为 string 的方法是很常用的

/// <summary>
        /// 日程提醒
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public string Remind(DateTime? time)
        {
            var emodel = (Employee)Session["session-employee"];
            var number = emodel.Number;
            var list = new BLL.ScheduleLogic().Get(number, time);
            if (list == null || list.Count() < 1)
            {
                return "0";
            }
            else
            {
                var json = JsonConvert.SerializeObject(list);
                return json;
            }          
        }

逻辑层:
1、获取该员工当天所有的日程数据
2、根据时间进行判断,获取在提醒时间范围之内的信息

/// <summary>
        /// 日程提醒
        /// </summary>
        /// <param name="number"></param>
        /// <param name="time"></param>
        /// <returns></returns>
        public List<RemindScheduleModel> Get(string number, DateTime? time)
        {
            int yyyy = Convert.ToInt32(time.Value.ToString("yyyy"));
            int mm = Convert.ToInt32(time.Value.ToString("MM"));
            int dd = Convert.ToInt32(time.Value.ToString("dd"));
            var list = new ScheduleRepository(IUnitOfWork).GetModelList(s=>s.Employees.Where(e=>e.Number==number).Count()>0 && s.Time.Value.Year == yyyy && s.Time.Value.Month == mm && s.Time.Value.Day == dd && s.IsEff == "1").ToList();
            List<RemindScheduleModel> slist = new List<RemindScheduleModel>();
            foreach (var item in list)
            {
                TimeSpan t = new TimeSpan(item.Time.Value.Ticks) - new  TimeSpan(time.Value.Ticks);
                if(t.TotalMinutes<=30 && t.TotalMinutes>=-30)
                {
                    RemindScheduleModel model = new RemindScheduleModel();
                    model.Id = item.Id;
                    model.Time = item.Time;
                    model.Title = item.Title;
                    slist.Add(model);
                }


            }
            return slist;
        }

本文发布于:2024-02-01 18:48:40,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170678451938712.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:之路   小牛   功能
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23