예제 #1
0
        /// <summary>
        /// 删除用户记录(删除用户时使用)
        /// </summary>
        /// <param name="userId">被删除用户</param>
        /// <param name="takeOverUserName">接管用户名</param>
        /// <param name="takeOverAll">是否接管被删除用户的所有内容</param>
        public void DeleteUser(long userId, string takeOverUserName, bool takeOverAll)
        {
            long              takeOverUserId    = UserIdToUserNameDictionary.GetUserId(takeOverUserName);
            IUserService      userService       = DIContainer.Resolve <IUserService>();
            User              takeOver          = userService.GetFullUser(takeOverUserId);
            BarSectionService barSectionService = new BarSectionService();
            BarThreadService  barThreadService  = new BarThreadService();
            BarPostService    barPostService    = new BarPostService();

            //删除用户时,不删除贴吧,把贴吧转让,如果没有指定转让人,那就转给网站初始管理员
            if (takeOver == null)
            {
                takeOverUserId = new SystemDataService().GetLong("Founder");
                takeOver       = userService.GetFullUser(takeOverUserId);
            }

            barThreadRepository.DeleteUser(userId, takeOver, takeOverAll);
            if (takeOver != null)
            {
                if (!takeOverAll)
                {
                    barThreadService.DeletesByUserId(userId);
                    barPostService.DeletesByUserId(userId);
                }
            }
            //else
            //{
            //    barSectionService.DeletesByUserId(userId);
            //    barThreadService.DeletesByUserId(userId);
            //    barPostService.DeletesByUserId(userId);
            //}
        }
예제 #2
0
        /// <summary>
        /// 获取统计代码
        /// </summary>
        /// <returns></returns>
        public string GetStatisticsCode()
        {
            SystemDataService service = new SystemDataService();
            long siteId = service.GetLong("CNZZStatisticsSiteId");

            if (siteId > 0)
            {
                return(string.Format("<script src='http://pw.cnzz.com/c.php?id={0}&l=2' language='JavaScript' charset='gb2312'></script>", siteId));
            }

            return(string.Empty);
        }
예제 #3
0
        /// <summary>
        /// 获取展示统计页面的连接
        /// </summary>
        /// <returns></returns>
        public string GetCNZZStatisticsPageLink()
        {
            SystemDataService service = new SystemDataService();
            long siteId   = service.GetLong("CNZZStatisticsSiteId");
            long password = service.GetLong("CNZZStatisticsPassword");

            SiteSettings siteSettings = siteSettingsManager.Get();

            if (siteId <= 0 || password <= 0)
            {
                return(string.Empty);
            }

            return(string.Format("http://wss.cnzz.com/user/companion/spacebuilder_login.php?site_id={0}&password={1}", siteId, password));
        }
예제 #4
0
        /// <summary>
        /// 获取统计账户信息
        /// </summary>
        /// <returns></returns>
        public StatisticsAccount GetAccount()
        {
            SystemDataService systemDataService = new SystemDataService();
            StatisticsAccount account           = new StatisticsAccount();
            long siteId   = systemDataService.GetLong("CNZZStatisticsSiteId");
            long password = systemDataService.GetLong("CNZZStatisticsPassword");

            if (siteId <= 0 || password <= 0)
            {
                return(null);
            }

            account.UserName = siteId.ToString();
            account.Password = password.ToString();
            return(account);
        }
예제 #5
0
        /// <summary>
        /// 保存统计帐号
        /// <param name="account">被保存的统计帐号</param>
        /// </summary>
        public void SaveStatisticsAccount(StatisticsAccount account)
        {
            if (account == null || string.IsNullOrEmpty(account.Password) || string.IsNullOrEmpty(account.UserName))
            {
                return;
            }

            SystemDataService systemDataService = new SystemDataService();
            long siteId   = systemDataService.GetLong("CNZZStatisticsSiteId");
            long password = systemDataService.GetLong("CNZZStatisticsPassword");

            long accountSiteId = 0;

            if (!long.TryParse(account.UserName, out accountSiteId))
            {
                return;
            }

            long accountPassword = 0;

            if (!long.TryParse(account.Password, out accountPassword))
            {
                return;
            }

            if (accountSiteId != siteId)
            {
                systemDataService.Change("CNZZStatisticsSiteId", accountSiteId - siteId);
            }
            if (accountPassword != password)
            {
                systemDataService.Change("CNZZStatisticsPassword", accountPassword - password);
            }

            Enable = true;

            ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>();
            SiteSettings         siteSettings        = siteSettingsManager.Get();

            siteSettings.StatScript = GetStatisticsCode();

            siteSettingsManager.Save(siteSettings);
        }
