/// <summary> /// 阅读文章标准的收费方法 /// </summary> /// <param name="userinfo">用户属性</param> /// <param name="nodeinfo">节点属性</param> /// <param name="buser">用户方法类</param> /// <param name="bcomhistory">收费记录方法类</param> /// <param name="GeneralID">文章类容id</param> /// <param name="ConsumeType">文章类型、属性</param> /// <param name="groupID">会员级别类型</param> /// <param name="groupNum">该会员可浏览文章的篇数</param> private void ReadArticleStandardCharges(M_UserInfo userinfo, M_Node nodeinfo, B_User buser, B_CompleteHistory bcomhistory, int GeneralID, int ConsumeType, int groupID, int groupNum) { int num = 0; string message = ""; if ((userinfo.GroupID == groupID || groupNum == 0) || (userinfo.GroupID == groupID)) //如果该会员浏览某文章超过规定,就不能继续浏览该文章了 { if (ConsumeType == 0) //0-不重复收费 { //查找当前用户是否第一次浏览该文章 M_CompleteHistory ch = bcomhistory.SelReturnModel("where userid=" + buser.GetLogin().UserID + " and BidType=0 and BidPrice=" + nodeinfo.ConsumePoint + " AND ShopId=" + GeneralID); if (null == ch) { if (Request.Cookies["MyCook"] == null || Request.Cookies["MyCook"]["return"] != "1") { message = "当前文章阅读为" + nodeinfo.ConsumePoint + "点券/次,只收取一次费用"; GetUrl(); function.WriteMessage(message, "/Class_" + nodeinfo.NodeID + "/Default.aspx", "收费提示"); } ReadArticleCharge(userinfo, nodeinfo, buser, bcomhistory, GeneralID); } } else if (ConsumeType == 1)//1-距离上次收费时间多少小时后重新收费 { M_CompleteHistory ch = bcomhistory.GetCompleteHistoryTopOne(buser.GetLogin().UserID, GeneralID); DateTime dt = DateTime.Now; if (dt.Hour - ch.AddTime.Hour >= 0 && dt.Hour - ch.AddTime.Hour == nodeinfo.ConsumeTime) { message = "当前文章阅读为" + nodeinfo.ConsumePoint + "点券/次,距离这次收费时间" + nodeinfo.ConsumeTime + "小时后重新收费"; GetUrl(); ReadArticleCharge(userinfo, nodeinfo, buser, bcomhistory, GeneralID); } } else if (ConsumeType == 2) //2-重复阅读内容多少次重新收费 { if (num == 0 || num % nodeinfo.ConsumeCount == 1) { if (Request.Cookies["MyCook"] == null || Request.Cookies["MyCook"]["return"] != "1") { message = "当前文章阅读为" + nodeinfo.ConsumePoint + "点券/次,您重复阅读此文章" + nodeinfo.ConsumeCount + "次后重新收费"; GetUrl(); function.WriteMessage(message, HttpContext.Current.ToString(), "收费提示"); } ReadArticleCharge(userinfo, nodeinfo, buser, bcomhistory, GeneralID); } } else if (ConsumeType == 3)//3-上述两者都满足时重新收费 { M_CompleteHistory ch = bcomhistory.GetCompleteHistoryTopOne(buser.GetLogin().UserID, GeneralID); DateTime dt = DateTime.Now; if ((num == 0 || num % nodeinfo.ConsumeCount == 1) && (dt.Hour - ch.AddTime.Hour >= 0 && dt.Hour - ch.AddTime.Hour == nodeinfo.ConsumeTime)) { if (Request.Cookies["MyCook"] == null || Request.Cookies["MyCook"]["return"] != "1") { message = "当前文章阅读为" + nodeinfo.ConsumePoint + "点券/次,距离这次收费时间" + nodeinfo.ConsumeTime + "小时后重新收费,并且您重复阅读此文章" + nodeinfo.ConsumeCount + "次后重新收费"; GetUrl(); function.WriteMessage(message, "/Class_" + nodeinfo.NodeID + "/Default.aspx", "收费提示"); } ReadArticleCharge(userinfo, nodeinfo, buser, bcomhistory, GeneralID); } } else if (ConsumeType == 4)//4- 1、2上述两者任一个满足时就重新收费 { M_CompleteHistory ch = bcomhistory.GetCompleteHistoryTopOne(buser.GetLogin().UserID, GeneralID); DateTime dt = DateTime.Now; if ((num == 0 || num % nodeinfo.ConsumeCount == 1) || (dt.Hour - ch.AddTime.Hour >= 0 && dt.Hour - ch.AddTime.Hour == nodeinfo.ConsumeTime)) { if (Request.Cookies["MyCook"] == null || Request.Cookies["MyCook"]["return"] != "1") { if (nodeinfo.ConsumeTime != 0 && nodeinfo.ConsumeCount != 0) { message = "当前文章阅读为" + nodeinfo.ConsumePoint + "点券/次,距离这次收费时间" + nodeinfo.ConsumeTime + "小时或重复阅读此文章" + nodeinfo.ConsumeCount + "次后重新收费"; } else if (nodeinfo.ConsumeTime != 0) { message = "当前文章阅读为" + nodeinfo.ConsumePoint + "点券/次,距离这次收费时间" + nodeinfo.ConsumeTime + "小时后重新收费"; } else if (nodeinfo.ConsumeCount != 0) { message = "当前文章阅读为" + nodeinfo.ConsumePoint + "点券/次,您重复阅读此文章" + nodeinfo.ConsumeCount + "次后重新收费"; } else { message = "当前文章阅读为" + nodeinfo.ConsumePoint + "点券/次"; } GetUrl(); function.WriteMessage(message, this.Page.Request.RawUrl, "收费提示"); } ReadArticleCharge(userinfo, nodeinfo, buser, bcomhistory, GeneralID); } } else if (ConsumeType == 5) //5-每阅读一次就重复收费一次 { if (Request.Cookies["MyCook"] == null || Request.Cookies["MyCook"]["return"] != "1") { message = "当前文章阅读为" + nodeinfo.ConsumePoint + "点券/次,每阅读一次就重复收费一次"; GetUrl(); function.WriteMessage(message, this.Page.Request.RawUrl, "收费提示"); } ReadArticleCharge(userinfo, nodeinfo, buser, bcomhistory, GeneralID); } delcook(); } else { function.WriteErrMsg("[非常抱歉,您不能继续浏览该文章!]"); return; } }