Esempio n. 1
0
        public object GetDownData(string token)
        {
            //UserInfo info = (UserInfo)Session["user"];
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            using (DbHelper db = AppUtils.CreateDbHelper())
            {
                string sql = "select `condition`, user from downtoken where  `token`=@token";
                db.AddParameter("token", token);
                IHashObject data = db.SelectSingleRow(sql);//只用一次
                db.AddParameter("token", token);
                db.AddParameter("ntoken", Guid.NewGuid());
                db.ExecuteIntSQL("update downtoken set `token`=@ntoken where token=@token");
                string user = data.GetValue <string>("user");
                //if (!info.User.Equals(user))
                //{
                //    throw new Exception("非法请求");
                //}
                HashObject condition = serializer.Deserialize <HashObject>(data.GetValue <string>("condition"));

                string     dataSql = WebMain.BillList.list.GetBillSql(db, user, (SearchArea)Enum.Parse(typeof(SearchArea), condition.GetValue <string>("area")));
                HashObject rt      = new HashObject();
                rt.Add("data", db.Select(dataSql));
                rt.Add("captions", new string[] { "订单日期", "姓名", "联系电话", "淘宝账号", "联系地址", "发货信息", "订单状态", "订单回款" });
                rt.Add("fields", new string[] { "date", "cname", "ctel", "taobaocode", "caddress", "sender", "process", "ltotal" });
                return(rt);
            }
        }
Esempio n. 2
0
        public List <MemberLoginId> Parse(string body)
        {
            JObject obj = JObject.Parse(body);

            if (obj["message"] != null)
            {
                throw new Exception(obj["message"].ToString());
            }
            List <MemberLoginId> areas = new List <MemberLoginId>();
            JToken token = obj["loginIdMap"];

            if (token == null)
            {
                return(areas);
            }

            JavaScriptSerializer        jss    = JavaScriptSerializer.CreateInstance();
            Dictionary <string, string> result = jss.Deserialize <Dictionary <string, string> >(token.ToString());

            foreach (string key in result.Keys)
            {
                MemberLoginId area = new MemberLoginId();
                area.MemberId = key;
                area.LoginId  = result[key];
                areas.Add(area);
            }
            return(areas);
        }
Esempio n. 3
0
        public static void Init()
        {
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            socket.On(Socket.EVENT_CONNECT, () =>
            {
                IsConnected   = true;
                Data data     = new Data("server");
                data.comefrom = "net";
                socket.Emit("login", serializer.Serialize(data));
            });
            socket.On("postDataRequest", (data) =>
            {
                HashObject hash = serializer.Deserialize <HashObject>(data.ToString());
                SendMsg nmsg    = new SendMsg("server");
                nmsg.comefrom   = "net";
                nmsg.touid      = hash.GetValue <string>("fuid");
                ulong key       = Cuid.NewCuid();
                Counter counter = new Counter();
                counter.All     = hash.GetValue <ulong>("msg");
                counter.Doned   = 0;
                PostDataRequestList.Add(key, counter);
                nmsg.msg = key.ToString();//回传一个唯一标记
                socket.Emit("postDataSure", serializer.Serialize(nmsg));
            });
            IsConnected = false;
        }
Esempio n. 4
0
            protected override DataTable DoQuery(DbHelper db)
            {
                JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();
                string    sql   = "select * from plugs";
                DataTable table = db.ExecuteSQL(sql);

                table.Columns.Add("info");
                table.Columns.Add("ppic1");
                table.Columns.Add("ppic2");
                table.Columns.Add("ppic3");
                foreach (DataRow row in table.Rows)
                {
                    IHashObjectList list = new HashObjectList();
                    IHashObject     nr   = new HashObject();
                    nr["001"] = string.Format("<a href='{0}' target='_blank'>下载地址</a>&nbsp;&nbsp;", row["pdownpath"]);
                    list.Add(nr);
                    nr        = new HashObject();
                    nr["002"] = string.Format("<a href='{0}' target='_blank'>视频地址</a>", row["pvideo"]);
                    list.Add(nr);
                    row["info"] = serializer.Serialize(list);

                    string   ppics    = row["ppics"].ToString();
                    string[] picArray = ppics.Split(',');
                    row["ppic1"] = picArray[0];
                    row["ppic2"] = picArray[1];
                    row["ppic3"] = picArray[2];
                }
                return(table);
            }
Esempio n. 5
0
        private object GetList(string json)
        {
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();
            HashObject           hash       = (HashObject)serializer.DeserializeObject(json);

            string[] keys =
            {
                "mods/itemlist/data/auctions"
            };
            var newHash = hash.GetHashValue(keys);

            if (newHash.Count == 0)
            {
                throw new Exception("没搜索到东西");
            }
            Object[]            array = (Object[])newHash[0]["auctions"];
            List <GoodsAddress> list  = new List <GoodsAddress>();

            foreach (HashObject item in array)
            {
                GoodsAddress test = new GoodsAddress();
                test.view_price = item.GetValue <string>("view_price", "");
                test.title      = item.GetValue <string>("title", "");
                test.nick       = item.GetValue <string>("nick", "");
                test.pic_url    = item.GetValue <string>("pic_url", "");
                test.detail_url = item.GetValue <string>("detail_url", "");
                test.view_sales = item.GetValue <string>("view_sales", "");
                list.Add(test);
            }
            return(list);
        }
