public JsonResult getBirdhouseParams() { try { var token = Request.Query["token"][0]; var seial = Request.Query["serial"][0]; var equip = _equipment.GetByserial(seial); Equipment_status_logs data = new Equipment_status_logs(); data.humidity = "0"; data.temperature = "0"; data.power_status = 0; var data1 = _logs.GetByserial(seial); if (data1 != null) { data = data1; } return(Json(new { code = 1, status = "success", data = new List <string> { seial, data.temperature, data.humidity, data.power_status.ToString() }, msg = "添加成功" })); } catch (Exception e) { LogHelper.Error(JsonConvert.SerializeObject(e)); return(Json(new nologin())); } }
public void Add(Equipment_status_logs admin) { using (IDbConnection dbConnection = _provider.GetDbConnection()) { string sQuery = "INSERT INTO equipment_status_logs (serial, temperature, humidity, power_status, create_time, update_time)" + " VALUES(@serial, @temperature, @humidity, @power_status, @create_time, @update_time)"; dbConnection.Open(); dbConnection.Execute(sQuery, admin); } }
public void Update(Equipment_status_logs prod) { using (IDbConnection dbConnection = _provider.GetDbConnection()) { string sQuery = "UPDATE equipment_status_logs SET (serial, temperature, humidity, power_status, create_time, update_time)" + " VALUES(@serial, @temperature, @humidity, @power_status, @create_time, @update_time) WHERE Id = @Id"; dbConnection.Open(); dbConnection.Query(sQuery, prod); } }
public async Task UpdateAsync(Equipment_status_logs invoice) { using (var connection = _provider.GetDbConnection()) using (var transaction = connection.BeginTransaction()) { try { var query = "UPDATE equipment_status_logs SET (serial, temperature, humidity, power_status, create_time, update_time)" + " VALUES(@serial, @temperature, @humidity, @power_status, @create_time, @update_time) WHERE Id=@Id"; await connection.ExecuteAsync(query, invoice, transaction); var lineIds = new List <int>(); //lineIds.AddRange(invoice.Where(l => l.Id != 0).Select(l => l.Id)); //foreach (var line in invoice.InvoiceLines) //{ // if (line.Id == 0) // { // query = "INSERT INTO InvoiceLines (LineItem, Amount, Unit, UnitPrice, VatPercent, InvoiceId)"; // query += "VALUES (@LineItem, @Amount, @Unit, @UnitPrice, @VatPercent," + invoice.Id + "); "; // query += "SELECT CAST(SCOPE_IDENTITY() AS INT)"; // var id = await connection.QueryFirstAsync<int>(query, line, transaction); // lineIds.Add(id); // } // else // { // query = "UPDATE InvoiceLines SET LineItem=@LineItem,Amount=@Amount,Unit=@Unit,"; // query += "UnitPrice=@UnitPrice,VatPercent=@VatPercent "; // query += "WHERE Id=@Id"; // await connection.ExecuteAsync(query, line, transaction); // } //} //if (lineIds.Count > 0) //{ // query = "DELETE FROM InvoiceLines WHERE InvoiceId=" + invoice.Id + " AND "; // query += "Id NOT IN(" + string.Join(',', lineIds) + ")"; // await connection.ExecuteAsync(query, transaction: transaction); //} transaction.Commit(); } catch { transaction.Rollback(); throw; } } }
public async Task ProcessDATA(string data) { if (!string.IsNullOrEmpty(data) && data.Contains(",")) { var arr = data.Split(','); if (data.EndsWith("\r\n")) { var newSTR = arr[3].Replace("\r\n", ""); arr[3] = newSTR; } _sendData.SendToUid(arr[0], JsonConvert.SerializeObject(arr)); LogHelper.Error("发送数据到ws" + arr[0] + "内容" + JsonConvert.SerializeObject(arr)); var cache = CacheUntity.GetCache <CacheModel>(arr[0]); if (cache == null || cache.setDate < DateTime.Now.Date) { if (cache == null) { LogHelper.Error("cache null "); } else { LogHelper.Error("cache fail" + JsonConvert.SerializeObject(cache)); } var model = new CacheModel(); model.serial = arr[0]; var equip = _equipment.GetCacheModelByserial(model.serial); model.bind_status = equip.bind_status; model.birdhouse_name = equip.birdhouse_name; model.phone = 5; model.sms = 5; model.smsEnableFlag = true; model.call_num = 0; model.max_humidity = equip.max_humidity; model.min_humidity = equip.min_humidity; model.max_temperature = equip.max_temperature; model.min_temperature = equip.min_temperature; model.warning_ammonia_concentration = equip.warning_ammonia_concentration; model.warning_negative_pressure = equip.warning_negative_pressure; model.name = equip.name; model.status = equip.status; model.username = equip.username; model.warning_mobile = equip.warning_mobile; model.currentTemp = arr[1]; model.currentHumidity = arr[2]; model.currentPower = arr[3]; model.setDate = DateTime.Now.Date; CacheUntity.SetCache(arr[0], model); cache = model; } //找到对应设备 if (!string.IsNullOrEmpty(cache.warning_mobile) && cache.serial == arr[0]) { var cachemodel = cache; var equipmentStatus = 0; if (!string.IsNullOrEmpty(cachemodel.min_temperature) && !string.IsNullOrEmpty(cachemodel.warning_mobile)) { if (arr[1].ToFloat() < cachemodel.min_temperature.ToFloat() || arr[1].ToFloat() > cachemodel.max_temperature.ToFloat()) { equipmentStatus += 10; LogHelper.Error("temperature " + arr[1] + "min_temperature" + cachemodel.min_temperature + "max_temperature" + cachemodel.max_temperature); } } if (!string.IsNullOrEmpty(cachemodel.min_humidity) && !string.IsNullOrEmpty(cachemodel.max_humidity)) { if (arr[2].ToFloat() < cachemodel.min_humidity.ToFloat() || arr[2].ToFloat() > cachemodel.max_humidity.ToFloat()) { equipmentStatus += 20; LogHelper.Error("temperature " + arr[2] + "min_humidity" + cachemodel.min_humidity + "max_humidity" + cachemodel.max_humidity); } } ////如果之前温室度出现过异常,只有温度和湿度全部改为正常后,才将可发送短息标志位 重置为 可启用 if (equipmentStatus == 0) { //如果温湿度正常,则将启用短信发送 重新置为 可用 cachemodel.smsEnableFlag = true; //_cache.UpdateCache(cachemodel); CacheUntity.SetCache(arr[0], cachemodel); } //// 判断设备是否断电 if (arr[3].ToInt() == 1) { equipmentStatus += 40; } //获取第一个报警电话 var mobile = JsonConvert.DeserializeObject <List <string> >(cachemodel.warning_mobile).First(); var mobileList = JsonConvert.DeserializeObject <List <string> >(cachemodel.warning_mobile); // //进行报警 switch (equipmentStatus) { case 10: //判断短信剩余数量,以及短信发送标识,如果为enabled则发送 if (cachemodel.sms > 0 && cachemodel.smsEnableFlag == true) { //发送短信 var status = _sms.sendSms(mobile, 2, cachemodel.birdhouse_name, "温度"); if (status.Result) { cachemodel.sms -= 1; //异常则将短信启用发送标志位置为 不可用,也就是不再发送短信,除非重新接受到设备发来的数据判断为正常则 //重新将短信启用标志位 置为 可用 cachemodel.smsEnableFlag = false; //_cache.UpdateCache(cachemodel); CacheUntity.SetCache(arr[0], cachemodel); LogHelper.Error("温度-短信:数据" + data + "设置" + JsonConvert.SerializeObject(cachemodel)); } } break; case 20: if (cachemodel.sms > 0 && cachemodel.smsEnableFlag == true) { var status = _sms.sendSms(mobile, 2, cachemodel.birdhouse_name, "湿度"); if (status.Result) { cachemodel.sms -= 1; cachemodel.smsEnableFlag = false; CacheUntity.SetCache(arr[0], cachemodel); LogHelper.Error("湿度-短信:数据" + data + "设置" + JsonConvert.SerializeObject(cachemodel)); } } break; case 30: if (cachemodel.sms > 0 && cachemodel.smsEnableFlag == true) { var status = _sms.sendSms(mobile, 2, cachemodel.birdhouse_name, "温度和湿度"); if (status.Result) { cachemodel.sms -= 1; cachemodel.smsEnableFlag = false; CacheUntity.SetCache(arr[0], cachemodel); LogHelper.Error("温度和湿度-短信" + data + "设置" + JsonConvert.SerializeObject(cachemodel)); } } break; case 40: //判断电话剩余数量 if (cachemodel.phone > 0) { //如果是第三次发送进入报警 if (cachemodel.call_num >= 2) { LogHelper.Error("开始报警-短信"); var content = "电源"; //拨打电话 CacheWarningModel warncache = new CacheWarningModel(); warncache.mobile = mobile; warncache.mobilelist = mobileList; warncache.uncalledmobile = mobileList; warncache.uncalledmobile.Remove(mobile); warncache.calledmobile = mobileList; warncache.calledmobile.Clear(); warncache.calledmobile.Add(mobile); warncache.birdhouse = cachemodel.birdhouse_name; warncache.birdhouse = content; CacheUntity.SetCache(mobile, warncache); var status = _call.templateNoticeCall(mobile, "01053924437", cachemodel.birdhouse_name, content); LogHelper.Error("时间: " + DateTime.Now.ToString() + "第1次电话通知状态" + status + "requestId:" + "被叫号码" + mobile); if (!status.Result && mobileList.Count > 1) { var mobile1 = mobileList[1]; status = _call.templateNoticeCall(mobile1, "01053924437", cachemodel.birdhouse_name, content); LogHelper.Error("时间: " + DateTime.Now.ToString() + "第2次电话通知状态" + status + "requestId:" + "被叫号码" + mobile1); if (!status.Result && mobileList.Count > 2) { var mobile2 = mobileList[2]; status = _call.templateNoticeCall(mobile2, "01053924437", cachemodel.birdhouse_name, content); LogHelper.Error("时间: " + DateTime.Now.ToString() + "第3次电话通知状态" + status + "requestId:" + "被叫号码" + mobile2); } } else { } LogHelper.Error("电源-电话" + data + "设置" + JsonConvert.SerializeObject(cachemodel)); cachemodel.call_num = 0; CacheUntity.SetCache(arr[0], cachemodel); LogHelper.Error("时间: " + DateTime.Now.ToString() + "电话通知状态" + status + "requestId:" + "被叫号码" + mobile); cachemodel.phone -= 1; } else { cachemodel.call_num += 1; CacheUntity.SetCache(arr[0], cachemodel); } } break; case 50: if (cachemodel.phone > 0) { if (cachemodel.call_num >= 2) { var content = "电源和温度"; var status = _call.templateNoticeCall(mobile, "01053924437", cachemodel.birdhouse_name, content); LogHelper.Error("时间: " + DateTime.Now.ToString() + "第1次电话通知状态" + status + "requestId:" + "被叫号码" + mobile); if (!status.Result && mobileList.Count > 1) { var mobile1 = mobileList[1]; status = _call.templateNoticeCall(mobile1, "01053924437", cachemodel.birdhouse_name, content); LogHelper.Error("时间: " + DateTime.Now.ToString() + "第2次电话通知状态" + status + "requestId:" + "被叫号码" + mobile1); if (!status.Result && mobileList.Count > 2) { var mobile2 = mobileList[2]; status = _call.templateNoticeCall(mobile2, "01053924437", cachemodel.birdhouse_name, content); LogHelper.Error("时间: " + DateTime.Now.ToString() + "第3次电话通知状态" + status + "requestId:" + "被叫号码" + mobile2); } } LogHelper.Error("电源和温度-电话" + data + "设置" + JsonConvert.SerializeObject(cachemodel)); cachemodel.call_num = 0; CacheUntity.SetCache(arr[0], cachemodel); cachemodel.phone -= 1; CacheUntity.SetCache(arr[0], cachemodel); } else { cachemodel.call_num += 1; CacheUntity.SetCache(arr[0], cachemodel); } } break; case 60: if (cachemodel.phone > 0) { if (cachemodel.call_num >= 2) { var content = "电源和湿度"; var status = _call.templateNoticeCall(mobile, "01053182632", cachemodel.birdhouse_name, content); LogHelper.Error("时间: " + DateTime.Now.ToString() + "第1次电话通知状态" + status + "requestId:" + "被叫号码" + mobile); if (!status.Result && mobileList.Count > 1) { var mobile1 = mobileList[1]; status = _call.templateNoticeCall(mobile1, "01053924437", cachemodel.birdhouse_name, content); LogHelper.Error("时间: " + DateTime.Now.ToString() + "第2次电话通知状态" + status + "requestId:" + "被叫号码" + mobile1); if (!status.Result && mobileList.Count > 2) { var mobile2 = mobileList[2]; status = _call.templateNoticeCall(mobile2, "01053924437", cachemodel.birdhouse_name, content); LogHelper.Error("时间: " + DateTime.Now.ToString() + "第3次电话通知状态" + status + "requestId:" + "被叫号码" + mobile2); } } LogHelper.Error("电源和湿度-电话" + data + "设置" + JsonConvert.SerializeObject(cachemodel)); cachemodel.call_num = 0; CacheUntity.SetCache(arr[0], cachemodel); cachemodel.phone -= 1; CacheUntity.SetCache(arr[0], cachemodel); } else { cachemodel.call_num += 1; CacheUntity.SetCache(arr[0], cachemodel); } } break; case 70: if (cachemodel.phone > 0) { if (cachemodel.call_num >= 2) { var content = "电源,湿度和温度"; //var status = _call.templateNoticeCall(mobile, "01053182632", cachemodel.birdhouse_name, content); var status = _call.templateNoticeCall(mobile, "01053182632", cachemodel.birdhouse_name, content); LogHelper.Error("时间: " + DateTime.Now.ToString() + "第1次电话通知状态" + status + "requestId:" + "被叫号码" + mobile); if (!status.Result && mobileList.Count > 1) { var mobile1 = mobileList[1]; status = _call.templateNoticeCall(mobile1, "01053924437", cachemodel.birdhouse_name, content); LogHelper.Error("时间: " + DateTime.Now.ToString() + "第2次电话通知状态" + status + "requestId:" + "被叫号码" + mobile1); if (!status.Result && mobileList.Count > 2) { var mobile2 = mobileList[2]; status = _call.templateNoticeCall(mobile2, "01053924437", cachemodel.birdhouse_name, content); LogHelper.Error("时间: " + DateTime.Now.ToString() + "第3次电话通知状态" + status + "requestId:" + "被叫号码" + mobile2); } } LogHelper.Error("电源,湿度和温度-电话" + data + "设置" + JsonConvert.SerializeObject(cachemodel)); cachemodel.call_num = 0; CacheUntity.SetCache(arr[0], cachemodel); cachemodel.phone -= 1; CacheUntity.SetCache(arr[0], cachemodel); } else { cachemodel.call_num += 1; CacheUntity.SetCache(arr[0], cachemodel); } } break; } } /////记录 var log = new Equipment_status_logs(); log.humidity = arr[2]; log.power_status = arr[3].ToInt(); log.serial = arr[0]; log.temperature = arr[1]; log.create_time = Util.ToUnixStamp(DateTime.Now).ToString(); log.update_time = Util.ToUnixStamp(DateTime.Now).ToString(); _logsRepo.Add(log); } //通知websocket //if ($res) { //$connection->send('yes'); //} else { //$connection->send('no'); }