예제 #1
0
 /// <summary>
 /// 得到一个对象实体
 /// </summary>
 public lgk.Model.tb_OrderDetail DataRowToModel(DataRow row)
 {
     lgk.Model.tb_OrderDetail model = new lgk.Model.tb_OrderDetail();
     if (row != null)
     {
         if (row["ID"] != null && row["ID"].ToString() != "")
         {
             model.ID = long.Parse(row["ID"].ToString());
         }
         if (row["OrderCode"] != null)
         {
             model.OrderCode = row["OrderCode"].ToString();
         }
         if (row["ProcudeID"] != null && row["ProcudeID"].ToString() != "")
         {
             model.ProcudeID = long.Parse(row["ProcudeID"].ToString());
         }
         if (row["ProcudeName"] != null)
         {
             model.ProcudeName = row["ProcudeName"].ToString();
         }
         if (row["Price"] != null && row["Price"].ToString() != "")
         {
             model.Price = decimal.Parse(row["Price"].ToString());
         }
         if (row["PV"] != null && row["PV"].ToString() != "")
         {
             model.PV = int.Parse(row["PV"].ToString());
         }
         if (row["OrderSum"] != null && row["OrderSum"].ToString() != "")
         {
             model.OrderSum = int.Parse(row["OrderSum"].ToString());
         }
         if (row["OrderTotal"] != null && row["OrderTotal"].ToString() != "")
         {
             model.OrderTotal = decimal.Parse(row["OrderTotal"].ToString());
         }
         if (row["PVTotal"] != null && row["PVTotal"].ToString() != "")
         {
             model.PVTotal = int.Parse(row["PVTotal"].ToString());
         }
         if (row["OrderDate"] != null && row["OrderDate"].ToString() != "")
         {
             model.OrderDate = DateTime.Parse(row["OrderDate"].ToString());
         }
         if (row["gColor"] != null)
         {
             model.gColor = row["gColor"].ToString();
         }
         if (row["gSize"] != null)
         {
             model.gSize = row["gSize"].ToString();
         }
     }
     return(model);
 }
