public async Task Put(int id, [FromBody] TreeDTO value)
        {
            var treeEntity = await _service.Find(id);

            Tree newEntity = _mapper.Map(value, treeEntity);

            await _service.Update(newEntity);
        }
示例#2
0
        /// <summary>
        /// 设置部门下职位
        /// </summary>
        /// <param name="list"></param>
        /// <param name="treeDto"></param>
        /// <param name="corpId"></param>
        private void SetPostionList(IList <CorpDeptPositionDTO> list, TreeDTO treeDto, string corpId)
        {
            var childList = list.Where(m => m.CorpId == corpId && m.DepartId == treeDto.Id).GroupBy(m => new { m.PositionId, m.PositionName, m.FullPositionId, m.FullPositionIdName })
                            .Select(m => new { PositionId = m.Key.PositionId, PositionName = m.Key.PositionName, FullId = m.Key.FullPositionId, FullIdName = m.Key.FullPositionIdName });

            foreach (var mModel in childList)
            {
                var childTreeDto = new TreeDTO()
                {
                    Id = mModel.PositionId, Name = mModel.PositionName, FullId = mModel.FullId, FullIdName = mModel.FullIdName, IsLeaf = true
                };
                treeDto.ChildList.Add(childTreeDto);
            }
        }
示例#3
0
        /// <summary>
        /// 设置公司部门
        /// </summary>
        /// <param name="list"></param>
        /// <param name="treeDto"></param>
        private void SetDeptList(IList <CorpDeptPositionDTO> list, TreeDTO treeDto)
        {
            var childList = list.Where(m => m.CorpId == treeDto.Id).GroupBy(m => new { m.DepartId, m.DepartName })
                            .Select(m => new { DeptId = m.Key.DepartId, DeptName = m.Key.DepartName });

            foreach (var mModel in childList)
            {
                var childTreeDto = new TreeDTO()
                {
                    Id = mModel.DeptId, Name = mModel.DeptName
                };
                treeDto.ChildList.Add(childTreeDto);
                this.SetPostionList(list, childTreeDto, treeDto.Id);
            }
        }
示例#4
0
        /// <summary>
        /// 设置子公司
        /// </summary>
        /// <param name="corpList"></param>
        /// <param name="treeDto"></param>
        private void SetCorpChild(IList <CorporationDTO> corpList, IList <CorpDeptPositionDTO> list, TreeDTO treeDto)
        {
            var childList = corpList.Where(m => m.ParentId == treeDto.Id);

            foreach (var cModel in childList)
            {
                var childTreeDto = new TreeDTO()
                {
                    Id = cModel.Id, Name = cModel.CorpName
                };
                treeDto.ChildList.Add(childTreeDto);
                this.SetCorpChild(corpList, list, childTreeDto);
                this.SetDeptList(list, childTreeDto);
            }
        }
        /// <summary>
        /// 设置公司树子列表
        /// </summary>
        /// <param name="corp"></param>
        /// <param name="dto"></param>
        private void SetTreeChildList(IList <CorporationDTO> corpList, TreeDTO dto)
        {
            var list = corpList.Where(m => m.ParentId == dto.Id);

            if (list != null && list.Count() > 0)
            {
                foreach (var m in list)
                {
                    var d = new TreeDTO()
                    {
                        Id       = m.Id,
                        Name     = m.CorpName,
                        ParentId = m.ParentId
                    };
                    this.SetTreeChildList(corpList, d);
                    dto.ChildList.Add(d);
                }
            }
        }
        /// <summary>
        /// 取出树列表
        /// </summary>
        /// <returns></returns>
        public ICollection <TreeDTO> FindTreeList()
        {
            var list     = this.corpRepository.GetTreeList <CorporationDTO>();
            var dtoList  = new List <TreeDTO>();
            var rootList = list.Where(m => m.ParentId == Guid.Empty.ToString());

            foreach (var corp in rootList)
            {
                var dto = new TreeDTO()
                {
                    Id       = corp.Id,
                    Name     = corp.CorpName,
                    ParentId = corp.ParentId
                };
                this.SetTreeChildList(list, dto);
                dtoList.Add(dto);
            }
            return(dtoList);
        }
示例#7
0
        /// <summary>
        /// 获取组织结构树
        /// </summary>
        /// <returns></returns>
        public IList <TreeDTO> FindOrgList()
        {
            var returnList   = new List <TreeDTO>();
            var allList      = this.corpDepartPositionRepository.GetAllList <CorpDeptPositionDTO>();
            var corpList     = this.corpRepository.GetTreeList <CorporationDTO>();
            var rootCorpList = corpList.Where(m => m.ParentId == Guid.Empty.ToString());

            foreach (var cModel in rootCorpList)
            {
                var treeDto = new TreeDTO()
                {
                    Id = cModel.Id, Name = cModel.CorpName
                };
                returnList.Add(treeDto);
                //设置公司子列表
                this.SetCorpChild(corpList, allList, treeDto);
                //设置公司部门
                this.SetDeptList(allList, treeDto);
            }

            return(returnList);
        }
示例#8
0
        /// <summary>
        /// 获取用户下的所有子用户
        /// 这里要看要不要把客服、上级的用户给加载出来
        /// </summary>
        /// <param name="uid"></param>
        /// <returns></returns>

        public List <TreeDTO> GetChildrens(int uid, bool hasCustomer, bool hasParent)
        {
            var source = this.Where(item => item.ParentId == uid);

            List <TreeDTO> result = new List <TreeDTO>();

            foreach (var item in source)
            {
                TreeDTO dto = new TreeDTO();
                dto.ChildrensCount = this.Where(c => c.ParentId == item.Id).Count();
                dto.HasChildrens   = dto.ChildrensCount > 0;
                dto.Id             = item.Id;
                dto.Title          = item.Code;

                result.Add(dto);
            }
            //
            if (hasParent)
            {
                var curr = this.Get(uid);
                if (curr != null && curr.ParentId.HasValue)
                {
                    var par = this.Get(curr.ParentId.Value);
                    if (par != null)
                    {
                        result.Add(new TreeDTO
                        {
                            HasChildrens = false,
                            Id           = par.Id,
                            Title        = string.Format("上级 {0}", par.Code)
                        });
                    }
                }
            }
            return(result);
        }
        public async Task Post([FromBody] TreeDTO value)
        {
            Tree entity = _mapper.Map <TreeDTO, Tree>(value);

            await _service.Add(entity);
        }
        public async Task <TreeDTO> Get(int id)
        {
            TreeDTO treeDTO = _mapper.Map <Tree, TreeDTO>(await _service.Find(id));

            return(treeDTO);
        }