Ejemplo n.º 1
0
        public BaseResponse <bool> EditOfficerRecord(EditOfficerParameter parameter)
        {
            BaseResponse <bool> response = new BaseResponse <bool>();

            try
            {
                #region 输入验证
                if (string.IsNullOrEmpty(parameter.Name))
                {
                    response.IsSuccessful = false;
                    response.Reason       = "干部名称不能为空";
                    return(response);
                }
                if (string.IsNullOrEmpty(parameter.IdentifyNumber))
                {
                    response.IsSuccessful = false;
                    response.Reason       = "身份证号不能为空";
                    return(response);
                }
                if (string.IsNullOrEmpty(parameter.OnOfficeDate))
                {
                    response.IsSuccessful = false;
                    response.Reason       = "请输入任职时间";
                    return(response);
                }

                if (parameter.OrganizationID < 1)
                {
                    response.IsSuccessful = false;
                    response.Reason       = "请选择单位";
                    return(response);
                }

                //var isExisted = officerRepository.GetDatas<Officer>(t => !t.IsDeleted && !string.IsNullOrEmpty(t.Name) && t.OfficerID != parameter.OfficerID && t.Name.Equals(parameter.Name), true).Any();
                //if (isExisted)
                //{
                //    response.IsSuccessful = false;
                //    response.Reason = "干部名称已存在";
                //    return response;
                //}

                var isExisted = officerRepository.GetDatas <Officer>(t => !t.IsDeleted && !string.IsNullOrEmpty(t.IdentifyCardNumber) && t.IdentifyCardNumber.Equals(parameter.IdentifyNumber) && t.OfficerID != parameter.OfficerID, true).Any();
                if (isExisted)
                {
                    throw new Exception("身份证号码重复");
                }

                if (!Utilitys.CheckIDCard(parameter.IdentifyNumber))
                {
                    throw new Exception("请输入合法的身份证号码");
                }
                using (iCMSDbContext dbContext = new iCMSDbContext())
                {
                    var updateUser = dbContext.HBUsers.Where(t => !t.IsDeleted && t.UserID == parameter.UpdateUserID).FirstOrDefault();
                    if (updateUser == null)
                    {
                        throw new Exception("数据异常");
                    }



                    int roleID = updateUser.RoleID;
                    switch (roleID)
                    {
                    case (int)EnumRoleType.SuperAdmin:
                        //超级管理员可以编辑任意单位的干部
                        break;

                    case (int)EnumRoleType.FirstLevelAdmin:
                        //一级管理员不能够编辑干部
                        throw new Exception("请使用二级管理员登陆,然后编辑干部");
                        break;

                    case (int)EnumRoleType.SecondLevelAdmin:
                        var organ = dbContext.Organizations.Where(t => !t.IsDeleted && t.OrganID == updateUser.OrganizationID).FirstOrDefault();
                        if (organ == null)
                        {
                            throw new Exception("数据异常");
                        }

                        //二级管理员只能够添加本单位的干部
                        if (updateUser.OrganizationID != parameter.OrganizationID)
                        {
                            string msg = string.Format("只能修改本单位({0})的干部", organ.OrganFullName);
                            throw new Exception(msg);
                        }
                        break;
                    }

                    //if (updateUser.OrganizationID != parameter.OrganizationID)
                    //{
                    //    string msg = string.Format("只能修改本单位({0})的干部", organ.OrganFullName);
                    //    throw new Exception(msg);
                    //}
                }

                #endregion

                var offIndb = officerRepository.GetDatas <Officer>(t => !t.IsDeleted && t.OfficerID == parameter.OfficerID, true).FirstOrDefault();
                if (offIndb == null)
                {
                    response.IsSuccessful = false;
                    response.Reason       = "编辑干部数据异常";
                    return(response);
                }
                offIndb.Name               = parameter.Name;
                offIndb.Gender             = parameter.Gender;
                offIndb.IdentifyCardNumber = parameter.IdentifyNumber;

                var birth    = Utilitys.GetBrithdayFromIdCard(parameter.IdentifyNumber);
                var birthDay = DateTime.MinValue;
                if (DateTime.TryParse(birth, out birthDay))
                {
                    offIndb.Birthday = birthDay;
                }

                offIndb.OrganizationID = parameter.OrganizationID;
                offIndb.PositionStr    = parameter.PositionStr;
                offIndb.LevelID        = parameter.LevelID;

                var onOfficeDate = DateTime.MinValue;
                if (DateTime.TryParse(parameter.OnOfficeDate, out onOfficeDate))
                {
                    offIndb.OnOfficeDate = onOfficeDate;
                }

                offIndb.Duty = parameter.Duty;
                //offIndb.InitialScore = parameter.InitialScore;

                var res = officerRepository.Update <Officer>(offIndb);
                if (res.ResultType != EnumOperationResultType.Success)
                {
                    throw new Exception("编辑干部发生异常");
                }
                return(response);
            }
            catch (Exception e)
            {
                response.IsSuccessful = false;

                response.Reason = e.Message;
                return(response);
            }
        }
Ejemplo n.º 2
0
        private void ValidateAddOfficer(iCMSDbContext dbContext, AddOfficerParameter parameter)
        {
            #region 输入验证
            if (string.IsNullOrEmpty(parameter.Name))
            {
                throw new Exception("请输入用户名");
            }
            if (string.IsNullOrEmpty(parameter.IdentifyNumber))
            {
                throw new Exception("请输入身份证号码");
            }
            if (string.IsNullOrEmpty(parameter.OnOfficeDate))
            {
                throw new Exception("请输入任职时间");
            }

            if (parameter.OrganizationID < 1)
            {
                throw new Exception("请选择单位");
            }

            //var isExisted = dbContext.Officers.Where(t => !t.IsDeleted && !string.IsNullOrEmpty(t.Name) && t.Name.Equals(parameter.Name)).Any();
            //if (isExisted)
            //{
            //    throw new Exception("干部名称已重复");
            //}

            if (!Utilitys.CheckIDCard(parameter.IdentifyNumber))
            {
                throw new Exception("请输入合法的身份证号码");
            }

            var isExisted = dbContext.Officers.Where(t => !t.IsDeleted && !string.IsNullOrEmpty(t.IdentifyCardNumber) && t.IdentifyCardNumber.Equals(parameter.IdentifyNumber)).Any();
            if (isExisted)
            {
                throw new Exception("身份证号码重复");
            }

            var addUser = dbContext.HBUsers.Where(t => !t.IsDeleted && t.UserID == parameter.AddUserID).FirstOrDefault();
            if (addUser == null)
            {
                throw new Exception("数据异常");
            }


            int roleID = addUser.RoleID;
            switch (roleID)
            {
            case (int)EnumRoleType.SuperAdmin:
                //超级管理员可以任意单位的干部
                break;

            case (int)EnumRoleType.FirstLevelAdmin:
                //一级管理员不能够添加干部
                throw new Exception("请使用二级管理员登陆,然后添加干部");
                break;

            case (int)EnumRoleType.SecondLevelAdmin:

                var organ = dbContext.Organizations.Where(t => !t.IsDeleted && t.OrganID == addUser.OrganizationID).FirstOrDefault();
                if (organ == null)
                {
                    throw new Exception("请选择干部所在单位");
                }
                //二级管理员只能够添加本单位的干部
                if (addUser.OrganizationID != parameter.OrganizationID)
                {
                    string msg = string.Format("只能添加本单位({0})的干部", organ.OrganFullName);
                    throw new Exception(msg);
                }
                break;
            }

            #endregion
        }