Exemple #1
0
        private static void UpdateUserAccount(OrderInfo order)
        {
            MemberInfo member = new MemberDao().GetMember(order.UserId);

            if (member != null)
            {
                MemberDao       dao   = new MemberDao();
                PointDetailInfo point = new PointDetailInfo
                {
                    OrderId   = order.OrderId,
                    UserId    = member.UserId,
                    TradeDate = DateTime.Now,
                    TradeType = PointTradeType.Bounty,
                    Increased = new int?(order.Points),
                    Points    = order.Points + member.Points
                };
                if ((point.Points > 0x7fffffff) || (point.Points < 0))
                {
                    point.Points = 0x7fffffff;
                }
                PointDetailDao dao2 = new PointDetailDao();
                dao2.AddPointDetail(point);
                member.Expenditure += order.GetTotal();
                member.OrderNumber++;
                dao.Update(member);
                int historyPoint = dao2.GetHistoryPoint(member.UserId);
                List <MemberGradeInfo> memberGrades = new MemberGradeDao().GetMemberGrades() as List <MemberGradeInfo>;
                MemberGradeInfo        memberGrade  = MemberHelper.GetMemberGrade(member.GradeId);
                if ((memberGrade == null) || (memberGrade.Points <= historyPoint))
                {
                    foreach (MemberGradeInfo info4 in from item in memberGrades
                             orderby item.Points descending
                             select item)
                    {
                        if (member.GradeId == info4.GradeId)
                        {
                            break;
                        }
                        if (info4.Points <= historyPoint)
                        {
                            member.GradeId = info4.GradeId;
                            dao.Update(member);
                            break;
                        }
                    }
                }
            }
        }
Exemple #2
0
        public static void ReturnNeedPointOnClosed(string orderId, int needPoint, MemberInfo member)
        {
            PointDetailInfo pointDetailInfo = new PointDetailInfo();

            pointDetailInfo.OrderId   = orderId;
            pointDetailInfo.UserId    = member.UserId;
            pointDetailInfo.TradeDate = DateTime.Now;
            pointDetailInfo.TradeType = PointTradeType.Refund;
            pointDetailInfo.Remark    = "订单 " + orderId + " 关闭,退回礼品兑换的积分";
            pointDetailInfo.Increased = needPoint;
            pointDetailInfo.Points    = member.Points + pointDetailInfo.Increased;
            if (pointDetailInfo.Increased > 0)
            {
                PointDetailDao pointDetailDao = new PointDetailDao();
                pointDetailDao.Add(pointDetailInfo, null);
                member.Points = pointDetailInfo.Points;
                MemberDao memberDao    = new MemberDao();
                int       historyPoint = pointDetailDao.GetHistoryPoint(member.UserId, null);
                memberDao.ChangeMemberGrade(member.UserId, member.GradeId, historyPoint, null);
            }
        }
Exemple #3
0
        private static bool AddPoints(MemberInfo member, int points, PointTradeType type)
        {
            PointDetailDao  pointDetailDao  = new PointDetailDao();
            PointDetailInfo pointDetailInfo = new PointDetailInfo();

            pointDetailInfo.UserId    = member.UserId;
            pointDetailInfo.TradeDate = DateTime.Now;
            pointDetailInfo.TradeType = type;
            pointDetailInfo.Increased = points;
            pointDetailInfo.Points    = points + member.Points;
            if (pointDetailInfo.Points > 2147483647)
            {
                pointDetailInfo.Points = 2147483647;
            }
            if (pointDetailInfo.Points < 0)
            {
                pointDetailInfo.Points = 0;
            }
            pointDetailInfo.Remark = "评论获得积分";
            member.Points          = pointDetailInfo.Points;
            return(pointDetailDao.Add(pointDetailInfo, null) > 0);
        }
