Example #1
0
        protected override void InitPageTemplate(HttpContext context)
        {
            #region 此段代码用于取token与openid
            string code = WeiSha.Common.Request.QueryString["code"].String;
            if (Request.ServerVariables["REQUEST_METHOD"] == "GET" && !string.IsNullOrWhiteSpace(code))
            {
                string orgid        = WeiSha.Common.Request.QueryString["state"].String; //机构id
                string openid       = string.Empty;
                string access_token = getToken(out openid);
                //二级域名
                Song.Entities.Organization org = getOrgan(-1);
                string domain = getOrganDomain(org);
                string uri    = "{0}/{1}?token={2}&openid={3}&orgid={4}";
                uri = string.Format(uri, domain, WeiSha.Common.Request.Page.FileName, access_token, openid, orgid);
                this.Document.Variables.SetValue("gourl", uri); //传到客户端,进行跳转
                return;
            }
            #endregion
            //一些设置项
            WeiSha.Common.CustomConfig config = CustomConfig.Load(this.Organ.Org_Config);
            this.Document.SetValue("IsRegStudent", config["IsRegStudent"].Value.Boolean ?? true);   //是否允许注册

            #region 具体操作代码
            string token = WeiSha.Common.Request.QueryString["token"].String;
            if (Request.ServerVariables["REQUEST_METHOD"] == "GET" && !string.IsNullOrWhiteSpace(token))
            {
                _StateForGET();
            }
            #endregion

            //此页面的ajax提交,全部采用了POST方式
            if (Request.ServerVariables["REQUEST_METHOD"] == "POST")
            {
                string action = WeiSha.Common.Request.Form["action"].String;
                switch (action)
                {
                case "Direct": _directLogin();       //直接登录
                    break;

                case "getRegSms": sendSmsVcode();      //验证手机注册时,获取短信时的验证码
                    break;

                case "register1": register1();     //直接注册,无需验证手机号
                    break;

                case "register2": register2();     //用手机注册,需短信验证手机号
                    break;

                case "bind1": bind1();      //绑定已经存在账户,不验证手机
                    break;

                case "bind2": bind2();      //绑定已经存在账户,验证手机号
                    break;

                default:
                    //acclogin_verify();  //验证账号登录时的密码
                    break;
                }
                Response.End();
            }
        }
Example #2
0
        /// <summary>
        /// get请求时
        /// </summary>
        protected void _StateForGET()
        {
            string token  = WeiSha.Common.Request.QueryString["token"].String;
            string openid = WeiSha.Common.Request.QueryString["openid"].String;

            this.Document.Variables.SetValue("openid", openid);
            this.Document.Variables.SetValue("token", token);
            //设置主域,用于js跨根域
            int multi = Business.Do <ISystemPara>()["MultiOrgan"].Int32 ?? 0;

            if (multi == 0 && !WeiSha.Common.Server.IsLocalIP)
            {
                this.Document.Variables.SetValue("domain", WeiSha.Common.Server.MainName);
            }
            //当前机构
            Song.Entities.Organization org = getOrgan(-1);
            this.Document.Variables.SetValue("org", org);
            if (multi == 0 && !WeiSha.Common.Server.IsLocalIP)
            {
                this.Document.Variables.SetValue("domain", WeiSha.Common.Server.MainName);
            }
            this.Document.SetValue("domain2", getOrganDomain(org));
            //获取帐户,如果已经注册,则直接实现登录
            string unionid = string.Empty;

            Song.Entities.Accounts acctm = getUserInfo(token, openid, out unionid);
            Song.Entities.Accounts acc   = null;
            if (acctm != null && !string.IsNullOrWhiteSpace(unionid))
            {
                acc = Business.Do <IAccounts>().Account4Weixin(unionid);
            }
            if (acc != null)
            {
                this.Document.Variables.SetValue("acc", acc);
                //直接实现登录
                if (acc.Ac_IsPass && acc.Ac_IsUse)
                {
                    LoginState.Accounts.Write(acc);
                    Business.Do <IAccounts>().PointAdd4Login(acc, "电脑网页", "微信登录", ""); //增加登录积分
                    Business.Do <IStudent>().LogForLoginAdd(acc);
                    this.Document.Variables.SetValue("success", "1");                  //登录成功
                }
                else
                {
                    this.Document.Variables.SetValue("success", "-1");   //账户禁用中
                }
            }
            else
            {
                //账户不存在,以下用于注册
                //相关参数
                WeiSha.Common.CustomConfig config = CustomConfig.Load(org.Org_Config);
                //登录方式
                bool IsLoginForPw  = config["IsLoginForPw"].Value.Boolean ?? true;   //启用账号密码登录
                bool IsLoginForSms = config["IsLoginForSms"].Value.Boolean ?? true;  //启用手机短信验证登录
                this.Document.SetValue("forpw", IsLoginForPw);
                this.Document.SetValue("forsms", IsLoginForSms);
                this.Document.SetValue("IsWeixinDirect", Business.Do <ISystemPara>()["WeixinDirectIs"].Boolean ?? true); //是否允许微信直接注册登录
                //获取qq登录账户的信息
                if (acctm != null)
                {
                    this.Document.Variables.SetValue("name", acctm.Ac_Name);    //QQ昵称
                    this.Document.Variables.SetValue("photo", acctm.Ac_Photo);  //40*40头像
                    this.Document.Variables.SetValue("gender", acctm.Ac_Sex);   //性别
                }
                this.Document.Variables.SetValue("acctm", acctm);
            }
        }