예제 #2
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(lgk.Model.tb_OrderDetail model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update tb_OrderDetail set ");
            strSql.Append("OrderCode=@OrderCode,");
            strSql.Append("ProcudeID=@ProcudeID,");
            strSql.Append("ProcudeName=@ProcudeName,");
            strSql.Append("Price=@Price,");
            strSql.Append("PV=@PV,");
            strSql.Append("OrderSum=@OrderSum,");
            strSql.Append("OrderTotal=@OrderTotal,");
            strSql.Append("PVTotal=@PVTotal,");
            strSql.Append("OrderDate=@OrderDate,");
            strSql.Append("gColor=@gColor,");
            strSql.Append("gSize=@gSize");
            strSql.Append(" where ID=@ID");
            SqlParameter[] parameters =
            {
                new SqlParameter("@OrderCode",   SqlDbType.VarChar,    50),
                new SqlParameter("@ProcudeID",   SqlDbType.BigInt,      8),
                new SqlParameter("@ProcudeName", SqlDbType.VarChar,   150),
                new SqlParameter("@Price",       SqlDbType.Decimal,     9),
                new SqlParameter("@PV",          SqlDbType.Int,         4),
                new SqlParameter("@OrderSum",    SqlDbType.Int,         4),
                new SqlParameter("@OrderTotal",  SqlDbType.Decimal,     9),
                new SqlParameter("@PVTotal",     SqlDbType.Int,         4),
                new SqlParameter("@OrderDate",   SqlDbType.DateTime),
                new SqlParameter("@gColor",      SqlDbType.VarChar,    20),
                new SqlParameter("@gSize",       SqlDbType.VarChar,    20),
                new SqlParameter("@ID",          SqlDbType.BigInt, 8)
            };
            parameters[0].Value  = model.OrderCode;
            parameters[1].Value  = model.ProcudeID;
            parameters[2].Value  = model.ProcudeName;
            parameters[3].Value  = model.Price;
            parameters[4].Value  = model.PV;
            parameters[5].Value  = model.OrderSum;
            parameters[6].Value  = model.OrderTotal;
            parameters[7].Value  = model.PVTotal;
            parameters[8].Value  = model.OrderDate;
            parameters[9].Value  = model.gColor;
            parameters[10].Value = model.gSize;
            parameters[11].Value = model.ID;

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #3
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(lgk.Model.tb_OrderDetail model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into tb_OrderDetail(");
            strSql.Append("OrderCode,ProcudeID,ProcudeName,Price,PV,OrderSum,OrderTotal,PVTotal,OrderDate,gColor,gSize)");
            strSql.Append(" values (");
            strSql.Append("@OrderCode,@ProcudeID,@ProcudeName,@Price,@PV,@OrderSum,@OrderTotal,@PVTotal,@OrderDate,@gColor,@gSize)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters =
            {
                new SqlParameter("@OrderCode",   SqlDbType.VarChar,   50),
                new SqlParameter("@ProcudeID",   SqlDbType.Int,        4),
                new SqlParameter("@ProcudeName", SqlDbType.VarChar,   50),
                new SqlParameter("@Price",       SqlDbType.Decimal,    9),
                new SqlParameter("@PV",          SqlDbType.Int,        4),
                new SqlParameter("@OrderSum",    SqlDbType.Int,        4),
                new SqlParameter("@OrderTotal",  SqlDbType.Decimal,    9),
                new SqlParameter("@PVTotal",     SqlDbType.Int,        4),
                new SqlParameter("@OrderDate",   SqlDbType.DateTime),
                new SqlParameter("@gColor",      SqlDbType.VarChar),
                new SqlParameter("@gSize",       SqlDbType.VarChar)
            };
            parameters[0].Value  = model.OrderCode;
            parameters[1].Value  = model.ProcudeID;
            parameters[2].Value  = model.ProcudeName;
            parameters[3].Value  = model.Price;
            parameters[4].Value  = model.PV;
            parameters[5].Value  = model.OrderSum;
            parameters[6].Value  = model.OrderTotal;
            parameters[7].Value  = model.PVTotal;
            parameters[8].Value  = model.OrderDate;
            parameters[9].Value  = model.gColor;
            parameters[10].Value = model.gSize;

            object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);

            if (obj == null)
            {
                return(0);
            }
            else
            {
                return(Convert.ToInt32(obj));
            }
        }
예제 #4
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public lgk.Model.tb_OrderDetail GetModel(string strWhere)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  top 1 ID,OrderCode,ProcudeID,ProcudeName,Price,PV,OrderSum,OrderTotal,PVTotal,OrderDate,gColor,gSize from tb_OrderDetail ");
            if (!string.IsNullOrEmpty(strWhere.Trim()))
            {
                strSql.Append(" where " + strWhere);
            }

            lgk.Model.tb_OrderDetail model = new lgk.Model.tb_OrderDetail();
            DataSet ds = DbHelperSQL.Query(strSql.ToString());

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
예제 #5
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public lgk.Model.tb_OrderDetail GetModel(long ID)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  top 1 ID,OrderCode,ProcudeID,ProcudeName,Price,PV,OrderSum,OrderTotal,PVTotal,OrderDate,gColor,gSize from tb_OrderDetail ");
            strSql.Append(" where ID=@ID");
            SqlParameter[] parameters =
            {
                new SqlParameter("@ID", SqlDbType.BigInt)
            };
            parameters[0].Value = ID;

            lgk.Model.tb_OrderDetail model = new lgk.Model.tb_OrderDetail();
            DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
예제 #6
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public lgk.Model.tb_OrderDetail GetModel(int ID)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  top 1 ID,OrderCode,ProcudeID,ProcudeName,Price,PV,OrderSum,OrderTotal,PVTotal,OrderDate from tb_OrderDetail ");
            strSql.Append(" where ID=@ID");
            SqlParameter[] parameters =
            {
                new SqlParameter("@ID", SqlDbType.Int, 4)
            };
            parameters[0].Value = ID;

            lgk.Model.tb_OrderDetail model = new lgk.Model.tb_OrderDetail();
            DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                if (ds.Tables[0].Rows[0]["ID"] != null && ds.Tables[0].Rows[0]["ID"].ToString() != "")
                {
                    model.ID = int.Parse(ds.Tables[0].Rows[0]["ID"].ToString());
                }
                if (ds.Tables[0].Rows[0]["OrderCode"] != null && ds.Tables[0].Rows[0]["OrderCode"].ToString() != "")
                {
                    model.OrderCode = ds.Tables[0].Rows[0]["OrderCode"].ToString();
                }
                if (ds.Tables[0].Rows[0]["ProcudeID"] != null && ds.Tables[0].Rows[0]["ProcudeID"].ToString() != "")
                {
                    model.ProcudeID = int.Parse(ds.Tables[0].Rows[0]["ProcudeID"].ToString());
                }
                if (ds.Tables[0].Rows[0]["ProcudeName"] != null && ds.Tables[0].Rows[0]["ProcudeName"].ToString() != "")
                {
                    model.ProcudeName = ds.Tables[0].Rows[0]["ProcudeName"].ToString();
                }
                if (ds.Tables[0].Rows[0]["Price"] != null && ds.Tables[0].Rows[0]["Price"].ToString() != "")
                {
                    model.Price = decimal.Parse(ds.Tables[0].Rows[0]["Price"].ToString());
                }
                if (ds.Tables[0].Rows[0]["PV"] != null && ds.Tables[0].Rows[0]["PV"].ToString() != "")
                {
                    model.PV = int.Parse(ds.Tables[0].Rows[0]["PV"].ToString());
                }
                if (ds.Tables[0].Rows[0]["OrderSum"] != null && ds.Tables[0].Rows[0]["OrderSum"].ToString() != "")
                {
                    model.OrderSum = int.Parse(ds.Tables[0].Rows[0]["OrderSum"].ToString());
                }
                if (ds.Tables[0].Rows[0]["OrderTotal"] != null && ds.Tables[0].Rows[0]["OrderTotal"].ToString() != "")
                {
                    model.OrderTotal = decimal.Parse(ds.Tables[0].Rows[0]["OrderTotal"].ToString());
                }
                if (ds.Tables[0].Rows[0]["PVTotal"] != null && ds.Tables[0].Rows[0]["PVTotal"].ToString() != "")
                {
                    model.PVTotal = int.Parse(ds.Tables[0].Rows[0]["PVTotal"].ToString());
                }
                if (ds.Tables[0].Rows[0]["OrderDate"] != null && ds.Tables[0].Rows[0]["OrderDate"].ToString() != "")
                {
                    model.OrderDate = DateTime.Parse(ds.Tables[0].Rows[0]["OrderDate"].ToString());
                }
                return(model);
            }
            else
            {
                return(null);
            }
        }