Exemple #4
0
 private static void ReturnPointOnClosed(string orderId, int?deductionPoints, MemberInfo member)
 {
     if (deductionPoints.HasValue && deductionPoints > 0)
     {
         PointDetailInfo pointDetailInfo = new PointDetailInfo();
         pointDetailInfo.OrderId   = orderId;
         pointDetailInfo.UserId    = member.UserId;
         pointDetailInfo.TradeDate = DateTime.Now;
         pointDetailInfo.TradeType = PointTradeType.Refund;
         pointDetailInfo.Remark    = "订单 " + orderId + " 删除,还原抵扣的积分";
         pointDetailInfo.Increased = (deductionPoints.HasValue ? deductionPoints.Value : 0);
         pointDetailInfo.Points    = member.Points + pointDetailInfo.Increased;
         if (pointDetailInfo.Increased > 0)
         {
             PointDetailDao pointDetailDao = new PointDetailDao();
             pointDetailDao.Add(pointDetailInfo, null);
             member.Points = pointDetailInfo.Points;
             MemberDao memberDao    = new MemberDao();
             int       historyPoint = pointDetailDao.GetHistoryPoint(member.UserId, null);
             memberDao.ChangeMemberGrade(member.UserId, member.GradeId, historyPoint, null);
         }
     }
 }
        //点睛教育需求:返佣同时得积分
        public static bool UpdateDistributorPoints(OrderInfo order)
        {
            bool flag = false;

            //代理商的积分
            DistributorsInfo currentDistributor    = GetDistributorInfo(order.ReferralUserId);                 //当前1级分销商分销信息
            DistributorsInfo currentAgent          = GetDistributorInfo(currentDistributor.AgentPath.ToInt()); //当前代理商分销信息
            MemberInfo       distributorLevel1Info = MemberProcessor.GetMember(currentDistributor.UserId);     //当前1级分销商用户信息
            MemberInfo       agentInfo             = MemberProcessor.GetMember(currentAgent.UserId);           //当前代理商用户信息

            //获取一级返佣和代理商返佣
            decimal commision = 0m;

            foreach (LineItemInfo info in order.LineItems.Values)
            {
                commision += info.ItemsCommission;
            }

            //一级分销商可得的积分
            int pointLevel1        = Convert.ToInt32(commision / 20);
            int agentCommisionRate = Convert.ToInt32(DistributorGradeBrower.GetAgentGradeInfo(currentAgent.AgentGradeId).FirstCommissionRise);//当前代理商的分佣百分比
            //当前代理商可得的积分
            int pointAgent = Convert.ToInt32((order.GetTotal() / 100 * agentCommisionRate) / 20);

            //判断该用户是否关注了公众号,如果没有关注,则积分给代理商.
            if (!(distributorLevel1Info != null && WxSubscribe(distributorLevel1Info.OpenId)))
            {
                pointAgent = pointAgent + pointLevel1;
            }


            //给1级分销商增加积分
            MemberDao dao4 = new MemberDao();

            distributorLevel1Info.Points = distributorLevel1Info.Points + pointLevel1;
            PointDetailInfo pointDistributorLevel1 = new PointDetailInfo
            {
                OrderId   = order.OrderId,
                UserId    = order.ReferralUserId,
                TradeDate = DateTime.Now,
                TradeType = PointTradeType.Bounty,
                Increased = pointLevel1,
                Points    = distributorLevel1Info.Points
            };

            if ((pointDistributorLevel1.Points > 0x7fffffff) || (pointDistributorLevel1.Points < 0))
            {
                pointDistributorLevel1.Points = 0x7fffffff;
            }
            PointDetailDao dao5 = new PointDetailDao();

            dao5.AddPointDetail(pointDistributorLevel1);
            dao4.Update(distributorLevel1Info);

            //给代理商增加积分

            MemberDao dao6 = new MemberDao();

            agentInfo.Points = agentInfo.Points + pointAgent;
            PointDetailInfo pointAgentInfo = new PointDetailInfo
            {
                OrderId   = order.OrderId,
                UserId    = order.ReferralUserId,
                TradeDate = DateTime.Now,
                TradeType = PointTradeType.Bounty,
                Increased = pointAgent,
                Points    = agentInfo.Points
            };

            if ((pointAgentInfo.Points > 0x7fffffff) || (pointAgentInfo.Points < 0))
            {
                pointAgentInfo.Points = 0x7fffffff;
            }
            PointDetailDao dao7 = new PointDetailDao();

            dao5.AddPointDetail(pointAgentInfo);
            dao4.Update(agentInfo);

            return(flag);
        }
