Пример #1
0
        public string SetPageData(CusVisitModel model)
        {
            try
            {
                DBModel db = new DBModel();
                foreach (var i in model.visitList)
                {
                    cus_visit visit = new cus_visit()
                    {
                        VISIT_MAC       = i.cusMac,
                        CUS_NAME        = i.cusName,
                        CUS_MOBILE      = i.cusMobtle,
                        CUS_AGE_RANGE   = i.cusAge,
                        CUS_SEX         = i.cusSex,
                        VISIT_TIME      = Convert.ToDateTime(i.cusVisitTime),
                        CUS_INFO_STATUS = "1",
                        Guid            = System.Guid.NewGuid().ToString("N")
                    };

                    db.cus_visit.Add(visit);
                }
                db.SaveChanges();

                string resultJson = JsonConvert.SerializeObject(model);
                return("true");
            }
            catch (Exception ex)
            {
                return("false");
            }
        }
Пример #2
0
        public string VisitDistribution(CusVisitModel model)
        {
            try
            {
                CusVisitModel pagedata = new CusVisitModel()
                {
                    type = "VisitDistribution"
                };
                DBModel db = new DBModel();
                Random  rd = new Random();
                foreach (var i in model.visitList)
                {
                    List <cus_visit> list = db.cus_visit.Where(m => m.VISIT_MAC == i.cusMac).ToList();
                    if (list.Count() > 0)
                    {
                        var _m = list.First();
                        pagedata.visitList.Add(new VisitModelList()
                        {
                            cusAge       = _m.CUS_AGE_RANGE,
                            cusMac       = _m.VISIT_MAC,
                            cusMobtle    = _m.CUS_MOBILE,
                            cusName      = _m.CUS_NAME,
                            cusSex       = _m.CUS_SEX,
                            cusVisitTime = Convert.ToString(_m.VISIT_TIME),
                            floor        = rd.Next(0, 3).ToString(),
                            xAxis        = i.xAxis,
                            yAxis        = rd.Next(0, 80)
                        });
                    }
                }
                string resultJson = JsonConvert.SerializeObject(pagedata);
                SignalrServerToClient.BroadcastMessage(resultJson);

                //DBModel db = new DBModel();
                //foreach (var m in model.visitList)
                //{
                //    db.cus_visit.Add(new cus_visit()
                //    {
                //        CUS_AGE_RANGE = m.cusAge,
                //        VISIT_MAC = m.cusMac,
                //        CUS_MOBILE = m.cusMobtle,
                //        CUS_NAME = m.cusName,
                //        CUS_SEX = m.cusSex,
                //        VISIT_TIME = Convert.ToDateTime(m.cusVisitTime),
                //        CUS_INFO_STATUS = "1",
                //        Guid = System.Guid.NewGuid().ToString("N")
                //    });
                //}
                //db.SaveChanges();
                return("true");
            }
            catch (Exception ex)
            {
                return("false");
            }
        }
Пример #3
0
        private bool CalculateVisitHotspot(out string errMsg)
        {
            errMsg = "";
            DateTime today = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
            int      positionCount = 0, hoursCount = 0;

            CusVisitModel list = new CusVisitModel();

            try
            {
                //using能及时释放资源,例如数据库连接异常,可以即使将上下文释放
                using (var db = new DBModel())
                {
                    //今天所有的纪录
                    var dataSourceTimeStart = today.AddDays(-1).AddHours(-8);
                    var dataSourceTimeEnd   = DateTime.UtcNow;
                    var dataSource          = db.wifi_mac_data.Where(d => d.UPLOAD_DATE > dataSourceTimeStart && d.UPLOAD_DATE < dataSourceTimeEnd).ToList();
                    var positions           = dataSource.GroupBy(g => g.DEVICE_ID).OrderBy(g => g.Key).ToList();
                    var hours = DateTime.Now.Hour + 1;

                    //分组
                    for (var p = 0; p < positions.Count(); p++)
                    {
                        //分时
                        for (var h = 0; h < hours; h++)
                        {
                            //计算热度
                            var value = CalculateHotValue(positions[p].Key, today.AddHours(h - 8), today.AddHours(h - 7), dataSource);
                            list.visitHotspotLists.Add(new VisitHotspotList()
                            {
                                xAxis = h,
                                yAxis = p,
                                Count = value
                            });
                        }
                    }


                    db.SaveChanges();
                }

                LogHelper.Default.WriteInfo(JsonConvert.SerializeObject(list));
                VisitsBusinessInterface businessInterface = new VisitController();
                businessInterface.VisitHotspot(list);
                businessInterface.VisitCircular(list);
                return(true);
            }
            catch (Exception ex)
            {
                errMsg = ex.Message;
                LogHelper.Default.WriteError("计算热力图坐标时出错" + ex.Message, ex);
                return(false);
            }
        }
