/// <summary>
        /// 设置购物车商品数量
        /// </summary>
        /// <param name="user_id"></param>
        /// <param name="guid"></param>
        /// <param name="shoppingCartId"></param>
        /// <param name="num"></param>
        /// <returns></returns>
        public bool SetShoppingCartGoodsNum(int user_id, string guid, int shoppingCartId, int num)
        {
            var result = false;

            if (num > 0)
            {
                using (var holycaDb = new HolycaEntities())
                {
                    var shoppingCartEntity = holycaDb.Sale_ShoppingCart.First(s => s.intShopCartID == shoppingCartId);
                    if (shoppingCartEntity != null)
                    {
                        try
                        {
                            shoppingCartEntity.intBuyCount = num;
                            holycaDb.SaveChanges();
                            result = true;
                        }
                        catch (Exception)
                        {
                            holycaDb.Refresh(RefreshMode.ClientWins, shoppingCartEntity);
                            holycaDb.SaveChanges();
                            result = false;
                        }
                    }
                }
            }
            return(result);
        }
        /// <summary>
        /// 获取购物车总金额
        /// </summary>
        /// <param name="user_id"></param>
        /// <param name="guid"></param>
        /// <param name="channelId"> </param>
        /// <returns></returns>
        public decimal GetShoppingTotal(int user_id, string guid, int channelId)
        {
            decimal result = 0;

            using (var holycaDb = new HolycaEntities())
            {
                if (user_id > 0 || !string.IsNullOrEmpty(guid))
                {
                    var queryTxt = from a in holycaDb.Sale_ShoppingCart where a.intChannelID == channelId && a.intIsDelete == 0 select a;
                    if (user_id > 0)
                    {
                        queryTxt = queryTxt.Where(w => w.intUserID == user_id);
                    }
                    else if (!string.IsNullOrEmpty(guid))
                    {
                        queryTxt = queryTxt.Where(w => w.vchGuid == guid);
                    }
                    try
                    {
                        result = MCvHelper.To <decimal>(queryTxt.Sum(s => (decimal?)(s.intBuyCount * s.numSalePrice)), 0);
                    }
                    catch
                    {
                        result = -1;
                    }
                }
            }
            return(result);
        }
        /// <summary>
        /// 获取当前用户的购物车中的商品信息
        /// </summary>
        /// <param name="userId">用户ID</param>
        /// <param name="guid">用户全局变量</param>
        /// <param name="channelId">渠道ID</param>
        /// <returns></returns>
        public List <ShoppingCartEntity> GetShoppingCartProductInfosByUserIDGuidChannelID(int userId, string guid, int channelId)
        {
            var holycaDb = new HolycaEntities();
            List <ShoppingCartEntity> resultList = new List <ShoppingCartEntity>();
            ShoppingCartEntity        shoppingCartEntity;
            List <Sale_ShoppingCart>  retList = new List <Sale_ShoppingCart>();

            //用户登录了就用userId查询,用户未登录用Guid查
            if (userId > 0)
            {
                var queryTxt = from c in holycaDb.Sale_ShoppingCart
                               where c.intUserID == userId && c.intChannelID == channelId
                               select c;
                retList = queryTxt.ToList();
            }
            else
            {
                var queryTxt = from c in holycaDb.Sale_ShoppingCart
                               where c.vchGuid == guid && c.intChannelID == channelId
                               select c;

                retList = queryTxt.ToList();
            }
            if (retList != null && retList.Count > 0)
            {
                foreach (Sale_ShoppingCart ssc in retList)
                {
                    shoppingCartEntity = new ShoppingCartEntity();
                    MCvHelper.ObjectCopyTo(ssc, shoppingCartEntity);
                    resultList.Add(shoppingCartEntity);
                }
            }
            return(resultList);
        }
