Example #1
0
        /// <summary>
        /// 处理数据变化
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void b1_DoWork(object sender, DoWorkEventArgs e)
        {
            //System.Threading.Thread.Sleep(new System.Random().Next(1000 * 60 * 3));
            while (true)
            {
                //晚上8点后,到早上7点前不执行数据同步
                if (DateTime.Now.Hour > 20 || DateTime.Now.Hour < 7)
                {
                    goto lable;
                }
                try
                {
                    DSWebService.BLL.SynLock ck = new DSWebService.BLL.SynLock();
                    ck.Lock();
                    //System.Threading.Thread.Sleep(1000 * 60 * 1);
                    DSWebService.BLL.Data_Centre.Price p = new DSWebService.BLL.Data_Centre.Price();
                    p.InitPrice();
                    DSWebService.BLL.Data_Centre.Product_Centre bll = new DSWebService.BLL.Data_Centre.Product_Centre();
                    DSWebService.BLL.Data_Centre.Config         con = new DSWebService.BLL.Data_Centre.Config();

                    foreach (var item in con.GetAllList())
                    {
                        bll.IdenData(int.Parse(item.id));
                    }

                    foreach (var item in con.GetAllList())
                    {
                        int iden = int.Parse(item.id);
                        bll.InitializeData(iden);
                        bll.InitializeDataNotfiling(iden);
                    }
                    ck.UnLock();
                }
                catch (Exception ex)
                {
                    DSWebService.BLL.Log.AddLog(ex.ToString(), 500);
                    try
                    {
                        DSWebService.BLL.SynLock ck = new DSWebService.BLL.SynLock();
                        ck.UnLock();
                    }
                    catch { }
                }
lable:
                System.Threading.Thread.Sleep(1000 * 60 * 10);
            }
        }
        /// <summary>
        /// 每天执行一次更新公共数据变化(包装盒,标签)
        /// </summary>
        public void UpdatePuclic()
        {
            ChangeDBShop();
            DSWebService.BLL.Data_Centre.Config con = new DSWebService.BLL.Data_Centre.Config();
            string sql = "";

            foreach (var item in con.GetAllList())
            {
                sql = string.Format("UPDATE Product SET tag_ids=b.Tag_Ids FROM Product a INNER JOIN DrugsBase_Tag_Ids b ON a.DrugsBase_ID = b.DrugsBase_Id AND a.iden={0} WHERE a.tag_ids<>b.Tag_Ids", item.id);
                ExecuteNonQuery(sql);

                sql = string.Format(@"UPDATE Product SET Image=a1.Image FROM 
                                      (
	                                    SELECT Product_ID,(SELECT TOP (1) Image FROM Goods_Image AS Goods_Image_1 WHERE (Goods_ID = b.Goods_ID))Image FROM Product b
                                      )a1 INNER JOIN Product b ON a1.Product_ID = b.Product_ID  AND b.iden={0} AND a1.Image <> b.Image", item.id);
                ExecuteNonQuery(sql);

                sql = string.Format(@"UPDATE Product SET Original=a1.Original FROM 
                                     (
	                                     SELECT Product_ID,(SELECT TOP (1) Original FROM Goods_Image AS Goods_Image_1 WHERE (Goods_ID = b.Goods_ID))Original FROM Product b
                                     )a1 INNER JOIN Product b ON a1.Product_ID = b.Product_ID AND b.iden={0} AND a1.Original <> b.Original", item.id);
                ExecuteNonQuery(sql);
            }
        }