예제 #7
0
        public bool GoodsCartPay(long userid, int paytype, long addrid, string strcid, string aa, out string msg)
        {
            string[] arr = strcid.Split(',');
            LogHelper.SaveLog(strcid, "GoodsCartPay");

            if (arr.Length <= 0)
            {
                msg = "传递的ID无数据";
                return(false);
            }

            Random   rand       = new Random();
            string   orderCode  = DateTime.Now.ToString("yyyyMMddhhmmss") + rand.Next(10000, 99999); //订单编号
            string   goodsname  = string.Format("订单号{0},", orderCode);
            decimal  totalMoney = 0;
            int      orderSum   = 0;
            int      insert     = 0;
            DateTime dtime      = DateTime.Now;


            if (!userBLL.Exists(userid))
            {
                msg = "用户不存在";
                return(false);
            }

            if (paytype != 1)
            {
                msg = "支付类型错误";
                return(false);
            }

            lgk.Model.tb_Address addrModel = addressBLL.GetModel(addrid);
            if (addrModel == null)
            {
                msg = "请选择收货地址";
                return(false);
            }

            IList <lgk.Model.tb_goodsCar> listCar = new List <lgk.Model.tb_goodsCar>();

            #region 验证商品
            string errmsg = "";
            foreach (var strID in arr)
            {
                long id = 0;
                long.TryParse(strID, out id);
                lgk.Model.tb_goodsCar carModel = goodsCarBLL.GetModel(id);
                if (carModel != null)
                {
                    lgk.Model.tb_goods goodsModel = goodsBLL.GetModelAndOneName(carModel.GoodsID); //根据发布商品编号找到充值账号密码
                    if (goodsModel.StateType == 0)                                                 //判断是否 审核通过 0未审核
                    {
                        errmsg = "商品" + goodsModel.GoodsName + "审核未通过,请删除该商品!";
                        insert = 0;
                        break;
                    }
                    else if (goodsModel.Goods003 == "1") //判断是否 删除 1已经删除
                    {
                        errmsg = "商品" + goodsModel.GoodsName + "已被删除,请删除该商品!";
                        insert = 0;
                        break;
                    }
                    else if (goodsModel.Goods001 == 0) //判断是否 0下架
                    {
                        errmsg = "商品" + goodsModel.GoodsName + "已经下架,请删除该商品!";
                        insert = 0;
                        break;
                    }
                    else if (goodsModel.Goods002 < carModel.Goods006) //判断库存量
                    {
                        errmsg = "商品" + goodsModel.GoodsName + "库存不足,请重新修改数量!";
                        insert = 0;
                        break;
                    }
                    else if (carModel.BuyUser != userid) //判断库存量
                    {
                        errmsg = "用户不匹配,请刷新购物车再提交!";
                        insert = 0;
                        break;
                    }
                    listCar.Add(carModel);
                    insert += 1;
                }
                else
                {
                    msg = "购物出为空";
                    LogHelper.SaveLog(id.ToString() + "," + errmsg, "GoodsCartPay");
                    return(false);
                }
            }

            if (insert == 0)
            {
                msg = errmsg;
                return(false);
            }
            #endregion

            //总金额
            totalMoney += listCar.Sum(s => s.TotalMoney);
            lgk.Model.tb_user userModel = userBLL.GetModel(userid);
            //支付方式
            string[] aw = aa.Split('-');

            //if (!userBLL.Exists(long.Parse(aw[2])))
            //{
            //    msg = "运营中心不存在";
            //    return false;
            //}
            string sql = "select OrderID from tb_Order where UserID=" + userModel.UserID;
            var    mo  = userBLL.getData_Chaxun(sql, "").Tables[0];

            if (aw[0] == "1")
            {
                //if (mo.Rows.Count > 0)
                //{
                //    msg = "请选择复投产品";
                //    return false;
                //}
                if (aw[1] == "2")
                {
                    if (userModel.StockMoney < totalMoney / 2 || userModel.StockAccount < totalMoney / 2)
                    {
                        msg = "报单积分、电子积分余额不足";
                        return(false);
                    }
                }
                else
                {
                    if (userModel.StockAccount < totalMoney)
                    {
                        msg = "报单积分余额不足";
                        return(false);
                    }
                }
            }
            else if (aw[0] == "2")
            {
                if (userModel.AllBonusAccount < totalMoney)
                {
                    msg = "种子积分余额不足";
                    return(false);
                }
            }
            else if (aw[0] == "3")
            {
                if (userModel.StockMoney < totalMoney / 2 || userModel.StockAccount < totalMoney / 2)
                {
                    msg = "报单积分、电子积分余额不足";
                    return(false);
                }
            }
            else if (aw[0] == "4")
            {
                if (userModel.BonusAccount < totalMoney)
                {
                    msg = "消费积分余额不足";
                    return(false);
                }
            }

            #region 订单处理
            //总订单
            lgk.Model.tb_Order orderModel = new lgk.Model.tb_Order();        //订单
            orderModel.UserID     = userid;                                  //用户
            orderModel.OrderCode  = orderCode;                               //订单编号
            orderModel.OrderSum   = orderSum;                                //订单数--
            orderModel.OrderTotal = totalMoney;                              //购买总金
            orderModel.PVTotal    = totalMoney * getParamAmount("hongbao1"); //
            orderModel.OrderDate  = dtime;
            orderModel.IsSend     = 1;
            orderModel.PayMethod  = 1;                    //--
            orderModel.Order5     = "";                   //运营中心UserID
            orderModel.UserAddr   = addrModel.Address;    //发货地址
            orderModel.Order6     = addrModel.PhoneNum;   //收货电话
            orderModel.Order7     = addrModel.MemberName; //收货姓名
            orderModel.OrderType  = int.Parse(aw[0]);     //1:
            int fenrun = 0;
            foreach (var carModel in listCar)
            {
                lgk.Model.tb_goods       goodsModel       = goodsBLL.GetModelAndOneName(carModel.GoodsID); //根据发布商品编号找到充值账号密码
                lgk.Model.tb_goods       goodsModel1      = goodsBLL.GetModel(carModel.GoodsID);           //插入订单详细表
                lgk.Model.tb_OrderDetail orderDetailModel = new lgk.Model.tb_OrderDetail();
                orderDetailModel.OrderCode   = orderCode;
                orderDetailModel.Price       = carModel.RealityPrice;                     //单价--
                orderDetailModel.OrderSum    = carModel.Goods006;                         //数量--
                orderDetailModel.OrderTotal  = carModel.Goods006 * carModel.RealityPrice; //订单金额
                orderDetailModel.PV          = 0;                                         //
                orderDetailModel.PVTotal     = 0;
                orderDetailModel.ProcudeID   = carModel.GoodsID;                          //产品编号--
                orderDetailModel.ProcudeName = carModel.GoodsName;                        //名称--
                orderDetailModel.gColor      = carModel.gColor;
                orderDetailModel.gSize       = carModel.gSize;
                orderDetailModel.OrderDate   = dtime;                          //
                orderDetailBLL.Add(orderDetailModel);                          //加入订单详情

                fenrun += goodsModel1.IsHave * carModel.Goods006;              //计算分润单位
                //修改库存
                goodsModel.Goods002 = goodsModel.Goods002 - carModel.Goods006; //修改库存
                goodsModel.SaleNum += carModel.Goods006;
                goodsBLL.Update(goodsModel);

                //从购物篮减掉
                goodsCarBLL.Delete(carModel.ID);

                //商品名称 流水表记录用
                goodsname += orderDetailModel.ProcudeName + "|";

                orderSum += carModel.Goods006;
            }
            orderModel.BaodanOrder = fenrun;
            //if (aw[3]=="1")//自提
            //{

            //    orderModel.Order3 = "自提";
            //    orderModel.Order4 = "自提";
            //}
            #endregion
            //if (aw[1]=="2")//种子积分
            //{
            //    orderModel.Order3 = "种子积分购买无发货信息!";
            //    orderModel.Order4= "种子积分购买无发货信息!";
            //    orderModel.IsSend = 3;
            //    long iOrderID = orderBLL.Add(orderModel);//加入订单表
            //}
            //else
            //{
            long iOrderID = orderBLL.Add(orderModel);//加入订单表
            //}



            #region 写入到明细表
            if (aw[0] == "1")
            {
                if (aw[1] == "2")
                {
                    lgk.Model.tb_journal joModel = new lgk.Model.tb_journal();
                    joModel.UserID      = userModel.UserID;
                    joModel.Remark      = goodsname;                                   //名称--;
                    joModel.InAmount    = 0;                                           //收入0;
                    joModel.OutAmount   = totalMoney / 2;                              //购买价(支出金币)
                    joModel.JournalDate = DateTime.Now;
                    joModel.Journal01   = userModel.UserID;                            //
                    joModel.Journal02   = 99;                                          //消费
                    joModel.Journal03   = orderCode;                                   //订单编号
                    if (aw[0] == "2")                                                  //50%电子积分+50%消费积分
                    {
                        joModel.JournalType   = 2;                                     //币种
                        joModel.BalanceAmount = userModel.StockMoney - totalMoney / 2; //余额
                    }
                    journalBLL.Add(joModel);

                    ///---------------------------
                    joModel.UserID      = userModel.UserID;
                    joModel.Remark      = goodsname;                                     //名称--;
                    joModel.InAmount    = 0;                                             //收入0;
                    joModel.OutAmount   = totalMoney / 2;                                //购买价(支出金币)
                    joModel.JournalDate = DateTime.Now;
                    joModel.Journal01   = userModel.UserID;                              //
                    joModel.Journal02   = 99;                                            //消费
                    joModel.Journal03   = orderCode;                                     //订单编号
                    if (aw[0] == "2")                                                    //50%电子积分+50%消费积分
                    {
                        joModel.JournalType   = 5;                                       //币种
                        joModel.BalanceAmount = userModel.StockAccount - totalMoney / 2; //余额
                    }
                    journalBLL.Add(joModel);
                    UpdateAccount("StockMoney", userModel.UserID, totalMoney / 2, 0);
                    UpdateAccount("StockAccount", userModel.UserID, totalMoney / 2, 0);
                }
                else
                {
                    lgk.Model.tb_journal joModel = new lgk.Model.tb_journal();
                    joModel.UserID        = userModel.UserID;
                    joModel.Remark        = goodsname;                           //名称--;
                    joModel.InAmount      = 0;                                   //收入0;
                    joModel.OutAmount     = totalMoney;                          //购买价(支出金币)
                    joModel.JournalDate   = DateTime.Now;
                    joModel.Journal01     = userModel.UserID;                    //
                    joModel.Journal02     = 99;                                  //消费
                    joModel.Journal03     = orderCode;                           //订单编号
                    joModel.JournalType   = 5;                                   //币种
                    joModel.BalanceAmount = userModel.StockAccount - totalMoney; //余额
                    journalBLL.Add(joModel);
                    UpdateAccount("StockAccount", userModel.UserID, totalMoney, 0);
                }
            }
            else if (aw[0] == "2")
            {
                lgk.Model.tb_journal joModel = new lgk.Model.tb_journal();
                joModel.UserID        = userModel.UserID;
                joModel.Remark        = goodsname;                              //名称--;
                joModel.InAmount      = 0;                                      //收入0;
                joModel.OutAmount     = totalMoney;                             //购买价(支出金币)
                joModel.JournalDate   = DateTime.Now;
                joModel.Journal01     = userModel.UserID;                       //
                joModel.Journal02     = 99;                                     //消费
                joModel.Journal03     = orderCode;                              //订单编号
                joModel.JournalType   = 4;                                      //币种
                joModel.BalanceAmount = userModel.AllBonusAccount - totalMoney; //余额
                UpdateAccount("AllBonusAccount", userModel.UserID, totalMoney, 0);
                journalBLL.Add(joModel);
            }
            else if (aw[0] == "3")
            {
                lgk.Model.tb_journal joModel = new lgk.Model.tb_journal();
                joModel.UserID        = userModel.UserID;
                joModel.Remark        = goodsname;                             //名称--;
                joModel.InAmount      = 0;                                     //收入0;
                joModel.OutAmount     = totalMoney / 2;                        //购买价(支出金币)
                joModel.JournalDate   = DateTime.Now;
                joModel.Journal01     = userModel.UserID;                      //
                joModel.Journal02     = 99;                                    //消费
                joModel.Journal03     = orderCode;                             //订单编号
                joModel.JournalType   = 2;                                     //币种子电子积分
                joModel.BalanceAmount = userModel.StockMoney - totalMoney / 2; //余额
                journalBLL.Add(joModel);

                ///---------------------------报单积分扣钱
                joModel.UserID        = userModel.UserID;
                joModel.Remark        = goodsname;                               //名称--;
                joModel.InAmount      = 0;                                       //收入0;
                joModel.OutAmount     = totalMoney / 2;                          //购买价(支出金币)
                joModel.JournalDate   = DateTime.Now;
                joModel.Journal01     = userModel.UserID;                        //
                joModel.Journal02     = 99;                                      //消费
                joModel.Journal03     = orderCode;                               //订单编号
                joModel.JournalType   = 5;                                       //币种
                joModel.BalanceAmount = userModel.StockAccount - totalMoney / 2; //余额
                journalBLL.Add(joModel);
                UpdateAccount("StockMoney", userModel.UserID, totalMoney / 2, 0);
                UpdateAccount("StockAccount", userModel.UserID, totalMoney / 2, 0);
            }
            else if (aw[0] == "4")
            {
                lgk.Model.tb_journal joModel = new lgk.Model.tb_journal();
                joModel.UserID        = userModel.UserID;
                joModel.Remark        = goodsname;                           //名称--;
                joModel.InAmount      = 0;                                   //收入0;
                joModel.OutAmount     = totalMoney;                          //购买价(支出金币)
                joModel.JournalDate   = DateTime.Now;
                joModel.Journal01     = userModel.UserID;                    //
                joModel.Journal02     = 99;                                  //消费
                joModel.Journal03     = orderCode;                           //订单编号
                joModel.JournalType   = 3;                                   //币种
                joModel.BalanceAmount = userModel.BonusAccount - totalMoney; //余额
                UpdateAccount("BonusAccount", userModel.UserID, totalMoney, 0);
                journalBLL.Add(joModel);
            }
            else
            {
                msg = "支付失败,支付方式不正确!";
                return(false);
            }
            //---激活会员
            lgk.Model.tb_user user = userBLL.GetModel(orderModel.UserID);
            if (user.IsOpend != 2)
            {
                string   a  = Luodian(orderModel.UserID);
                string[] ID = a.Split('-');//ID[0]=UserID ID[1]=Location ID[2]=ParentID ID[3]=ParentCode  ID[4]=Layer
                var      l  = userBLL.GetModel(int.Parse(ID[2]));
                //user.RecommendPath = model_1.RecommendPath + "-" + user.UserID.ToString();

                user.ParentID   = 0;  //父节点ID
                user.ParentCode = ""; //父节点編號
                user.UserPath   = "";
                user.Layer      = 0;  //属于多少层
                user.Location   = 0;

                user.ParentID   = int.Parse(ID[2]); //父节点ID
                user.ParentCode = ID[3];            //父节点編號
                user.UserPath   = l.UserPath + "-" + user.UserID;
                user.Layer      = int.Parse(ID[4]); //属于多少层
                user.Location   = int.Parse(ID[1]);
                user.OpenTime   = DateTime.Now;
                user.IsOpend    = 2;
                userBLL.Update(user);
            }
            //开关报单
            MySQL(string.Format(" exec proc_Kaiguan " + orderModel.UserID + "," + orderModel.OrderCode + ""));

            //报单开关
            //---激活会员
            if (aw[0] != "4")
            {
                MySQL(string.Format(" exec proc_YejiUp " + orderModel.UserID + "," + orderModel.OrderTotal + ""));//加业绩
                MySQL(string.Format(" exec proc_Fenxiangjiang " + orderModel.UserID + "," + orderModel.OrderTotal + ""));
                MySQL(string.Format(" exec proc_Xiaocengjiang " + orderModel.UserID + ""));
                MySQL(string.Format(" exec proc_Xiaoliangjiang " + orderModel.UserID + ""));
                MySQL(string.Format(" exec proc_Jiandianjiang " + orderModel.UserID + "," + orderModel.OrderTotal + ",1"));

                //发奖
                #region 报单中心(20套)改为4万元
                if (orderModel.OrderTotal >= getParamInt("Fuwu2"))//报单中心(20套)
                {
                    int t = agentBLL.GetIDByIDUser(orderModel.UserID);
                    if (t == 0)//插入用户
                    {
                        var userModel1           = userBLL.GetModel(orderModel.UserID);
                        lgk.Model.tb_agent model = new lgk.Model.tb_agent();
                        model.UserID    = userModel1.UserID;
                        model.AgentCode = userModel1.UserCode;
                        model.Flag      = 1;
                        model.AgentType = 1;
                        model.Agent003  = userModel1.TrueName;
                        model.AppliTime = DateTime.Now;
                        model.JoinMoney = 0;
                        model.Agent004  = "";
                        model.Agent001  = 0;
                        model.Agent002  = 0;
                        model.PicLink   = "";
                        agentBLL.Add(model);

                        var model1 = userBLL.GetModel(userModel1.UserID);
                        model1.AgentsID = agentBLL.GetIDByIDUser(userModel1.UserID);
                        model1.IsAgent  = 1;
                        userBLL.Update(model1);

                        lgk.Model.tb_journal journalInfo = new lgk.Model.tb_journal();
                        journalInfo.UserID        = userModel1.UserID;
                        journalInfo.Remark        = "一次性购买 " + getParamInt("Fuwu2") + "元的产品,成为服务网点";
                        journalInfo.RemarkEn      = "Cash withdrawal";
                        journalInfo.InAmount      = 0;
                        journalInfo.OutAmount     = 0;
                        journalInfo.BalanceAmount = userBLL.GetMoney(userModel1.UserID, "StockMoney");
                        journalInfo.JournalDate   = DateTime.Now;
                        journalInfo.JournalType   = 2;
                        journalInfo.Journal01     = userModel1.UserID;
                        journalBLL.Add(journalInfo);
                    }
                }
                userid     = orderModel.UserID;
                totalMoney = orderModel.OrderTotal;
                #endregion
                if (getParamInt("Fuwu") == 1)
                {
                    //报单中心奖

                    long    BD_UserID = userBLL.GetUserID(userBLL.GetModel(orderModel.UserID).User006);
                    decimal BD        = getParamAmount("Fuwu1") / 100 * totalMoney;

                    int isLock = userBLL.GetModel(BD_UserID).IsLock;
                    int Ag     = userBLL.GetModel(BD_UserID).IsAgent;
                    if (isLock == 0 && Ag == 1)
                    {
                        decimal shouxufei = BD * getParamAmount("PingTai") / 100;
                        BD -= shouxufei;
                        decimal Gongyi = BD * getParamAmount("PingTai1") / 100;
                        BD -= Gongyi;

                        decimal jiangjin = getParamAmount("JJ");
                        decimal zhongzi  = getParamAmount("ZZ");
                        decimal xiaofei  = getParamAmount("XF");
                        decimal JJ       = BD * jiangjin / 100;
                        decimal ZZ       = BD * zhongzi / 100;
                        decimal XF       = BD * xiaofei / 100;
                        UpdateAccount("Emoney", BD_UserID, JJ, 1);             //奖金
                        UpdateAccount("StockMoney", BD_UserID, ZZ, 1);         //电子

                        UpdateAccount("ShopAccount", BD_UserID, shouxufei, 1); //奖金
                        UpdateAccount("GLmoney", BD_UserID, Gongyi, 1);        //电子
                        if (XF > 0)
                        {
                            UpdateAccount("BonusAccount", BD_UserID, XF, 1);//消费
                            lgk.Model.tb_journal journal1 = new lgk.Model.tb_journal();
                            journal1.UserID        = BD_UserID;
                            journal1.Remark        = "服务网点获得" + (BD + shouxufei + Gongyi) + ",其中扣除平台手续费" + shouxufei + ",扣除公益基金" + Gongyi + " ,剩余" + xiaofei + "%进入消费积分";
                            journal1.RemarkEn      = "";
                            journal1.InAmount      = XF;
                            journal1.OutAmount     = 0;
                            journal1.BalanceAmount = userBLL.GetMoney(BD_UserID, "BonusAccount");;
                            journal1.JournalDate   = DateTime.Now;
                            journal1.JournalType   = 3;
                            journal1.Journal01     = 0;
                            journalBLL.Add(journal1);
                        }

                        lgk.Model.tb_journal journal = new lgk.Model.tb_journal();
                        journal.UserID        = BD_UserID;
                        journal.Remark        = "服务网点获得" + (BD + shouxufei + Gongyi) + ",其中扣除平台手续费" + shouxufei + ",扣除公益基金" + Gongyi + " ,剩余" + jiangjin + "%进入奖金积分";
                        journal.RemarkEn      = "";
                        journal.InAmount      = JJ;
                        journal.OutAmount     = 0;
                        journal.BalanceAmount = userBLL.GetMoney(BD_UserID, "Emoney");;
                        journal.JournalDate   = DateTime.Now;
                        journal.JournalType   = 1;
                        journal.Journal01     = 0;
                        journalBLL.Add(journal);

                        journal.UserID        = BD_UserID;
                        journal.Remark        = "服务网点获得" + (BD + shouxufei + Gongyi) + ",其中扣除平台手续费" + shouxufei + ",扣除公益基金" + Gongyi + " ,剩余" + zhongzi + "%进入电子积分";
                        journal.RemarkEn      = "";
                        journal.InAmount      = ZZ;
                        journal.OutAmount     = 0;
                        journal.BalanceAmount = userBLL.GetMoney(BD_UserID, "StockMoney");;
                        journal.JournalDate   = DateTime.Now;
                        journal.JournalType   = 2;
                        journal.Journal01     = 0;
                        journalBLL.Add(journal);

                        journal.UserID        = BD_UserID;
                        journal.Remark        = "服务网点获得" + (BD + shouxufei + Gongyi) + ",其中扣除平台手续费" + shouxufei + "";
                        journal.RemarkEn      = "";
                        journal.InAmount      = shouxufei;
                        journal.OutAmount     = 0;
                        journal.BalanceAmount = userBLL.GetMoney(BD_UserID, "ShopAccount");;
                        journal.JournalDate   = DateTime.Now;
                        journal.JournalType   = 6;
                        journal.Journal01     = 0;
                        journalBLL.Add(journal);

                        journal.UserID        = BD_UserID;
                        journal.Remark        = "服务网点获得" + (BD + shouxufei + Gongyi) + ",其中扣除公益基金" + Gongyi + "";
                        journal.RemarkEn      = "";
                        journal.InAmount      = Gongyi;
                        journal.OutAmount     = 0;
                        journal.BalanceAmount = userBLL.GetMoney(BD_UserID, "GLmoney");;
                        journal.JournalDate   = DateTime.Now;
                        journal.JournalType   = 7;
                        journal.Journal01     = 0;
                        journalBLL.Add(journal);


                        SqlConnection conn = new SqlConnection(sconn);
                        conn.Open();
                        string sql_Add = "insert into tb_bonus(UserID,TypeID,Amount,Revenue,sf,AddTime,IsSettled,Source,SourceEn,SttleTime,FromUserID,Bonus005,Bonus006)";
                        sql_Add += "values (" + BD_UserID + ",5," + (BD + shouxufei + Gongyi) + "," + shouxufei + "," + BD + ",getdate(),1,'" + journal.Remark + "','',getdate()," + userid + "," + jiangjin + "," + zhongzi + ");";
                        SqlCommand cmd   = new SqlCommand(sql_Add, conn);
                        int        reInt = cmd.ExecuteNonQuery();
                        conn.Close();
                    }
                }
            }
            else
            {
                MySQL(string.Format(" exec proc_Jiandianjiang " + orderModel.UserID + "," + orderModel.OrderTotal + ",2"));
            }
            msg = "支付成功";
            return(true);
        }