Esempio n. 6
0
        public object GetGoodMsg(string url)
        {
            HttpWebRequest request = BillManage.CreateWebRequest(url);

            request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate, sdch, br");
            request.Headers.Add(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.8");
            request.Method = "GET";
            WebResponse response = request.GetResponse();
            string      rdata    = string.Empty;

            using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gbk")))
            {
                rdata = reader.ReadToEnd();
            }
            if (url.IndexOf("detail.tmall.com") > 0 || url.IndexOf("click.simba.taobao.com") > 0)
            {
                string json = rdata.GetSectionString("TShop.Setup(", "})();").Trim().TrimEnd(';').TrimEnd(')').Trim();

                JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();
                var jsonData = serializer.Deserialize <HashObject>(json);

                List <SkuMap> list = GetSkumapTmallDetail(jsonData);

                string tianmaoUrl = string.Format("https:{0}", jsonData["initApi"]);
                return(GetTianMaoRealPrice(tianmaoUrl, url, list));
            }
            else
            {
                List <SkuMap> list   = GetSkumapDetail(rdata);
                string        sibUrl = string.Format("https:{0}&callback=onSibRequestSuccess", rdata.GetSectionString("wholeSibUrl      :", "',").TrimStart('\''));
                return(GetTaobaoRealPrice(sibUrl, url, list));
            }
        }
Esempio n. 7
0
        private List <SkuMap> GetSkumapDetail(string html)
        {
            string subMap = GetSubString(html, "skuMap", ",propertyMemoMap").Trim().TrimStart(':');
            JavaScriptSerializer        serializer = JavaScriptSerializer.CreateInstance();
            HashObject                  hash       = serializer.Deserialize <HashObject>(subMap);
            List <SkuMap>               listSkuMap = new List <SkuMap>();
            Dictionary <string, string> dictionary = new Dictionary <string, string>();

            foreach (string key in hash.Keys)
            {
                SkuMap map = new SkuMap();
                map.Key = key;
                HashObject temp = (HashObject)hash[key];
                map.PromotionPrice = map.OriginalPrice = temp.GetValue <decimal>("price");
                map.SkuId          = temp.GetValue <string>("skuId");
                string[]      keyItems = key.Trim(';').Split(';');
                StringBuilder sbuilder = new StringBuilder();
                for (var i = 0; i < keyItems.Length; i++)
                {
                    string item = keyItems[i];

                    string itemName;
                    if (!dictionary.TryGetValue(item, out itemName))
                    {
                        itemName = GetItemName(item, html);
                        dictionary.Add(item, itemName);
                    }
                    sbuilder.AppendFormat("{0},", itemName);
                }
                map.Title = sbuilder.ToString().Substring(0, sbuilder.Length - 1);
                listSkuMap.Add(map);
            }
            return(listSkuMap);
        }
Esempio n. 8
0
        private DataTable GetMainData(string content)
        {
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();
            HashObject           hash       = serializer.Deserialize <HashObject>(content);

            string[] keys =
            {
                "mods/itemlist/data/auctions"
            };
            var       list     = hash.GetHashValue(keys);
            var       auctions = list[0].GetValue <ArrayList>("auctions");
            DataTable table    = CreateGoodsTable();

            foreach (HashObject obj in auctions)
            {
                DataRow row = table.NewRow();
                row["title"]      = obj.GetValue <string>("title");
                row["raw_title"]  = obj.GetValue <string>("raw_title");
                row["pic_url"]    = obj.GetValue <string>("pic_url");
                row["detail_url"] = obj.GetValue <string>("detail_url");
                row["item_loc"]   = obj.GetValue <string>("item_loc");
                string sales = obj.GetValue <string>("view_sales");
                row["view_sales"] = decimal.Parse(sales.Substring(0, sales.Length - 3));
                row["nick"]       = obj.GetValue <string>("nick");
                row["view_price"] = obj.GetValue <string>("view_price");
                row["view_fee"]   = obj.GetValue <string>("view_fee");
                table.Rows.Add(row);
            }
            return(table);
        }
Esempio n. 9
0
        private void SendToAnalysis(object billData)
        {
            string         url     = analysisUrl;
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

            request.ProtocolVersion        = HttpVersion.Version10;
            request.AutomaticDecompression = DecompressionMethods.GZip;//回传数据被压缩,这里设置自动解压
            request.Accept      = "*/*";
            request.ContentType = "application/json; charset=UTF-8";
            request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br");
            request.Headers.Add(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.8");
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36";
            request.Method    = "POST";
            request.Headers.Add("X-JSONFormat", "true");
            HashObject hash = new HashObject();

            hash.Add("user", toUser);
            hash.Add("key", postDataCuid);
            hash.Add("dataList", billData);
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            string data = serializer.Serialize(hash, JavaScriptSerializer.SerializationFormat.JSON);

            byte[] bs = Encoding.UTF8.GetBytes(data);
            request.ContentLength = bs.Length;

            using (Stream reqStream = request.GetRequestStream())
            {
                reqStream.Write(bs, 0, bs.Length);
                reqStream.Flush();
            }
        }
Esempio n. 10
0
        internal void GetGoodMsg(string name, Action <object> callBack)
        {
            IHashObjectList      list       = new HashObjectList();
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();
            string     value = Net.GetNetDataPost(taodaxingUrl, string.Format("pattern=0&{0}&goodid=&page=1", name), contentType);
            HashObject hash  = serializer.Deserialize <HashObject>(value);
            int        code  = hash.GetValue <int>("code");

            if (code == 1)
            {
                throw new Exception(string.Format("没有查询到网店信息"));
            }
            callBack((object)GetDataList(hash));
            while (code == 0)
            {
                var post = hash.GetValue <HashObject>("post");
                value = Net.GetNetDataPost(taodaxingUrl, string.Format("pattern={0}&id={1}&page={2}&nt={3}", post["pattern"], post["id"], post["page"], post["nt"]), contentType);
                hash  = serializer.Deserialize <HashObject>(value);
                code  = hash.GetValue <int>("code");
                if (code != 0)
                {
                    break;
                }
                callBack(GetDataList(hash));
            }
        }
Esempio n. 11
0
        private string GetMessage(string user, string comefrom, string msg)
        {
            SendMsg cmsg = new SendMsg(user);

            cmsg.comefrom = comefrom;
            cmsg.msg      = msg;
            cmsg.touid    = user;
            return(JavaScriptSerializer.CreateInstance().Serialize(cmsg));
        }
Esempio n. 12
0
        private void SendMsgToNode(string text)
        {
            if (socket == null)
            {
                return;
            }
            SendMsg msg = new SendMsg(this.user);

            msg.touid = toUser;
            msg.msg   = text;
            socket.Emit("sendMsg", JavaScriptSerializer.CreateInstance().Serialize(msg));
        }
Esempio n. 13
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textBox1.Text))
            {
                if (openFileDialog1.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }
                using (Stream stream = openFileDialog1.OpenFile())
                {
                    StreamReader reader = new StreamReader(stream);
                    string       text   = reader.ReadToEnd();
                    textBox1.Text = text;
                }
            }

            string content = textBox1.Text;
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();
            HashObject           hash       = serializer.Deserialize <HashObject>(content);

            string[] keys =
            {
                "mods/itemlist/data/auctions"
            };
            var       list     = hash.GetHashValue(keys);
            var       auctions = list[0].GetValue <ArrayList>("auctions");
            DataTable table    = new DataTable();

            table.Columns.Add("title");
            table.Columns.Add("raw_title");
            table.Columns.Add("pic_url");
            table.Columns.Add("detail_url");
            table.Columns.Add("item_loc");
            table.Columns.Add("view_sales", typeof(decimal));
            table.Columns.Add("nick");
            table.Columns.Add("content");

            foreach (HashObject obj in auctions)
            {
                DataRow row = table.NewRow();
                row["title"]      = obj.GetValue <string>("title");
                row["raw_title"]  = obj.GetValue <string>("raw_title");
                row["pic_url"]    = obj.GetValue <string>("pic_url");
                row["detail_url"] = obj.GetValue <string>("detail_url");
                row["item_loc"]   = obj.GetValue <string>("item_loc");
                string sales = obj.GetValue <string>("view_sales");
                row["view_sales"] = decimal.Parse(sales.Substring(0, sales.Length - 3));
                row["nick"]       = obj.GetValue <string>("nick");
                table.Rows.Add(row);
            }
            dataGridView1.DataSource = table;
        }
