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(); } }
/// <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); } }
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\"}"); } } }
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("<", "<"); ques[i].Qus_Title = ques[i].Qus_Title.Replace(">", ">"); 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); }
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); }
/// <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\"}"); } } }
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); }
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("<", "<"); qs[n].Qus_Title = qs[n].Qus_Title.Replace(">", ">"); 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); } }
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)); } }
/// <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); }
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 }