Exemple #1
0
        /// <summary>
        /// 添加机构管理员
        /// </summary>
        public ServiceInvokeDTO AddAdmin(AgencyAdmin admin)
        {
            log.Debug(Constant.DEBUG_START);
            ServiceInvokeDTO result = null;
            try
            {
                AgencyAdmin dbAdmin = agencyAdminDAL.GetByPhone(admin.Phone);
                if (dbAdmin == null)
                {
                    admin.Password = SecurityUtil.MD5(SecurityUtil.MD5(admin.Phone) + Constant.ADMIN_SALT_KEY);
                    agencyAdminDAL.Insert(admin);
                    result = new ServiceInvokeDTO(InvokeCode.SYS_INVOKE_SUCCESS);
                }
                else
                {
                    result = new ServiceInvokeDTO(InvokeCode.ACCOUNT_ADMIN_PHONE_EXIST_ERROR);
                }
            }
            catch (Exception ex)
            {
                log.Error(ex);
                throw ex;
            }
            log.Debug(Constant.DEBUG_END);

            return result;
        }
Exemple #2
0
 public AgencyAdminDTO(AgencyAdmin admin)
 {
     this.ID = admin.ID;
     this.ChineseName = admin.ChineseName;
     this.Phone = admin.Phone;
     this.Email = admin.Email;
     this.Level = admin.Level;
     this.AddTime = admin.AddTime;
 }
Exemple #3
0
        public ActionResult AddAdmin()
        {
            log.Debug(Constant.DEBUG_START);

            string chineseName = ApiQueryUtil.QueryArgByPost("chinese_name");
            string phone = ApiQueryUtil.QueryArgByPost("phone");

            ServiceInvokeDTO result = null;
            try
            {
                AgencyAdmin admin = new AgencyAdmin();
                admin.AgencyID = (Session[Constant.SESSION_KEY_ADMIN] as AgencyAdminDTO).Agency.ID;
                admin.ChineseName = chineseName;
                admin.Phone = phone;
                admin.Level = AdminLevel.AgencyItemAdmin;

                result = agencyDataService.AddAdmin(admin);

                // Write admin do record.
                AgencyAdminDTO currentAdmin = Session[Constant.SESSION_KEY_ADMIN] as AgencyAdminDTO;
                if (result != null && result.Code == InvokeCode.SYS_INVOKE_SUCCESS)
                {
                    AdminDoRecord doRecord = new AdminDoRecord();
                    doRecord.AdminID = currentAdmin.ID;
                    doRecord.AdminName = currentAdmin.ChineseName;
                    doRecord.DoTime = DateTime.Now;
                    doRecord.DoName = DoActionType.AddAdmin.GetDescription();
                    doRecord.DoContent = string.Format("新管理员姓名:{0}", chineseName);
                    doRecord.Remark = string.Empty;
                    recordDataService.AddAdminDoRecord(doRecord);
                }
            }
            catch (Exception ex)
            {
                log.Error(ex);
                result = new ServiceInvokeDTO(InvokeCode.SYS_INNER_ERROR);
            }

            string json = JsonConvert.SerializeObject(result, Formatting.Indented, Constant.TIME_CONVERTER);
            log.Debug(Constant.DEBUG_END);

            return Content(json, Constant.JSON_MIME_TYPE);
        }
