Esempio n. 1
0
        private static Dictionary <string, decimal> GetGoodsRate(DbHelper db, string uname)
        {
            Dictionary <string, decimal> dictionary = new Dictionary <string, decimal>();

            if (db == null)
            {
                return(dictionary);
            }
            if (userGoodsDictionary.TryGetValue(uname, out dictionary))
            {
                return(dictionary);
            }
            dictionary = new Dictionary <string, decimal>();
            db.AddParameter("uname", uname);
            IHashObjectList list = db.Select("select color,size,sourcetitle,rate from `commissionrate` where uname=@uname");

            foreach (HashObject item in list)
            {
                decimal temp = 0;
                string  key  = GetGoodsKey(item.GetValue <string>("color"), item.GetValue <string>("size"), item.GetValue <string>("sourcetitle"));
                if (dictionary.TryGetValue(key, out temp))
                {
                    throw new Exception(string.Format("商品【{0}】已经设置了比例为{1}", key, temp));
                }
                temp = item.GetValue <int>("rate");
                dictionary.Add(key, temp);
            }
            userGoodsDictionary.Add(uname, dictionary);
            return(dictionary);
        }
Esempio n. 2
0
        /// <summary>
        /// 获取图标数据
        /// </summary>
        /// <remarks>
        /// key:sourcetitle  key:paydate   value:amount
        /// </remarks>
        private Dictionary <string, Dictionary <string, decimal> > GetChatData(string startDate, string endDate, out List <string> xAxis)
        {
            xAxis = new List <string>();
            IHashObjectList data = GetBillAmount(startDate, endDate);
            Dictionary <string, Dictionary <string, decimal> > dictionary = new Dictionary <string, Dictionary <string, decimal> >();

            foreach (HashObject item in data)
            {
                Dictionary <string, decimal> cdataList;
                string  sourceTitle = item.GetValue <string>("sourcetitle");
                decimal amount      = item.GetValue <decimal>("amount");
                string  payDate     = item.GetValue <string>("paydate");
                if (!xAxis.Contains(payDate))
                {
                    xAxis.Add(payDate);
                }
                if (!dictionary.TryGetValue(sourceTitle, out cdataList))
                {
                    cdataList = new Dictionary <string, decimal>();
                    dictionary.Add(sourceTitle, cdataList);
                }
                cdataList.Add(payDate, amount);
            }
            return(dictionary);
        }
Esempio n. 3
0
        private static DataTable GetData(IHashObjectList list)
        {
            DataTable table = new DataTable();

            DataColumn dc = new DataColumn();

            dc.ColumnName = "id";
            dc.DataType   = typeof(int);
            table.Columns.Add(dc);

            dc            = new DataColumn();
            dc.ColumnName = "parentId";
            dc.DataType   = typeof(int);
            table.Columns.Add(dc);

            dc            = new DataColumn();
            dc.ColumnName = "name";
            table.Columns.Add(dc);

            dc            = new DataColumn();
            dc.ColumnName = "remark";
            table.Columns.Add(dc);

            dc            = new DataColumn();
            dc.ColumnName = "num";
            dc.DataType   = typeof(int);
            table.Columns.Add(dc);

            table.Rows.Add(new object[] { 0, -1, "商品", "商品", 0 });

            table.Rows.Add(new object[] { 1, 0, "尺码", "尺码", 1 });

            table.Rows.Add(new object[] { 2, 0, "颜色", "颜色", 2 });

            List <string> color = new List <string>();
            List <string> size  = new List <string>();

            for (int i = 0; i < list.Count; i++)
            {
                var item = list[i];

                var temp      = i + 1;
                var coloritem = item["color"].ToString();
                var sizeitem  = item["size"].ToString();
                if (!color.Contains(coloritem))
                {
                    color.Add(coloritem);
                    table.Rows.Add(new object[] { 21 * temp, 2, coloritem, coloritem, 11 * temp });
                }

                if (!size.Contains(sizeitem))
                {
                    size.Add(sizeitem);
                    table.Rows.Add(new object[] { 11 * temp, 1, sizeitem, sizeitem, 11 * temp });
                }
            }
            return(table);
        }