Beispiel #4
0
        /// <summary>
        /// 计算会员订单统计信息
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public MemberAccountInfo GetMemberOrderStatistics(int userId)
        {
            using (var db = new HolycaEntities())
            {
                var queryTxt = from a in db.Sale_Order
                               where a.intUserID == userId && a.intOrderState == 20
                               select new
                {
                    a.numReceAmount,
                    a.intTotalStars
                };
                var orderInfo = queryTxt.ToList();

                if (!orderInfo.Any())
                {
                    return(null);
                }

                return(new MemberAccountInfo
                {
                    TotalIntegral = orderInfo.Sum(p => p.intTotalStars),
                    OrdersTotal = orderInfo.Sum(p => p.numReceAmount),
                    OrderCount = orderInfo.Count()
                });
            }
        }
 /// <summary>
 /// 获取购物车商品数量
 /// </summary>
 /// <param name="token"> </param>
 /// <param name="channelId"></param>
 /// <param name="uid"></param>
 /// <param name="user_id"> </param>
 /// <returns></returns>
 public int GetShoppingCartGoodsNum(string token, int channelId, string uid, int user_id)
 {
     using (var holycaDb = new HolycaEntities())
     {
         var queryTxt = from c in holycaDb.Sale_ShoppingCart
                        where c.intChannelID == channelId &&
                        c.intIsDelete == 0
                        select c;
         if (user_id > 0)
         {
             queryTxt = queryTxt.Where(w => w.intUserID == user_id);
         }
         else if (!string.IsNullOrEmpty(token))
         {
             queryTxt = queryTxt.Where(w => w.vchGuid == token);
         }
         else
         {
             return(0);
         }
         try
         {
             var result = queryTxt.Sum(c => (int?)c.intBuyCount);
             return(MCvHelper.To <int>(result, 0));
         }
         catch
         {
             return(-1);
         }
     }
 }
Beispiel #6
0
 /// <summary>
 /// 更新订单支付状态为成功
 /// </summary>
 /// <param name="orderCode"></param>
 /// <param name="userCode"></param>
 public void UpdateOrderPayStatusSuccess(string orderCode, string userCode)
 {
     using (var db = new HolycaEntities())
     {
         var result = new ObjectParameter("intResult", DbType.Int32);
         db.Up_Synchro_OrderPayState(orderCode, 0, 2, result);
     }
 }
Beispiel #7
0
 /// <summary>
 /// 同步订单信息到 BBHome
 /// </summary>
 /// <param name="orderCode"></param>
 /// <returns></returns>
 public bool SyncOrderInfoToBBHome(string orderCode)
 {
     using (var db = new HolycaEntities())
     {
         var objectParameter = new ObjectParameter("result", DbType.Int32);
         db.Up_Syn_ToBBHome_Now(orderCode, objectParameter);
         return(MCvHelper.To <int>(objectParameter.Value, -1) != -1);
     }
 }
Beispiel #8
0
 /// <summary>
 /// 添加会员收货地址
 /// </summary>
 /// <param name="addressEntity"></param>
 /// <returns></returns>
 public int AddMemberAddress(User_Consignee_Address addressEntity)
 {
     using (var holycaDb = new HolycaEntities())
     {
         holycaDb.AddToUser_Consignee_Address(addressEntity);
         holycaDb.SaveChanges();
         return(addressEntity.intAddressID);
     }
 }
Beispiel #9
0
 /// <summary>
 /// 获取用户收货地址总数
 /// </summary>
 /// <param name="userId"></param>
 /// <returns></returns>
 public int GetMemberAddressCount(int userId)
 {
     using (var holycaDb = new HolycaEntities())
     {
         var queryTxt = from a in holycaDb.User_Consignee_Address
                        where a.intUserID == userId
                        select a;
         return(queryTxt.Count());
     }
 }
Beispiel #10
0
 /// <summary>
 /// 获取用户收货地址信息
 /// </summary>
 /// <param name="addressId"></param>
 /// <returns></returns>
 public User_Consignee_Address GetMemberAddressInfo(int addressId)
 {
     using (var holycaDb = new HolycaEntities())
     {
         var queryTxt = from a in holycaDb.User_Consignee_Address
                        where a.intAddressID == addressId
                        select a;
         return(queryTxt.FirstOrDefault());
     }
 }
Beispiel #11
0
 /// <summary>
 /// 获取配送方式
 /// </summary>
 /// <param name="deliveryId"></param>
 /// <returns></returns>
 public Base_Deliver GetDeliverInfo(int deliveryId)
 {
     using (var db = new HolycaEntities())
     {
         var queryTxt = from a in db.Base_Deliver
                        where a.intDeliverID == deliveryId
                        select a;
         return(queryTxt.FirstOrDefault());
     }
 }
