/// <summary> /// 删除数据 /// </summary> /// <param name="keyValue">主键</param> public void RemoveForm(string keyValue, string pitem, string url) { var item = BaseRepository().FindEntity(keyValue); this.BaseRepository().Delete(keyValue); List <string> userids = new List <string>(); List <HikAccessNo> AccessIds = new List <HikAccessNo>(); List <HikAccessNo> parentList = new List <HikAccessNo>(); userids.Add(item.RID); HikAccessNo acc = new HikAccessNo(); List <int> accno = new List <int> { item.HikNos }; acc.AccId = item.HikId; acc.No = accno; AccessIds.Add(acc); HikAccessNo Par = new HikAccessNo(); List <int> Parno = new List <int> { item.HikNos }; Par.AccId = item.ParentId; Par.No = Parno; parentList.Add(Par); string key = string.Empty; // "21049470"; string sign = string.Empty; // "4gZkNoh3W92X6C66Rb6X"; if (!string.IsNullOrEmpty(pitem)) { key = pitem.Split('|')[0]; sign = pitem.Split('|')[1]; } //调用海康删除接口 DeleteUserlimits(userids, parentList, AccessIds, item.Type, url, key, sign); }
/// <summary> /// 保存表单(新增、修改) /// </summary> /// <param name="keyValue">主键值</param> /// <param name="entity">实体对象</param> /// <returns></returns> public void SaveForm(string StartTime, string EndTime, List <Access> DeptList, List <Access> AccessList, int Type, string pitem, string url) { //开始事物 var res = DbFactory.Base().BeginTrans(); try { List <string> ids = new List <string>(); List <HikAccessNo> AccList = new List <HikAccessNo>(); List <HikAccessNo> ParentList = new List <HikAccessNo>(); //查询所有门禁点设备数据 Repository <HikaccessEntity> inlogdb = new Repository <HikaccessEntity>(DbFactory.Base()); List <HikaccessEntity> deviceList = inlogdb.FindList("select * from bis_hikaccess").ToList(); //查询已加入的人员数据 Repository <HikaccessuserEntity> Hikuserdb = new Repository <HikaccessuserEntity>(DbFactory.Base()); List <HikaccessuserEntity> HikuserList = Hikuserdb.FindList("select * from bis_hikaccessuser").ToList(); string rid = ""; foreach (var dept in DeptList) { if (rid == "") { rid += "'" + dept.id + "'"; } else { rid += ",'" + dept.id + "'"; } } string delid = "";//重复添加的门禁节点id //查询已经加过的门禁点数据 Repository <HikaccessaurhorityEntity> Hikaurhoritydb = new Repository <HikaccessaurhorityEntity>(DbFactory.Base()); string sql = string.Format("select * from bis_Hikaccessaurhority where type={0} and RID in({1})", Type, rid); List <HikaccessaurhorityEntity> Hikaccessaurhority = Hikaurhoritydb.FindList(sql).ToList(); List <HikaccessaurhorityEntity> aurhorityList = new List <HikaccessaurhorityEntity>(); List <HikaccessuserEntity> userList = new List <HikaccessuserEntity>(); foreach (var dept in DeptList) { ids.Add(dept.id); //如果是人员 则将不存在列表中的人员添加进去 if (Type == 1) { if (HikuserList.Where(it => it.UserId == dept.id).FirstOrDefault() == null) { HikaccessuserEntity user = new HikaccessuserEntity(); user.UserId = dept.id; user.UserName = dept.text; user.Create(); userList.Add(user); } } foreach (var acc in AccessList) { HikaccessEntity device = deviceList.Where(it => it.ID == acc.id).FirstOrDefault(); if (device != null) { int hiknos = 1; if (AccList.Where(it => it.AccId == device.HikId).Count() == 0) { HikAccessNo hn = new HikAccessNo(); List <int> no = new List <int>(); no.Add(device.channelNos); hn.AccId = device.HikId; hn.No = no; hiknos = device.channelNos; AccList.Add(hn); } var pa = ParentList.Where(it => it.AccId == device.ParentId).FirstOrDefault(); if (pa == null) { HikAccessNo hn = new HikAccessNo(); List <int> no = new List <int>(); no.Add(device.channelNos); hn.AccId = device.ParentId; hn.No = no; ParentList.Add(hn); } else { pa.No.Add(device.channelNos); } HikaccessaurhorityEntity aur = Hikaccessaurhority.Where(it => it.RID == dept.id && it.HikId == device.HikId && Type == Type).FirstOrDefault(); if (aur != null) { if (delid == "") { delid = "'" + aur.ID + "'"; } else { delid += ",'" + aur.ID + "'"; } } HikaccessaurhorityEntity aurhority = new HikaccessaurhorityEntity(); aurhority.AreaId = device.AreaId; aurhority.AreaName = device.AreaName; aurhority.DeviceName = device.DeviceName; aurhority.HikId = device.HikId; aurhority.OutType = device.OutType; aurhority.ParentId = device.ParentId; aurhority.RID = dept.id; aurhority.RName = dept.text; aurhority.Type = Type; aurhority.StartTime = Convert.ToDateTime(StartTime); aurhority.EndTime = Convert.ToDateTime(EndTime); aurhority.HikNos = hiknos; aurhority.Create(); aurhorityList.Add(aurhority); } } } //先删除以前授权过 if (delid != "") { string delsql = string.Format("delete from bis_Hikaccessaurhority where id in ({0})", delid); res.ExecuteBySql(delsql); } if (userList.Count > 0) { res.Insert <HikaccessuserEntity>(userList); } if (aurhorityList.Count > 0) { res.Insert <HikaccessaurhorityEntity>(aurhorityList); } res.Commit(); string key = string.Empty; // "21049470"; string sign = string.Empty; // "4gZkNoh3W92X6C66Rb6X"; if (!string.IsNullOrEmpty(pitem)) { key = pitem.Split('|')[0]; sign = pitem.Split('|')[1]; } //调用海康接口下发权限 UploadUserlimits(ids, ParentList, AccList, StartTime, EndTime, Type, url, key, sign); } catch (Exception e) { res.Rollback(); } }
/// <summary> /// 根据用户删除数据 /// </summary> /// <param name="keyValue">主键</param> public void RemoveUserForm(string keyValue, string pitem, string url) { //开始事物 var res = DbFactory.Base().BeginTrans(); try { List <string> userids = new List <string>(); List <HikAccessNo> AccessIds = new List <HikAccessNo>(); List <HikAccessNo> parentList = new List <HikAccessNo>(); string searchsql = string.Format("select * from bis_Hikaccessaurhority where rid in ({0})", keyValue); //查询删除用户权限数据用于接触海康平台权限 Repository <HikaccessaurhorityEntity> inlogdb = new Repository <HikaccessaurhorityEntity>(DbFactory.Base()); List <HikaccessaurhorityEntity> deviceList = inlogdb.FindList(searchsql).ToList(); if (deviceList.Count > 0) { foreach (var item in deviceList) { if (!userids.Contains(item.RID)) { userids.Add(item.RID); } if (AccessIds.Where(it => it.AccId == item.HikId).Count() == 0) { HikAccessNo hn = new HikAccessNo(); List <int> no = new List <int>(); no.Add(item.HikNos); hn.AccId = item.HikId; hn.No = no; AccessIds.Add(hn); } var pa = parentList.Where(it => it.AccId == item.ParentId).FirstOrDefault(); if (pa == null) { HikAccessNo hn = new HikAccessNo(); List <int> no = new List <int>(); no.Add(item.HikNos); hn.AccId = item.ParentId; hn.No = no; parentList.Add(hn); } else { pa.No.Add(item.HikNos); } } string key = string.Empty; // "21049470"; string sign = string.Empty; // "4gZkNoh3W92X6C66Rb6X"; if (!string.IsNullOrEmpty(pitem)) { key = pitem.Split('|')[0]; sign = pitem.Split('|')[1]; } //调用海康删除接口 DeleteUserlimits(userids, parentList, AccessIds, 1, url, key, sign); } string delaurhsql = string.Format("delete from bis_Hikaccessaurhority where rid in ({0})", keyValue); res.ExecuteBySql(delaurhsql); string sql = string.Format("delete from BIS_HIKACCESSUSER where USERID in ({0})", keyValue); res.ExecuteBySql(sql); //提交删除 res.Commit(); } catch (Exception e) { res.Rollback(); } }