Esempio n. 14
0
        internal object GetSingleGoodMsg(string id)
        {
            IHashObjectList      list       = new HashObjectList();
            string               value      = Net.GetNetDataPost(taodaxingUrl, string.Format("pattern=1&wwid=2&{0}&page=1", id), contentType);
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();
            HashObject           hash       = serializer.Deserialize <HashObject>(value);

            if (hash.GetValue <int>("code") == 0)
            {
                return(GetDataList(hash)[0]);
            }
            return("没有找到对应的数据");
        }
Esempio n. 15
0
        public List <Area> Parse(string body)
        {
            JObject obj = JObject.Parse(body);

            if (obj["message"] != null)
            {
                throw new Exception(obj["message"].ToString());
            }
            List <Area> areas = new List <Area>();
            JToken      token = obj["result"];

            if (token == null)
            {
                return(areas);
            }
            JToken token1 = token["toReturn"];

            if (token1 == null)
            {
                return(areas);
            }
            JArray token2 = token1 as JArray;

            if (token2.Count == 0)
            {
                return(areas);
            }
            JToken token3 = token2[0];

            if (token3 == null)
            {
                return(areas);
            }

            JavaScriptSerializer        jss    = JavaScriptSerializer.CreateInstance();
            Dictionary <string, string> result = jss.Deserialize <Dictionary <string, string> >(token3.ToString());

            foreach (string key in result.Keys)
            {
                Area area = new Area();
                area.Name = key;
                area.Code = result[key];
                areas.Add(area);
            }
            return(areas);
        }