예제 #6
0
        /// <summary>
        /// 删除用户记录(删除用户时使用)
        /// </summary>
        /// <param name="userId">被删除用户</param>
        /// <param name="takeOverUserName">接管用户名</param>
        /// <param name="takeOverAll">是否接管被删除用户的所有内容</param>
        public void DeleteUser(long userId, string takeOverUserName, bool takeOverAll)
        {
            //设计要点:
            //1.利用sql转移给接管用户、删除群组成员、群组成员申请;
            //2.删除群组成员时,维护群组的成员数;

            //如果没设置由谁接管群组,就把群组转给网站初始管理员
            long takeOverUserId = 0;

            if (string.IsNullOrEmpty(takeOverUserName))
            {
                takeOverUserId = new SystemDataService().GetLong("Founder");
            }
            else
            {
                takeOverUserId = UserIdToUserNameDictionary.GetUserId(takeOverUserName);
            }


            IUserService userService = DIContainer.Resolve <IUserService>();
            User         takeOver    = userService.GetFullUser(takeOverUserId);

            groupRepository.DeleteUser(userId, takeOver, takeOverAll);
        }
예제 #7
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                using (IServiceScope scope = _provider.CreateScope())
                {
                    try
                    {
                        using (var _dbContext = scope.ServiceProvider.GetRequiredService <WorkerAppDbContext>())
                        {
                            var taskTicket = await _dbContext.TaskTickets.FirstOrDefaultAsync(s => s.TicketStatus == TicketStatus.Added).ConfigureAwait(false);

                            if (taskTicket != null)
                            {
                                SystemDataService systemDataService = new SystemDataService(_logger, _dbContext);
                                var source = await _dbContext.Sources.FirstOrDefaultAsync(i => i.SourceId == taskTicket.SourceId).ConfigureAwait(false);

                                switch (taskTicket.TicketType)
                                {
                                case TicketType.ImportDocuments:
                                    List <Document> documents = new List <Document>();
                                    if (source != null)
                                    {
                                        try
                                        {
                                            switch (source.Type)
                                            {
                                            case "oracle_sben_dp":
                                                documents = await ProceedSbenOracleDpDocuments(source, taskTicket, systemDataService);

                                                break;

                                            case "bp_flat_file":
                                                await FvpWebAppUtils.ChangeTicketStatus(_dbContext, taskTicket.TaskTicketId, TicketStatus.Pending).ConfigureAwait(false);

                                                documents = await _dbContext.Documents.Where(d => d.TaskTicketId == taskTicket.TaskTicketId).ToListAsync().ConfigureAwait(false);

                                                await FvpWebAppUtils.ChangeTicketStatus(_dbContext, taskTicket.TaskTicketId, TicketStatus.Done).ConfigureAwait(false);

                                                break;

                                            default:
                                                await FvpWebAppUtils.ChangeTicketStatus(_dbContext, taskTicket.TaskTicketId, TicketStatus.Failed).ConfigureAwait(false);

                                                break;
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            await FvpWebAppUtils.ChangeTicketStatus(_dbContext, taskTicket.TaskTicketId, TicketStatus.Failed).ConfigureAwait(false);

                                            _logger.LogError(ex.InnerException != null ? ex.InnerException.Message : ex.Message);
                                        }
                                    }
                                    else
                                    {
                                        await FvpWebAppUtils.ChangeTicketStatus(_dbContext, taskTicket.TaskTicketId, TicketStatus.Failed).ConfigureAwait(false);
                                    }
                                    _logger.LogInformation($"Documents: {documents.Count}");

                                    try
                                    {
                                        await ProceedContractors(documents, systemDataService).ConfigureAwait(false);
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogError(ex.InnerException != null ? ex.InnerException.Message : ex.Message);
                                    }
                                    break;

                                case TicketType.ImportContractors:
                                    await FvpWebAppUtils.ChangeTicketStatus(_dbContext, taskTicket.TaskTicketId, TicketStatus.Done).ConfigureAwait(false);

                                    break;

                                case TicketType.CheckContractors:
                                    try
                                    {
                                        await systemDataService.CheckContractors(taskTicket.TaskTicketId);
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogError(ex.InnerException != null ? ex.InnerException.Message : ex.Message);
                                    }
                                    break;

                                case TicketType.MatchContractors:
                                    try
                                    {
                                        var target = await _dbContext.Targets.FirstOrDefaultAsync(t => t.TargetId == source.TargetId);

                                        await systemDataService.MatchContractors(taskTicket, target);

                                        await FvpWebAppUtils.ChangeTicketStatus(_dbContext, taskTicket.TaskTicketId, TicketStatus.Done).ConfigureAwait(false);
                                    }
                                    catch (Exception ex)
                                    {
                                        await FvpWebAppUtils.ChangeTicketStatus(_dbContext, taskTicket.TaskTicketId, TicketStatus.Failed).ConfigureAwait(false);

                                        _logger.LogError(ex.InnerException != null ? ex.InnerException.Message : ex.Message);
                                    }
                                    break;

                                case TicketType.ExportContractorsToErp:
                                    try
                                    {
                                        var target = await _dbContext.Targets.FirstOrDefaultAsync(t => t.TargetId == source.TargetId);

                                        TargetDataService targetDataService = new TargetDataService(_logger, _dbContext, _procOutput);
                                        await targetDataService.ExportContractorsToErp(taskTicket, target);

                                        await FvpWebAppUtils.ChangeTicketStatus(_dbContext, taskTicket.TaskTicketId, TicketStatus.Done).ConfigureAwait(false);
                                    }
                                    catch (Exception ex)
                                    {
                                        await FvpWebAppUtils.ChangeTicketStatus(_dbContext, taskTicket.TaskTicketId, TicketStatus.Failed).ConfigureAwait(false);

                                        _logger.LogError(ex.InnerException != null ? ex.InnerException.Message : ex.Message);
                                    }
                                    break;

                                case TicketType.ExportDocumentsToErp:
                                    try
                                    {
                                        var target = await _dbContext.Targets.FirstOrDefaultAsync(t => t.TargetId == source.TargetId);

                                        TargetDataService targetDataService = new TargetDataService(_logger, _dbContext, _procOutput);
                                        await targetDataService.InsertDocumentsToTarget(taskTicket, target);

                                        await FvpWebAppUtils.ChangeTicketStatus(_dbContext, taskTicket.TaskTicketId, TicketStatus.Done).ConfigureAwait(false);
                                    }
                                    catch (Exception ex)
                                    {
                                        await FvpWebAppUtils.ChangeTicketStatus(_dbContext, taskTicket.TaskTicketId, TicketStatus.Failed).ConfigureAwait(false);

                                        _logger.LogError(ex.InnerException != null ? ex.InnerException.Message : ex.Message);
                                    }
                                    break;

                                default:
                                    break;
                                }
                            }
                        };
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(ex.Message);
                    }
                }
                await Task.Delay(5000).ConfigureAwait(false);
            }
        }
예제 #8
0
 private async Task ProceedContractors(List <Document> documents, SystemDataService systemDataService)
 {
     await systemDataService.TransferContractors(documents);
 }
예제 #9
0
        private async Task <List <Document> > ProceedSbenOracleDpDocuments(Source source, TaskTicket taskTicket, SystemDataService systemDataService)
        {
            SBenDataService sBenDataService   = new SBenDataService();
            var             documentsResponse = await sBenDataService.GetDocuments(source, taskTicket).ConfigureAwait(false);

            if (documentsResponse != null && documentsResponse.Count > 0)
            {
                await systemDataService.TransferDocuments(documentsResponse, taskTicket);
            }
            return(documentsResponse);
        }
예제 #10
0
 public async void Loaded()
 {
     SystemList = await SystemDataService.GetSystemList();
 }