Exemple #6
0
        public static bool UserPayOrder(OrderInfo order)
        {
            OrderDao dao = new OrderDao();

            order.OrderStatus = OrderStatus.BuyerAlreadyPaid;
            order.PayDate     = new DateTime?(DateTime.Now);
            bool   flag = dao.UpdateOrder(order, null);
            string str  = "";

            if (flag)
            {
                dao.UpdatePayOrderStock(order.OrderId);
                foreach (LineItemInfo info in order.LineItems.Values)
                {
                    ProductDao dao2 = new ProductDao();
                    str = str + "'" + info.SkuId + "',";
                    ProductInfo productDetails = dao2.GetProductDetails(info.ProductId);
                    productDetails.SaleCounts     += info.Quantity;
                    productDetails.ShowSaleCounts += info.Quantity;
                    dao2.UpdateProduct(productDetails, null);
                }
                if (!string.IsNullOrEmpty(str))
                {
                    dao.UpdateItemsStatus(order.OrderId, 2, str.Substring(0, str.Length - 1));
                }
                if (!string.IsNullOrEmpty(order.ActivitiesId))
                {
                    new ActivitiesDao().UpdateActivitiesTakeEffect(order.ActivitiesId);
                }
                MemberInfo member = GetMember(order.UserId);
                if (member == null)
                {
                    return(flag);
                }
                MemberDao       dao4  = new MemberDao();
                PointDetailInfo point = new PointDetailInfo {
                    OrderId   = order.OrderId,
                    UserId    = member.UserId,
                    TradeDate = DateTime.Now,
                    TradeType = PointTradeType.Bounty,
                    Increased = new int?(order.Points),
                    Points    = order.Points + member.Points
                };
                if ((point.Points > 0x7fffffff) || (point.Points < 0))
                {
                    point.Points = 0x7fffffff;
                }
                PointDetailDao dao5 = new PointDetailDao();
                dao5.AddPointDetail(point);
                member.Expenditure += order.GetTotal();
                member.OrderNumber++;
                dao4.Update(member);
                Messenger.OrderPayment(member, order.OrderId, order.GetTotal());
                int             historyPoint = dao5.GetHistoryPoint(member.UserId);
                MemberGradeInfo memberGrade  = GetMemberGrade(member.GradeId);
                if ((memberGrade != null) && (memberGrade.Points > historyPoint))
                {
                    return(flag);
                }
                List <MemberGradeInfo> memberGrades = new MemberGradeDao().GetMemberGrades() as List <MemberGradeInfo>;
                foreach (MemberGradeInfo info6 in from item in memberGrades
                         orderby item.Points descending
                         select item)
                {
                    if (member.GradeId == info6.GradeId)
                    {
                        return(flag);
                    }
                    if (info6.Points <= historyPoint)
                    {
                        member.GradeId = info6.GradeId;
                        dao4.Update(member);
                        return(flag);
                    }
                }
            }
            return(flag);
        }
        protected void btnSubmitPoint_Click(object sender, EventArgs e)
        {
            ManagerHelper.CheckPrivilege(Privilege.UpdateMemberPoint);
            MemberInfo user = Users.GetUser(this.userId);

            if (user == null)
            {
                base.GotoResourceNotFound();
            }
            else
            {
                int num  = 0;
                int num2 = 0;
                if (this.radAdd.Checked)
                {
                    if (string.IsNullOrEmpty(this.txtAddPoints.Text) || !int.TryParse(this.txtAddPoints.Text.Trim(), out num))
                    {
                        this.ShowMsg("要增加的积分数不能为空且为正数", false);
                        return;
                    }
                    if (num <= 0)
                    {
                        this.ShowMsg("请输入大于0的积分数", false);
                        return;
                    }
                }
                else if (this.RadMinus.Checked)
                {
                    if (string.IsNullOrEmpty(this.txtMinusPoints.Text) || !int.TryParse(this.txtMinusPoints.Text.Trim(), out num2))
                    {
                        this.ShowMsg("要减少的积分数不能为空且为正数", false);
                        return;
                    }
                    if (num2 <= 0)
                    {
                        this.ShowMsg("请输入大于0的积分数", false);
                        return;
                    }
                    if (num2 > user.Points)
                    {
                        this.ShowMsg("会员【" + user.UserName + "】的积分不足,请调整要减去的积分", false);
                        this.Page.ClientScript.RegisterStartupScript(base.GetType(), "msg", "<script>onRadioClick(2);</script>");
                        return;
                    }
                }
                PointDetailInfo pointDetailInfo = new PointDetailInfo();
                pointDetailInfo.OrderId   = "";
                pointDetailInfo.UserId    = this.userId;
                pointDetailInfo.TradeDate = DateTime.Now;
                pointDetailInfo.TradeType = PointTradeType.AdministratorUpdate;
                if (this.radAdd.Checked)
                {
                    pointDetailInfo.Increased = num;
                    pointDetailInfo.Points    = num + user.Points;
                }
                else if (this.RadMinus.Checked)
                {
                    pointDetailInfo.Reduced = num2;
                    pointDetailInfo.Points  = user.Points - num2;
                }
                if (pointDetailInfo.Points > 2147483647)
                {
                    pointDetailInfo.Points = 2147483647;
                }
                if (pointDetailInfo.Points < 0)
                {
                    pointDetailInfo.Points = 0;
                }
                pointDetailInfo.Remark = "操作员:" + HiContext.Current.Manager.UserName + " &nbsp;&nbsp;&nbsp;&nbsp;" + this.txtRemark.Text.Trim();
                PointDetailDao pointDetailDao = new PointDetailDao();
                if (pointDetailDao.Add(pointDetailInfo, null) > 0)
                {
                    user.Points = pointDetailInfo.Points;
                    MemberDao memberDao    = new MemberDao();
                    int       historyPoint = pointDetailDao.GetHistoryPoint(this.userId, null);
                    memberDao.ChangeMemberGrade(this.userId, user.Points, historyPoint, null);
                    Users.ClearUserCache(this.userId, user.SessionId);
                    base.CloseWindow(null);
                }
                else
                {
                    this.ShowMsg("操作失败", false);
                }
            }
        }
 protected void btnSubmitBatchPoint_Click(object sender, EventArgs e)
 {
     ManagerHelper.CheckPrivilege(Privilege.UpdateMemberPoint);
     if (string.IsNullOrEmpty(this.userIds))
     {
         base.GotoResourceNotFound();
     }
     else
     {
         Hashtable hashtable = new Hashtable();
         if (this.grdSelectedUsers.Items.Count > 0)
         {
             int num  = 0;
             int num2 = 0;
             if (this.radAdd.Checked)
             {
                 if (string.IsNullOrEmpty(this.txtAddPoints.Text) || !int.TryParse(this.txtAddPoints.Text.Trim(), out num))
                 {
                     this.ShowMsg("要增加的积分数不能为空且为正数", false);
                     return;
                 }
                 if (num <= 0)
                 {
                     this.ShowMsg("请输入大于0的积分数", false);
                     return;
                 }
             }
             else if (this.RadMinus.Checked)
             {
                 if (string.IsNullOrEmpty(this.txtMinusPoints.Text) || !int.TryParse(this.txtMinusPoints.Text.Trim(), out num2))
                 {
                     this.ShowMsg("要减少的积分数不能为空且为正数", false);
                     return;
                 }
                 if (num2 <= 0)
                 {
                     this.ShowMsg("请输入大于0的积分数", false);
                     return;
                 }
                 string[] array = this.userIds.Split(',');
                 for (int i = 0; i < array.Length; i++)
                 {
                     MemberInfo user = Users.GetUser(int.Parse(array[i]));
                     if (num2 > user.Points)
                     {
                         this.ShowMsg("会员【" + user.UserName + "】的积分不足,请调整要减去的积分", false);
                         this.Page.ClientScript.RegisterStartupScript(base.GetType(), "msg", "<script>onRadioClick(2);</script>");
                         return;
                     }
                 }
             }
             PointDetailInfo pointDetailInfo = new PointDetailInfo();
             pointDetailInfo.OrderId   = "";
             pointDetailInfo.TradeType = PointTradeType.AdministratorUpdate;
             if (this.radAdd.Checked)
             {
                 pointDetailInfo.Increased = num;
                 pointDetailInfo.Reduced   = 0;
             }
             else if (this.RadMinus.Checked)
             {
                 pointDetailInfo.Reduced   = num2;
                 pointDetailInfo.Increased = 0;
             }
             foreach (RepeaterItem item in this.grdSelectedUsers.Items)
             {
                 TextBox     textBox     = item.FindControl("txtListRemark") as TextBox;
                 HiddenField hiddenField = item.FindControl("hidUserId") as HiddenField;
                 string      text        = textBox.Text;
                 if (string.IsNullOrEmpty(textBox.Text))
                 {
                     text = this.txtRemark.Text;
                 }
                 text = "操作员:" + HiContext.Current.Manager.UserName + " &nbsp;&nbsp;&nbsp;&nbsp;" + text;
                 hashtable.Add(hiddenField.Value, text);
             }
             PointDetailDao pointDetailDao = new PointDetailDao();
             if (pointDetailDao.BatchEditPoints(pointDetailInfo, this.userIds, hashtable))
             {
                 string[] array2 = this.userIds.Split(',');
                 string[] array3 = array2;
                 foreach (string s in array3)
                 {
                     MemberDao memberDao = new MemberDao();
                     int       userId    = 0;
                     if (int.TryParse(s, out userId))
                     {
                         MemberInfo user2 = Users.GetUser(userId);
                         if (this.radAdd.Checked)
                         {
                             user2.Points += num;
                         }
                         else if (this.RadMinus.Checked)
                         {
                             int num3 = user2.Points - num2;
                             user2.Points = ((num3 >= 0) ? num3 : 0);
                         }
                         int historyPoint = pointDetailDao.GetHistoryPoint(int.Parse(s), null);
                         memberDao.ChangeMemberGrade(userId, user2.Points, historyPoint, null);
                         if (user2 != null)
                         {
                             Users.ClearUserCache(userId, user2.SessionId);
                         }
                     }
                 }
                 base.CloseWindow(null);
             }
             else
             {
                 this.ShowMsg("批量操作失败", false);
             }
         }
     }
 }