Beispiel #12
0
 /// <summary>
 /// 获取支付信息
 /// </summary>
 /// <param name="payId"></param>
 /// <returns></returns>
 public Base_Pay_Type GetPaymentInfo(int payId)
 {
     using (var db = new HolycaEntities())
     {
         var queryTxt = from a in db.Base_Pay_Type
                        where a.intPayID == payId && a.intIsEnable == 1
                        select a;
         return(queryTxt.First());
     }
 }
Beispiel #13
0
 /// <summary>
 /// 查询订单配送信息
 /// </summary>
 /// <param name="orderCode"></param>
 /// <returns></returns>
 public Sale_Order_Deliver GetOrderDeliveryinfo(string orderCode)
 {
     using (var db = new HolycaEntities())
     {
         var queryTxt = from a in db.Sale_Order_Deliver
                        where a.vchOrderCode == orderCode
                        select a;
         return(queryTxt.FirstOrDefault());
     }
 }
Beispiel #14
0
        /// <summary>
        /// 检测商品库存
        /// </summary>
        /// <param name="productId">商品ID</param>
        /// <param name="stockQuantity"> </param>
        /// <returns></returns>
        public bool CheckProductStockByProductID(int productId, int stockQuantity)
        {
            var holycaDb = new HolycaEntities();

            var queryTxt = from c in holycaDb.Pdt_Stock
                           where c.intProductID == productId
                           select c.intStockQty;

            return(queryTxt.FirstOrDefault() >= stockQuantity);
        }
Beispiel #15
0
        /// <summary>
        /// 获取商品其他信息
        /// </summary>
        /// <param name="gid"></param>
        /// <returns></returns>
        public Pdt_Other_Info GetGoodsOtherInfo(int gid)
        {
            var holycaDb = new HolycaEntities();

            var queryTxt = from c in holycaDb.Pdt_Other_Info
                           where c.intProductID == gid
                           select c;

            return(queryTxt.FirstOrDefault());
        }
Beispiel #16
0
        /// <summary>
        /// 获取商品图片列表
        /// </summary>
        /// <param name="gid"></param>
        /// <returns></returns>
        public List <Pdt_Pic> GetGoodsPicList(int gid)
        {
            var holycaDb = new HolycaEntities();

            var queryTxt = from c in holycaDb.Pdt_Pic
                           where c.intProductID == gid && c.intIsEnable == 1
                           orderby c.vchPicType ascending
                           select c;

            return(queryTxt.ToList());
        }
Beispiel #17
0
 /// <summary>
 /// 查询商品分类列表
 /// </summary>
 /// <returns></returns>
 public List <Web_Pdt_Type> GetGoodsCategoryList()
 {
     using (var db = new HolycaEntities())
     {
         var queryTxt = from a in db.Web_Pdt_Type
                        where a.intIsVisible == 1
                        orderby a.intSortOrder descending
                        select a;
         return(queryTxt.ToList());
     }
 }
Beispiel #18
0
        /// <summary>
        /// 获取商品信息
        /// </summary>
        /// <param name="clusterId"></param>
        /// <param name="channelId"></param>
        /// <param name="gid"></param>
        /// <returns></returns>
        public Vi_Web_Pdt_Detail GetGoodsInfo(int clusterId, int channelId, int gid)
        {
            channelId = 102;
            var holycaDb = new HolycaEntities();

            var queryTxt = from a in holycaDb.Vi_Web_Pdt_Detail
                           where a.intProductID == gid && a.intChannelID == channelId && a.intHerdID == clusterId
                           select a;

            return(queryTxt.FirstOrDefault());
        }
Beispiel #19
0
 /// <summary>
 /// 获取支付列表
 /// </summary>
 /// <param name="sType"></param>
 /// <param name="paygroupId"></param>
 /// <returns></returns>
 public List <Base_Pay_Type> GetPayList(SystemType sType, int paygroupId)
 {
     using (var db = new HolycaEntities())
     {
         var queryTxt = from a in db.Base_Pay_Type
                        where a.intPayGroup == paygroupId && a.intIsEnable == 1
                        orderby a.intSortID descending
                        select a;
         return(queryTxt.ToList());
     }
 }