Example #3
0
        protected override void InitPageTemplate(HttpContext context)
        {
            //自定义配置项
            Song.Entities.Organization org    = Business.Do <IOrganization>().OrganCurrent();
            WeiSha.Common.CustomConfig config = CustomConfig.Load(org.Org_Config);

            #region 章节输出
            //取当前章节
            ol = id < 1 ? Business.Do <IOutline>().OutlineFirst(couid, true)
                       : ol = Business.Do <IOutline>().OutlineSingle(id);
            //当前课程
            Song.Entities.Course course = Business.Do <ICourse>().CourseSingle(ol == null ? couid : ol.Cou_ID);
            this.Document.Variables.SetValue("course", course);
            Extend.LoginState.Accounts.Course(course);
            if (ol == null)
            {
                return;
            }
            //
            couid = ol.Cou_ID;
            id    = ol.Ol_ID;
            //入写章节id的cookie,当播放视频时会判断此处
            Response.Cookies.Add(new HttpCookie("olid", id.ToString()));
            outlines = Business.Do <IOutline>().OutlineAll(ol.Cou_ID, true);
            //是否学习当前课程
            if (course == null)
            {
                isStudy = false;
            }
            else
            {
                isStudy = Business.Do <ICourse>().StudyIsCourse(this.Account.Ac_ID, course.Cou_ID);
            }
            this.Document.Variables.SetValue("isStudy", isStudy);
            //课程章节列表
            this.Document.Variables.SetValue("outlines", outlines);
            //树形章节输出
            this.Document.Variables.SetValue("olTree", buildOutlineHtml(outlines, 0, 0, ""));
            this.Document.Variables.SetValue("outline", ol);
            #endregion
            //视频
            List <Song.Entities.Accessory> videos = Business.Do <IAccessory>().GetAll(ol.Ol_UID, "CourseVideo");
            if (videos.Count > 0)
            {
                if (videos[0].As_IsOuter)
                {
                    //如果是外部链接
                    this.Document.Variables.SetValue("video", videos[0]);
                }
                else
                {
                    //如果是内部链接
                    videos[0].As_FileName = Upload.Get[videos[0].As_Type].Virtual + videos[0].As_FileName;
                    string fileHy = Server.MapPath(videos[0].As_FileName);
                    if (!System.IO.File.Exists(fileHy))
                    {
                        string ext = System.IO.Path.GetExtension(fileHy).ToLower();
                        if (ext == ".mp4")
                        {
                            videos[0].As_FileName = Path.ChangeExtension(videos[0].As_FileName, ".flv");
                        }
                        if (ext == ".flv")
                        {
                            videos[0].As_FileName = Path.ChangeExtension(videos[0].As_FileName, ".mp4");
                        }
                    }
                    this.Document.Variables.SetValue("video", videos[0]);
                }
                this.Document.Variables.SetValue("IsVideoNoload", config["IsVideoNoload"].Value.Boolean ?? false);
                state = state < 1 ? 1 : state;
            }
            //内容
            if (!string.IsNullOrWhiteSpace(ol.Ol_Intro))
            {
                state = state < 1 ? 2 : state;
            }
            //上级章节
            if (ol != null)
            {
                Song.Entities.Outline pat = Business.Do <IOutline>().OutlineSingle(ol.Ol_PID);
                this.Document.Variables.SetValue("pat", pat);
            }
            //附件
            List <Song.Entities.Accessory> access = Business.Do <IAccessory>().GetAll(ol.Ol_UID, "Course");
            if (access.Count > 0)
            {
                foreach (Accessory ac in access)
                {
                    ac.As_FileName = Upload.Get["Course"].Virtual + ac.As_FileName;
                }
                this.Document.Variables.SetValue("access", access);
                state = state < 1 ? 3 : state;
            }
            //视频的学习进度记录
            LogForStudentStudy studyLog = Business.Do <IStudent>().LogForStudySingle(this.Account.Ac_ID, id);
            if (studyLog != null)
            {
                double historyPlay = (double)studyLog.Lss_PlayTime / 1000;
                this.Document.Variables.SetValue("historyPlay", historyPlay);
                this.Document.Variables.SetValue("studyLog", studyLog);
            }
            //当前章节是否有试题
            if (isStudy)
            {
                bool isQues = Business.Do <IOutline>().OutlineIsQues(ol.Ol_ID, true);
                this.Document.Variables.SetValue("isQues", isQues);
                if (isQues)
                {
                    state = state < 1 ? 4 : state;
                }
            }
            else
            {
                state = 0;
            }

            //章节事件
            OutlineEvent[] events = Business.Do <IOutline>().EventAll(-1, ol.Ol_ID, -1, true);
            this.Document.Variables.SetValue("events", events);
            this.Document.RegisterGlobalFunction(this.getEventQues);
            this.Document.RegisterGlobalFunction(this.getEventFeedback);
            this.Document.RegisterGlobalFunction(this.GetOrder);
            //状态
            this.Document.Variables.SetValue("state", state);
            this.Document.Variables.SetValue("olid", id);
        }
        /// <summary>
        /// 教师注册的验证
        /// </summary>
        private void mobiregister_verify()
        {
            string vname    = WeiSha.Common.Request.Form["vname"].String;
            string imgCode  = WeiSha.Common.Request.Cookies[vname].ParaValue; //取图片验证码
            string userCode = WeiSha.Common.Request.Form["vcode"].MD5;        //取输入的验证码
            string phone    = WeiSha.Common.Request.Form["phone"].String;     //输入的手机号
            string sms      = WeiSha.Common.Request.Form["sms"].MD5;          //输入的短信验证码
            string name     = WeiSha.Common.Request.Form["name"].String;      //姓名
            string email    = WeiSha.Common.Request.Form["email"].String;     //邮箱
            string qq       = WeiSha.Common.Request.Form["qq"].String;        //qq
            string idcard   = WeiSha.Common.Request.Form["idcard"].String;    //身份证号
            string intro    = WeiSha.Common.Request.Form["intro"].Text;       //简介

            //验证图片验证码
            if (imgCode != userCode)
            {
                Response.Write("{\"success\":\"-1\",\"state\":\"1\"}");   //图片验证码不正确
                return;
            }
            //验证手机号是否存在
            Song.Entities.Accounts curr = Extend.LoginState.Accounts.CurrentUser;
            if (curr == null)
            {
                Response.Write("{\"success\":\"-1\",\"state\":\"4\"}");   //当前账号未登录;
                return;
            }
            if (phone != curr.Ac_MobiTel1 && phone != curr.Ac_MobiTel2)
            {
                Song.Entities.Accounts acc = Business.Do <IAccounts>().IsAccountsExist(-1, phone, 1);
                if (acc != null)
                {
                    Response.Write("{\"success\":\"-1\",\"state\":\"2\"}");   //手机号已经存在
                    return;
                }
            }
            //验证短信验证码
            bool   isSmsCode = true;    //是否短信验证;
            string smsCode   = WeiSha.Common.Request.Cookies["reg_mobi_" + vname].ParaValue;

            if (isSmsCode && sms != smsCode)
            {
                Response.Write("{\"success\":\"-1\",\"state\":\"3\"}");  //短信验证失败
                return;
            }
            else
            {
                Song.Entities.Accounts tmp = Extend.LoginState.Accounts.CurrentUser;
                tmp.Ac_IsTeacher = true;    //当前账户有了教师身份
                tmp.Ac_MobiTel2  = phone;
                Business.Do <IAccounts>().AccountsSave(tmp);
                //创建教师账户
                Song.Entities.Teacher th = Business.Do <IAccounts>().GetTeacher(curr.Ac_ID, null);
                if (th == null)
                {
                    th = new Entities.Teacher();
                }
                th.Ac_ID           = tmp.Ac_ID; //关联学员账户
                th.Ac_UID          = tmp.Ac_UID;
                th.Th_PhoneMobi    = phone;     //教师手机号,基本账号中已经有记录,此处再记一次
                th.Th_Name         = name;      //教师的名称
                th.Th_IDCardNumber = idcard;    //教师的身份证号
                th.Th_Email        = email;
                th.Th_Qq           = qq;
                th.Th_Intro        = intro; //教师的简介

                //如果需要审核通过
                WeiSha.Common.CustomConfig config = CustomConfig.Load(this.Organ.Org_Config);
                th.Th_IsPass = !(bool)(config["IsVerifyTeahcer"].Value.Boolean ?? true);
                th.Th_IsUse  = th.Th_IsPass;
                if (th.Th_ID < 1)
                {
                    int id = Business.Do <ITeacher>().TeacherAdd(th);
                }
                else
                {
                    Business.Do <ITeacher>().TeacherSave(th);
                }

                //注册成功,以下为判断是否审核通过
                if (th.Th_IsPass)
                {
                    LoginState.Accounts.Write(tmp);
                    Response.Write("{\"success\":\"1\",\"name\":\"" + th.Th_Name + "\",\"state\":\"1\"}");
                }
                else
                {
                    //注册成功,但待审核
                    Response.Write("{\"success\":\"1\",\"name\":\"" + th.Th_Name + "\",\"state\":\"0\"}");
                }
            }
        }
