コード例 #1
0
ファイル: Point.cs プロジェクト: yzbjack/LebiShop
        /// <summary>
        /// 更新会员积分
        /// </summary>
        /// <param name="user"></param>
        public static void UpdateUserPoint(Lebi_User user)
        {
            string  point = B_Lebi_User_Point.GetValue("sum(Point)", "User_id=" + user.id + " and Type_id_PointStatus=171");
            decimal Point = 0;

            Decimal.TryParse(point, out Point);
            Lebi_UserLevel userlev = B_Lebi_UserLevel.GetModel(user.UserLevel_id);

            if (userlev == null)
            {
                userlev = new Lebi_UserLevel();
            }
            List <Lebi_UserLevel> ls = B_Lebi_UserLevel.GetList("Grade > " + userlev.Grade + "", "Grade desc");

            //Lebi_UserLevel newlev=new Lebi_UserLevel();
            if (ls.Count > 0)
            {
                foreach (Lebi_UserLevel l in ls)
                {
                    if (Point >= l.Lpoint)
                    {
                        user.UserLevel_id = l.id;
                        //newlev = l;
                        break;
                    }
                }
            }
            //if (userlev.Grade < newlev.Grade)
            //{
            user.Point = Point;
            B_Lebi_User.Update(user);
            //}
        }
コード例 #2
0
ファイル: ShopControl.cs プロジェクト: zwkjgs/LebiShop
 protected ShopControl()
 {
     SYS = ShopCache.GetBaseConfig();
     //CurrentLanguage_ = B_Lebi_Language.GetList("Code='CN'", "").FirstOrDefault();
     //CurrentTheme_ = new Lebi_Theme();
     CurrentUser      = EX_User.CurrentUser();
     CurrentUserLevel = B_Lebi_UserLevel.GetModel("id=" + CurrentUser.UserLevel_id + "");
     if (CurrentUserLevel == null)
     {
         CurrentUserLevel = B_Lebi_UserLevel.GetList("", "Grade desc").FirstOrDefault();
         if (CurrentUserLevel == null)
         {
             CurrentUserLevel = new Lebi_UserLevel();
             Log.Add("会员分组有误", "User_id=" + CurrentUser.id.ToString());
         }
     }
     WebPath = RequestTool.GetConfigKey("WebPath");
     WebPath = WebPath == "/" ? "" : WebPath;
     if (WebPath != "")
     {
         int h = WebPath.Length;
         if (WebPath.LastIndexOf("/") == h - 1)
         {
             WebPath = WebPath.Remove(h - 1);
         }
     }
 }
コード例 #3
0
        private decimal GetAngentCommission3(Lebi_DT_Agent dt_agent, Lebi_User user)
        {
            if (user != null)
            {
                Lebi_UserLevel userlevel = B_Lebi_UserLevel.GetModel(user.UserLevel_id);
                if (userlevel != null)
                {
                    if (userlevel.IsUsedAgent == 0) //关闭推广佣金
                    {
                        return(0);
                    }
                }
                if (dt_agent != null)
                {
                    if (dt_agent.IsUsedAgent == 0)
                    {
                        return(0);
                    }
                    if (dt_agent.Angent3_Commission != -1)
                    {
                        return(dt_agent.Angent3_Commission);
                    }
                }
                Lebi_Agent_User agent_user = B_Lebi_Agent_User.GetModel("User_id = " + user.id + "");
                if (agent_user != null)
                {
                    if (agent_user.Angent3_Commission != -1)
                    {
                        return(agent_user.Angent3_Commission);
                    }
                }
                Lebi_Agent_UserLevel agent_userlevel = B_Lebi_Agent_UserLevel.GetModel("UserLevel_id = " + user.UserLevel_id + "");
                if (agent_userlevel != null)
                {
                    if (agent_userlevel.Angent3_Commission != -1)
                    {
                        return(agent_userlevel.Angent3_Commission);
                    }
                }
            }
            decimal yongjin = 0;//3级佣金比例

            decimal.TryParse(bc.Angent3_Commission, out yongjin);
            return(yongjin);
        }
