Example #1
0
        private treedata getNode(SysOrg item, List <SysOrg> col3)
        {
            treedata node = new treedata()
            {
                id         = item.id,
                name       = item.org_name,
                enabled    = item.dept_type,
                pid        = item.parent_id,
                createTime = item.created_time.ToString(),
                label      = item.org_name
            };
            List <SysOrg> childs = col3.Where(t => t.parent_id == item.id).ToList();

            if (childs.Count() > 0)
            {
                List <treedata> children = new List <treedata>();
                foreach (var childitem in childs)
                {
                    treedata childnode = getNode(childitem, col3);
                    children.Add(childnode);
                }
                node.children = children;
            }
            return(node);
        }
Example #2
0
        public ResponseMessage <object> QueryDataByNameAndType([FromBody] QueryByPageRequest reqMsg)
        {
            List <treedata> reslst = new List <treedata>();
            List <SysOrg>   col1   = _sysOrgService.GetAll();
            List <SysOrg>   col2   = _sysOrgService.QueryDataByNameAndType(reqMsg.keyWords, reqMsg.status);

            SysOrg[]      arr  = new SysOrg[col2.Count()];
            List <SysOrg> col3 = new List <SysOrg>();

            col2.CopyTo(arr);
            col3 = arr.ToList();
            foreach (var item in col2)
            {
                //补全树
                getTree(col1, col3, item);
            }
            //构建树结果
            foreach (SysOrg item in col3.Where(t => t.parent_id == "0"))
            {
                treedata node = getNode(item, col3);

                reslst.Add(node);
            }
            return(new ResponseMessage <object> {
                data = new { content = reslst, totalElements = col3.Count }
            });
        }
Example #3
0
        /// <summary>
        /// 保存机构。
        /// </summary>
        /// <param name="orgId"></param>
        /// <param name="info"></param>
        /// <returns></returns>
        public virtual int SaveOrg(int?orgId, SysOrg info)
        {
            info.PyCode = info.Name.ToPinyin();

            var treeOper = context.CreateTreeRepository <SysOrg>();

            if (orgId == null)
            {
                if (info.ParentId == null)
                {
                    treeOper.Insert(info, null);
                }
                else
                {
                    //插入为parent的孩子
                    treeOper.Insert(info, context.SysOrgs.Get(info.ParentId), EntityTreePosition.Children);
                }

                orgId = info.OrgID;
            }
            else
            {
                //移动到parent下
                treeOper.Move(info.Normalize(orgId), context.SysOrgs.Get(info.ParentId), EntityTreePosition.Children);
            }

            return((int)orgId);
        }
        public CustomJsonResult Add(string operater, RopAdminOrgAdd rop)
        {
            var result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var isExists = CurrentDb.SysOrg.Where(m => m.Name == rop.Name).FirstOrDefault();
                if (isExists != null)
                {
                    return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "该名称已经存在"));
                }

                var sysOrg = new SysOrg();
                sysOrg.Id          = GuidUtil.New();
                sysOrg.Name        = rop.Name;
                sysOrg.Description = rop.Description;
                sysOrg.PId         = rop.PId;
                sysOrg.BelongSite  = Enumeration.BelongSite.Admin;
                sysOrg.ReferenceId = GuidUtil.Empty();
                sysOrg.Depth       = 0;
                sysOrg.CreateTime  = DateTime.Now;
                sysOrg.Creator     = operater;
                CurrentDb.SysOrg.Add(sysOrg);

                CurrentDb.SaveChanges();
                ts.Complete();

                result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "保存成功");
            }

            return(result);
        }
Example #5
0
 private void getTree(List <SysOrg> col1, List <SysOrg> col2, SysOrg node)
 {
     if (node.parent_id != "0" && col2.Where(t => t.id == node.parent_id).Count() == 0)
     {
         SysOrg parent = col1.Where(t => t.id == node.parent_id).FirstOrDefault();
         col2.Add(parent);
         getTree(col1, col2, parent);
     }
 }
Example #6
0
 public async Task <ResponseMessage <int> > UpdateAsync([FromBody] SysOrg sysOrg)
 {
     //SysOrg entity = await _sysOrgService.GetByIdAsync(sysOrg.id);
     //Utils.CommmonUtils.EntityToEntity(sysOrg, entity, null);
     //return new ResponseMessage<int> { data = await _sysOrgService.UpdateAsync(entity) };
     return(new ResponseMessage <int> {
         data = await _sysOrgService.UpdateAsync(sysOrg)
     });
 }