Exemple #4
0
        /// <summary>
        /// 使用默认配置初始化机构信息,返回添加成功后的机构主键ID
        /// </summary>
        public int Insert(Agency agency, AgencyAdmin admin)
        {
            // 1.添加机构信息
            // 2.添加机构管理员信息
            // 3.添加机构创建者
            // 4.添加机构默认配置信息
            // 5.添加机构课程章节信息

            int agencyID = 0;

            const string insert_agency_sql = @"INSERT INTO Agency(Name, RegTime) VALUES (@Name, @RegTime);SELECT LAST_INSERT_ID();";

            const string insert_agency_admin_sql = @"INSERT INTO AgencyAdmin(AgencyID, ChineseName, Phone, Password,  Level)
                                                   VALUES (@AgencyID, @ChineseName, @Phone, @Password, @Level);
                                                   SELECT LAST_INSERT_ID();";

            const string insert_agency_creator_sql = @"INSERT INTO AgencyCreator(AgencyID, AdminID) VALUES (@AgencyID, @AdminID);";

            const string insert_agency_config_sql = @"INSERT INTO AgencyConfig(AgencyID) VALUES (@AgencyID);";

            const string insert_agency_course_sql = @"INSERT INTO Course(AgencyID, Name, Code, Duration, Description)
                                                    VALUES (@AgencyID, @Name, @Code, @Duration, @Description);
                                                    SELECT LAST_INSERT_ID();";

            const string insert_agency_chapter_sql = @"INSERT INTO Chapter(CourseID, ChapterIndex, Name) VALUES (@CourseID, @ChapterIndex, @Name);";

            using (DbConnection connection = ConnectionManager.OpenConnection)
            {
                IDbTransaction transaction = connection.BeginTransaction();
                try
                {
                    // 添加机构信息
                    agencyID = connection.Query<int>(insert_agency_sql, agency, transaction).SingleOrDefault<int>();

                    // 初始化管理员账号及创建者信息
                    admin.AgencyID = agencyID;
                    int adminID = connection.Query<int>(insert_agency_admin_sql, admin, transaction).SingleOrDefault<int>();
                    connection.Execute(insert_agency_creator_sql, new { AgencyID = agencyID, AdminID = adminID }, transaction);

                    // 初始化机构默认配置选项
                    connection.Execute(insert_agency_config_sql, new { AgencyID = agencyID }, transaction);

                    // 初始化课程及章节信息
                    List<SysCourse> sysCourses = sysCourseDAL.GetAll();
                    if (sysCourses != null)
                    {
                        foreach (var sysCourse in sysCourses)
                        {
                            // 插入课程
                            int courseID = connection.Query<int>(
                                insert_agency_course_sql,
                                new { AgencyID = agencyID, Name = sysCourse.Name, Code = sysCourse.Code, Duration = sysCourse.Duration, Description = sysCourse.Description },
                                transaction).SingleOrDefault<int>();

                            // 插入章节
                            List<SysChapter> sysChapters = sysChapterDAL.GetByCourseID(sysCourse.ID);
                            if (sysChapters != null)
                            {
                                foreach (var sysChapter in sysChapters)
                                {
                                    connection.Execute(insert_agency_chapter_sql, new { CourseID = courseID, ChapterIndex = sysChapter.ChapterIndex, Name = sysChapter.Name }, transaction);
                                }
                            }
                        }
                    }

                    // 提交事务
                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw ex;
                }

                return agencyID;
            }
        }
Exemple #5
0
        public ActionResult UpdateAdmin()
        {
            log.Debug(Constant.DEBUG_START);

            string idString = ApiQueryUtil.QueryArgByPost("id");
            string chineseName = ApiQueryUtil.QueryArgByPost("chinese_name");
            string phone = ApiQueryUtil.QueryArgByPost("phone");

            ServiceInvokeDTO result = null;
            try
            {
                int adminID = Convert.ToInt32(idString);

                AgencyAdminDTO currentAdmin = Session[Constant.SESSION_KEY_ADMIN] as AgencyAdminDTO;
                ServiceInvokeDTO checkResult = permissionService.CheckPermission(DoActionType.UpdateAdmin, currentAdmin.Agency.ID, adminID);
                if (checkResult.Code == InvokeCode.SYS_INVOKE_SUCCESS)
                {
                    AgencyAdmin admin = new AgencyAdmin();
                    admin.ID = adminID;
                    admin.ChineseName = chineseName;
                    admin.Phone = phone;
                    result = agencyDataService.UpdateAdmin(admin);

                    // Write admin do record.
                    if (result != null && result.Code == InvokeCode.SYS_INVOKE_SUCCESS)
                    {
                        AdminDoRecord doRecord = new AdminDoRecord();
                        doRecord.AdminID = currentAdmin.ID;
                        doRecord.AdminName = currentAdmin.ChineseName;
                        doRecord.DoTime = DateTime.Now;
                        doRecord.DoName = DoActionType.UpdateAdmin.GetDescription();
                        doRecord.DoContent = string.Format("被更新的管理员ID:{0}", idString);
                        doRecord.Remark = string.Empty;
                        recordDataService.AddAdminDoRecord(doRecord);
                    }
                }
                else
                {
                    result = checkResult;
                }
            }
            catch (Exception ex)
            {
                log.Error(ex);
                result = new ServiceInvokeDTO(InvokeCode.SYS_INNER_ERROR);
            }

            string json = JsonConvert.SerializeObject(result, Formatting.Indented, Constant.TIME_CONVERTER);
            log.Debug(Constant.DEBUG_END);

            return Content(json, Constant.JSON_MIME_TYPE);
        }
Exemple #6
0
 /// <summary>
 /// 更新实体信息
 /// </summary>
 public void Update(AgencyAdmin admin)
 {
     const string sql = @"UPDATE AgencyAdmin SET AgencyID = @AgencyID, ChineseName = @ChineseName,
                          Phone= @Phone, Password = @Password,  Email = @Email
                          WHERE IsDeleted = 0 AND ID = @ID";
     using (DbConnection connection = ConnectionManager.OpenConnection)
     {
         connection.Execute(sql, admin);
     }
 }