Esempio n. 16
0
        public void BillCatch(string user, ulong key, IList dataList)
        {
            if (!IOUtils.IsPostDataRequest(key, (ulong)dataList.Count))
            {
                throw new Exception("抓取数据未被验证,非法请求");
            }
            IList list = GetAllList(key, dataList);

            if (IOUtils.HasKey(key))
            {
                dataList.Clear();
                return;//还有未传完的数据
            }
            if (wsUserDictionary.ContainsKey(user))
            {
                wsUserDictionary.Remove(user);
            }
            int id = DateTime.Now.GetHashCode();

            wsUserDictionary.Add(user, id);
            DataCatchSave.ClearUserGoodsCache(user);
            backDataList.Remove(key);//清除备份,做一次性数据处理
            string comefrom = string.Format("数据分析_{0}", id);

            try
            {
                Data data = new Data(user);
                data.comefrom = comefrom;

                IOUtils.Emit("login", JavaScriptSerializer.CreateInstance().Serialize(data));

                IOUtils.Emit("sendMsg", GetMessage(user, comefrom, "准备保存下载数据"));
                TaobaoDataHelper.SaveDataToTBill(user, AppUtils.ConnectionString, list);
                IOUtils.Emit("sendMsg", GetMessage(user, comefrom, "下载数据保存成功"));

                IOUtils.Emit("sendMsg", GetMessage(user, comefrom, DataCatchSave.SaveData(user, (text) =>
                {
                    IOUtils.Emit("sendMsg", GetMessage(user, comefrom, text));
                })));
            }
            catch (Exception e)
            {
                IOUtils.Emit("sendMsg", GetMessage(user, comefrom, e.Message));
            }
        }
Esempio n. 17
0
        public static void Init()
        {
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            socket.On(Socket.EVENT_CONNECT, () =>
            {
                Data data     = new Data("tools");
                data.comefrom = "net";
                socket.Emit("login", serializer.Serialize(data));
            });
            socket.On("getGoodMsg", (data) =>
            {
                Console.Write(string.Format("接入查询数据,{0}", data));
                HashObject hash     = serializer.Deserialize <HashObject>(data.ToString());
                HashObject hashData = serializer.Deserialize <HashObject>(hash.GetValue <string>("msg"));
                SendMsg msg         = new SendMsg("tools");
                msg.comefrom        = "net";
                msg.touid           = hashData.GetValue <string>("fid");
                try
                {
                    MilitaryInvestigationTool military = new MilitaryInvestigationTool();
                    string condition = hashData.GetValue <string>("url");
                    if (condition.StartsWith("wwid="))
                    {
                        military.GetGoodMsg(condition, (obj) =>
                        {
                            msg.msg  = serializer.Serialize(obj);
                            var imsg = serializer.Serialize(msg);
                            Console.Write(string.Format("输出数据,{0}", imsg));
                            ToolsIOUtils.Emit("goodMsg", imsg);
                        });
                        return;
                    }
                    msg.msg = serializer.Serialize(military.GetSingleGoodMsg(condition));
                }
                catch (Exception e1) {
                    msg.msg = e1.Message;
                }
                var tmsg = serializer.Serialize(msg);
                Console.Write(string.Format("输出数据,{0}", tmsg));
                ToolsIOUtils.Emit("goodMsg", tmsg);
            });
        }
Esempio n. 18
0
        public List <OfferUserCategory> Parse(string body)
        {
            JObject obj = JObject.Parse(body);

            if (obj["message"] != null)
            {
                throw new Exception(obj["message"].ToString());
            }
            List <OfferUserCategory> userCategorys = new List <OfferUserCategory>();
            JToken token = obj["result"];

            if (token == null)
            {
                return(userCategorys);
            }
            JToken token1 = token["toReturn"];

            if (token1 == null)
            {
                return(userCategorys);
            }
            JArray tokenList = token1 as JArray;

            if (tokenList.Count == 0)
            {
                return(userCategorys);
            }

            JavaScriptSerializer jss = JavaScriptSerializer.CreateInstance();
            Dictionary <string, List <string> > ucs = jss.Deserialize <Dictionary <string, List <string> > >(tokenList[0].ToString());

            foreach (string key in ucs.Keys)
            {
                OfferUserCategory ouc = new OfferUserCategory();
                //key=offerID1262147902
                ouc.OfferId       = key.Substring(7);
                ouc.UserCategorys = ucs[key];
                userCategorys.Add(ouc);
            }


            return(userCategorys);
        }
Esempio n. 19
0
        private bool GetDetails(string logistics)
        {
            string         url        = string.Format("http://www.kuaidi100.com/query?type={2}&postid={0}&id=1&valicode=&temp={1}", Request.QueryString["code"], Request.QueryString["r"], logistics);
            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);

            webRequest.Method    = "get";
            webRequest.Accept    = "text/html, application/xhtml+xml, */*";
            webRequest.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0)";
            WebResponse response = webRequest.GetResponse();

            using (Stream stream = response.GetResponseStream())
            {
                string sHtml = new StreamReader(stream, System.Text.Encoding.UTF8).ReadToEnd();
                JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();
                IHashObject          list       = serializer.Deserialize <IHashObject>(sHtml);
                //对写入数据的RequestStream对象进行异步请求
                Context["grid"] = list.GetValue <object[]>("data");
                return(sHtml.IndexOf("参数异常") < 0);
            }
        }
