/// <summary> /// 处理设备上报状态 /// </summary> /// <param name="statusInfo"></param> /// <param name="con"></param> /// <param name="db"></param> public void ProcessReqest(DeviceStatus statusInfo, SocketConnection con, IClientRequest db) { if (!string.IsNullOrWhiteSpace(statusInfo.OppositeId)) {//立即返回当前设备状态 SocketConnection client; if (SocketConnectionServerDispatcher.DicSockectConnection.TryGetValue(statusInfo.OppositeId, out client) && client.ConnectSocket.Connected) { client.Send(statusInfo.ToByteArray()); } } var statusBk = new CmdHeader { CmdCode = 0xFF03, Identity = con.Identity, ServerId = SocketConnectionServerDispatcher.ServerId, //TimeToken = statusInfo.TimeToken, }; if (statusInfo.LightStatus == null) { statusBk.ResultCode = 0; con.Send(statusBk.ToByteArray()); return; } var deviceStatus = new DtoStatusInfo { ImeiNo = statusInfo.Identity, LightStatus = new DtoLightStatus() { lightstatus = statusInfo.LightStatus.Status, CellAddr = statusInfo.LightStatus.CellAddr, lightBt = statusInfo.LightStatus.LightBt, lightBu = statusInfo.LightStatus.LightBu, lightLi = statusInfo.LightStatus.LightLi, lightLu = statusInfo.LightStatus.LightLu, lightPw = statusInfo.LightStatus.LightPw, lightUi = statusInfo.LightStatus.LightUi, lightUu = statusInfo.LightStatus.LightUu, lightBgu = JsonConvert.SerializeObject(statusInfo.LightStatus.LightBgus) } }; //foreach (var l in statusInfo.LightStatus) //{ // deviceStatus.LightStatus.Add(new DtoLightStatus // { // lightstatus = l.Status, // CellAddr = l.CellAddr, // //lightNo = l.LightNo, // lightBt = l.LightBt, // lightBu = l.LightBu, // lightLi = l.LightLi, // lightLu = l.LightLu, // lightPw = l.LightPw, // lightUi = l.LightUi, // lightUu = l.LightUu, // lightBgu = JsonConvert.SerializeObject(l.LightBgus) // }); //} statusBk.ResultCode = db.DeviceStatusInfo(deviceStatus); con.Send(statusBk.ToByteArray()); SocketConnection.ShowMsg(statusInfo.ToString()); }
public int DeviceStatusInfo(DtoStatusInfo statusDto) { //var dealres = new Res(); if (string.IsNullOrWhiteSpace(statusDto.ImeiNo)) { return(0); } string sqlStr = "select imeiId from cy_imeiInfo where imeimac = @imeimac"; var oDs = _dBhelper.ExecuteQuery(sqlStr, new SqlParameter("@imeimac", SqlDbType.VarChar, 18) { Value = statusDto.ImeiNo }); if (oDs.Tables[0].Rows.Count == 0) { return(0); } int imeiId = Convert.ToInt32(oDs.Tables[0].Rows[0]["imeiId"]); #region 设备绑定用户 //dealres.PostMsgs = new List<PostMsg>(); //dealres.UsrLogNo = new List<string>(); //sqlStr = "select a.loginNo from cy_userInfo a " + // " left join cy_houseUser b on a.userId = b.huserId and b.huStatusNo = 'A' " + // " left join cy_userInfo d on a.userId = d.userId and d.uStatusNo = 'A'" + // " left join cy_houseInfo c on b.huHouseId = c.houseId " + // " where c.imeiId = " + imeiId + " "; //oDs = _dBhelper.ExecuteQuery(sqlStr); //for (int n = 0; n < oDs?.Tables[0].Rows.Count; n++) //{ // if (oDs.Tables[0].Rows[n]["telPhone"] != DBNull.Value) // dealres.UsrLogNo.Add(oDs.Tables[0].Rows[n]["telPhone"].ToString()); //} #endregion return(_dBhelper.ExecuteTransaction(cmd => { sqlStr = "update cy_imeiInfo set imeiParamsContent=@imeiParamsContent,updateUserId=@updateUserId,updateTime=@updateTime where imeiId = @imeiId"; SqlParameter[] parameters = { new SqlParameter("@imeiParamsContent", SqlDbType.VarChar, 8000) { Value = JsonConvert.SerializeObject(statusDto) }, new SqlParameter("@imeiId", SqlDbType.Int, 4) { Value = imeiId }, new SqlParameter("@updateUserId", SqlDbType.Int, 4) { Value = -1 }, new SqlParameter("@updateTime", SqlDbType.DateTime) { Value = DateTime.Now } }; cmd.CommandText = sqlStr; cmd.Parameters.Clear(); cmd.Parameters.AddRange(parameters); cmd.ExecuteNonQuery(); sqlStr = "select lightNo from cy_lightInfo a join cy_imeiCellInfo b on a.lightId = b.lightId join cy_imeiInfo c on b.imeiId =c.imeiId where c.imeiMac = '" + statusDto.ImeiNo + "' and b.cellAddr = " + statusDto.LightStatus.CellAddr + " "; oDs = _dBhelper.ExecuteQuery(sqlStr, new SqlParameter("@imeimac", SqlDbType.VarChar, 18) { Value = statusDto.ImeiNo }); if (oDs.Tables[0].Rows.Count == 0) { return 0; } var lightNo = oDs.Tables[0].Rows[0]["lightNo"].ToString(); sqlStr = $"update cy_lightInfo set imeiLightParamsContent='{JsonConvert.SerializeObject(statusDto.LightStatus)}',imeiLightStatus='{statusDto.LightStatus.lightstatus}',imeiLightPw={statusDto.LightStatus.lightPw},imeiLightLu={statusDto.LightStatus.lightLu},imeiLightLi={statusDto.LightStatus.lightLi},imeiLightBu={statusDto.LightStatus.lightBu},imeiLightBt={statusDto.LightStatus.lightBt},imeiLightUu={statusDto.LightStatus.lightUu},imeiLightUi={statusDto.LightStatus.lightUi},imeiLightBgu='{statusDto.LightStatus.lightBgu}',updateUserId=-1,updateTime=GETDATE() where lightNo='{lightNo}'"; cmd.CommandText = sqlStr; cmd.Parameters.Clear(); cmd.ExecuteNonQuery(); sqlStr = $"insert into cy_imeiHistory(ihmac,ihLightNo,ihStatus,ihLightPw,ihLightLu,ihLightLi,ihLightBu,ihLightBt,ihLightUu,ihLightUi,ihLightBgu,addTime)values('{statusDto.ImeiNo}','{lightNo}','{statusDto.LightStatus.lightstatus}',{statusDto.LightStatus.lightPw},{statusDto.LightStatus.lightLu},{statusDto.LightStatus.lightLi},{statusDto.LightStatus.lightBu},{statusDto.LightStatus.lightBt},{statusDto.LightStatus.lightUu},{statusDto.LightStatus.lightUi},'{statusDto.LightStatus.lightBgu}',GETDATE());"; cmd.CommandText = sqlStr; cmd.Parameters.Clear(); cmd.ExecuteNonQuery(); //foreach (var lightStatu in statusDto.LightStatus) //{ // sqlStr += $"update cy_lightInfo set imeiLightParamsContent='{JsonConvert.SerializeObject(lightStatu)}',imeiLightStatus='{lightStatu.lightstatus}',imeiLightPw={lightStatu.lightPw},imeiLightLu={lightStatu.lightLu},imeiLightLi={lightStatu.lightLi},imeiLightBu={lightStatu.lightBu},imeiLightBt={lightStatu.lightBt},imeiLightUu={lightStatu.lightUu},imeiLightUi={lightStatu.lightUi},imeiLightBgu='{lightStatu.lightBgu}',updateUserId=-1,updateTime=GETDATE() where lightNo='{lightStatu.lightNo}';"; // cmd.CommandText = sqlStr; // cmd.Parameters.Clear(); // cmd.ExecuteNonQuery(); //} //sqlStr = ""; //foreach (var lightStatu in statusDto.LightStatus) //{ // sqlStr += $"insert into cy_imeiHistory(ihmac,ihLightNo,ihStatus,ihLightPw,ihLightLu,ihLightLi,ihLightBu,ihLightBt,ihLightUu,ihLightUi,ihLightBgu,addTime)values('{statusDto.ImeiNo}','{lightStatu.lightNo}','{lightStatu.lightstatus}',{lightStatu.lightPw},{lightStatu.lightLu},{lightStatu.lightLi},{lightStatu.lightBu},{lightStatu.lightBt},{lightStatu.lightUu},{lightStatu.lightUi},'{lightStatu.lightBgu}',GETDATE());"; // cmd.CommandText = sqlStr; // cmd.Parameters.Clear(); // cmd.ExecuteNonQuery(); //} return 1; })); }