Example #7
0
        public ResponseMessage <int> Update([FromBody] SysOrg sysOrg)
        {
            SysOrg entity = _sysOrgService.GetById(sysOrg.id);

            Utils.CommmonUtils.EntityToEntity(sysOrg, entity, null);
            return(new ResponseMessage <int> {
                data = _sysOrgService.Update(entity)
            });
            //return new ResponseMessage<int> { data = _sysOrgService.Update(sysOrg) };
        }
Example #8
0
 public string Update(SysOrg sysOrg)
 {
     try
     {
         _orgApp.Update(sysOrg);
     }
     catch (Exception ex)
     {
         Result.Code    = 500;
         Result.Message = ex.InnerException?.Message ?? ex.Message;
     }
     return(JsonHelper.Instance.Serialize(Result));
 }
Example #9
0
        public async Task <AjaxResponse> SaveSysOrgModel(SysOrgInput model)
        {
            Guid?  resId;
            string parentOrgNode = "";

            //验证重复
            if (CheckOrgCode(ObjectMapper.Map <SysOrgData>(model)))
            {
                throw new UserFriendlyException("机构编码重复", "您设置的机构编码" + model.OrgCode + "重复!");
            }

            if (model.ParentOrgID != null)
            {
                var pData = _sysOrgRepository.Get(model.ParentOrgID.Value);
                if (pData != null)
                {
                    parentOrgNode = pData.OrgNode;
                }
            }

            if (model.Id == null)
            {
                SysOrg modelInput = ObjectMapper.Map <SysOrg>(model);
                modelInput.OrgNode = parentOrgNode + model.OrgCode + ".";
                resId = await _sysOrgRepository.InsertAndGetIdAsync(modelInput);
            }
            else
            {
                //获取需要更新的数据
                SysOrg data = _sysOrgRepository.Get((Guid)model.Id);

                //父节点ID或者OrgCode有变化则当前节点及其子节点的OrgNode也需要改变
                if (data.ParentOrgID != model.ParentOrgID || data.OrgCode != model.OrgCode)
                {
                    string oldOrgNode = data.OrgNode;
                    data.OrgNode = parentOrgNode + model.OrgCode + ".";
                    _sysOrgRepository.UpdateChildrensOrgNode(data.OrgNode, oldOrgNode);
                }
                //映射需要修改的数据对象
                SysOrg m = ObjectMapper.Map(model, data);
                //提交修改
                await _sysOrgRepository.UpdateAsync(m);

                resId = model.Id;
            }

            return(new AjaxResponse {
                Success = true, Result = new { id = resId }
            });
        }
Example #10
0
        /// <summary>
        /// 查询当前单位及下级单位
        /// </summary>
        /// <param name="id">当前单位id</param>
        /// <param name="group_id">群组id</param>
        /// <returns></returns>
        public List <SysOrg> QueryDataByAuthorize(string id, string group_id)
        {
            List <SysOrg> resList = null;
            List <SysOrg> list    = SysOrgRepository.QueryData(group_id);

            if (list != null && list.Count > 0)
            {
                resList = new List <SysOrg>();
                //当前单位为根节点
                SysOrg rootOrg = list.Where(s => s.id == id).FirstOrDefault();
                resList.Add(rootOrg);
                GetChildOrg(resList, list, id);
            }
            return(resList);
        }
Example #11
0
        public Response Update(SysOrg obj)
        {
            var result = new Response();

            try
            {
                _app.Update(obj);
            }
            catch (Exception ex)
            {
                result.Code    = 500;
                result.Message = ex.InnerException?.Message ?? ex.Message;
            }

            return(result);
        }
Example #12
0
        public Response <SysOrg> Add(SysOrg obj)
        {
            var result = new Response <SysOrg>();

            try
            {
                _app.Add(obj);
                result.Result = obj;
            }
            catch (Exception ex)
            {
                result.Code    = 500;
                result.Message = ex.InnerException?.Message ?? ex.Message;
            }

            return(result);
        }