Example #5
0
 protected override void InitPageTemplate(HttpContext context)
 {
     if (olid < 1)
     {
         return;
     }
     //登录且学员必须通过审核
     if (!(Extend.LoginState.Accounts.IsLogin && Extend.LoginState.Accounts.CurrentUser.Ac_IsPass))
     {
         return;
     }
     #region 基本信息布局
     //题型
     this.Document.SetValue("quesType", WeiSha.Common.App.Get["QuesType"].Split(','));
     //难度
     Tag diffTag = this.Document.GetChildTagById("diff");
     if (diffTag != null)
     {
         string tm = diffTag.Attributes.GetValue("level", "");
         this.Document.SetValue("diff", tm.Split(','));
     }
     //每页的题量***********
     //总题数
     int sumCount = 0;
     Song.Entities.Outline outline = Business.Do <IOutline>().OutlineSingle(olid);
     if (outline != null)
     {
         bool isBuy = Business.Do <ICourse>().IsBuy(outline.Cou_ID, Extend.LoginState.Accounts.UserID);
         if (isBuy)
         {
             sumCount = Business.Do <IQuestions>().QuesOfCount(Organ.Org_ID, 0, 0, olid, type, diff, true);
         }
         else
         {
             //是否在试用中
             bool istry = Business.Do <ICourse>().IsTryout(outline.Cou_ID, this.Account.Ac_ID);
             Song.Entities.Course course = Business.Do <ICourse>().CourseSingle(outline.Cou_ID);
             if (course.Cou_IsTry)
             {
                 sumCount = Business.Do <IQuestions>().QuesOfCount(Organ.Org_ID, 0, 0, olid, type, diff, true);
                 //sumCount = sumCount > course.Cou_TryNum ? course.Cou_TryNum : sumCount;
             }
             this.Document.Variables.SetValue("isTry", istry);
         }
     }
     //计算分页,200个记录不分页,每页默认100条,最多10页
     QuestionPagerItem qpi = new QuestionPagerItem(200, 100, 10);
     //sumCount = WeiSha.Common.Request.QueryString["sum"].Int32 ?? 0;   //仅供测试
     List <QuestionPagerItem> pager = qpi.Builder(sumCount);
     this.Document.SetValue("pager", pager);
     this.Document.SetValue("sumCount", sumCount);
     //与当前索引页码与取值长度
     if (!string.IsNullOrWhiteSpace(indexPara))
     {
         if (indexPara.IndexOf("-") > -1)
         {
             int.TryParse(indexPara.Substring(0, indexPara.IndexOf("-")), out index);
             int.TryParse(indexPara.Substring(indexPara.IndexOf("-") + 1), out size);
         }
     }
     else
     {
         index = pager.First <QuestionPagerItem>().Index;
         size  = pager.First <QuestionPagerItem>().Size;
     }
     this.Document.SetValue("index", index);
     #endregion
     //
     //自定义配置项
     WeiSha.Common.CustomConfig config = CustomConfig.Load(Organ.Org_Config);
     //如果需要学员登录后才能学习
     bool isTraningLogin = config["IsTraningLogin"].Value.Boolean ?? false;
     this.Document.SetValue("isTraningLogin", isTraningLogin);
     //试题
     Song.Entities.Questions[] ques = null;
     if (isTraningLogin)
     {
         //登录且学员必须通过审核
         if (Extend.LoginState.Accounts.IsLogin && Extend.LoginState.Accounts.CurrentUser.Ac_IsPass)
         {
             ques = Business.Do <IQuestions>().QuesCount(Organ.Org_ID, 0, 0, olid, type, diff, true, index - 1, size);
             //ques = Business.Do<IQuestions>().QuesRandom(Organ.Org_ID, -1, -1, olid, type, diff, diff, true, count);
         }
     }
     else
     {
         ques = Business.Do <IQuestions>().QuesCount(Organ.Org_ID, 0, 0, olid, type, diff, true, index - 1, size);
         //ques = Business.Do<IQuestions>().QuesRandom(Organ.Org_ID, -1, -1, olid, type, diff, diff, true, count);
     }
     if (ques != null)
     {
         for (int i = 0; i < ques.Length; i++)
         {
             ques[i]           = Extend.Questions.TranText(ques[i]);
             ques[i].Qus_Title = ques[i].Qus_Title.Replace("&lt;", "<");
             ques[i].Qus_Title = ques[i].Qus_Title.Replace("&gt;", ">");
             ques[i].Qus_Title = Extend.Html.ClearHTML(ques[i].Qus_Title, "p", "div", "font", "pre");
             ques[i].Qus_Title = ques[i].Qus_Title.Replace("\n", "<br/>");
         }
     }
     this.Document.SetValue("ques", ques);
     this.Document.RegisterGlobalFunction(this.GetTypeName);
     this.Document.RegisterGlobalFunction(this.AnswerItems);
     this.Document.RegisterGlobalFunction(this.GetAnswer);
     this.Document.RegisterGlobalFunction(this.GetOrder);
     this.Document.RegisterGlobalFunction(this.IsCollect);
 }