Esempio n. 4
0
 public override void Initialize()
 {
     base.Initialize(); using (DbHelper db = AppUtils.CreateDbHelper())
     {
         Test001.Login.User user = ((Test001.Login.User)Session["user"]);
         db.AddParameter("userid", user.Id);
         IHashObjectList list = db.Select("select * from btypeconfig where userid=@userid");
         Context["grid"]          = list;
         Context["dataTableTree"] = new DbTreeDataSource(GetData(list), "name", "id", "parentId", 0);
     }
 }
Esempio n. 5
0
 private void CopyDataToList(HashObject data, IHashObjectList list)
 {
     foreach (HashObject item in data.GetValue <ArrayList>("data"))
     {
         HashObject copy = new HashObject();
         copy.Add("gid", item["goodid"]);
         copy.Add("title", item["title"]);
         copy.Add("url", item["url"]);
         copy.Add("startDate", string.Format("{0}000", item["start"]));
         copy.Add("endDate", string.Format("{0}000", item["end"]));
         copy.Add("create", string.Format("{0}000", item["create"]));
         list.Add(copy);
     }
 }
Esempio n. 6
0
        private static List <string> GetExistBillDetails(DbHelper db, string sql)
        {
            if (db == null || string.IsNullOrEmpty(sql))
            {
                return(new List <string>());
            }
            IHashObjectList oldList = db.Select(string.Format("select DISTINCT code FROM billdetail where code in {0}", sql));
            List <string>   list    = new List <string>();

            foreach (HashObject hash in oldList)
            {
                list.Add(hash.GetValue <string>("code"));
            }
            return(list);
        }
Esempio n. 7
0
        private static Dictionary <string, string> GetExistBills(DbHelper db, string sql)
        {
            if (db == null || string.IsNullOrEmpty(sql))
            {
                return(new Dictionary <string, string>());
            }
            IHashObjectList             oldList = db.Select(string.Format("select id, tbcode FROM bill where tbcode in {0}", sql));
            Dictionary <string, string> dic     = new Dictionary <string, string>();

            foreach (HashObject hash in oldList)
            {
                dic[hash.GetValue <string>("tbcode")] = hash.GetValue <string>("id");
            }
            return(dic);
        }
Esempio n. 8
0
        private DataTable GetNeedMatchRateGoods(string suser)
        {
            DataTable            changedTable;
            DataTable            table      = TaobaoDataHelper.SpliteContentToDataTableByUser(suser, AppUtils.ConnectionString, true);
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            using (DbHelper db = AppUtils.CreateDbHelper())
            {
                List <CommissionRateStruct> list = new List <CommissionRateStruct>();
                Dictionary <string, Dictionary <string, List <string> > > dictionary = new Dictionary <string, Dictionary <string, List <string> > >();
                foreach (DataRow row in table.Rows)
                {
                    GoodsInfo[] ginfos = serializer.Deserialize <GoodsInfo[]>(row["货物信息"].ToString());

                    foreach (GoodsInfo ginfo in ginfos)
                    {
                        CommissionRateStruct crstruct = new CommissionRateStruct();
                        crstruct.Color       = ginfo.Color;
                        crstruct.Size        = ginfo.Size;
                        crstruct.SourceTitle = ginfo.Title;
                        crstruct.User        = row["所属用户"].ToString();
                        if (list.Contains(crstruct))
                        {
                            continue;
                        }
                        list.Add(crstruct);
                    }
                }

                IHashObjectList commList = db.Select("select color,size,sourceTitle, uname, rate from commissionrate");
                foreach (HashObject commItem in commList)
                {
                    CommissionRateStruct crstruct = new CommissionRateStruct();
                    crstruct.Color       = commItem.GetValue <string>("color");
                    crstruct.Size        = commItem.GetValue <string>("size");
                    crstruct.SourceTitle = commItem.GetValue <string>("sourcetitle");
                    crstruct.User        = commItem.GetValue <string>("uname");
                    if (list.Contains(crstruct))
                    {
                        list.Remove(crstruct);
                    }
                }

                changedTable = new DataTable();
                changedTable.Columns.Add("color");
                changedTable.Columns.Add("size");
                changedTable.Columns.Add("sourceTitle");
                changedTable.Columns.Add("uname");
                changedTable.Columns.Add("rate");
                changedTable.Columns.Add("crid");
                foreach (CommissionRateStruct item in list)
                {
                    DataRow row = changedTable.NewRow();
                    row["color"]       = item.Color;
                    row["size"]        = item.Size;
                    row["sourceTitle"] = item.SourceTitle;
                    row["uname"]       = item.User;
                    row["rate"]        = item.Rate;
                    changedTable.Rows.Add(row);
                }
                return(changedTable);
            }
        }