Esempio n. 20
0
        /// <summary>
        /// 发送确认消息
        /// </summary>
        internal bool EmitPostDataRequestMsg(IList data)
        {
            if (data.Count == 0)
            {
                SendMsgToNode("此时间段没有订单信息");
                FormClose();
                return(true);
            }
            if (socket == null)
            {
                SendMessage(string.Format("下载数据为:{0}", JavaScriptSerializer.CreateInstance().Serialize(data)));
                return(false);
            }
            listData = data;
            SendMsg msg = new SendMsg(this.user);

            msg.touid = "net_server";
            msg.msg   = ((IList)data).Count.ToString();
            socket.Emit("postDataRequest", JavaScriptSerializer.CreateInstance().Serialize(msg));
            return(true);
        }
Esempio n. 21
0
        public object GetTianMaoRealPrice(string url, string refer, List <SkuMap> skuMaps)
        {
            string html = GetHtml(url, refer).ToString().Trim();

            string[] keys =
            {
                "defaultModel/deliveryDO/deliveryAddress",
                "defaultModel/itemPriceResultDO/priceInfo",
                "defaultModel/servicePromise/servicePromiseList",
                "defaultModel/detailPageTipsDO/coupon",
                "defaultModel/sellCountDO/sellCount"
            };
            JavaScriptSerializer seralizer = JavaScriptSerializer.CreateInstance();
            var        hash      = seralizer.Deserialize <HashObject>(html);
            var        temp      = hash.GetHashValue(keys);
            HashObject priceInfo = temp.GetDataEx <HashObject>("priceInfo");

            foreach (SkuMap map in skuMaps)
            {
                var     items         = priceInfo.GetValue <HashObject>(map.SkuId);
                var     promotionList = items.ContainsKey("promotionList") ? items.GetValue <ArrayList>("promotionList") : items.GetValue <ArrayList>("suggestivePromotionList");
                decimal min           = map.OriginalPrice;
                foreach (HashObject item in promotionList)
                {
                    min = Math.Min(min, item.GetValue <decimal>("price"));
                }
                map.PromotionPrice = min;
            }

            Goods goods = new Goods();

            goods.SendCity          = temp.GetDataEx <string>("deliveryAddress");
            goods.Skus              = skuMaps;
            goods.Service           = GetGoodsServiceToTmall(temp.GetDataEx <ArrayList>("servicePromiseList"));
            goods.ConfirmGoodsCount = goods.SoldTotalCount = decimal.Parse(temp.GetDataEx <int>("sellCount").ToString());
            //goods.Pays = GetGoodsPayWay(temp.GetDataEx<ArrayList>("pay"));
            //goods.Coupon = GetGoodsCoupon(temp.GetDataEx<ArrayList>("couponList"));

            return(goods);
        }
Esempio n. 22
0
        public void GetGoodMsg(string name, string uid)
        {
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            HashObject data = new HashObject();

            data["fid"] = uid;
            data["url"] = string.Format("wwid={0}", HttpUtility.UrlEncode(name));
            SendMsg msg = new SendMsg("server");

            msg.comefrom = "net";
            msg.msg      = serializer.Serialize(data);
            IOUtils.Emit("getGoodMsg", serializer.Serialize(msg));


            //JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            //IHashObjectList list = new HashObjectList();
            //string value = Net.GetNetData(taodaxingUrl, string.Format("pattern=0&wwid={0}&goodid=&page=1", HttpUtility.UrlEncode(name)), contentType);
            //HashObject hash = serializer.Deserialize<HashObject>(value);
            //int code = hash.GetValue<int>("code");
            //if (code == 1)
            //{
            //    throw new Exception(string.Format("没有查询到【{0}】的网店信息", name));
            //}
            //CopyDataToList(hash, list);
            //while (code == 0) {
            //    var post = hash.GetValue<HashObject>("post");
            //    value = Net.GetNetData(taodaxingUrl, string.Format("pattern={0}&id={1}&page={2}&nt={3}", post["pattern"], post["id"], post["page"], post["nt"]), contentType);
            //    hash = serializer.Deserialize<HashObject>(value);
            //    code = hash.GetValue<int>("code");
            //    if (code != 0)
            //    {
            //        break;
            //    }
            //    CopyDataToList(hash, list);
            //}
            //return list;
        }
Esempio n. 23
0
        private void button2_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() != System.Windows.Forms.DialogResult.OK)
            {
                return;
            }

            textBox4.Text = openFileDialog1.FileName;

            using (StreamReader reader = new StreamReader(openFileDialog1.FileName, Encoding.GetEncoding("gbk")))
            {
                string str = reader.ReadToEnd();
                textBox2.Text = str;
                try
                {
                    textBox3.Text = JavaScriptSerializer.CreateInstance().Serialize(NetDataHandler.DetailDataTransformation(str));
                }
                catch (Exception e1)
                {
                    textBox3.Text = e1.Message;
                }
            }
        }