Example #6
0
        protected override void InitPageTemplate(HttpContext context)
        {
            //设置主域,用于js跨根域
            int multi = Business.Do <ISystemPara>()["MultiOrgan"].Int32 ?? 0;

            if (Request.ServerVariables["REQUEST_METHOD"] == "GET")
            {
                //来源页
                string from = WeiSha.Common.Request.QueryString["from"].String;
                if (string.IsNullOrWhiteSpace(from))
                {
                    from = context.Request.UrlReferrer != null ? context.Request.UrlReferrer.PathAndQuery : "";
                }
                this.Document.SetValue("from", from);
                this.Document.SetValue("frompath", context.Request.UrlReferrer != null ? context.Request.UrlReferrer.ToString() : "");
                //设置主域,用于js跨根域
                if (multi == 0 && !WeiSha.Common.Server.IsLocalIP)
                {
                    this.Document.Variables.SetValue("domain", WeiSha.Common.Server.MainName);
                }
                //相关参数
                WeiSha.Common.CustomConfig config = CustomConfig.Load(this.Organ.Org_Config);
                //登录方式
                bool IsLoginForPw  = config["IsLoginForPw"].Value.Boolean ?? true;   //启用账号密码登录
                bool IsLoginForSms = config["IsLoginForSms"].Value.Boolean ?? true;  //启用手机短信验证登录
                this.Document.SetValue("forpw", IsLoginForPw);
                this.Document.SetValue("forsms", IsLoginForSms);
                this.Document.SetValue("islogin", !IsLoginForPw && !IsLoginForSms);
                //界面状态
                if (!IsLoginForPw && IsLoginForSms)
                {
                    loyout = "mobile";
                }
                this.Document.SetValue("loyout", loyout);
            }

            //此页面的ajax提交,全部采用了POST方式
            if (Request.ServerVariables["REQUEST_METHOD"] == "POST")
            {
                string action = WeiSha.Common.Request.Form["action"].String;
                switch (action)
                {
                case "accloginvcode":
                    accloginvcode_verify();     //验证账号登录时的验证码
                    break;

                case "acclogin":
                    acclogin_verify();      //验证账号登录时的密码
                    break;

                case "getSms":
                    mobivcode_verify();      //验证手机登录时,获取短信时的验证码
                    break;

                case "mobilogin":
                    mobiLogin_verify();
                    break;

                default:
                    acclogin_verify();      //验证账号登录时的密码
                    break;
                }
                Response.End();
            }
            //QQ登录
            this.Document.SetValue("QQLoginIsUse", Business.Do <ISystemPara>()["QQLoginIsUse"].Boolean ?? true);
            this.Document.SetValue("QQAPPID", Business.Do <ISystemPara>()["QQAPPID"].String);
            string returl = Business.Do <ISystemPara>()["QQReturl"].Value ?? "http://" + WeiSha.Common.Server.MainName;

            this.Document.SetValue("QQReturl", returl);
            //微信登录
            this.Document.SetValue("WeixinLoginIsUse", Business.Do <ISystemPara>()["WeixinLoginIsUse"].Boolean ?? false);
            this.Document.SetValue("WeixinAPPID", Business.Do <ISystemPara>()["WeixinAPPID"].String);
            this.Document.SetValue("WeixinReturl", Business.Do <ISystemPara>()["WeixinReturl"].Value ?? "http://" + WeiSha.Common.Server.MainName);
            //记录当前机构到本地,用于QQ或微信注册时的账户机构归属问题
            System.Web.HttpCookie cookie = new System.Web.HttpCookie("ORGID");
            cookie.Value = this.Organ.Org_ID.ToString();
            //设置主域,用于js跨根域
            if (multi == 0 && !WeiSha.Common.Server.IsLocalIP)
            {
                cookie.Domain = WeiSha.Common.Server.MainName;
            }
            this.Response.Cookies.Add(cookie);
            //推荐人id
            string sharekeyid = WeiSha.Common.Request.QueryString["sharekeyid"].String;

            System.Web.HttpCookie cookieShare = new System.Web.HttpCookie("sharekeyid");
            cookieShare.Value = sharekeyid;
            if (multi == 0 && !WeiSha.Common.Server.IsLocalIP)
            {
                cookieShare.Domain = WeiSha.Common.Server.MainName;
            }
            this.Response.Cookies.Add(cookieShare);
        }
