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); }
/// <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); }
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); }
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); } }
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); } }
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); }
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); }
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); } }
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; } }
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); }
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; } } }
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; } }