Exemple #7
0
        /// <summary>
        /// 添加实体信息,返回添加成功后的主键ID
        /// </summary>
        public int Insert(AgencyAdmin admin)
        {
            int agencyID = 0;

            const string sql = @"INSERT INTO AgencyAdmin(AgencyID, ChineseName, Phone, Password, Level)
                                 VALUES (@AgencyID, @ChineseName, @Phone, @Password, @Level);
                                 SELECT LAST_INSERT_ID();";
            using (DbConnection connection = ConnectionManager.OpenConnection)
            {
                agencyID = connection.Query<int>(sql, admin).SingleOrDefault<int>();
            }
            return agencyID;
        }
Exemple #8
0
        /// <summary>
        /// 更新机构管理员
        /// </summary>
        public ServiceInvokeDTO UpdateAdmin(AgencyAdmin admin)
        {
            log.Debug(Constant.DEBUG_START);
            ServiceInvokeDTO result = null;
            try
            {
                AgencyAdmin dbAdmin = agencyAdminDAL.GetByID(admin.ID);
                if (dbAdmin != null)
                {
                    AgencyAdmin adminWithPhone = agencyAdminDAL.GetByPhone(admin.Phone);
                    if (adminWithPhone != null && adminWithPhone.ID != admin.ID)
                    {
                        result = new ServiceInvokeDTO(InvokeCode.ACCOUNT_ADMIN_PHONE_EXIST_ERROR);
                    }
                    else
                    {
                        admin.AgencyID = dbAdmin.AgencyID;
                        admin.Password = dbAdmin.Password;
                        admin.Email = dbAdmin.Email;
                        admin.Level = dbAdmin.Level;
                        agencyAdminDAL.Update(admin);
                        result = new ServiceInvokeDTO(InvokeCode.SYS_INVOKE_SUCCESS);
                    }
                }
                else
                {
                    result = new ServiceInvokeDTO(InvokeCode.SYS_OBJECT_NOT_EXIST_ERROR);
                }
            }
            catch (Exception ex)
            {
                log.Error(ex);
                throw ex;
            }
            log.Debug(Constant.DEBUG_END);

            return result;
        }
Exemple #9
0
        /// <summary>
        /// 注册培训机构
        /// </summary>
        public ServiceInvokeDTO AgencyReg(string phone, string captcha, string agencyName, string password)
        {
            log.Debug(Constant.DEBUG_START);
            ServiceInvokeDTO result = null;
            try
            {
                // 检测验证码
                ServiceInvokeDTO checkCaptchaResult = securityService.CheckCaptcha(CaptchaCodeType.RegCode, phone, captcha);
                if (checkCaptchaResult != null && checkCaptchaResult.Code == InvokeCode.SYS_INVOKE_SUCCESS)
                {
                    // 检测手机号是否注册
                    AgencyAdmin dbAdmin = agencyAdminDAL.GetByPhone(phone);
                    if (dbAdmin == null)
                    {
                        // 检测机构名称是否存在
                        Agency dbAgency = agencyDAL.GetByName(agencyName);
                        if (dbAgency == null)
                        {
                            Agency agency = new Agency();
                            agency.Name = agencyName;
                            agency.RegTime = DateTime.Now;

                            AgencyAdmin admin = new AgencyAdmin();
                            admin.ChineseName = agencyName;
                            admin.Phone = phone;
                            admin.Password = SecurityUtil.MD5(password + Constant.ADMIN_SALT_KEY);
                            admin.Level = AdminLevel.AgencyCreatorAdmin;

                            // 验证参数
                            AgencyValidator validator = new AgencyValidator();
                            ValidationResult validatorResult = validator.Validate(agency);
                            if (validatorResult.IsValid)
                            {
                                agencyDAL.Insert(agency, admin);
                                result = new ServiceInvokeDTO(InvokeCode.SYS_INVOKE_SUCCESS);
                            }
                            else
                            {
                                result = new ServiceInvokeDTO(InvokeCode.SYS_ARG_ERROR);
                                log.Error(string.Format(Constant.DEBUG_ARG_ERROR_FORMATER, validatorResult.Errors[0].ErrorMessage));
                            }
                        }
                        else
                        {
                            result = new ServiceInvokeDTO(InvokeCode.AGENCY_NAME_EXIST_ERROR);
                        }
                    }
                    else
                    {
                        result = new ServiceInvokeDTO(InvokeCode.SMS_PHONE_EXIST_WHEN_REG);
                    }
                }
                else
                {
                    result = new ServiceInvokeDTO(InvokeCode.SYS_CAPTCHA_ERROR);
                }
            }
            catch (Exception ex)
            {
                log.Error(ex);
                throw ex;
            }
            log.Debug(Constant.DEBUG_END);

            return result;
        }
Exemple #10
0
 public AgencyAdminDTO(AgencyAdmin admin, AgencyDTO agency)
     : this(admin)
 {
     this.Agency = agency;
 }