Esempio n. 9
0
        public override void Initialize()
        {
            base.Initialize();

            using (DbHelper db = AppUtils.CreateDbHelper())
            {
                Test001.Login.User user = ((Test001.Login.User)Session["user"]);
                db.AddParameter("userid", user.Id);
                IHashObjectList userList = db.Select("select color, size, price from btypeconfig where userid=@userid");

                List <string> color = new List <string>();
                List <string> size  = new List <string>();
                foreach (IHashObject hash in userList)
                {
                    if (!color.Contains(hash.GetValue <string>("color")))
                    {
                        color.Add(hash.GetValue <string>("color"));
                    }
                    if (!size.Contains(hash.GetValue <string>("size")))
                    {
                        size.Add(hash.GetValue <string>("size"));
                    }
                }
                Context["size"]      = size;
                Context["color"]     = color;
                Context["sizecolor"] = userList;

                if (this.Request.QueryString["id"] == null)
                {
                    IHashObject data = new HashObject();
                    data["date"]      = DateTime.Now;
                    data["amount"]    = 1;
                    data["size"]      = size.Count > 0 ? size[0] : "";
                    data["color"]     = color.Count > 0 ? color[0] : "";
                    data["csendway"]  = "送货到小区";
                    data["dobtotal"]  = user.Power == 99 ? 1 : 0;
                    data["sizecolor"] = userList;
                    decimal total = userList.Count > 0 ? userList[0].GetValue <decimal>("price") : 0;
                    if (user.Power == 99)
                    {
                        data["btotal"] = 0;
                    }
                    else
                    {
                        data["btotal"] = (total * (decimal)0.05);
                    }
                    data["total"]     = total;
                    Context["bill"]   = data;
                    Context["enable"] = true;
                    return;
                }

                string id = Request.QueryString["id"].ToString();
                db.AddParameter("id", id);
                IHashObject bill = db.SelectSingleRow(@"select id,DATE_FORMAT(date, '%Y-%m-%d') as date,taobaocode,cname,ctel,caddress,carea,csendway,cremark,btotal,ltotal,preferential, status from bill where id=@id");
                db.AddParameter("id", id);
                //todo 一个单对多个商品时会报错
                IHashObject billDetial = db.SelectSingleRow("select * from billdetail where bid=@id");
                foreach (string key in billDetial.Keys)
                {
                    if (key.ToLower() == "id")
                    {
                        continue;
                    }
                    bill[key] = billDetial[key];
                }
                bill["dobtotal"]  = user.Power == 99 ? 1 : 0;
                bill["sizecolor"] = userList;
                Context["bill"]   = bill;
                Context["enable"] = true;// bill.GetValue<int>("status") < 1;
            }
        }