Beispiel #20
0
 /// <summary>
 /// 获取用户默认收货地址信息
 /// </summary>
 /// <returns></returns>
 public User_Consignee_Address GetMemberDefaultAddressInfo(int userId)
 {
     using (var holycaDb = new HolycaEntities())
     {
         var queryTxt = from a in holycaDb.User_Consignee_Address
                        where a.intUserID == userId
                        orderby a.intIsDefaultAddr descending
                        select a;
         return(queryTxt.FirstOrDefault());
     }
 }
        /// <summary>
        /// 删除购物车中的商品信息
        /// </summary>
        /// <param name="shoppingCartId">购物车ID</param>
        /// <returns></returns>
        public bool DeleteShoppingCartByProductIdUserID(int shoppingCartId)
        {
            var holycaDb = new HolycaEntities();

            Sale_ShoppingCart queryTxt = holycaDb.Sale_ShoppingCart.Where(c => c.intShopCartID == shoppingCartId).FirstOrDefault();

            holycaDb.DeleteObject(queryTxt);

            holycaDb.SaveChanges();

            return(true);
        }
Beispiel #22
0
 /// <summary>
 /// 获取全部地区数据
 /// </summary>
 /// <param name="regionType">地区类型</param>
 /// <returns></returns>
 public List <Base_Region> GetAllRegionList(int regionType)
 {
     using (var holycaDb = new HolycaEntities())
     {
         IQueryable <Base_Region> queryTxt = from a in holycaDb.Base_Region
                                             orderby a.intRegionID ascending
                                             select a;
         if (regionType > 0)
         {
             queryTxt = queryTxt.Where(c => c.intRegionType == regionType);
         }
         return(queryTxt.ToList());
     }
 }
Beispiel #23
0
        /// <summary>
        /// 获取地区数据
        /// </summary>
        /// <param name="parentId"></param>
        /// <returns></returns>
        public List <Base_Region> GetRegionList(int parentId)
        {
            if (parentId < 0)
            {
                parentId = 0;
            }
            var holycaDb = new HolycaEntities();
            var queryTxt = from a in holycaDb.Base_Region
                           where a.intFRegionID == parentId
                           orderby a.intRegionID ascending
                           select a;

            return(queryTxt.ToList());
        }
Beispiel #24
0
 /// <summary>
 /// 计算运费
 /// </summary>
 /// <param name="weight"></param>
 /// <param name="deliveId"></param>
 /// <param name="cityId"></param>
 /// <returns></returns>
 public decimal GetCarriage(long weight, int deliveId, int cityId)
 {
     using (var db = new HolycaEntities())
     {
         decimal result        = 0;
         var     objectParams  = new System.Data.Objects.ObjectParameter("intcarriage", DbType.Int32);
         var     carriage      = db.Up_ShopCart_GetCarriage((int)weight, deliveId, cityId, objectParams);
         var     upOutPutValue = MCvHelper.To <int>(objectParams.Value, 0);
         if (upOutPutValue > 0)
         {
             result = upOutPutValue / 100;
         }
         return(result);
     }
 }
 /// <summary>
 /// 清除购物车数据
 /// </summary>
 /// <param name="userId"></param>
 public void ClearShoppingCart(int userId)
 {
     using (var db = new HolycaEntities())
     {
         var queryTxt = from a in db.Sale_ShoppingCart
                        where a.intUserID == userId
                        select a;
         var shoppingCartList = queryTxt.ToList();
         foreach (var saleShoppingCart in shoppingCartList)
         {
             db.Sale_ShoppingCart.DeleteObject(saleShoppingCart);
         }
         db.SaveChanges();
     }
 }
Beispiel #26
0
        /// <summary>
        /// 获取配送方式列
        /// </summary>
        /// <param name="channelId"></param>
        /// <param name="regionId"></param>
        /// <param name="payGroupId"></param>
        /// <returns></returns>
        public List <Base_Deliver> GetDeliverList(int channelId, int regionId, int payGroupId)
        {
            var holycaDb = new HolycaEntities();
            var queryTxt = from s in holycaDb.Base_Deliver
                           where (
                from a in holycaDb.Base_Deliver_Pay
                join b in holycaDb.Base_Deliver_Area on a.intDeliverID equals b.intDeliverID
                join c in holycaDb.Base_Pay_Type on a.intPayID equals c.intPayID
                where b.intIsEnable == 1 && b.intRegionID == regionId &&
                c.intIsEnable == 1 && c.intPayGroup == payGroupId
                select a.intDeliverID).Contains(s.intDeliverID)
                           select s;
            var result = queryTxt.ToList();

            return(result);
        }
