/// <summary> /// 报警方法 /// </summary> /// <param name="socket"></param> /// <param name="info"></param> /// <param name="bys"></param> private void BaoJinMethod(Socket socket, MacIPVersionInfo info, byte[] ds) { if (ds.Length == 11) { var id = ds.ToList().GetRange(4, 6).ToArray(); var hexIds = StrHelper.byteToHexStr(id); var id10 = Convert.ToInt32(hexIds, 16); var sta = DALDefenseStatus.DefenseStatusGetByDeviceId(id10); if ((sta == null) || (sta != null && sta.status == 1)) { ///警报事件 if (ds[3] == 4) { if (id10 > 0) { var device = DALYZKDeviceInfo_UserInfocs.YZKDeviceInfo_UserInfo_GetDataByRecordid(id10 + ""); if (device != null) { var device_mac = device.device_mac; DALNotifyException.NotifyExceptionAddX(new NotifyException() { bxkLabel = device.bxk_label, deviceId = device.deviceinfo_userinfo_id + "", deviceSetName = device.device_setname, recordTime = DateTime.Now, uid = device.uid, alarm_type = 0 }); var tokens = DALYZKPushToken.YZKPushToken_GetByUid(device.uid).FindAll(a => a.devicetype != 3); foreach (var token in tokens) { if (token != null) { if (token.devicetype == 0) { var devicetoken = token.devicetoken; if (!string.IsNullOrEmpty(devicetoken)) { var alert = ""; var category = ""; var ticker = ""; var title = "设备报警通知"; var text = string.Format("报警通知,您房间{0}的{1}设备发生报警,请留意", device.bxk_label, device.device_setname); var dt = new Dictionary <string, string> { { "type", "8" }, { "uid", device.uid } }; var pushData = YouMengHelper.makePush(alert, category, DeviceType.Android_Center, devicetoken, ticker, title, text, dt); } //DALNotifyException.NotifyExceptionGet(d.deviceinfo_userinfo_id + "", (int)AlarmType.DEFAULT); } else { var devicetoken = token.devicetoken; if (!string.IsNullOrEmpty(devicetoken)) { var alert = ""; var category = ""; var ticker = ""; var title = "设备报警通知"; var text = string.Format("报警通知,您房间{0}的{1}设备发生报警,请留意", device.bxk_label, device.device_setname); var dt = new Dictionary <string, string>(); dt.Add("type", "8"); dt.Add("uid", device.uid); var pushData = YouMengHelper.makePush(alert, category, DeviceType.YZK_IOS_APPStore, devicetoken, ticker, title, text, dt); } } } } } } } ///表明是需要短信通知的报警事件 else if (ds[3] == 5) { #region 短信通知报警设置 ///4-9 ///id if (id10 > 0) { var device = DALYZKDeviceInfo_UserInfocs.YZKDeviceInfo_UserInfo_GetDataByRecordid(id10 + ""); if (device != null) { var room = device.room_id; var home_id = device.home_id; var roomName = string.Empty; var uid = device.uid; if (!string.IsNullOrEmpty(uid)) { var users = DALYZKUser.YZKUser_GetByuuid(uid); if (users != null) { var device_setName = device.device_setname; var bxk_label = device.bxk_label.Replace("-", ""); //bxk_label就是xxx房间, 去掉bxk_label中的“_”, xxx设备是setname字段 //var msg = string.Format("报警通知,您{0}房间的{1}设备发生报警事件,请留意",bxk_label,device_setName); var mobile = users.mobile; var dfname = DALDefenseStatus.DefenseStatus_GetByHomeId(home_id); if (dfname != null && dfname.status == 1) { YZKMsgHelper.NotifyDanger(mobile, bxk_label, device_setName); ///记录异常信息 DALNotifyException.NotifyExceptionAdd(new NotifyException() { bxkLabel = bxk_label, deviceSetName = device_setName, uid = uid, deviceId = device.deviceinfo_userinfo_id + "" }); } } } } } #endregion } } } }