Esempio n. 24
0
        private void InitSocket(string user)
        {
            socket = IO.Socket(socketUrl);
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            socket.On(Socket.EVENT_CONNECT, () =>
            {
                if (socket == null)
                {
                    socket = IO.Socket(socketUrl);
                }
                socketConnected = true;
                Data data       = new Data(user);
                data.needAsk    = false;
                socket.Emit("login", serializer.Serialize(data));
                SendMsgToNode("已接入抓取接口,准备发起抓取请求");
            });
            socket.On("postDataSure", (data) =>
            {
                try
                {
                    HashObject hash = serializer.Deserialize <HashObject>(data.ToString());
                    postDataCuid    = hash.GetValue <ulong>("msg");
                    SendMessage("服务器验证通过,准备接收数据");
                }
                catch (Exception e)
                {
                    postDataCuid = 0;
                    SendMessage(e.Message);
                }
                finally
                {
                    postDataCuid = 0;
                    //listData = null;
                }
            });
        }
Esempio n. 25
0
        public void GetSingleGoodMsg(string id, string uid)
        {
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            HashObject data = new HashObject();

            data["fid"] = uid;
            data["url"] = string.Format("goodid={0}", id);
            SendMsg msg = new SendMsg("server");

            msg.comefrom = "net";
            msg.msg      = serializer.Serialize(data);
            IOUtils.Emit("getGoodMsg", serializer.Serialize(msg));

            //IHashObjectList list = new HashObjectList();
            //string value = Net.GetNetData(taodaxingUrl, string.Format("pattern=1&wwid=2&goodid={0}&page=1", id), contentType);
            //HashObject hash = serializer.Deserialize<HashObject>(value);
            //if (hash.GetValue<int>("code") == 0)
            //{
            //    CopyDataToList(hash, list);
            //    return list[0];
            //}
            //return value;
        }
Esempio n. 26
0
        public void BillCatchDemo(string user, ulong key, IList dataList)
        {
            if (!IOUtils.IsPostDataRequest(key, (ulong)dataList.Count))
            {
                throw new Exception("抓取数据未被验证,非法请求");
            }
            IList list = GetAllList(key, dataList);

            if (IOUtils.HasKey(key))
            {
                dataList.Clear();
                return;//还有未传完的数据
            }

            backDemoDataList.Remove(key);//清除备份,做一次性数据处理
            string comefrom = string.Format("数据分析_{0}", DateTime.Now.GetHashCode());
            Data   data     = new Data(user);

            data.comefrom = comefrom;

            IOUtils.Emit("login", JavaScriptSerializer.CreateInstance().Serialize(data));

            HashObject hash = DataCatchSave.AnalysisData(user, list, (text) =>
            {
                IOUtils.Emit("sendMsg", GetMessage(user, comefrom, text));
            });

            if (hash == null)
            {
                return;
            }
            string id = Cuid.NewCuid().ToString();

            DataCatchFromTBExample.SetTempData(id, hash);
            IOUtils.Emit("sendMsg", GetMessage(user, comefrom, string.Format("OK:url:{0}", id)));
        }