Example #7
0
        /// <summary>
        /// 手机注册的验证
        /// </summary>
        private void mobiregister_verify()
        {
            string vname    = WeiSha.Common.Request.Form["vname"].String;
            string imgCode  = WeiSha.Common.Request.Cookies[vname].ParaValue;   //取图片验证码
            string userCode = WeiSha.Common.Request.Form["tbCode"].MD5;         //取输入的验证码
            string phone    = WeiSha.Common.Request.Form["Ac_MobiTel1"].String; //输入的手机号
            string sms      = WeiSha.Common.Request.Form["tbSms"].MD5;          //输入的短信验证码
            string rec      = WeiSha.Common.Request.Form["rec"].String;         //推荐人的电话
            int    recid    = WeiSha.Common.Request.Form["recid"].Int32 ?? 0;   //推荐人的账户id

            //验证图片验证码
            if (imgCode != userCode)
            {
                Response.Write("{\"success\":\"-1\",\"state\":\"1\"}");   //图片验证码不正确
                return;
            }
            //验证手机号是否存在
            Song.Entities.Accounts acc = Business.Do <IAccounts>().IsAccountsExist(-1, phone, 1);
            if (acc != null)
            {
                Response.Write("{\"success\":\"-1\",\"state\":\"2\"}");   //手机号已经存在
                return;
            }
            //验证短信验证码
            bool isSmsCode = true;      //是否短信验证;

            WeiSha.Common.CustomConfig config = CustomConfig.Load(this.Organ.Org_Config);
            isSmsCode = config["IsRegSms"].Value.Boolean ?? true;
            string smsCode = WeiSha.Common.Request.Cookies["reg_mobi_" + vname].ParaValue;

            if (isSmsCode && sms != smsCode)
            {
                Response.Write("{\"success\":\"-1\",\"state\":\"3\"}");  //短信验证失败
                return;
            }
            else
            {
                //创建新账户
                Song.Entities.Accounts tmp = new Entities.Accounts();
                tmp            = fillData(tmp);
                tmp.Ac_AccName = tmp.Ac_MobiTel1;
                //获取推荐人
                Song.Entities.Accounts accRec = null;
                if (!string.IsNullOrWhiteSpace(rec))
                {
                    accRec = Business.Do <IAccounts>().AccountsSingle(rec, true, true);
                }
                if (accRec == null && recid > 0)
                {
                    accRec = Business.Do <IAccounts>().AccountsSingle(recid);
                }
                if (accRec != null && accRec.Ac_ID != tmp.Ac_ID)
                {
                    tmp.Ac_PID = accRec.Ac_ID;                           //设置推荐人,即:当前注册账号为推荐人的下线
                    Business.Do <IAccounts>().PointAdd4Register(accRec); //增加推荐人积分
                }
                //如果需要审核通过
                tmp.Ac_IsPass = !(bool)(config["IsVerifyStudent"].Value.Boolean ?? true);
                tmp.Ac_IsUse  = tmp.Ac_IsPass;
                int id = Business.Do <IAccounts>().AccountsAdd(tmp);
                //以下为判断是否审核通过
                if (tmp.Ac_IsPass)
                {
                    LoginState.Accounts.Write(tmp);
                    Response.Write("{\"success\":\"1\",\"name\":\"" + tmp.Ac_Name + "\",\"state\":\"1\"}");
                }
                else
                {
                    //注册成功,但待审核
                    Response.Write("{\"success\":\"1\",\"name\":\"" + tmp.Ac_Name + "\",\"state\":\"0\"}");
                }
            }
        }
