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()); }
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)); }