Пример #1
0
        /// <summary>
        /// 加入购物车  SetShoppingCar
        /// </summary>
        /// <param name="row"></param>
        /// UserId              用户编码【必填】
        /// ResourcesID         商品编码【必填】
        /// BussId              商家编码【必填】
        /// Number              数量 【可不填,默认为1】
        /// PropertysId         属性规格【格式:属性ID:规格ID,属性ID:规格ID,属性ID:规格ID】
        /// 返回:
        ///     false:错误信息
        ///     true:操作成功
        /// <returns></returns>
        private string SetShoppingCar(DataRow row)
        {
            if (!row.Table.Columns.Contains("UserId") || string.IsNullOrEmpty(row["UserId"].ToString()))
            {
                return(JSONHelper.FromString(false, "用户编码不能为空"));
            }
            if (!row.Table.Columns.Contains("ResourcesID") || string.IsNullOrEmpty(row["ResourcesID"].ToString()))
            {
                return(JSONHelper.FromString(false, "商品编码不能为空"));
            }
            if (!row.Table.Columns.Contains("BussId") || string.IsNullOrEmpty(row["BussId"].ToString()))
            {
                return(JSONHelper.FromString(false, "商家编码不能为空"));
            }
            //if (!row.Table.Columns.Contains("PropertysId") || string.IsNullOrEmpty(row["PropertysId"].ToString()))
            //{
            //    return JSONHelper.FromString(false, "规格编码不能为空");
            //}

            // 2017年9月23日16:47:32,谭洋
            int?CorpId = null;

            if (row.Table.Columns.Contains("CorpId") && !string.IsNullOrEmpty(row["CorpId"].ToString()))
            {
                CorpId = AppGlobal.StrToInt(row["CorpId"].ToString());
            }

            string UserId      = row["UserId"].ToString();
            string BussId      = row["BussId"].ToString();
            string ResourcesID = row["ResourcesID"].ToString();
            int    Number      = 1;//加入购物车数量,默认1
            //该参数值格式为:  属性ID:规格ID,属性ID:规格ID,属性ID:规格ID
            string PropertysId = row["PropertysId"].ToString();
            //获取属性查询条件
            string PropertysIdWhere = BussinessCommon.GetShoppingPropertys(PropertysId);

            if (row.Table.Columns.Contains("Number") && AppGlobal.StrToInt(row["Number"].ToString()) > 0)
            {
                Number = AppGlobal.StrToInt(row["Number"].ToString());
            }

            IDbConnection con = new SqlConnection(PubConstant.GetConnectionString("BusinessContionString"));
            string        str = "";

            try
            {
                List <Tb_ShoppingCar> Car = new List <Tb_ShoppingCar>();
                //查询购物车中是否有该商品
                Car = BussinessCommon.GetShoppingCheck(UserId, ResourcesID);
                Tb_Resources_Details Resources = BussinessCommon.GetResourcesModel(ResourcesID);
                if (Resources == null || string.IsNullOrEmpty(Resources.ResourcesID))
                {
                    return(JSONHelper.FromString(false, "该商品不存在"));
                }

                if (Car != null && Car.Count > 0)//如果已存在此商品,
                {
                    int j = 0;
                    int z = 0;
                    foreach (Tb_ShoppingCar item in Car)//循环此人该购物车中的这种商品
                    {
                        z++;
                        DataSet ds = null;
                        if (PropertysIdWhere != "")
                        {
                            //查询属性明细中已有的属性
                            ds = BussinessCommon.GetShoppingDetailedCheck(item.Id, PropertysIdWhere);
                        }

                        //如果属性存在,新增
                        if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                        {
                            if (item.Number + Number > Resources.ResourcesCount)//库存检测
                            {
                                return(JSONHelper.FromString(false, "该商品库存不足"));
                            }
                            else//新增
                            {
                                SetShopping(CorpId, UserId, ResourcesID, BussId, Number, PropertysId, con);
                            }
                            j++;
                            break;
                        }
                        //属性不存在,则添加属性
                        if (z == Car.Count)
                        {
                            if (item.Number + Number > Resources.ResourcesCount)//库存检测
                            {
                                return(JSONHelper.FromString(false, "该商品库存不足"));
                            }
                            item.Number = item.Number + Number;
                            con.Update <Tb_ShoppingCar>(item);
                            //添加属性
                            SetShoppingCarDetailed(BussId, PropertysId, con, item);
                        }
                    }
                }
                else
                {
                    if (Number > Resources.ResourcesCount)//库存检测
                    {
                        return(JSONHelper.FromString(false, "该商品库存不足"));
                    }
                    else//新增
                    {
                        SetShopping(CorpId, UserId, ResourcesID, BussId, Number, PropertysId, con);
                    }
                }
            }
            catch (Exception ex)
            {
                str = ex.Message;
            }

            if (str != "")
            {
                return(JSONHelper.FromString(false, str));
            }
            else
            {
                return(JSONHelper.FromString(true, "操作成功"));
            }
        }