Example #8
0
        protected override void InitPageTemplate(HttpContext context)
        {
            if (this.Account == null)
            {
                //如果未登录,则跳转到首页
                int    sharekeyid = WeiSha.Common.Request.QueryString["sharekeyid"].Int32 ?? 0;
                string gourl      = "default.ashx" + (sharekeyid < 0 ? "" : "?sharekeyid=" + sharekeyid);
                context.Response.Redirect(gourl);
                return;
            }
            int accid = this.Account.Ac_ID;

            //好朋友(即直接分享注册的账户)
            int friends = Business.Do <IAccounts>().SubordinatesCount(accid, false);

            this.Document.Variables.SetValue("friends", friends);
            //朋友的朋友(即享注注册的账户再次分享所得)
            int friendsAll = Business.Do <IAccounts>().SubordinatesCount(accid, true);

            this.Document.Variables.SetValue("friendsAll", friendsAll);


            //分享得来的积分,分享访问+分享注册
            int sumPoint = Business.Do <IAccounts>().PointClac(accid, 2, null, null);

            sumPoint += Business.Do <IAccounts>().PointClac(accid, 3, null, null);
            this.Document.Variables.SetValue("sumPoint", sumPoint);
            //分享得来的现金
            int sumMoney = Business.Do <IAccounts>().MoneyClac(accid, 5, null, null);

            this.Document.Variables.SetValue("sumMoney", sumMoney);
            //分享得来的卡券
            int sumCoupon = Business.Do <IAccounts>().CouponClac(accid, 5, null, null);

            this.Document.Variables.SetValue("sumCoupon", sumCoupon);

            //积分与卡券的兑换
            Dictionary <string, string> dic = new Dictionary <string, string>();

            //分享积分,每天最多多少分
            dic.Add("SharePoint", Business.Do <ISystemPara>()["SharePoint"].String);
            dic.Add("SharePointMax", Business.Do <ISystemPara>()["SharePointMax"].String);
            //注册积分,每天最多多少分
            dic.Add("RegPoint", Business.Do <ISystemPara>()["RegPoint"].String);
            dic.Add("RegPointMax", Business.Do <ISystemPara>()["RegPointMax"].String);
            this.Document.Variables.SetValue("dic", dic);

            //分润方案
            Song.Entities.ProfitSharing pstheme = Business.Do <IProfitSharing>().ThemeCurrent();
            this.Document.Variables.SetValue("pstheme", pstheme);
            //分润方案的分润项
            if (pstheme != null)
            {
                Song.Entities.ProfitSharing[] profits = Business.Do <IProfitSharing>().ProfitAll(pstheme.Ps_ID, true);
                this.Document.Variables.SetValue("profits", profits);
            }

            //分享二维码
            string qrurl = WeiSha.Common.Request.Page.Authority + "default.ashx?sharekeyid=" + accid;

            //各项配置
            WeiSha.Common.CustomConfig config = CustomConfig.Load(this.Organ.Org_Config); //自定义配置项
            string color     = config["QrColor"].Value.String;                            //二维码前景色
            string centerImg = Upload.Get["Accounts"].Virtual + this.Account.Ac_Photo;    //中心图片

            centerImg = WeiSha.Common.Server.MapPath(centerImg);
            //二维码图片对象
            System.Drawing.Image image = null;
            if (System.IO.File.Exists(centerImg))
            {
                image = WeiSha.Common.QrcodeHepler.Encode(qrurl, 200, centerImg, color, "#fff");
            }
            else
            {
                image = WeiSha.Common.QrcodeHepler.Encode(qrurl, 200, color, "#fff");
            }
            WeiSha.Common.Images.ImageTo.Overlay(image, this.Organ.Org_PlatformName, "down", 100, 10, "", "#000");
            //将image转为base64
            string base64 = WeiSha.Common.Images.ImageTo.ToBase64(image);

            this.Document.Variables.SetValue("qrcode", base64);
        }
        protected override void InitPageTemplate(HttpContext context)
        {
            this.Document.SetValue("couid", couid);
            //当前课程
            Song.Entities.Course course = Business.Do <ICourse>().CourseSingle(couid);
            if (course == null)
            {
                return;
            }
            if (course != null)
            {
                //是否免费,或是限时免费
                if (course.Cou_IsLimitFree)
                {
                    DateTime freeEnd = course.Cou_FreeEnd.AddDays(1).Date;
                    if (!(course.Cou_FreeStart <= DateTime.Now && freeEnd >= DateTime.Now))
                    {
                        course.Cou_IsLimitFree = false;
                    }
                }
                this.Document.SetValue("course", course);
                //当前课程下的章节
                Song.Entities.Outline[] outlines = Business.Do <IOutline>().OutlineAll(couid, true);
                foreach (Song.Entities.Outline c in outlines)
                {
                    c.Ol_Intro = Extend.Html.ClearHTML(c.Ol_Intro);
                }
                this.Document.SetValue("outlines", outlines);
                if (outlines != null && outlines.Length > 0)
                {
                    this.Document.Variables.SetValue("dtOutlines", Business.Do <IOutline>().OutlineTree(outlines));
                }
            }
            //是否学习当前课程
            int accid = 0;

            if (Extend.LoginState.Accounts.IsLogin)
            {
                accid = this.Account.Ac_ID;
            }
            bool isStudy = Business.Do <ICourse>().StudyIsCourse(accid, couid);

            this.Document.Variables.SetValue("isStudy", isStudy);
            //当前章节
            Song.Entities.Outline ol = null;
            ol = olid < 1 ? Business.Do <IOutline>().OutlineFirst(couid, true)
                       : ol = Business.Do <IOutline>().OutlineSingle(olid);
            if (ol == null)
            {
                return;
            }
            //是否可以学习,如果是免费或已经选修便可以学习,否则当前课程允许试用且当前章节是免费的,也可以学习
            bool canStudy = isStudy || course.Cou_IsFree || course.Cou_IsLimitFree ? true : (course.Cou_IsTry && ol.Ol_IsFree);

            canStudy = canStudy && ol.Ol_IsUse && ol.Ol_IsFinish && this.Account != null;
            this.Document.Variables.SetValue("canStudy", canStudy);
            this.Document.Variables.SetValue("outline", ol);
            if (!canStudy)
            {
                return;
            }
            if (ol == null)
            {
                return;
            }
            //入写章节id的cookie,当播放视频时会判断此处
            Response.Cookies.Add(new HttpCookie("olid", ol.Ol_ID.ToString()));
            //自定义配置项
            Song.Entities.Organization org    = Business.Do <IOrganization>().OrganCurrent();
            WeiSha.Common.CustomConfig config = CustomConfig.Load(org.Org_Config);
            //视频
            List <Song.Entities.Accessory> videos = Business.Do <IAccessory>().GetAll(ol.Ol_UID, "CourseVideo");

            if (videos.Count > 0)
            {
                if (videos[0].As_IsOuter)
                {
                    //如果是外部链接
                    this.Document.Variables.SetValue("video", videos[0]);
                }
                else
                {
                    //如果是内部链接
                    videos[0].As_FileName = Upload.Get[videos[0].As_Type].Virtual + videos[0].As_FileName;
                    this.Document.Variables.SetValue("video", videos[0]);
                }
                this.Document.Variables.SetValue("vpath", Upload.Get["CourseVideo"].Virtual);
                this.Document.Variables.SetValue("IsVideoNoload", config["IsVideoNoload"].Value.Boolean ?? false);
            }
            //附件
            List <Song.Entities.Accessory> access = Business.Do <IAccessory>().GetAll(ol.Ol_UID, "Course");

            if (access.Count > 0)
            {
                foreach (Accessory ac in access)
                {
                    ac.As_FileName = Upload.Get["Course"].Virtual + ac.As_FileName;
                }
                this.Document.Variables.SetValue("access", access);
            }
            //章节事件
            OutlineEvent[] events = Business.Do <IOutline>().EventAll(-1, ol.Ol_ID, -1, true);
            this.Document.Variables.SetValue("events", events);
            this.Document.RegisterGlobalFunction(this.getEventQues);
            this.Document.RegisterGlobalFunction(this.getEventFeedback);
            this.Document.RegisterGlobalFunction(this.GetOrder);
        }
