dg.dotnet/dg.dotnet/DG.DotNet.Sample/Workers/TestWorker.cs

71 lines
2.7 KiB
C#

using DG.DotNet.Sample.Models;
using DG.EventBus;
using DG.Core;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Authorization;
using System.Text.Json;
using Oracle.ManagedDataAccess.Client;
using System.Data;
namespace DG.DotNet.Sample.Workers
{
public class TestWorker : BackgroundService
{
private readonly ILogger<TestWorker> _logger;
private readonly IServiceProvider _serviceProvider;
private readonly IEventBus<TestEvent> _eventBus;
private readonly IHttpClient _httpClient;
public TestWorker(IServiceProvider serviceProvider,
ILogger<TestWorker> logger,
IEventBus<TestEvent> eventBus,
IHttpClient httpClient)
{
_logger = logger;
_serviceProvider = serviceProvider;
_eventBus = eventBus;
_httpClient = httpClient;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
using (IServiceScope scope = _serviceProvider.CreateScope())
{
var repository = scope.ServiceProvider.GetRequiredService<IOracleRepository<AppDbContext>>();
var sql = @"select
a.*
from
(
select
*
from
bas_businessdepartment
where
deptid in (
select
saledeptid
from
bas_salesdepartment start with saledeptid =(
select
a.deptid
from
bas_innerusergroup a
join bas_inneruser b on a.inneruserid = b.pkid
where
b.eid = :eid
) connect by prior department_parentid = department_id
)
) a
join bas_businesslines b on a.businessid = b.businessid";
var param = new OracleParameter[] {
new OracleParameter() { ParameterName = ":eid", OracleDbType = OracleDbType.Int64, Value = 4028 }
};
var list = await repository.ExecuteSqlToEntityAsync<BAS_BUSINESSDEPARTMENT>(sql, param);
_logger.LogInformation(JsonSerializer.Serialize(list));
}
}
}
}