Beispiel #27
0
 /// <summary>
 /// 检查收货地址信息是否存在
 /// </summary>
 /// <param name="addressEntity"></param>
 /// <returns></returns>
 public bool CheckAddresExists(User_Consignee_Address addressEntity)
 {
     using (var holycaDb = new HolycaEntities())
     {
         var queryTxt = from a in holycaDb.User_Consignee_Address
                        where a.intUserID == addressEntity.intUserID &&
                        a.intStateID == addressEntity.intStateID &&
                        a.intCityID == addressEntity.intCityID &&
                        a.intCountyID == addressEntity.intCountyID &&
                        a.vchDetailAddr == addressEntity.vchDetailAddr &&
                        a.vchPostCode == addressEntity.vchPostCode &&
                        a.vchConsignee == addressEntity.vchConsignee
                        select a;
         return(queryTxt.Count() > 0);
     }
 }
Beispiel #28
0
        /// <summary>
        /// 检查商品销售区域
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="cityId"></param>
        /// <param name="channelId"></param>
        /// <returns></returns>
        public List <int> CheckGoodsSaleArea(int userId, int cityId, int channelId)
        {
            List <int> result;

            using (var db = new HolycaEntities())
            {
                var queryTxt = from a in db.Sale_ShoppingCart
                               join b in db.Base_SaleArea_Product on a.intProductID equals b.intProductID
                               join c in db.Base_Region on b.intAreaID equals c.intAreaID
                               where a.intUserID == userId && c.intRegionID == cityId && b.intState == 1 && a.intChannelID == channelId
                               select a.intShopCartID;
                result = queryTxt.Distinct().ToList();
            }

            return(result);
        }
        /// <summary>
        /// 增加购物车商品信息
        /// </summary>
        /// <param name="shoppingCartEntity">购物车信息实体</param>
        /// <returns></returns>
        public bool AddShoppingCartProductInfo(ShoppingCartEntity shoppingCartEntity)
        {
            var holycaDb = new HolycaEntities();
            Sale_ShoppingCart sale_ShoppingCart = new Sale_ShoppingCart();

            MCvHelper.ObjectCopyTo(shoppingCartEntity, sale_ShoppingCart);
            try
            {
                holycaDb.Sale_ShoppingCart.AddObject(sale_ShoppingCart);
                holycaDb.SaveChanges();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Beispiel #30
0
        /// <summary>
        /// 获取支付方式
        /// </summary>
        /// <param name="channelId"></param>
        /// <param name="regionId"> </param>
        /// <returns>list</returns>
        public List <ItemPay> GetPaymentList(int channelId, int regionId)
        {
            var result = new List <ItemPay>();

            var holycaDb = new HolycaEntities();
            var queryTxt = from a in holycaDb.Base_Pay_Type
                           join b in holycaDb.Base_Deliver_Pay on a.intPayID equals b.intPayID
                           join c in holycaDb.Base_Deliver_Area on b.intDeliverID equals c.intDeliverID
                           where c.intRegionID == regionId
                           group a by a.intPayGroup into g
                           select g;

            var payList = queryTxt.ToList();

            payList.ForEach(item =>
            {
                if (item.Key == 0)
                {
                    result.Add(new ItemPay {
                        payid = 0, payname = "货到付款", paytype = 0, remark = "(送货上门后再付款,支持现金或POS机刷卡)"
                    });
                }
                else if (item.Key == 1)
                {
                    if (channelId != (int)SystemType.MobileWebSite)
                    {
                        result.Add(new ItemPay {
                            payid = 1, payname = "在线支付", paytype = 1, remark = "(支持绝大数银行借记卡及部分银行信息卡)"
                        });
                    }
                }
                else if (item.Key == 3)
                {
                    if (channelId == (int)SystemType.MobileWebSite)
                    {
                        result.Add(new ItemPay {
                            payid = 3, payname = "支付宝(手机)支付", paytype = 3, remark = "(支持支付宝)"
                        });
                    }
                }
            });

            result.Sort((l1, l2) => l2.payid.CompareTo(l1.payid));

            return(result);
        }