コード例 #4
0
        public ShopPage()
        {
            pageindex = RequestTool.RequestInt("pageindex", 0);
            string servicepannelcon = SYS.ServicePanel;

            servicepannel     = B_ServicePanel.GetModel(servicepannelcon);
            CurrentUser_      = EX_User.CurrentUser();
            CurrentUserLevel_ = B_Lebi_UserLevel.GetModel("id=" + CurrentUser_.UserLevel_id + "");

            if (CurrentUserLevel_ == null)
            {
                CurrentUserLevel_ = B_Lebi_UserLevel.GetList("Grade=0", "Grade asc").FirstOrDefault();
                if (CurrentUserLevel_ == null)
                {
                    CurrentUserLevel_ = new Lebi_UserLevel();
                    Log.Add("会员分组有误", "User_id=" + CurrentUser_.id.ToString());
                }
            }
            DT_id     = GetDT();
            Currencys = B_Lebi_Currency.GetList("1=1", "Sort desc");
        }
コード例 #5
0
        /// <summary>
        /// 计算促销活动
        /// </summary>
        /// <param name="Products">商品信息</param>
        /// <param name="CurrentUser">购买者</param>
        /// <param name="shop">供应商,为空表示自营商品</param>
        /// <param name="basketshop"></param>
        public static BasketShop SetMoneyAndPoint(Lebi_User CurrentUser, Lebi_UserLevel CurrentUserLevel, BasketShop basketshop)
        {
            string  pids = "0";
            decimal Money_Product_begin = 0;
            int     Count  = 0;
            decimal Weight = 0; //订单总重量
            decimal Volume = 0; //订单总体积

            int     Money_Transport_One = 0;
            bool    IsTransportPriceOne = false;
            decimal Money_Market        = 0;
            decimal Money_Cut           = 0;
            decimal Money_Give          = 0;
            decimal Point_Free          = 0; //赠送积分
            decimal Point_Product       = 0; //商品获得的积分
            decimal Point          = 0;      //获得的积分总数
            decimal Point_Buy      = 0;      //积分换购所需积分
            decimal Money_Product  = 0;
            decimal Money_Property = 0;
            List <Lebi_User_Product>   FreeProducts   = new List <Lebi_User_Product>();
            List <Lebi_Promotion_Type> PromotionTypes = new List <Lebi_Promotion_Type>();

            if (CurrentUserLevel == null)
            {
                CurrentUserLevel = B_Lebi_UserLevel.GetModel(CurrentUser.UserLevel_id);
            }
            List <Lebi_User_Product> Products = basketshop.Products;
            Lebi_Supplier            shop     = basketshop.Shop;

            foreach (Lebi_User_Product pro in Products)
            {
                Lebi_Product product = B_Lebi_Product.GetModel(pro.Product_id);
                if (product == null)
                {
                    continue;
                }
                pro.Discount   = 100;
                pro.Pointagain = 1;
                //pro.Product_Price = EX_Product.ProductPrice(product, CurrentUserLevel,pro.count);//单价
                if (CurrentUserLevel.MoneyToPoint > 0)
                {
                    pro.Product_Point = pro.Product_Price * CurrentUserLevel.MoneyToPoint + pro.Product_Point;//单个产品可得的积分
                }
                pids += "," + pro.Product_id;
                Money_Product_begin = Math.Round(Money_Product_begin + pro.Product_Price * pro.count, 2);
                Count          = Count + pro.count;
                Money_Market   = Money_Market + EX_Product.ProductMarketPrice(product) * pro.count; //兼容分销  2018.3.8 by lebi.kingdge
                Money_Property = Money_Property + pro.ProPerty_Price * pro.count;
                Money_Product  = Money_Product + pro.Product_Price * pro.count;
                Weight         = Weight + product.Weight * pro.count;
                Volume         = Volume + product.VolumeH * product.VolumeL * product.VolumeW * pro.count;
                Point_Product  = Point_Product + Math.Round(pro.Product_Point * pro.count, 2);
                Point          = Point_Product + Point_Free;
                //320一般商品321限时抢购322团购323积分换购
                if (product.Type_id_ProductType == 323 && product.Time_Expired > System.DateTime.Now)
                {
                    Point_Buy = Point_Buy + product.Price_Sale * pro.count;
                }
            }

            List <Lebi_Promotion_Type> cps = Promotion.CurrentPromotionType();

            if (shop == null)
            {
                shop = new Lebi_Supplier();
            }
            foreach (Lebi_Promotion_Type cp in cps)
            {
                //检查是否商铺单独促销
                if (cp.Type_id_PromotionType == 421)
                {
                    if (shop.id > 0)
                    {
                        continue;
                    }
                }
                if (cp.Type_id_PromotionType == 422)
                {
                    if (shop.id != cp.Supplier_id)
                    {
                        continue;
                    }
                }
                //检查会员组别
                if (!("," + cp.UserLevel_ids + ",").Contains("," + CurrentUserLevel.id + ","))
                {
                    continue;
                }

                bool flag = true;
                string where = "1=1";
                List <Lebi_User_Product> sps = null;
                foreach (Lebi_Promotion p in Promotion.GetPromotion(cp.id))//只匹配一个条件
                {
                    flag = true;
                    if (p.Case804 == "")
                    {
                        p.Case804 = "0";
                    }
                    if (p.Case805 == "")
                    {
                        p.Case805 = "0";
                    }
                    //验证订单金额:801
                    if (p.IsCase801 == 1)
                    {
                        if (Money_Product_begin < p.Case801)
                        {
                            flag = false;
                            continue;
                        }
                    }
                    //验证订单商品数量:802

                    if (p.IsCase802 == 1)
                    {
                        if (Count < p.Case802)
                        {
                            flag = false;
                            continue;
                        }
                    }
                    //验证商品分类:804
                    if (p.IsCase804 == 1)
                    {
                        where += " and Pro_Type_id in (" + p.Case804 + ")";
                        if (B_Lebi_Product.Counts("id in (" + pids + ") and Pro_Type_id in (" + p.Case804 + ")") == 0)
                        {
                            flag = false;
                            continue;
                        }
                    }
                    //验证限制商品:805
                    if (p.IsCase805 == 1)
                    {
                        where += "and id in (" + p.Case805 + ")";
                        if (B_Lebi_Product.Counts("id in (" + pids + ") and id in (" + p.Case805 + ")") == 0)
                        {
                            flag = false;
                            continue;
                        }
                    }
                    //验证单品数量:803
                    if (p.IsCase803 == 1)
                    {
                        string tids = "0";
                        //取出购物车中,数量大于水平线的商品
                        foreach (Lebi_User_Product up in Products)
                        {
                            if (up.count >= p.Case803)
                            {
                                tids += "," + up.Product_id;
                            }
                        }
                        if (tids == "0")
                        {
                            flag = false;
                            continue;
                        }
                        where += " and id in (" + tids + ")";
                        if (B_Lebi_Product.Counts(where) == 0)
                        {
                            flag = false;
                            continue;
                        }
                    }
                    //验证订单内指定商品数量:806
                    if (p.IsCase806 == 1)
                    {
                        if (p.Case804 == "" && p.Case805 == "")//未设置限制条件的话,直接失败
                        {
                            flag = false;
                            continue;
                        }
                        int count = 0;
                        //计算购物车中包含商品的总数
                        foreach (Lebi_User_Product up in Products)
                        {
                            if (("," + p.Case804 + ",").Contains("," + up.Pro_Type_id + ",") || ("," + p.Case805 + ",").Contains("," + up.Product_id + ","))
                            {
                                count = count + up.count;
                            }
                        }
                        if (count < p.Case806)
                        {
                            flag = false;
                            continue;
                        }
                    }
                    //条件检查结束
                    if (flag)
                    {
                        //取出验证成功的指定商品
                        sps = B_Lebi_User_Product.GetList("User_id=" + CurrentUser.id + " and type_id_UserProductType=142 and Product_id in (select id from [Lebi_Product] where " + where + ")", "");

                        //计算定额运费901
                        if (p.IsRule901 == 1)
                        {
                            Money_Transport_One = p.Rule901;
                            IsTransportPriceOne = true;
                        }
                        //计算折扣902
                        if (p.IsRule902 == 1)
                        {
                            foreach (Lebi_User_Product pro in Products)
                            {
                                pro.Discount = pro.Discount * p.Rule902 / 100;
                            }
                        }
                        //计算指定商品折扣903
                        if (p.IsRule903 == 1)
                        {
                            if (sps != null)
                            {
                                foreach (Lebi_User_Product pro in Products)
                                {
                                    foreach (Lebi_User_Product sp in sps)
                                    {
                                        if (pro.id == sp.id)
                                        {
                                            pro.Discount = pro.Discount * p.Rule903 / 100;
                                        }
                                    }
                                }
                            }
                        }
                        //计算减免金额904
                        if (p.IsRule904 == 1)
                        {
                            Money_Cut = p.Rule904;
                        }
                        //计算返还金额905
                        if (p.IsRule905 == 1)
                        {
                            Money_Give = p.Rule905;
                        }
                        //计算赠送积分906
                        if (p.IsRule906 == 1)
                        {
                            Point_Free = p.Rule906;
                        }
                        //计算翻倍积分907
                        if (p.IsRule907 == 1)
                        {
                            foreach (Lebi_User_Product pro in Products)
                            {
                                pro.Pointagain = pro.Pointagain + p.Rule907;
                            }
                        }
                        //计算指定商品折扣翻倍积分908
                        if (p.IsRule908 == 1)
                        {
                            if (sps != null)
                            {
                                foreach (Lebi_User_Product pro in Products)
                                {
                                    foreach (Lebi_User_Product sp in sps)
                                    {
                                        if (pro.id == sp.id)
                                        {
                                            pro.Pointagain = pro.Pointagain + p.Rule908;
                                        }
                                    }
                                }
                            }
                        }
                        //赠送商品909
                        if (p.IsRule909 == 1)
                        {
                            //暂时不做
                        }
                        //赠送指定商品910
                        if (p.IsRule910 == 1)
                        {
                            if (sps != null)
                            {
                                foreach (Lebi_User_Product sp in sps)
                                {
                                    sp.count         = p.Rule910;
                                    sp.Product_Price = 0;
                                    sp.Product_Point = 0;
                                    sp.Pointagain    = 0;
                                    sp.Discount      = 0;
                                    FreeProducts.Add(sp);
                                }
                            }
                        }
                        //第N个指定商品打折
                        if (p.IsRule912 == 1 && p.IsCase803 == 1 && p.Case803 > 0)
                        {
                            foreach (Lebi_User_Product pro in Products)
                            {
                                foreach (Lebi_User_Product sp in sps)
                                {
                                    if (pro.id == sp.id)
                                    {
                                        if (pro.count > p.Case803)
                                        {
                                            int n = sp.count / p.Case803;
                                            Money_Cut = Money_Cut + pro.Product_Price * (100 - p.Rule912) / 100 * n;
                                        }
                                    }
                                }
                            }
                        }
                        //重新计算价格积分,

                        Money_Product = 0;
                        Point_Product = 0;
                        Point         = 0;
                        foreach (Lebi_User_Product pro in Products)
                        {
                            Money_Product += Math.Round(pro.Product_Price * pro.count * pro.Discount / 100, 2);
                            Point_Product += Math.Round(pro.Product_Point * pro.count * pro.Pointagain);
                            Point          = Point_Product + Point_Free;
                        }

                        break;//验证成功不再验证
                    }
                }
                if (flag)
                {
                    PromotionTypes.Add(cp);
                }
            }
            basketshop = new BasketShop();
            basketshop.FreeProducts        = FreeProducts;
            basketshop.Money_Cut           = Money_Cut;
            basketshop.Money_Give          = Money_Give;
            basketshop.Money_Market        = Money_Market;
            basketshop.Money_Product       = Money_Product;
            basketshop.Money_Product_begin = Money_Product_begin;
            basketshop.Money_Transport     = 0;
            basketshop.Point               = Point;
            basketshop.Point_Free          = Point_Free;
            basketshop.Point_Buy           = Point_Buy;
            basketshop.Point_Product       = Point_Product;
            basketshop.Products            = Products;
            basketshop.PromotionTypes      = PromotionTypes;
            basketshop.Shop                = shop;
            basketshop.Volume              = Volume;
            basketshop.Weight              = Weight;
            basketshop.IsTransportPriceOne = IsTransportPriceOne;
            basketshop.Money_Transport_One = Money_Transport_One;
            basketshop.Count               = Count;
            basketshop.Money_Property      = Money_Property;
            return(basketshop);
        }