Exemple #9
0
        public static bool UserPayOrder(OrderInfo order)
        {
            OrderDao dao = new OrderDao();

            order.OrderStatus = OrderStatus.BuyerAlreadyPaid;
            order.PayDate     = new DateTime?(DateTime.Now);
            bool flag = dao.UpdateOrder(order, null);

            if (flag)
            {
                dao.UpdatePayOrderStock(order.OrderId);
                foreach (LineItemInfo info in order.LineItems.Values)
                {
                    ProductDao  dao2           = new ProductDao();
                    ProductInfo productDetails = dao2.GetProductDetails(info.ProductId);
                    productDetails.SaleCounts     += info.Quantity;
                    productDetails.ShowSaleCounts += info.Quantity;
                    dao2.UpdateProduct(productDetails, null);
                }
                MemberInfo member = GetMember(order.UserId);
                if (member == null)
                {
                    return(flag);
                }
                MemberDao       dao3  = new MemberDao();
                PointDetailInfo point = new PointDetailInfo {
                    OrderId   = order.OrderId,
                    UserId    = member.UserId,
                    TradeDate = DateTime.Now,
                    TradeType = PointTradeType.Bounty,
                    Increased = new int?(order.Points),
                    Points    = order.Points + member.Points
                };
                if ((point.Points > 0x7fffffff) || (point.Points < 0))
                {
                    point.Points = 0x7fffffff;
                }
                PointDetailDao dao4 = new PointDetailDao();
                dao4.AddPointDetail(point);
                member.Expenditure += order.GetTotal();
                member.OrderNumber++;
                dao3.Update(member);
                Messenger.OrderPayment(member, order.OrderId, order.GetTotal());
                int historyPoint = dao4.GetHistoryPoint(member.UserId);
                List <MemberGradeInfo> memberGrades = new MemberGradeDao().GetMemberGrades() as List <MemberGradeInfo>;
                foreach (MemberGradeInfo info5 in from item in memberGrades
                         orderby item.Points descending
                         select item)
                {
                    if (member.GradeId == info5.GradeId)
                    {
                        return(flag);
                    }
                    if (info5.Points <= historyPoint)
                    {
                        member.GradeId = info5.GradeId;
                        dao3.Update(member);
                        return(flag);
                    }
                }
            }
            return(flag);
        }