Esempio n. 27
0
        public static void Init()
        {
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            socket.On(Socket.EVENT_CONNECT, () =>
            {
                IsConnected   = true;
                Data data     = new Data("server");
                data.comefrom = "net";
                socket.Emit("login", serializer.Serialize(data));
            });
            socket.On("postDataRequest", (data) =>
            {
                HashObject hash = serializer.Deserialize <HashObject>(data.ToString());
                SendMsg nmsg    = new SendMsg("server");
                nmsg.comefrom   = "net";
                nmsg.touid      = hash.GetValue <string>("fuid");
                ulong key       = Cuid.NewCuid();
                Counter counter = new Counter();
                counter.All     = hash.GetValue <ulong>("msg");
                counter.Doned   = 0;
                PostDataRequestList.Add(key, counter);
                nmsg.msg = key.ToString();//回传一个唯一标记
                socket.Emit("postDataSure", serializer.Serialize(nmsg));
            });
            socket.On("consultationEnabledUpdate", (data) =>//咨询是否允许更新
            {
                HashObject hash = serializer.Deserialize <HashObject>(data.ToString());
                SendMsg nmsg    = new SendMsg("server");
                nmsg.comefrom   = "net";
                nmsg.touid      = hash.GetValue <string>("fuid");

                string key = hash.GetValue <string>("msg");
                nmsg.msg   = WebInterface.SureUpdateIds.Contains(key) ? "1" : "0";
                WebInterface.SureUpdateIds.Remove(key);
                socket.Emit("sureEnabledUpdate", serializer.Serialize(nmsg)); //确认可以做什么操作
            });
            socket.On("getLoginToken", (data) =>                              //客户端登录
            {
                HashObject hash = serializer.Deserialize <HashObject>(data.ToString());
                SendMsg nmsg    = new SendMsg("server");
                nmsg.comefrom   = "net";
                nmsg.touid      = hash.GetValue <string>("fuid");
                try
                {
                    string key = Guid.NewGuid().ToString().Replace("-", "");
                    nmsg.msg   = key;
                    using (DbHelper db = AppUtils.CreateDbHelper())
                    {
                        string sql = "insert into logintoken (`user`, `token`,updatedate) values(@user, @token,@updatedate) on duplicate key update `token` = values(`token`),`updatedate` = values(`updatedate`);";
                        db.AddParameter("user", hash.GetValue <string>("msg"));
                        db.AddParameter("token", key);
                        db.AddParameter("updatedate", DateTime.Now);
                        db.ExecuteIntSQL(sql);
                    }
                    socket.Emit("sendLoginToken", serializer.Serialize(nmsg));//确认可以做什么操作
                }
                catch (Exception e)
                {
                    nmsg.msg = string.Format("Exception:{0}", e.Message);
                    socket.Emit("sendLoginToken", serializer.Serialize(nmsg));//确认可以做什么操作
                }
            });
            socket.On("getDownDataToken", (data) =>
            {
                HashObject hash = serializer.Deserialize <HashObject>(data.ToString());
                SendMsg nmsg    = new SendMsg("server");
                nmsg.comefrom   = "net";
                nmsg.touid      = hash.GetValue <string>("fuid");

                try
                {
                    string key           = Guid.NewGuid().ToString().Replace("-", "");
                    nmsg.msg             = key;
                    string conditionMsg  = hash.GetValue <string>("msg");
                    HashObject condition = serializer.Deserialize <HashObject>(conditionMsg);
                    using (DbHelper db = AppUtils.CreateDbHelper())
                    {
                        string sql = "insert into downtoken (`user`, `token`,getDate, `condition`) values(@user, @token,@getDate, @condition) on duplicate key update `token` = values(`token`),`getDate` = values(`getDate`),`condition` = values(`condition`);";
                        db.AddParameter("user", condition.GetValue <string>("user"));
                        db.AddParameter("token", key);
                        db.AddParameter("getDate", DateTime.Now);
                        db.AddParameter("condition", conditionMsg);
                        db.ExecuteIntSQL(sql);
                    }
                    socket.Emit("sendDownDataToken", serializer.Serialize(nmsg));//确认可以做什么操作
                }
                catch (Exception e)
                {
                    nmsg.msg = string.Format("Exception:{0}", e.Message);
                    socket.Emit("sendLoginToken", serializer.Serialize(nmsg));//确认可以做什么操作
                }
            });
            IsConnected = false;
        }
Esempio n. 28
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. 29
0
        private static void BuildBillDataFromTable(string suser, bool onlyAdd, DataTable table, HashObjectList billList, HashObjectList detailList, DbHelper db = null, string ids = null, bool sureRate = true)
        {
            Dictionary <string, string> dic = GetExistBills(db, ids);
            List <string>        dicDetail  = GetExistBillDetails(db, ids);
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();

            foreach (DataRow row in table.Rows)
            {
                var    ddid = row["订单ID"].ToString();
                string id   = Cuid.NewCuid().GetHashCode().ToString();
                string oldid;
                if (dic.TryGetValue(ddid, out oldid))
                {
                    if (onlyAdd)
                    {
                        continue;
                    }
                    id = oldid;
                }
                string user = row["所属用户"].ToString();
                if (user != suser)
                {
                    throw new Exception("分析用户和数据保存用户不匹配,无法做数据保存");
                }
                object sendDate    = row["发货时间"];
                object successDate = row["成交时间"];

                Dictionary <string, decimal> goodsRate = GetGoodsRate(db, user);
                GoodsInfo[] ginfos = serializer.Deserialize <GoodsInfo[]>(row["货物信息"].ToString());

                var     sendWay  = TaobaoDataHelper.GetLogisticsInfo(row["快递公司"]).IsEmptyObject() ? null : "快递";
                string  remark   = GetRemark(row);
                decimal pall     = Decimal.Parse(row["拍下总金额"].ToString());
                decimal total    = Decimal.Parse(row["支付金额"].ToString());
                decimal ltotal   = 0;
                decimal btotal   = 0;
                decimal allPrice = 0;

                string address = TaobaoDataHelper.ReplaceHtmlText(row["具体地址"].ToString());
                if (!dicDetail.Contains(ddid))
                {
                    for (int j = ginfos.Length - 1; j >= 0; j--)
                    {
                        GoodsInfo ginfo   = ginfos[j];
                        string    goodKey = GetGoodsKey(ginfo.Color, ginfo.Size, ginfo.Title);
                        decimal   rate    = 0;
                        if (db != null && (goodsRate == null || !goodsRate.ContainsKey(goodKey)))
                        {
                            if (!sureRate)
                            {
                                rate = 0;
                            }
                            else
                            {
                                throw new Exception(string.Format("【{3}】   color:{0} size:{1} title:{2}没有设置比例goodMatchRate", ginfo.Color, ginfo.Size, ginfo.Title, user));
                            }
                        }
                        else
                        {
                            if (db != null)
                            {
                                rate = goodsRate[goodKey];
                            }
                        }
                        decimal price = ginfo.PriceInfo / pall * total;
                        if (j == 0)
                        {
                            price = total - allPrice;
                        }
                        allPrice += price;
                        decimal tbtotal = (price * rate) * (decimal)(0.01);
                        btotal += tbtotal;
                        decimal    tltotal    = price - tbtotal;
                        HashObject detailHash = new HashObject();
                        detailList.Add(detailHash);
                        detailHash.Add("id", Cuid.NewCuid().GetHashCode());
                        detailHash.Add("bid", id);
                        detailHash.Add("code", ddid);
                        detailHash.Add("size", ginfo.Size);
                        detailHash.Add("amount", ginfo.Amount);
                        detailHash.Add("color", ginfo.Color);
                        detailHash.Add("address", address);
                        detailHash.Add("area", row["区域"]);
                        detailHash.Add("total", price);
                        detailHash.Add("remark", remark);
                        detailHash.Add("ltotal", tltotal);
                        detailHash.Add("sourceTitle", ginfo.Title);
                        detailHash.Add("goodsstatus", int.Parse(row["发货状态status"].ToString()) >= 1 ? 2 : 1);
                        detailHash.Add("sendway", sendWay);
                        detailHash.Add("btotal", tbtotal);
                    }
                    ltotal = total - btotal;
                }

                if (IsNullDate(row["付款时间"]))
                {
                    continue;
                }

                HashObject billHash = new HashObject();
                billHash.Add("id", id);
                billHash.Add("date", row["付款时间"]);
                billHash.Add("taobaocode", row["旺旺名称"]);
                billHash.Add("cname", row["收货客户"]);
                billHash.Add("ctel", row["联系电话"]);
                billHash.Add("caddress", address);
                billHash.Add("carea", row["区域"]);
                billHash.Add("cremark", remark);
                billHash.Add("ltotal", ltotal);
                billHash.Add("status", row["发货状态status"]);
                billHash.Add("scode", TaobaoDataHelper.GetLogisticsInfo(row["物流单号"]));
                billHash.Add("sname", TaobaoDataHelper.GetLogisticsInfo(row["快递公司"]));
                billHash.Add("uid", GetUser(row["所属用户"], db == null));
                billHash.Add("goodsstatus", 1);
                billHash.Add("billfrom", "抓取");
                billHash.Add("createdate", row["创建时间"]);
                billHash.Add("zfbpaycode", row["支付宝交易号"]);
                billHash.Add("tbcode", ddid);
                billHash.Add("total", total);
                billHash.Add("btotal", btotal);
                billHash.Add("senddate", GetDate(sendDate));
                billHash.Add("successdate", GetDate(successDate));
                billList.Add(billHash);
            }
        }