コード例 #6
0
        public static Model Info(Lebi_User user)
        {
            BaseConfig bc     = ShopCache.GetBaseConfig();
            Model      m      = new Model();
            decimal    Money  = 0;
            string     money_ = Common.GetValue("select sum(Money) from Lebi_Agent_Money where User_id=" + user.id + " and Type_id_AgentMoneyStatus=382 and datediff(d,Time_add,'" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "')>" + bc.CommissionMoneyDays + "");

            decimal.TryParse(money_, out Money);
            int UserCount = 0;

            UserCount = B_Lebi_User.Counts("User_id_parent=" + user.id + "");
            int UserCountmonth = 0;

            UserCountmonth = B_Lebi_User.Counts("User_id_parent=" + user.id + " and (datediff(d,Time_Reg,'" + System.DateTime.Now.Date.AddDays(0 - System.DateTime.Now.Day + 1).ToString("yyyy-MM-dd") + "')<=0 and datediff(d,Time_Reg,'" + System.DateTime.Now + "')>=0)");
            int UserCountday = 0;

            UserCountday = B_Lebi_User.Counts("User_id_parent=" + user.id + " and (datediff(d,Time_Reg,'" + System.DateTime.Now.Date.ToString("yyyy-MM-dd") + "')<=0 and datediff(d,Time_Reg,'" + System.DateTime.Now + "')>=0)");
            decimal Commission1 = 0;
            decimal Commission2 = 0;
            decimal Commission3 = 0;

            decimal.TryParse(bc.Angent1_Commission, out Commission1);
            decimal.TryParse(bc.Angent2_Commission, out Commission2);
            decimal.TryParse(bc.Angent3_Commission, out Commission3);
            if (user.DT_id == 0)
            {
                Lebi_Agent_UserLevel agent_userlevel = B_Lebi_Agent_UserLevel.GetModel("UserLevel_id = " + user.UserLevel_id + "");
                if (agent_userlevel != null)
                {
                    if (agent_userlevel.Angent1_Commission != -1)
                    {
                        Commission1 = agent_userlevel.Angent1_Commission;
                    }
                    if (agent_userlevel.Angent2_Commission != -1)
                    {
                        Commission2 = agent_userlevel.Angent2_Commission;
                    }
                    if (agent_userlevel.Angent3_Commission != -3)
                    {
                        Commission3 = agent_userlevel.Angent3_Commission;
                    }
                }
                Lebi_Agent_User agent_user = B_Lebi_Agent_User.GetModel("User_id = " + user.id + "");
                if (agent_user != null)
                {
                    if (agent_user.Angent1_Commission != -1)
                    {
                        Commission1 = agent_user.Angent1_Commission;
                    }
                    if (agent_user.Angent2_Commission != -1)
                    {
                        Commission2 = agent_user.Angent2_Commission;
                    }
                    if (agent_user.Angent3_Commission != -1)
                    {
                        Commission3 = agent_user.Angent3_Commission;
                    }
                }
            }
            else
            {
                Lebi_DT_Agent dt_agent = B_Lebi_DT_Agent.GetModel("DT_id = " + user.DT_id + "");
                if (dt_agent != null)
                {
                    if (dt_agent.IsUsedAgent == 1)
                    {
                        Commission1 = dt_agent.Angent1_Commission;
                        Commission2 = dt_agent.Angent2_Commission;
                        Commission3 = dt_agent.Angent3_Commission;
                    }
                }
            }
            m.Money          = Money;
            m.UserCount      = UserCount;
            m.UserCountmonth = UserCountmonth;
            m.UserCountday   = UserCountday;
            m.Commission1    = Commission1;
            m.Commission2    = Commission2;
            m.Commission3    = Commission3;
            Lebi_UserLevel userlevel = B_Lebi_UserLevel.GetModel(user.UserLevel_id);

            if (userlevel != null)
            {
                if (userlevel.IsUsedAgent == 0) //关闭注册
                {
                    m.Commission1 = 0;
                    m.Commission2 = 0;
                    m.Commission3 = 0;
                }
            }
            return(m);
        }