Example #10
0
        protected override void InitPageTemplate(HttpContext context)
        {
            if (!Extend.LoginState.Accounts.IsLogin)
            {
                context.Response.Redirect("~/student/index.ashx");
                return;
            }
            this.Document.SetValue("tpid", tpid);

            //自定义配置项
            WeiSha.Common.CustomConfig config = CustomConfig.Load(Organ.Org_Config);
            //如果需要学员登录后才能学习
            bool isTraningLogin = config["IsTraningLogin"].Value.Boolean ?? false;

            this.Document.SetValue("isTraningLogin", isTraningLogin);
            //当前试卷
            pager = Business.Do <ITestPaper>().PagerSingle(tpid);
            if (pager != null)
            {
                this.Document.SetValue("pager", pager);
                this.Document.SetValue("path", Upload.Get["TestPaper"].Virtual);
                //是否学习当前课程
                if (this.Account != null)
                {
                    if (pager != null)
                    {
                        Song.Entities.Course cou = Business.Do <ICourse>().CourseSingle(pager.Cou_ID);
                        if (cou != null)
                        {
                            isStudy = Business.Do <ICourse>().StudyIsCourse(this.Account.Ac_ID, cou.Cou_ID);
                            this.Document.Variables.SetValue("isStudy", isStudy || cou.Cou_IsFree);
                        }
                    }
                }

                //唯一值
                string uid = WeiSha.Common.Request.UniqueID();
                this.Document.Variables.SetValue("uid", uid);
                //服务器端时间
                this.Document.Variables.SetValue("Time", WeiSha.Common.Server.getTime());

                //试卷所属课程
                Song.Entities.Course course = Business.Do <ICourse>().CourseSingle(pager.Cou_ID);
                this.Document.SetValue("course", course);
                //题型
                this.Document.SetValue("quesType", WeiSha.Common.App.Get["QuesType"].Split(','));
                //取果是第一次打开,则随机生成试题,此为获取试卷
                //难度区间
                int diff1 = pager.Tp_Diff > pager.Tp_Diff2 ? (int)pager.Tp_Diff2 : (int)pager.Tp_Diff;
                int diff2 = pager.Tp_Diff > pager.Tp_Diff2 ? (int)pager.Tp_Diff : (int)pager.Tp_Diff2;
                //开始抽题
                List <Song.Entities.Questions>          ques = new List <Entities.Questions>();
                Dictionary <TestPaperItem, Questions[]> dic  = Business.Do <ITestPaper>().Putout(pager);
                foreach (var d in dic)
                {
                    Song.Entities.Questions[] qs = (Song.Entities.Questions[])d.Value;
                    for (int n = 0; n < qs.Length; n++)
                    {
                        qs[n].Qus_Explain = "";
                        qs[n].Qus_Answer  = "";
                        qs[n]             = Extend.Questions.TranText(qs[n]);
                        qs[n].Qus_Title   = qs[n].Qus_Title.Replace("&lt;", "<");
                        qs[n].Qus_Title   = qs[n].Qus_Title.Replace("&gt;", ">");
                        qs[n].Qus_Title   = Extend.Html.ClearHTML(qs[n].Qus_Title, "p", "div");
                        ques.Add(qs[n]);
                    }
                }
                this.Document.SetValue("ques", ques);
                this.Document.RegisterGlobalFunction(this.getQuesType);
                this.Document.RegisterGlobalFunction(this.AnswerItems);
                this.Document.RegisterGlobalFunction(this.GetOrder);
                this.Document.RegisterGlobalFunction(this.IsCollect);
            }
        }
Example #11
0
        public new void ProcessRequest(HttpContext context)
        {
            //string gourl = WeiSha.Common.Skip.GetUrl();   //跳转
            //if (!string.IsNullOrWhiteSpace(gourl))
            //{
            //    context.Response.Redirect(gourl);
            //    return;
            //}
            //计算运算时间
            DateTime beforDT = System.DateTime.Now;

            this.InitContext(context);  //初始化页面参数
            //输出数据
            this.LoadCurrentTemplate(); //装载当前页面的模板文档
            try
            {
                //一些公共对象
                this.Document.SetValue("org", this.Organ);
                this.Document.SetValue("orgpath", Upload.Get["Org"].Virtual);
                //学生、教师、管理员是否登录
                if (Extend.LoginState.Accounts.IsLogin)
                {
                    this.Document.SetValue("Account", this.Account);
                    this.Document.SetValue("stuid", Extend.LoginState.Accounts.UID);
                }
                if (Extend.LoginState.Accounts.IsLogin)
                {
                    this.Document.SetValue("Teacher", this.Teacher);
                }
                if (Extend.LoginState.Admin.IsLogin)
                {
                    this.Document.SetValue("Admin", this.Admin);
                }
                //各种路径
                this.Document.SetValue("stpath", Upload.Get["Accounts"].Virtual);
                this.Document.SetValue("thpath", Upload.Get["Teacher"].Virtual);
                this.Document.SetValue("adminpath", Upload.Get["Employee"].Virtual);
                //当前模板的路径
                this.Document.SetValue("TempPath", this.TmBank.Path.Virtual);
                //自定义配置项
                if (this.Organ != null)
                {
                    WeiSha.Common.CustomConfig config = CustomConfig.Load(this.Organ.Org_Config);
                    //手机端隐藏关于“充值收费”等资费相关信息
                    bool IsMobileRemoveMoney = config["IsMobileRemoveMoney"].Value.Boolean ?? false;
                    this.Document.SetValue("mremove", IsMobileRemoveMoney);
                    //电脑端隐藏资费
                    bool IsWebRemoveMoney = config["IsWebRemoveMoney"].Value.Boolean ?? false;
                    this.Document.SetValue("wremove", IsWebRemoveMoney);
                }
            }
            catch { }
            //时间
            string WeekStr = DateTime.Now.ToString("dddd", new System.Globalization.CultureInfo("zh-cn"));

            this.Document.SetValue("week", WeekStr);
            this.Document.SetValue("tick", DateTime.Now.Ticks);
            //系统版本号
            this.Document.SetValue("version", version);

            //如果当前页面没有重构,则继续用原来的方法
            if (!Reconsi.Exist)
            {
                //导航菜单
                this.Document.RegisterGlobalFunction(this.Navi);
                this.Document.RegisterGlobalFunction(this.NaviDrop);
                //版权信息
                this.Document.SetValue("copyright", WeiSha.Common.Request.Copyright);
                //用本地模板引擎处理标签
                Song.Template.Handler.Start(this.Document);
            }

            //开始输出
            this.InitPageTemplate(context);
            this.Document.Render(this.Response.Output);

            DateTime afterDT = System.DateTime.Now;
            TimeSpan ts      = afterDT.Subtract(beforDT);

            if (ts.TotalMilliseconds >= 1)
            {
                WeiSha.Common.Log.Debug(this.GetType().FullName, string.Format("页面输出,耗时:{0}ms", ts.TotalMilliseconds));
            }
        }
