Example #1
0
File: Node.cs Project: hseom/brunet
 /**
  * Implements the IDataHandler interface
  */
 public void HandleData(MemBlock data, ISender return_path, object state) {
   AnnounceState astate = new AnnounceState(this, data, return_path);
   EnqueueAction(astate);
 }
Example #2
0
        /**
         * Implements the IDataHandler interface
         */
        public void HandleData(MemBlock data, ISender return_path, object state)
        {
            AnnounceState astate = new AnnounceState(this, data, return_path);

            EnqueueAction(astate);
        }
Example #3
0
        public void HandleInformation(string sourceUserID, int informationType, byte[] info)
        {
            GlobalUtil.WriteLog("收到通知" + informationType);

            #region 充值规则更改
            if (NoticeInformationTypes.UpdateRechargeDonateRule == informationType)
            {
                RechargeDonateRule rechargeDonateRule = CompactPropertySerializer.Default.Deserialize <RechargeDonateRule>(info, 0);
                GlobalCache.UpdateRechargeDonateRule(rechargeDonateRule);
            }
            else if (NoticeInformationTypes.DeleteRechargeDonateRule == informationType)
            {
                GlobalCache.DeleteRechargeDonateRule();
            }
            else if (NoticeInformationTypes.UpdateShopRechargeRuleID == informationType)
            {
                RechargeDonateRule rechargeDonateRule = CompactPropertySerializer.Default.Deserialize <RechargeDonateRule>(info, 0);
                GlobalCache.UpdateShopRechargeRuleID(rechargeDonateRule);
            }

            #endregion

            #region 系统配置更改

            else if (NoticeInformationTypes.UpdateParameterConfig == informationType)
            {
                ParameterConfig c = CompactPropertySerializer.Default.Deserialize <ParameterConfig>(info, 0);
                GlobalCache.ParameterConfig(c);
            }
            else if (NoticeInformationTypes.UpdateParameterConfigs == informationType)
            {
                List <ParameterConfig> collection = CompactPropertySerializer.Default.Deserialize <List <ParameterConfig> >(info, 0);
                foreach (var item in collection)
                {
                    GlobalCache.ParameterConfig(item);
                }
            }

            #endregion

            #region 导购员信息更改
            else if (NoticeInformationTypes.UpdateGuide == informationType)
            {
                Guide guide = CompactPropertySerializer.Default.Deserialize <Guide>(info, 0);
                GlobalCache.UpdateGuide(guide);
            }
            else if (NoticeInformationTypes.InsertGuide == informationType)
            {
                Guide guide = CompactPropertySerializer.Default.Deserialize <Guide>(info, 0);
                GlobalCache.InsertGuide(guide);
            }
            else if (NoticeInformationTypes.DeleteGuide == informationType)
            {
                string guideID = Encoding.UTF8.GetString(info);
                GlobalCache.DeleteGuide(guideID);
            }
            else if (NoticeInformationTypes.DeleteGuides == informationType)
            {
                List <String> guideIDs = CompactPropertySerializer.Default.Deserialize <List <String> >(info, 0);
                foreach (var guideID in guideIDs)
                {
                    GlobalCache.DeleteGuide(guideID);
                }
            }
            #endregion

            #region 促销活动更改

            else if (NoticeInformationTypes.InsertSalesPromotion == informationType)
            {
                SalesPromotion salesPromotion = CompactPropertySerializer.Default.Deserialize <SalesPromotion>(info, 0);
                GlobalCache.InsertSalesPromotion(salesPromotion);
            }
            else if (NoticeInformationTypes.DeleteSalesPromotion == informationType)
            {
                string salesPromotionID = Encoding.UTF8.GetString(info);
                GlobalCache.DeleteSalesPromotion(salesPromotionID);
            }

            else if (NoticeInformationTypes.UpdateSalesPromotion == informationType)
            {
                SalesPromotion salesPromotion = CompactPropertySerializer.Default.Deserialize <SalesPromotion>(info, 0);
                GlobalCache.UpdateSalesPromotion(salesPromotion);
            }
            #endregion

            #region 品牌配置更改
            else if (NoticeInformationTypes.InsertBrand == informationType)
            {
                Brand brand = CompactPropertySerializer.Default.Deserialize <Brand>(info, 0);
                GlobalCache.InsertBrand(brand);
            }
            else if (NoticeInformationTypes.UpdateBrand == informationType)
            {
                Brand brand = CompactPropertySerializer.Default.Deserialize <Brand>(info, 0);
                GlobalCache.UpdateBrand(brand);
            }
            else if (NoticeInformationTypes.DeleteBrand == informationType)
            {
                int brandID = BitConverter.ToInt32(info, 0);
                GlobalCache.DeleteBrand(brandID);
            }
            #endregion

            #region  装信息更改

            //新增服装
            else if (NoticeInformationTypes.InsertCostume == informationType)
            {
                Costume costume = CompactPropertySerializer.Default.Deserialize <Costume>(info, 0);
                GlobalCache.InsertCostume(costume);
            }
            //服装信息更改
            else if (NoticeInformationTypes.UpdateCostume == informationType)
            {
                Costume costume = CompactPropertySerializer.Default.Deserialize <Costume>(info, 0);
                GlobalCache.UpdateCostume(costume);
            }
            else if (NoticeInformationTypes.DeleteCostume == informationType)
            {
                string costumeID = Encoding.UTF8.GetString(info);
                GlobalCache.DeleteCostume(costumeID);
            }
            else if (NoticeInformationTypes.InsertCostumes == informationType)
            {
                List <Costume> costumes = CompactPropertySerializer.Default.Deserialize <List <Costume> >(info, 0);
                foreach (var costume in costumes)
                {
                    GlobalCache.InsertCostume(costume);
                }
            }
            else if (NoticeInformationTypes.UpdateCostumes == informationType)
            {
                List <Costume> costumes = CompactPropertySerializer.Default.Deserialize <List <Costume> >(info, 0);
                foreach (var costume in costumes)
                {
                    GlobalCache.UpdateCostume(costume);
                }
            }
            else if (NoticeInformationTypes.UpdateCostumeValid == informationType)
            {
                UpdateCostumeValidPara result = CompactPropertySerializer.Default.Deserialize <UpdateCostumeValidPara>(info, 0);
                GlobalCache.UpdateCostumeValid(result);
            }
            else if (NoticeInformationTypes.InsertCostumeStores == informationType)
            {
                GlobalCache.LoadCostumeInfos();
            }

            #endregion

            #region 管理员信息更改
            //新增管理员
            else if (NoticeInformationTypes.InsertAdminUser == informationType)
            {
                AdminUser adminUser = CompactPropertySerializer.Default.Deserialize <AdminUser>(info, 0);
                GlobalCache.InsertAdminUser(adminUser);
            }
            //管理员信息更改
            else if (NoticeInformationTypes.UpdateAdminUser == informationType)
            {
                AdminUser adminUser = CompactPropertySerializer.Default.Deserialize <AdminUser>(info, 0);
                GlobalCache.UpdateAdminUser(adminUser);
            }
            #endregion

            #region 供应商信息更改
            //新增供应商
            else if (NoticeInformationTypes.InsertSupplier == informationType)
            {
                Supplier supplier = CompactPropertySerializer.Default.Deserialize <Supplier>(info, 0);
                GlobalCache.InsertSupplier(supplier);
            }
            else if (NoticeInformationTypes.ImportSupplier == informationType)
            {
                List <Supplier> suppliers = CompactPropertySerializer.Default.Deserialize <List <Supplier> >(info, 0);
                if (suppliers != null)
                {
                    foreach (var supplier in suppliers)
                    {
                        GlobalCache.InsertSupplier(supplier);
                    }
                }
            }
            //供应商信息更改
            else if (NoticeInformationTypes.UpdateSupplier == informationType)
            {
                Supplier supplier = CompactPropertySerializer.Default.Deserialize <Supplier>(info, 0);
                GlobalCache.UpdateSupplier(supplier);
            }
            //删除供应商
            else if (NoticeInformationTypes.DeleteSupplier == informationType)
            {
                string supplierID = Encoding.UTF8.GetString(info);
                GlobalCache.DeleteSupplier(supplierID);
            }
            #endregion

            #region 店铺更改
            //新增店铺
            else if (NoticeInformationTypes.InsertShop == informationType)
            {
                Shop shop = CompactPropertySerializer.Default.Deserialize <Shop>(info, 0);
                GlobalCache.InsertShop(shop);
            }
            //店铺信息更改
            else if (NoticeInformationTypes.UpdateShop == informationType)
            {
                Shop shop = CompactPropertySerializer.Default.Deserialize <Shop>(info, 0);
                GlobalCache.UpdateShop(shop);
            }
            else if (NoticeInformationTypes.DisableShop == informationType)
            {
                String shopID = Encoding.UTF8.GetString(info);
                GlobalCache.DisableShop(shopID);
            }
            else if (NoticeInformationTypes.DeleteShop == informationType)
            {
                String shopID = Encoding.UTF8.GetString(info);
                GlobalCache.RemoveShop(shopID);
            }
            //Todo:

            #endregion
            else if (NoticeInformationTypes.InsertDifferenceOrder == informationType)
            {
                int result = SerializeHelper.ByteArrayToInt(info);

                DifferenceOrderPagePara checkOrderPagePara = new DifferenceOrderPagePara()
                {
                    OrderID                  = null,
                    CostumeID                = null,
                    IsOpenDate               = true,
                    IsOnlyGetOut             = true,
                    StartDate                = new CJBasic.Date("1900-01-01"),
                    EndDate                  = new CJBasic.Date(DateTime.Now),
                    PageIndex                = 0,
                    PageSize                 = 1000,
                    ShopID                   = CommonGlobalCache.CurrentShopID,
                    OrderPrefixType          = ValidateUtil.CheckEmptyValue(OrderPrefix.AllocateOrder),
                    DifferenceOrderConfirmed = DifferenceOrderConfirmed.False,
                };

                DifferenceOrderPage checkOrderListPage = CommonGlobalCache.ServerProxy.GetDifferenceOrderPage(checkOrderPagePara);

                ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您有" + checkOrderListPage.DifferenceOrderList.Count + "张差异单待处理,请及时处理!" + "#" + informationType);
            }
            #region 新的补货申请单待处理通知
            else if (NoticeInformationTypes.ReplenishOutbound == informationType)
            {
                ReplenishCostumePagePara pageParaReplenish = new ReplenishCostumePagePara()
                {
                    CostumeID           = null,
                    ReplenishOrderID    = null,
                    IsOpenDate          = true,
                    StartDate           = new CJBasic.Date("1900-01-01"),
                    EndDate             = new CJBasic.Date(DateTime.Now),
                    PageIndex           = 0,
                    PageSize            = 10000,
                    ShopID              = CommonGlobalCache.CurrentShopID,
                    ReplenishOrderState = ReplenishOrderState.NotProcessing,
                    BrandID             = -1
                };
                ReplenishCostumePage listPageReplenish = CommonGlobalCache.ServerProxy.GetReplenishCostumePage(pageParaReplenish);

                ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您有" + listPageReplenish.ReplenishOrderList.Count + "张待发货的补货申请单待处理,请及时处理!" + "#" + informationType);
            }
            else if (NoticeInformationTypes.AllocateOutbound == informationType)
            {
                int result = SerializeHelper.ByteArrayToInt(info);
                if (GlobalCache.GetParameter(ParameterConfigKey.AllocateInDirectly)?.ParaValue == "1")
                {
                    ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您有新的调拨单已入库!");
                }
                else
                {
                    GetAllocateOrdersPara pagePara = new GetAllocateOrdersPara()
                    {
                        AllocateOrderID    = null,
                        AllocateOrderState = AllocateOrderState.Normal,
                        CostumeID          = null,
                        EndDate            = new CJBasic.Date(DateTime.Now),
                        StartDate          = new CJBasic.Date("1900-01-01"),
                        ShopID             = "",
                        Type         = AllocateOrderType.All,
                        PageIndex    = 0,
                        PageSize     = 20,
                        ReceiptState = ReceiptState.WaitReceipt,
                        LockShop     = PermissonUtil.HasPermission(RolePermissionMenuEnum.调拨单查询, RolePermissionEnum.查看_只看本店),
                        DestShopID   = CommonGlobalCache.CurrentShopID,
                        SourceShopID = "",
                    };

                    InteractResult <AllocateOrderPage> listPage = CommonGlobalCache.ServerProxy.GetAllocateOrders(pagePara);
                    ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您有" + listPage.Data.AllocateOrderList.Count + "张调拨单待处理,请及时处理!" + "#" + informationType);
                }
            }
            else if (NoticeInformationTypes.ReplenishCostume == informationType)
            {
                int result = SerializeHelper.ByteArrayToInt(info);
                ReplenishCostumePagePara pageParaReplenish = new ReplenishCostumePagePara()
                {
                    CostumeID           = null,
                    ReplenishOrderID    = null,
                    IsOpenDate          = true,
                    StartDate           = new CJBasic.Date("1900-01-01"),
                    EndDate             = new CJBasic.Date(DateTime.Now),
                    PageIndex           = 0,
                    PageSize            = 10000,
                    ShopID              = CommonGlobalCache.CurrentShopID,
                    ReplenishOrderState = ReplenishOrderState.NotProcessing,
                    BrandID             = -1
                };
                ReplenishCostumePage listPageReplenish = CommonGlobalCache.ServerProxy.GetReplenishCostumePage(pageParaReplenish);

                ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您有补货申请单待处理,请及时处理!" + "#" + informationType);
            }
            #endregion
            #region 盘点已审核通知
            else if (NoticeInformationTypes.CheckStorePass == informationType)
            {
                GlobalUtil.WriteLog("盘点已审核通知");
                ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您的盘点单已审核,请及时查收!" + "#" + informationType);
                // GlobalUtil.MainForm.OnStoreStateChanged(false);
            }
            #endregion
            #region 盘点退回通知

            /*  else if (NoticeInformationTypes.CancelCheckStore == informationType)
             * {
             *    GlobalUtil.WriteLog("盘点退回通知");
             *    ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您的盘点单被退回,请及时查收!" + "#" + informationType);
             *
             * } */
            #endregion
            #region 补货申请单/调拨单冲单通知
            else if (NoticeInformationTypes.OverrideOrder == informationType)
            {
                string result = String.Empty;
                if (info != null)
                {
                    result = Encoding.UTF8.GetString(info);
                }
                GlobalUtil.WriteLog("补货申请单/或调拨单" + result + "冲单通知");

                ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您的" + GlobalUtil.OrderType(result) + "单" + result + "被冲单,请及时查收!" + "#" + informationType);
            }
            #endregion
            #region 补货申请单取消
            else if (NoticeInformationTypes.CancelReplenish == informationType)
            {
                string result = String.Empty;
                if (info != null)
                {
                    result = Encoding.UTF8.GetString(info);
                }
                GlobalUtil.WriteLog("补货申请单" + result + "取消通知");

                ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您的" + GlobalUtil.OrderType(result) + "单" + result + "被取消,请及时查收!" + "#" + informationType);
            }
            #endregion
            else if (NoticeInformationTypes.NewEmRefundOrder == informationType)
            {
                int result = SerializeHelper.ByteArrayToInt(info);

                GetEmOrderPagePara EmReturnpagePara = new GetEmOrderPagePara()
                {
                    OrderID           = null,
                    StartDate         = new CJBasic.Date("1900-01-01"),
                    EndDate           = new CJBasic.Date(DateTime.Now),
                    PageIndex         = 0,
                    PageSize          = 1000,
                    MemberPhoneOrName = null,
                    CostumeIDOrName   = null,
                    OrderState        = EmRetailOrderState.All,

                    RefundStatus = RefundStatus.Refunding,
                };

                EmOrderPage EmReturnlistPage = CommonGlobalCache.ServerProxy.GetEmOrderPage(EmReturnpagePara);

                int rows = EmReturnlistPage.ResultList.FindAll(t => t.RefundStateName == EmRetailOrder.GetRefundState(RefundStateEnum.RefundApplication) || t.RefundStateName == EmRetailOrder.GetRefundState(RefundStateEnum.Refunding)).Count;

                ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您有" + rows + "张线上退货待处理,请及时处理!" + "#" + informationType);
            }
            else if (NoticeInformationTypes.NewEmRetailOrder == informationType)
            {
                int result = SerializeHelper.ByteArrayToInt(info);
                GetEmOrderPagePara EmpagePara = new GetEmOrderPagePara()
                {
                    OrderID           = null,
                    StartDate         = new CJBasic.Date("1900-01-01"),
                    EndDate           = new CJBasic.Date(DateTime.Now),
                    PageIndex         = 0,
                    PageSize          = 1000,
                    MemberPhoneOrName = null,
                    CostumeIDOrName   = null,
                    OrderState        = EmRetailOrderState.WaitDelivery,
                    RefundStatus      = RefundStatus.NotSelect,
                };

                EmOrderPage EmlistPage = CommonGlobalCache.ServerProxy.GetEmOrderPage(EmpagePara);

                ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您有" + EmlistPage.ResultList.Count + "张线上订单待处理,请及时处理!" + "#" + informationType);
            }
            #region 批发客户信息更改
            //新增供应商
            else if (NoticeInformationTypes.InsertPfCustomer == informationType)
            {
                PfCustomer supplier = CompactPropertySerializer.Default.Deserialize <PfCustomer>(info, 0);
                PfCustomerCache.InsertPfCustomer(supplier);
            }
            else if (NoticeInformationTypes.ImportPfCustomer == informationType)
            {
                List <PfCustomer> suppliers = CompactPropertySerializer.Default.Deserialize <List <PfCustomer> >(info, 0);
                foreach (var supplier in suppliers)
                {
                    PfCustomerCache.InsertPfCustomer(supplier);
                }
            }
            //供应商信息更改
            else if (NoticeInformationTypes.UpdatePfCustomer == informationType)
            {
                PfCustomer supplier = CompactPropertySerializer.Default.Deserialize <PfCustomer>(info, 0);
                PfCustomerCache.UpdatePfCustomer(supplier);
            }
            //删除供应商
            else if (NoticeInformationTypes.DeletePfCustomer == informationType)
            {
                string supplierID = Encoding.UTF8.GetString(info);
                PfCustomerCache.DeletePfCustomer(supplierID);
            }
            #endregion
            #region 盘点待处理通知
            else if (NoticeInformationTypes.InsertCheckStore == informationType)
            {
                GlobalUtil.WriteLog("盘点待处理通知");
                CheckStoreOrderPagePara checkPagePara = new CheckStoreOrderPagePara()
                {
                    CheckStoreOrderID = null,
                    IsOpenDate        = true,
                    StartDate         = new CJBasic.Date("1900-01-01"),
                    EndDate           = new CJBasic.Date(DateTime.Now),
                    PageIndex         = 0,
                    PageSize          = 1000,
                    //ShopID = CommonGlobalCache.CurrentShopID,
                    CostumeID = null,
                    State     = CheckStoreOrderState.PendingReview,
                };

                CheckStoreOrderPage ChecklistPage = CommonGlobalCache.ServerProxy.GetCheckStoreOrderPage(checkPagePara);

                ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您有" + ChecklistPage.CheckStoreOrderList.Count + "张盘点单待审核,请及时处理!" + "#" + informationType);
            }
            #endregion
            #region 盘点退回通知
            else if (NoticeInformationTypes.CancelCheckStore == informationType)
            {
                GlobalUtil.WriteLog("盘点退回通知");
                ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您的盘点单被退回,请及时处理!" + "#" + informationType);
            }
            #endregion
            #region 盘点取消通知
            else if (NoticeInformationTypes.CancelCheckStoreTask == informationType)
            {
                GlobalUtil.WriteLog("盘点取消通知");
                ((MainForm)GlobalUtil.MainForm).OnNewInfomation("您有盘点已取消!");
            }
            #endregion
            else if (NoticeInformationTypes.EnabledSizeGroup == informationType)
            {
                EnabledSizeGroupPara sizeGroup = CompactPropertySerializer.Default.Deserialize <EnabledSizeGroupPara>(info, 0);
                GlobalCache.EnabledSizeGroup(sizeGroup);
            }
            else if (NoticeInformationTypes.InsertSizeGroup == informationType)
            {
                SizeGroup sizeGroup = CompactPropertySerializer.Default.Deserialize <SizeGroup>(info, 0);
                GlobalCache.InsertSizeGroup(sizeGroup);
            }
            else if (NoticeInformationTypes.UpdateSizeGroup == informationType)
            {
                SizeGroup sizeGroup = CompactPropertySerializer.Default.Deserialize <SizeGroup>(info, 0);
                GlobalCache.UpdateSizeGroup(sizeGroup);
            }
            else if (NoticeInformationTypes.DeleteSizeGroup == informationType)
            {
                String SizeGroupName = Encoding.UTF8.GetString(info);
                GlobalCache.DeleteSizeGroup(SizeGroupName);
            }
            else if (NoticeInformationTypes.UpdateSizeNames == informationType)
            {
                UpdateSizeNamesInfo sizeNameInfo = CompactPropertySerializer.Default.Deserialize <UpdateSizeNamesInfo>(info, 0);
                GlobalCache.UpdateSizeNames(sizeNameInfo);
            }
            else if (NoticeInformationTypes.InsertDistributor == informationType)
            {
                Distributor supplier = CompactPropertySerializer.Default.Deserialize <Distributor>(info, 0);
                GlobalCache.InsertDistributor(supplier);
            }
            else if (NoticeInformationTypes.UpdateDistributor == informationType)
            {
                Distributor supplier = CompactPropertySerializer.Default.Deserialize <Distributor>(info, 0);
                GlobalCache.UpdateDistributor(supplier);
            }
            #region 批发客户信息更改
            //新增供应商
            else if (NoticeInformationTypes.InsertPfCustomer == informationType)
            {
                PfCustomer supplier = CompactPropertySerializer.Default.Deserialize <PfCustomer>(info, 0);
                PfCustomerCache.InsertPfCustomer(supplier);
            }
            //供应商信息更改
            else if (NoticeInformationTypes.UpdatePfCustomer == informationType)
            {
                PfCustomer supplier = CompactPropertySerializer.Default.Deserialize <PfCustomer>(info, 0);
                PfCustomerCache.UpdatePfCustomer(supplier);
            }
            //删除供应商
            else if (NoticeInformationTypes.DeletePfCustomer == informationType)
            {
                string supplierID = Encoding.UTF8.GetString(info);
                PfCustomerCache.DeletePfCustomer(supplierID);
            }
            else if (NoticeInformationTypes.SendAnnounce == informationType)
            {
                int      result   = SerializeHelper.ByteArrayToInt(info);
                Announce announce = CompactPropertySerializer.Default.Deserialize <Announce>(info, 0);
                //1:发布中,2:已完成,3:已取消
                AnnounceState state = (AnnounceState)announce.State;

                switch (state)
                {
                case AnnounceState.Finished:
                case AnnounceState.Cancel:
                    ((MainForm)GlobalUtil.MainForm).SendAnnounce(state);
                    break;

                case AnnounceState.Releasing:
                    CommonGlobalCache.SystemUpdateMessage = announce.AnnounceContent;
                    ((MainForm)GlobalUtil.MainForm).OnNewInfomation("系统升级公告\r\n尊敬的客户:\r\n" + announce.AnnounceContent);
                    ((MainForm)GlobalUtil.MainForm).SendAnnounce(state);
                    break;

                default:
                    break;
                }
            }
            else if (NoticeInformationTypes.NoticeClose == informationType)
            {
                ((MainForm)GlobalUtil.MainForm).DoClose();
                //  System.Diagnostics.Process.Start(System.Reflection.Assembly.GetExecutingAssembly().Location);
            }
            #endregion
        }