Пример #4
0
        private bool CalculateVisitDistribution(out string errMsg, MacDataModel model)
        {
            errMsg = "";
            LogHelper.Default.WriteInfo(JsonConvert.SerializeObject(model) + "\r\n");
            List <string> items = model.message.Split(new string[] { "\r\n" }, StringSplitOptions.None).ToList();
            CusVisitModel list  = new CusVisitModel();

            try
            {
                //using能及时释放资源,例如数据库连接异常,可以即使将上下文释放
                using (var db = new DBModel())
                {
                    foreach (var item in items)
                    {
                        var fileds = item.Trim().Split(',');

                        if (fileds.Length == 5)
                        {
                            var data = new WIFI_MAC_DATA();
                            data.ID                = Guid.NewGuid().ToString();
                            data.DEVICE_ID         = model.device_id;
                            data.PHONE_MAC_ADDRESS = fileds[0];
                            data.WIFI_MAC_ADDRESS  = fileds[1];
                            data.WIFI_MAC_NAME     = fileds[2];
                            data.DISTANCE          = fileds[3];
                            data.IS_CONNECTED      = fileds[4];
                            data.UPLOAD_DATE       = DateTime.Parse(model.device_time.Replace("#", " "));
                            db.wifi_mac_data.Add(data);
                            list.visitList.Add(new VisitModelList()
                            {
                                cusMac = data.PHONE_MAC_ADDRESS, xAxis = Convert.ToDecimal(data.DISTANCE)
                            });
                        }
                    }
                    db.SaveChanges();
                }

                LogHelper.Default.WriteInfo(JsonConvert.SerializeObject(list));
                VisitsBusinessInterface businessInterface = new VisitController();
                businessInterface.VisitDistribution(list);

                return(true);
            }
            catch (Exception ex)
            {
                errMsg = ex.Message;
                LogHelper.Default.WriteError("计算坐标图坐标时出错" + ex.Message, ex);
                return(false);
            }
        }
Пример #5
0
 public string VisitCircular(CusVisitModel model)
 {
     try
     {
         CusVisitModel pagedata = new CusVisitModel()
         {
             type = "VisitCircular"
         };
         pagedata.visitHotspotLists = model.visitHotspotLists;
         string resultJson = JsonConvert.SerializeObject(pagedata);;
         SignalrServerToClient.BroadcastMessage(resultJson);
         return("true");
     }
     catch (Exception ex)
     {
         return("false");
     }
 }
Пример #6
0
        public string VisitHotspot(CusVisitModel model)
        {
            try
            {
                CusVisitModel listPage = new CusVisitModel()
                {
                    type = "VisitHotspot"
                };
                listPage.visitHotspotLists = model.visitHotspotLists;
                string resultJson = JsonConvert.SerializeObject(listPage);;
                SignalrServerToClient.BroadcastMessage(resultJson);


                return("true");
            }
            catch (Exception ex)
            {
                return("false");
            }
        }