예제 #8
0
        public bool GoodsCartPay(long userid, int paytype, long addrid, string strcid, int shtype, out string msg)
        {
            if (paytype != 4)
            {
                msg = "请选择正确的支付方式";
                return(false);
            }
            if (shtype <= 0)
            {
                msg = "请选择正确的收货方式";
                return(false);
            }
            if (!userBLL.Exists(userid))
            {
                msg = "请重新登录再支付";
                return(false);
            }
            JavaScriptSerializer js = new JavaScriptSerializer();

            var list = js.Deserialize <List <GetGoods> >(strcid);

            LogHelper.SaveLog(strcid, "GoodsCartPay");

            if (list.Count <= 0)
            {
                msg = "请选择购物车中的商品";
                return(false);
            }

            Random   rand       = new Random();
            string   orderCode  = DateTime.Now.ToString("yyyyMMddhhmmss") + rand.Next(10000, 99999); //订单编号
            string   goodsname  = string.Format("订单号{0},", orderCode);
            decimal  totalMoney = 0;
            int      orderSum   = 0;
            int      insert     = 0;
            DateTime dtime      = DateTime.Now;


            if (!userBLL.Exists(userid))
            {
                msg = "用户不存在";
            }

            //if (addrid!=1)
            //{

            //    lgk.Model.tb_Address addrModel = addressBLL.GetModel(addrid);
            //    if(addrModel == null)
            //    {
            //        msg = "请选择收货地址";
            //        return false;
            //    }
            //}
            IList <lgk.Model.tb_goodsCar> listCar = new List <lgk.Model.tb_goodsCar>();

            #region 验证商品
            string errmsg = "";
            foreach (GetGoods g in list)
            {
                lgk.Model.tb_goodsCar carModel = goodsCarBLL.GetModel(g.ID);
                if (carModel != null)
                {
                    lgk.Model.tb_goods goodsModel = goodsBLL.GetModelAndOneName(carModel.GoodsID);//根据发布商品编号找到充值账号密码
                    if (goodsModel == null)
                    {
                        errmsg = "商品" + goodsModel.GoodsName + "不存在!";
                        insert = 0;
                        break;
                    }
                    if (g.num <= 0)
                    {
                        errmsg = "商品" + goodsModel.GoodsName + "的购买数量必须大于0!";
                        insert = 0;
                        break;
                    }
                    if (goodsModel.StateType == 0) //判断是否 审核通过 0未审核
                    {
                        errmsg = "商品" + goodsModel.GoodsName + "审核未通过,请删除该商品!";
                        insert = 0;
                        break;
                    }
                    else if (goodsModel.Goods003 == "1") //判断是否 删除 1已经删除
                    {
                        errmsg = "商品" + goodsModel.GoodsName + "已被删除,请删除该商品!";
                        insert = 0;
                        break;
                    }
                    else if (goodsModel.Goods001 == 0) //判断是否 0下架
                    {
                        errmsg = "商品" + goodsModel.GoodsName + "已经下架,请删除该商品!";
                        insert = 0;
                        break;
                    }
                    else if (goodsModel.Goods002 < g.num) //判断库存量
                    {
                        errmsg = "商品" + goodsModel.GoodsName + "库存不足,请重新修改数量!";
                        insert = 0;
                        break;
                    }
                    else if (carModel.BuyUser != userid) //
                    {
                        errmsg = "用户不匹配,请刷新购物车再提交!";
                        insert = 0;
                        break;
                    }
                    carModel.Goods006 = g.num;//以最中传输的数量为准
                    listCar.Add(carModel);
                    insert += 1;
                }
                else
                {
                    msg = "购物出为空";
                    LogHelper.SaveLog(g.ID.ToString() + "," + errmsg, "GoodsCartPay");
                    return(false);
                }
            }

            if (insert == 0)
            {
                msg = errmsg;
                return(false);
            }
            #endregion

            //总金额
            totalMoney += listCar.Sum(s => s.TotalMoney);
            orderSum   += listCar.Sum(s => s.Goods006);
            lgk.Model.tb_user userModel = userBLL.GetModel(userid);
            //var dt = orderBLL.GetList(" UserID=" + userid ).Tables[0];
            //if (pay == 1 && dt.Rows.Count>0)
            //{

            //}  sss
            //else if (pay == 2 && dt.Rows.Count == 0)
            //{

            //}

            if (paytype == 4 && userModel.GLmoney < totalMoney)
            {
                msg = "购物分余额不足";
                return(false);
            }


            #region 订单处理
            //总订单
            lgk.Model.tb_Order orderModel = new lgk.Model.tb_Order(); //订单
            orderModel.UserID      = userid;                          //用户
            orderModel.OrderCode   = orderCode;                       //订单编号
            orderModel.OrderSum    = orderSum;                        //订单数--
            orderModel.OrderTotal  = totalMoney;                      //购买总金
            orderModel.PVTotal     = 0;                               //
            orderModel.OrderDate   = dtime;
            orderModel.IsSend      = 1;
            orderModel.PayMethod   = 3;                  //--2、复投 1注册激活,3购物分
            orderModel.Order5      = "";                 //备用电话
            orderModel.UserAddr    = userModel.Address;  //addrModel.Address;//发货地址
            orderModel.Order6      = userModel.PhoneNum; //addrModel.PhoneNum;//收货电话
            orderModel.Order7      = userModel.NiceName; //addrModel.MemberName;//收货姓名
            orderModel.OrderType   = paytype;            //购物分
            orderModel.ReceiveType = shtype;
            long iOrderID = orderBLL.Add(orderModel);    //加入订单表

            foreach (var carModel in listCar)
            {
                lgk.Model.tb_goods goodsModel = goodsBLL.GetModelAndOneName(carModel.GoodsID);//根据发布商品编号找到充值账号密码
                //插入订单详细表
                lgk.Model.tb_OrderDetail orderDetailModel = new lgk.Model.tb_OrderDetail();
                orderDetailModel.OrderCode   = orderCode;
                orderDetailModel.Price       = carModel.RealityPrice;                     //单价--
                orderDetailModel.OrderSum    = carModel.Goods006;                         //数量--
                orderDetailModel.OrderTotal  = carModel.Goods006 * carModel.RealityPrice; //订单金额
                orderDetailModel.PV          = 0;                                         //
                orderDetailModel.PVTotal     = 0;
                orderDetailModel.ProcudeID   = carModel.GoodsID;                          //产品编号--
                orderDetailModel.ProcudeName = carModel.GoodsName;                        //名称--
                orderDetailModel.gColor      = carModel.gColor;
                orderDetailModel.gSize       = carModel.gSize;
                orderDetailModel.OrderDate   = dtime; //
                orderDetailBLL.Add(orderDetailModel); //加入订单详情

                //修改库存
                goodsModel.Goods002 = goodsModel.Goods002 - carModel.Goods006;//修改库存
                goodsModel.SaleNum += carModel.Goods006;
                goodsBLL.Update(goodsModel);

                //从购物篮减掉
                goodsCarBLL.Delete(carModel.ID);

                //商品名称 流水表记录用
                goodsname += orderDetailModel.ProcudeName + "|";

                orderSum += carModel.Goods006;
            }
            #endregion

            #region 写入到明细表

            lgk.Model.tb_journal joModel = new lgk.Model.tb_journal();
            joModel.UserID      = userModel.UserID;
            joModel.Remark      = goodsname;                            //名称--;
            joModel.InAmount    = 0;                                    //收入0;
            joModel.OutAmount   = totalMoney;                           //购买价(支出金币)
            joModel.JournalDate = DateTime.Now;
            joModel.Journal01   = userModel.UserID;                     //
            joModel.Journal02   = 99;                                   //消费
            joModel.Journal03   = orderCode;                            //订单编号
            if (paytype == 4)                                           //购物分
            {
                joModel.JournalType   = 5;                              //币种
                joModel.BalanceAmount = userModel.GLmoney - totalMoney; //余额
                journalBLL.Add(joModel);
                UpdateAccount("GLmoney", userModel.UserID, totalMoney, 0);
            }

            //用户账户更新

            #endregion

            //购物积分购买不给分红点
            //执行存储过程
            //string procmsg = string.Empty;
            //procmsg = proc_BuyOrder(userid, orderModel.OrderSum, orderCode, 4, totalMoney);
            //LogHelper.SaveLog("procmsg:" + procmsg, "proc_BuyOrder");

            msg = "支付成功";
            return(true);
        }