示例#1
0
        public async Task <AppSrvResult> Update(DeptSaveInputDto saveDto)
        {
            var oldDeptDto = (await GetAllFromCache()).FirstOrDefault(x => x.ID == saveDto.ID);

            if (oldDeptDto.Pid == 0 && saveDto.Pid > 0)
            {
                return(Problem(HttpStatusCode.BadRequest, "一级单位不能修改等级"));
            }

            var isExists = (await GetAllFromCache()).Exists(x => x.FullName == saveDto.FullName && x.ID != saveDto.ID);

            if (isExists)
            {
                return(Problem(HttpStatusCode.BadRequest, "该部门全称已经存在"));
            }

            var oldPids = oldDeptDto.Pids;

            var deptEnity = _mapper.Map <SysDept>(saveDto);

            if (oldDeptDto.Pid == saveDto.Pid)
            {
                await _deptRepository.UpdateAsync(deptEnity);
            }
            else
            {
                await this.SetDeptPids(deptEnity);

                await _usrManagerService.UpdateDept(oldPids, deptEnity);
            }

            return(DefaultResult());
        }
示例#2
0
        public async Task Save(DeptSaveInputDto saveDto)
        {
            if (string.IsNullOrWhiteSpace(saveDto.FullName))
            {
                throw new BusinessException(new ErrorModel(ErrorCode.BadRequest, "请输入部门全称"));
            }

            if (string.IsNullOrWhiteSpace(saveDto.SimpleName))
            {
                throw new BusinessException(new ErrorModel(ErrorCode.BadRequest, "请输入部门简称"));
            }

            if (saveDto.ID == 0)
            {
                var dept = _mapper.Map <SysDept>(saveDto);
                dept.ID = IdGeneraterHelper.GetNextId(IdGeneraterKey.DEPT);
                await this.SetDeptPids(dept);

                await _deptRepository.InsertAsync(dept);
            }
            else
            {
                var oldDept = await _deptRepository.FetchAsync(d => d, x => x.ID == saveDto.ID);

                oldDept.Pid        = saveDto.Pid;
                oldDept.SimpleName = saveDto.SimpleName;
                oldDept.FullName   = saveDto.FullName;
                oldDept.Num        = saveDto.Num;
                oldDept.Tips       = saveDto.Tips;

                var dept = await this.SetDeptPids(oldDept);

                await _deptRepository.UpdateAsync(dept);
            }
        }
示例#3
0
        public async Task Save(DeptSaveInputDto saveDto)
        {
            if (saveDto.FullName.IsNullOrWhiteSpace())
            {
                throw new BusinessException(new ErrorModel(HttpStatusCode.BadRequest, "请输入部门全称"));
            }

            if (saveDto.SimpleName.IsNullOrWhiteSpace())
            {
                throw new BusinessException(new ErrorModel(HttpStatusCode.BadRequest, "请输入部门简称"));
            }

            if (saveDto.ID == 0)
            {
                var dept = _mapper.Map <SysDept>(saveDto);
                dept.ID = IdGenerater.GetNextId();
                await this.SetDeptPids(dept);

                await _deptRepository.InsertAsync(dept);
            }
            else
            {
                var dept = await _deptRepository.FetchAsync(d => d, x => x.ID == saveDto.ID);

                if (dept.Pid == 0 && saveDto.Pid > 0)
                {
                    throw new BusinessException(new ErrorModel(HttpStatusCode.BadRequest, "一级单位不能修改等级"));
                }

                var oldPids = dept.Pids;

                dept.SimpleName = saveDto.SimpleName;
                dept.FullName   = saveDto.FullName;
                dept.Num        = saveDto.Num;
                dept.Tips       = saveDto.Tips;

                if (dept.Pid == saveDto.Pid)
                {
                    await _deptRepository.UpdateAsync(dept);
                }
                else
                {
                    dept.Pid = saveDto.Pid;
                    await this.SetDeptPids(dept);

                    await _usrManagerService.UpdateDept(oldPids, dept);
                }
                //var subDetps = _deptRepository.GetAll().Where(d => d.Pids.Contains($"[{dept.ID}]")).ToList();
                //subDetps.ForEach(c =>
                //{
                //    c.Pids = c.Pids.Replace(oldPids,dept.Pids);
                //});
            }
        }
示例#4
0
        public async Task <AppSrvResult <long> > Add(DeptSaveInputDto saveDto)
        {
            var isExists = (await GetAllFromCache()).Exists(x => x.FullName == saveDto.FullName);

            if (isExists)
            {
                return(Problem(HttpStatusCode.BadRequest, "该部门全称已经存在"));
            }

            var dept = _mapper.Map <SysDept>(saveDto);

            dept.ID = IdGenerater.GetNextId();
            await this.SetDeptPids(dept);

            await _deptRepository.InsertAsync(dept);

            return(dept.ID);
        }
示例#5
0
 public async Task Save([FromBody] DeptSaveInputDto saveDto)
 {
     await _deptService.Save(saveDto);
 }
示例#6
0
 public async Task <ActionResult <long> > Update([FromBody] DeptSaveInputDto saveDto)
 {
     return(Result(await _deptService.Update(saveDto)));
 }
示例#7
0
 public async Task <ActionResult <long> > Add([FromBody] DeptSaveInputDto saveDto)
 {
     return(CreatedResult(await _deptService.Add(saveDto)));
 }