Exemplo n.º 1
0
        public ApiReturns Put(int id, ViewPersonInfo viewPerson)
        {
            var loginUser = LoginStatus.GetLoginUser();

            // 权限验证,非超级管理员不允许将账户修改为超级管理员账户,不允许添加不属于其所属单位的人员信息
            if (!LoginStatus.IsSuperAdminLogin() && (viewPerson.UserType == 0 || viewPerson.DepartmentId != loginUser.DepartmentId))
            {
                return(ApiReturns.Forbidden());
            }

            var person = _personBll.QuerySingle(id);
            var user   = _systemUserBll.QuerySingle(s => s.PersonInfoId == id);

            if (person == null || user == null)
            {
                return(ApiReturns.BadRequest());
            }

            person.Name             = viewPerson.Name;
            person.DepartmentId     = viewPerson.DepartmentId;
            person.Gender           = viewPerson.Gender;
            person.HeadPortraitPath = viewPerson.HeadPortraitPath;
            person.WorkNo           = viewPerson.WorkNo;

            user.Username = viewPerson.Username;
            user.UserType = viewPerson.UserType.Value;

            var success = _personBll.ExecuteTranscation(() => _personBll.Update(person), () => _systemUserBll.Update(user));

            return(success ? ApiReturns.Created() : ApiReturns.BadRequest());
        }
Exemplo n.º 2
0
        public JsonResult PersonEdit(PersonInfo person)
        {
            if (person == null)
            {
                return(Json(ErrorModel.InputError));
            }

            var personBll = new PersonInfoBll();
            // 验证工号重复性
            var condition = person.Id > 0
                ? $"WorkNo='{person.WorkNo}' AND Id<>{person.Id} AND IsDelete=0"
                : $"WorkNo='{person.WorkNo}' AND IsDelete=0";

            if (personBll.Exists(condition))
            {
                return(Json(ErrorModel.ExistSameItem));
            }

            // 获取姓名的简拼
            person.Spell      = PinyinHelper.GetInitials(person.Name).ToLower();
            person.UpdateTime = DateTime.Now;

            var dbUpdateType = person.Id > 0 ? DataUpdateType.Update : DataUpdateType.Insert;

            var success = false;

            if (person.Id > 0)
            {
                success = personBll.Update(person);
            }
            else
            {
                // 第一次录入时将密码设置为工号后四位
                var password = person.WorkNo.Substring(person.WorkNo.Length - 5);
                // person.Password = password.GetMd5();
                // @FrancisTan 修改于 2017-02-17
                // 目的是为了统一密码的生成,保证一致性
                person.Password = EncryptHelper.EncryptPassword(password);

                success = personBll.Insert(person).Id > 0;
            }

            if (success)
            {
                DataUpdateLog.SingleUpdate(typeof(PersonInfo).Name, (int)person.Id, dbUpdateType);

                return(Json(ErrorModel.OperateSuccess));
            }

            return(Json(ErrorModel.OperateFailed));
        }