Ejemplo n.º 1
0
        //阅读文章收费的方法
        private void ReadArticleCharge(M_UserInfo userinfo, M_Node nodeinfo, B_User buser, B_CompleteHistory bcomhistory, int GeneralID)
        {
            //function.WriteMessage("当前文章阅读为10点券每次,您重复阅读4次后收费", "/content.aspx", "收费提示");
            M_CompleteHistory mcomhistory = new M_CompleteHistory();

            mcomhistory.AddTime  = DateTime.Now;
            mcomhistory.BidType  = 0;
            mcomhistory.BidPrice = nodeinfo.ConsumePoint;
            mcomhistory.IP       = HttpContext.Current.Request.UserHostAddress;
            mcomhistory.ComeType = 0;
            mcomhistory.CouType  = "减值";
            mcomhistory.ShopId   = GeneralID;   //会员[admin]浏览ID为101的文章扣除点券
            mcomhistory.Remark   = "会员:" + userinfo.UserName + " 浏览ID为" + GeneralID + "的文章扣除" + nodeinfo.ConsumePoint.ToString() + "点点券";
            mcomhistory.UserId   = buser.GetLogin().UserID;
            int result = bcomhistory.GetInsert(mcomhistory);                                            //新增收费记录信息

            buser.UpdateUserPoint(userinfo.UserPoint - nodeinfo.ConsumePoint, buser.GetLogin().UserID); //扣点券
        }
Ejemplo n.º 2
0
        /// <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;
            }
        }