Example #13
0
        /// <summary>
        /// 获取机构列表
        /// </summary>
        /// <param name="parentId"></param>
        /// <param name="targetId"></param>
        /// <param name="currentId"></param>
        /// <param name="state"></param>
        /// <param name="keyword"></param>
        /// <param name="attribute"></param>
        /// <returns></returns>
        public virtual List <SysOrg> GetOrgs(int?parentId, int?targetId, int?currentId, StateFlags?state, string keyword, OrgAttribute?attribute)
        {
            if (!string.IsNullOrEmpty(keyword))
            {
                return(context.SysOrgs
                       .Where(s => (s.Name.Contains(keyword)) && !s.Code.StartsWith("99"))
                       .AssertWhere(attribute != null, s => s.Attribute <= attribute && s.Attribute != 0)
                       .AssertWhere(state != null, s => s.State == state)
                       .ToList());
            }

            SysOrg parent = null;

            if (parentId != null)
            {
                parent = context.SysOrgs.FirstOrDefault(s => s.OrgID == parentId);
            }

            var treeOper = context.CreateTreeRepository <SysOrg>();
            var result   = treeOper.QueryChildren(parent)
                           .AssertWhere(attribute != null, s => s.Attribute <= attribute && s.Attribute != 0)
                           //如果指定currentId,则需要排除
                           .AssertWhere(currentId != null, s => s.OrgID != currentId)
                           .AssertWhere(state != null, s => s.State == state)
                           .Where(s => !s.Code.StartsWith("99"))
                           .OrderBy(s => s.OrderNo)
                           //把HasChildren属性扩展出来
                           .Select(s => s.ExtendAs <SysOrg>(() => new SysOrg
            {
                HasChildren   = treeOper.HasChildren(s, t => attribute == null || (attribute != null && t.Attribute <= attribute && t.Attribute != 0)),
                AttributeName = s.Attribute.GetDescription()
            }))
                           .ToList();

            if (targetId != null && !TreeNodeExpandChecker.IsExpanded())
            {
                var target  = context.SysOrgs.Get(targetId);
                var parents = treeOper.RecurrenceParent(target).Select(s => s.OrgID).ToList();

                result.Expand(parents, childId => GetOrgs(childId, targetId, currentId, state, string.Empty, attribute),
                              parents.Count - 1);
            }

            return(result);
        }
Example #14
0
        /// <summary>
        /// 添加编辑角色
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public void AddEdit(OrgAddEditDto dto)
        {
            dto.OrgName = dto.OrgName.Trim();
            SysOrg org = null;

            if (dto.OrgId.HasValue)
            {
                org                = _repository.FirstOrDefault(o => o.OrgId == dto.OrgId.Value);
                org.ModifyDate     = DateTime.Now;
                org.ModifyUserId   = _userManager.UserId;
                org.ModifyUserName = _userManager.UserName;
            }
            else
            {
                org = new SysOrg()
                {
                    CreateDate     = DateTime.Now,
                    CreateUserId   = _userManager.UserId,
                    CreateUserName = _userManager.UserName,
                    IsLeaf         = false,
                    IsDeleted      = false
                };
            }
            org.OrgName       = dto.OrgName;
            org.ParentOrgId   = dto.ParentOrgId;
            org.ParentOrgName = dto.ParentOrgId > 0 ? dto.ParentOrgName : "";
            org.Status        = dto.Status;
            org.SortNo        = dto.SortNo ?? 0;
            if (org.ParentOrgId > 0)
            {
                if (dbClint.Queryable <SysOrg>().Where(o => o.OrgName == dto.OrgName && o.ParentOrgId == dto.ParentOrgId && o.OrgId != dto.OrgId && o.IsDeleted == false).Any())
                {
                    throw Oops.Oh("同部门下的子部门不能重复!");
                }
            }
            if (dto.OrgId.HasValue)
            {
                dbClint.Updateable(org).ExecuteCommand();
            }
            else
            {
                dbClint.Insertable(org).ExecuteCommand();
            }
        }
Example #15
0
        public LayUITreeDto QueryDataByAuthorizeForLayUITree(string id, string group_id)
        {
            LayUITreeDto  res  = null;
            List <SysOrg> list = SysOrgRepository.QueryData(group_id);

            if (list != null && list.Count > 0)
            {
                res = new LayUITreeDto();
                //当前单位为根节点
                SysOrg rootOrg = list.Where(s => s.id == id).FirstOrDefault();
                res.title  = rootOrg.org_name;
                res.id     = rootOrg.id;
                res.spread = true;
                res.pId    = rootOrg.parent_id;
                res.obj    = rootOrg;
                GetChildOrg(res, list, id);
            }
            return(res);
        }
Example #16
0
 ///<summary>
 ///异步更新
 ///</summary>
 public async Task <int> UpdateAsync(SysOrg sysOrg)
 {
     return(await SysOrgRepository.UpdateAsync(sysOrg));
 }
Example #17
0
 ///<summary>
 ///更新
 ///</summary>
 public int Update(SysOrg sysOrg)
 {
     return(SysOrgRepository.Update(sysOrg));
 }
Example #18
0
 ///<summary>
 ///异步新增
 ///</summary>
 public async Task <string> InsertAsync(SysOrg sysOrg)
 {
     return(await SysOrgRepository.InsertAsync(sysOrg));
 }
Example #19
0
 ///<summary>
 ///新增
 ///</summary>
 public string Insert(SysOrg sysOrg)
 {
     return(SysOrgRepository.Insert(sysOrg));
 }
Example #20
0
        public async Task <JsonResult> Save(int?id, SysOrg info)
        {
            id = await adminService.SaveOrgAsync(id, info);

            return(Json(Result.Success("保存成功。", id)));
        }