Esempio n. 30
0
        public object GetTaobaoRealPrice(string url, string refer, List <SkuMap> skuMaps)
        {
            string html = GetHtml(url, refer).ToString().Trim();
            string flag = "onSibRequestSuccess(";
            string data = html.Substring(flag.Length).TrimEnd(';').TrimEnd(')');

            if (!data.Contains("promoData"))
            {
                return(skuMaps);
            }
            JavaScriptSerializer serializer = JavaScriptSerializer.CreateInstance();
            HashObject           hash       = serializer.Deserialize <HashObject>(data);

            string[] keys =
            {
                "data/deliveryFee/data/sendCity",
                "data/tradeContract/pay",
                "data/tradeContract/service",
                "data/couponActivity/coupon/couponList",
                "data/promotion/promoData",
                "data/dynStock/sku",
                "data/promotion/soldQuantity/soldTotalCount",
                "data/promotion/soldQuantity/confirmGoodsCount"
            };
            var temp = hash.GetHashValue(keys);

            Goods goods = new Goods();

            goods.SendCity          = temp.GetDataEx <string>("sendCity");
            goods.Pays              = GetGoodsPayWay(temp.GetDataEx <ArrayList>("pay"));
            goods.Service           = GetGoodsService(temp.GetDataEx <ArrayList>("service"));
            goods.Skus              = skuMaps;
            goods.Coupon            = GetGoodsCoupon(temp.GetDataEx <ArrayList>("couponList"));
            goods.SoldTotalCount    = temp.GetDataEx <decimal>("soldTotalCount");
            goods.ConfirmGoodsCount = temp.GetDataEx <decimal>("confirmGoodsCount");

            HashObject promoDatas = temp.GetDataEx <HashObject>("promoData");

            if (promoDatas != null)
            {
                foreach (SkuMap map in skuMaps)
                {
                    object keySku;
                    if (promoDatas.TryGetValue(map.Key, out keySku))
                    {
                        ArrayList list     = (ArrayList)keySku;
                        decimal   minPrice = map.PromotionPrice;
                        foreach (HashObject tempList in list)
                        {
                            minPrice = Math.Min(minPrice, tempList.GetValue <decimal>("price"));
                        }
                        map.PromotionPrice = minPrice;
                    }
                }
            }

            HashObject sku = temp.GetDataEx <HashObject>("sku");

            if (sku != null)
            {
                foreach (SkuMap map in skuMaps)
                {
                    object keySku;
                    if (sku.TryGetValue(map.Key, out keySku))
                    {
                        map.Stock = ((HashObject)keySku).GetValue <decimal>("sellableQuantity");
                    }
                }
            }
            return(goods);
        }