Esempio n. 10
0
        public static DataTable SpliteContentToDataTable(string user, List <CatchDataTemplate> list)
        {
            DataTable            table      = MessageTable();
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            string[] keys =
            {
                "mainOrder/payInfo/actualFee/value",
                "mainOrder/buyer/nick",
                "mainOrder/id",
                "mainOrder/orderInfo/lines",
                "mainOrder/subOrders",
                "buyMessage",                    //买家备注
                "operationsGuide"                //卖家备注
            };
            foreach (CatchDataTemplate template in list)
            {
                var    hashObject = new HashObject();
                string content    = template.DetailContent;
                try
                {
                    hashObject = serializer.Deserialize <HashObject>(content);
                }
                catch (Exception t)
                {
                    continue;
                }

                DataRow    row = table.NewRow();
                HashObject addressAndLogistics = GeAddressAndLogisticsInfo(hashObject);
                foreach (string key in addressAndLogistics.Keys)
                {
                    row[key] = addressAndLogistics[key];
                }
                var newHash = hashObject.GetHashValue(keys);
                row["订单ID"] = newHash.GetDataEx <string>("id");
                row["旺旺名称"] = newHash.GetDataEx <string>("nick");
                row["买家留言"] = newHash.GetDataEx <string>("buyMessage");

                row["卖家留言"] = GetSaleMessage(GetKeyObject(newHash, "operationsGuide"));
                ArrayList       linesList     = newHash.GetDataEx <ArrayList>("lines");
                IHashObjectList orderInfoList = GetOrderInfoList(serializer, linesList);
                if (orderInfoList.Count > 1 || orderInfoList.Count == 0)
                {
                    throw new Exception("订单信息存在多个时间,请重新核实");
                }
                IHashObject tempOrderInfoList = orderInfoList[0];
                row["支付宝交易号"] = tempOrderInfoList.GetValue <string>("支付宝交易号:", "");
                row["创建时间"]   = tempOrderInfoList.GetValue <string>("创建时间:", null);
                row["付款时间"]   = tempOrderInfoList.GetValue <string>("付款时间:", null);
                var sendDate = tempOrderInfoList.GetValue <string>("发货时间:", null);
                row["发货时间"] = sendDate;
                if (sendDate != null)
                {
                    row["发货状态"]       = "已发货";
                    row["发货状态status"] = "1";
                }

                var successDate = tempOrderInfoList.GetValue <string>("成交时间:", null);
                if (successDate != null)
                {
                    row["发货状态"]       = "已收货";
                    row["发货状态status"] = "2";
                }
                row["成交时间"] = successDate;

                //后期单据退款(各种原因的退款)
                if ("交易关闭".Equals(template.Status))
                {
                    row["支付金额"]       = 0;
                    row["发货状态"]       = "已关闭";
                    row["发货状态status"] = "9";
                }
                else
                {
                    row["支付金额"] = newHash.GetDataEx <string>("value"); //支付总金额
                    newHash.GetDataEx <string>("value");               //支付总金额
                }

                ArrayList        subOrders = newHash.GetDataEx <ArrayList>("subOrders");
                List <GoodsInfo> gList     = GetSubOrderSkuList(subOrders);
                decimal          all       = 0;
                foreach (GoodsInfo info in gList)
                {
                    all += info.PriceInfo;
                }
                row["拍下总金额"] = all;
                row["货物信息"]  = serializer.Serialize(gList);
                row["所属用户"]  = user;
                table.Rows.Add(row);
            }

            return(table);
        }
Esempio n. 11
0
        public static void SaveDataToTBill(string user, string connection, IList data)
        {
            DateTime date = DateTime.Now;

            using (DbHelper db = new DbHelper(connection))
            {
                IHashObjectList bidList = db.Select(string.Format("select * from tbill where bid in {0}", GetAllIdString(data)));
                //根据单号获取对应的字典信息
                Dictionary <string, HashObject> bidDictionary = new Dictionary <string, HashObject>();
                foreach (HashObject item in bidList)
                {
                    bidDictionary.Add(item.GetValue <string>("bid"), item);
                }

                //筛选数据,对于已插入的数据做数据对比,当数据没有变化时,不做数据修改,反之则修改数据。没有的数据直接插入
                StringBuilder insertbuilder       = new StringBuilder("insert into tbill(tbid,bid,content, cdate, status, `user`, downeddetail, udate, hasUpdate) values");
                StringBuilder insertDetailbuilder = new StringBuilder("insert into tbilldetail(tbdid,tbid,content,user) values");
                string        updateSql           = "update tbill set content = @content, udate = @udate, status=@status, downeddetail=@downeddetail, hasUpdate = @hasUpdate where tbid=@tbid";
                bool          hasInsert           = false;
                bool          hasDetail           = false;
                foreach (HashObject row in data)
                {
                    var        id      = row.GetValue <string>("bid");
                    string     content = ReplaceHtmlText(row.GetValue <string>("content"));
                    string     status  = row.GetValue <string>("status");
                    HashObject item;
                    ulong      tbid = Cuid.NewCuid();
                    if (bidDictionary.TryGetValue(id, out item))
                    {
                        tbid = item.GetValue <ulong>("tbid");
                        if (SpliteContentUrl(item.GetValue <string>("content")).Equals(SpliteContentUrl(content)) && item.GetValue <string>("status").Equals(status))
                        {
                            //数据相同直接返回
                            continue;
                        }
                        db.AddParameter("content", content);
                        db.AddParameter("udate", date);//更新时间
                        db.AddParameter("status", status);
                        db.AddParameter("tbid", tbid);
                        //存在不同的,标记全部更新明细
                        db.AddParameter("downeddetail", 0);
                        db.AddParameter("hasUpdate", 1);
                        db.ExecuteIntSQL(updateSql);//更新已下载数据
                        continue;
                    }
                    else
                    {
                        hasDetail = true;
                        HashObject detail = row.GetValue <HashObject>("detail");
                        string     str    = ReplaceHtmlText(detail.GetValue <string>("content"));
                        insertDetailbuilder.AppendFormat("({0},{1},'{2}', '{3}'),", Cuid.NewCuid(), tbid, str, detail.GetValue <string>("user"));
                    }
                    hasInsert = true;
                    insertbuilder.AppendFormat("({0},'{1}','{2}', '{3}', '{4}', '{5}', 0, '{6}', 1),", tbid, id, content, date, status, user, date);
                }
                if (!hasInsert)
                {
                    return;
                }
                try
                {
                    db.BeginTransaction();
                    string insertData = insertbuilder.ToString();
                    db.BatchExecute(insertData.Substring(0, insertData.Length - 1));

                    if (hasDetail)
                    {
                        string insertDetailData = insertDetailbuilder.ToString();
                        db.BatchExecute(insertDetailData.Substring(0, insertDetailData.Length - 1));
                    }
                    db.CommitTransaction();
                }
                catch (Exception t)
                {
                    db.RollbackTransaction();
                    throw t;
                }
            }
        }