Example #21
0
        public async Task <IActionResult> Delete([FromBody] SysOrg sysOrg)
        {
            var sys_org = sysOrg.BuildAdapter().AdaptToType <sys_org>();

            return(Ok(await Task.FromResult(_sysOrgService.DeleteOrg(sys_org))));
        }
Example #22
0
 public ResponseMessage <int> Update([FromBody] SysOrg sysOrg)
 {
     return(new ResponseMessage <int> {
         data = _sysOrgService.Update(sysOrg)
     });
 }
Example #23
0
 public ResponseMessage <string> Insert([FromBody] SysOrg sysOrg)
 {
     return(new ResponseMessage <string> {
         data = _sysOrgService.Insert(sysOrg)
     });
 }
Example #24
0
        public CustomJsonResult Add(string operater, RopMerchMasterAdd rop)
        {
            var result = new CustomJsonResult();

            if (string.IsNullOrEmpty(rop.UserName))
            {
                return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "用户名不能为空"));
            }

            if (string.IsNullOrEmpty(rop.Password))
            {
                return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "密码不能为空"));
            }

            var isExistUserName = CurrentDb.SysUser.Where(m => m.UserName == rop.UserName).FirstOrDefault();

            if (isExistUserName != null)
            {
                return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, string.Format("该用户名({0})已被使用", rop.UserName)));
            }

            using (TransactionScope ts = new TransactionScope())
            {
                string merchId = GuidUtil.New();

                var user = new SysMerchUser();
                user.Id            = GuidUtil.New();
                user.MerchId       = merchId;
                user.PId           = GuidUtil.Empty();
                user.UserName      = rop.UserName;
                user.FullName      = rop.FullName;
                user.PasswordHash  = PassWordHelper.HashPassword(rop.Password);
                user.Email         = rop.Email;
                user.PhoneNumber   = rop.PhoneNumber;
                user.BelongSite    = Enumeration.BelongSite.Merch;
                user.IsDelete      = false;
                user.IsDisable     = false;
                user.IsMaster      = true;
                user.Creator       = operater;
                user.CreateTime    = DateTime.Now;
                user.RegisterTime  = DateTime.Now;
                user.SecurityStamp = Guid.NewGuid().ToString().Replace("-", "");
                CurrentDb.SysMerchUser.Add(user);

                var merch = new LocalS.Entity.Merch();
                merch.Id         = merchId;
                merch.UserId     = user.Id;
                merch.Name       = rop.FullName;
                merch.CreateTime = DateTime.Now;
                merch.Creator    = operater;
                CurrentDb.Merch.Add(merch);

                var sysRole = CurrentDb.SysRole.Where(m => m.BelongSite == Enumeration.BelongSite.Merch && m.IsSuper == true).FirstOrDefault();
                if (sysRole == null)
                {
                    return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "未配置系统管理角色"));
                }


                CurrentDb.SysUserRole.Add(new SysUserRole {
                    Id = GuidUtil.New(), RoleId = sysRole.Id, UserId = user.Id, Creator = operater, CreateTime = DateTime.Now
                });


                var sysOrg = new SysOrg();
                sysOrg.Id          = GuidUtil.New();
                sysOrg.Name        = "根组织";
                sysOrg.PId         = GuidUtil.Empty();
                sysOrg.BelongSite  = Enumeration.BelongSite.Merch;
                sysOrg.ReferenceId = merch.Id;
                sysOrg.IsDelete    = false;
                sysOrg.Priority    = 0;
                sysOrg.Depth       = 0;
                sysOrg.CreateTime  = DateTime.Now;
                sysOrg.Creator     = operater;
                CurrentDb.SysOrg.Add(sysOrg);

                var sysUserOrg = new SysUserOrg();
                sysUserOrg.Id         = GuidUtil.New();
                sysUserOrg.OrgId      = sysOrg.Id;
                sysUserOrg.UserId     = user.Id;
                sysUserOrg.CreateTime = DateTime.Now;
                sysUserOrg.Creator    = operater;
                CurrentDb.SysUserOrg.Add(sysUserOrg);

                CurrentDb.SaveChanges();
                ts.Complete();

                result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "新建成功");
            }

            return(result);
        }
Example #25
0
 public async Task <ResponseMessage <string> > InsertAsync([FromBody] SysOrg sysOrg)
 {
     return(new ResponseMessage <string> {
         data = await _sysOrgService.InsertAsync(sysOrg)
     });
 }
Example #26
0
 public JsonResult Save(int?id, SysOrg info)
 {
     id = adminService.SaveOrg(id, info);
     return(Json(Result.Success("保存成功。", id)));
 }