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