Esempio n. 12
0
        private void button1_Click(object sender, EventArgs e)
        {
            DataTable            table      = TaobaoDataHelper.SpliteContentToDataTableByUser("ljbbean", Utils.Connect, true);
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            isAdd = true;
            using (DbHelper db = new DbHelper(Utils.Connect, true))
            {
                List <CommissionRateStruct> list = new List <CommissionRateStruct>();
                Dictionary <string, Dictionary <string, List <string> > > dictionary = new Dictionary <string, Dictionary <string, List <string> > >();
                foreach (DataRow row in table.Rows)
                {
                    GoodsInfo[] ginfos = serializer.Deserialize <GoodsInfo[]>(row["货物信息"].ToString());

                    foreach (GoodsInfo ginfo in ginfos)
                    {
                        CommissionRateStruct crstruct = new CommissionRateStruct();
                        crstruct.Color       = ginfo.Color;
                        crstruct.Size        = ginfo.Size;
                        crstruct.SourceTitle = ginfo.Title;
                        crstruct.User        = row["所属用户"].ToString();
                        if (list.Contains(crstruct))
                        {
                            continue;
                        }
                        list.Add(crstruct);
                    }
                }

                IHashObjectList commList = db.Select("select color,size,sourceTitle, uname, rate from commissionrate");
                foreach (HashObject commItem in commList)
                {
                    CommissionRateStruct crstruct = new CommissionRateStruct();
                    crstruct.Color       = commItem.GetValue <string>("color");
                    crstruct.Size        = commItem.GetValue <string>("size");
                    crstruct.SourceTitle = commItem.GetValue <string>("sourcetitle");
                    crstruct.User        = commItem.GetValue <string>("uname");
                    if (list.Contains(crstruct))
                    {
                        list.Remove(crstruct);
                    }
                }

                changedTable = new DataTable();
                changedTable.Columns.Add("color");
                changedTable.Columns.Add("size");
                changedTable.Columns.Add("sourceTitle");
                changedTable.Columns.Add("uname");
                changedTable.Columns.Add("rate");
                changedTable.Columns.Add("crid");
                foreach (CommissionRateStruct item in list)
                {
                    DataRow row = changedTable.NewRow();
                    row["color"]       = item.Color;
                    row["size"]        = item.Size;
                    row["sourceTitle"] = item.SourceTitle;
                    row["uname"]       = item.User;
                    row["rate"]        = item.Rate;
                    changedTable.Rows.Add(row);
                }
                dataGridView1.DataSource = changedTable;
            }
        }