Example #12
0
        /// <summary>
        /// 是否是手机端
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        protected bool isMobilePage(out string path)
        {
            bool   ismobi = false;
            string prefix = "/mobile";

            path = this.Request.Url.AbsolutePath;
            if (path.Length >= prefix.Length)
            {
                string pre = path.Substring(0, prefix.Length);
                if (pre.ToLower() == prefix.ToLower())
                {
                    ismobi = true;
                }
            }
            //如果是手机端页面,则去除/mobile/路径
            if (ismobi)
            {
                path = path.Substring(prefix.Length);
            }
            if (path.IndexOf(".") > -1)
            {
                path = path.Substring(path.IndexOf("/") + 1, path.LastIndexOf(".") - 1);
            }
            else
            {
                path = path.Substring(path.IndexOf("/") + 1);
            }
            path = path.Replace("/", "\\");
            //自定义配置项
            if (this.Organ != null)
            {
                WeiSha.Common.CustomConfig config = CustomConfig.Load(this.Organ.Org_Config);
                bool isNoaccess = false;    //是否禁止访问
                                            //如果是手机端
                if (ismobi)
                {
                    //如果禁止微信中使用,且又处于微信中时
                    if ((config["DisenableWeixin"].Value.Boolean ?? false) && WeiSha.Common.Browser.IsWeixin)
                    {
                        isNoaccess = true;
                    }
                    if ((config["DisenableMini"].Value.Boolean ?? false) && WeiSha.Common.Browser.IsWeixinApp)
                    {
                        isNoaccess = true;
                    }
                    if ((config["DisenableMweb"].Value.Boolean ?? false) && (!WeiSha.Common.Browser.IsAPICloud && !WeiSha.Common.Browser.IsWeixin))
                    {
                        isNoaccess = true;
                    }
                    if ((config["DisenableAPP"].Value.Boolean ?? false) && WeiSha.Common.Browser.IsAPICloud)
                    {
                        isNoaccess = true;
                    }
                }
                else
                {
                    if ((config["WebForDeskapp"].Value.Boolean ?? false) && !WeiSha.Common.Browser.IsDestopApp)
                    {
                        isNoaccess = true;
                    }
                }
                //如果被限制访问
                if (isNoaccess)
                {
                    path = "Noaccess";
                }
            }
            return(ismobi);
        }
Example #13
0
        protected override void InitPageTemplate(HttpContext context)
        {
            #region 此段代码用于取token与openid
            string code = WeiSha.Common.Request.QueryString["code"].String;     //验证用的code,只用一次即失效
            if (Request.ServerVariables["REQUEST_METHOD"] == "GET" && !string.IsNullOrWhiteSpace(code))
            {
                string orgid = WeiSha.Common.Request.QueryString["state"].String; //机构id
                string token = getToken();                                        //Access_Token,用于进一步获取信息时的认证码
                string uri   = context.Request.FilePath + "?token={0}&openid={1}&orgid={2}";
                uri = string.Format(uri, token, getOpenid(token), orgid);
                if (WeiSha.Common.Browser.IsMobile)
                {
                    uri = "/Mobile" + uri;
                }
                Response.Redirect(uri);
                return;
            }
            #endregion

            #region 具体操作代码
            string access_token = WeiSha.Common.Request.QueryString["token"].String;
            string openid       = WeiSha.Common.Request.QueryString["openid"].String;
            if (Request.ServerVariables["REQUEST_METHOD"] == "GET" && !string.IsNullOrWhiteSpace(access_token))
            {
                this.Document.Variables.SetValue("token", access_token);
                this.Document.Variables.SetValue("openid", openid);
                //设置主域,用于js跨根域
                int multi = Business.Do <ISystemPara>()["MultiOrgan"].Int32 ?? 0;
                if (multi == 0 && !WeiSha.Common.Server.IsLocalIP)
                {
                    this.Document.Variables.SetValue("domain", WeiSha.Common.Server.MainName);
                }
                //QQ回调域
                string returl = Business.Do <ISystemPara>()["QQReturl"].Value ?? WeiSha.Common.Server.MainName;
                this.Document.SetValue("QQReturl", returl);
                //当前机构
                Song.Entities.Organization org = getOrgan();
                this.Document.SetValue("domain2", getOrganDomain(org));
                //获取帐户,如果已经注册,则直接实现登录
                Song.Entities.Accounts acc = _ExistAcc(openid);
                if (acc == null)
                {
                    //账户不存在,以下用于注册
                    WeiSha.Common.CustomConfig config = CustomConfig.Load(org.Org_Config);
                    this.Document.SetValue("forpw", config["IsLoginForPw"].Value.Boolean ?? true);                   //启用账号密码登录
                    this.Document.SetValue("forsms", config["IsLoginForSms"].Value.Boolean ?? true);                 //启用手机短信验证登录
                    this.Document.SetValue("IsQQDirect", Business.Do <ISystemPara>()["QQDirectIs"].Boolean ?? true); //是否允许qq直接注册登录
                    //获取qq登录账户的信息
                    acc = getUserInfo(access_token, openid);
                    this.Document.Variables.SetValue("name", acc.Ac_Name);    //QQ昵称
                    this.Document.Variables.SetValue("photo2", acc.Ac_Photo); //100*100头像
                    this.Document.Variables.SetValue("gender", acc.Ac_Sex);   //性别
                }
            }
            #endregion

            #region ajax请求
            //此页面的ajax提交,全部采用了POST方式
            if (Request.ServerVariables["REQUEST_METHOD"] == "POST")
            {
                string action = WeiSha.Common.Request.Form["action"].String;
                switch (action)
                {
                case "Direct": _DirectLogin();       //直接登录
                    break;

                case "getRegSms": sendSmsVcode();      //验证手机注册时,获取短信时的验证码
                    break;

                case "register1": register1();     //直接注册,无需验证手机号
                    break;

                case "register2": register2();     //用手机注册,需短信验证手机号
                    break;

                case "bind1": bind1();      //绑定已经存在账户,不验证手机
                    break;

                case "bind2": bind2();      //绑定已经存在账户,验证手机号
                    break;

                default:
                    //acclogin_verify();  //验证账号登录时的密码
                    break;
                }
                Response.End();
            }
            #endregion
        }