Esempio n. 1
0
 /// <summary>
 /// 保存表单(新增、修改)
 /// </summary>
 /// <param name="keyValue">主键值</param>
 /// <param name="entity">实体对象</param>
 /// <returns></returns>
 public void SaveForm(string keyValue, HikaccessuserEntity entity)
 {
     try
     {
         service.SaveForm(keyValue, entity);
     }
     catch (Exception)
     {
         throw;
     }
 }
 public ActionResult SaveForm(string keyValue, HikaccessuserEntity entity)
 {
     hikaccessuserbll.SaveForm(keyValue, entity);
     return(Success("操作成功。"));
 }
Esempio n. 3
0
        /// <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();
            }
        }