|
@@ -11,6 +11,7 @@ using Hotline.Share.Enums.CallCenter;
|
|
using Hotline.Users;
|
|
using Hotline.Users;
|
|
using MapsterMapper;
|
|
using MapsterMapper;
|
|
using Microsoft.Extensions.Logging;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
+using SqlSugar;
|
|
using XF.Domain.Authentications;
|
|
using XF.Domain.Authentications;
|
|
using XF.Domain.Cache;
|
|
using XF.Domain.Cache;
|
|
using XF.Domain.Exceptions;
|
|
using XF.Domain.Exceptions;
|
|
@@ -205,6 +206,7 @@ public abstract class DefaultCallApplication : ICallApplication
|
|
{
|
|
{
|
|
var query = _callNativeRepository.Queryable(includeDeleted: true)
|
|
var query = _callNativeRepository.Queryable(includeDeleted: true)
|
|
.LeftJoin<Order>((d, o) => d.Id == o.CallId)
|
|
.LeftJoin<Order>((d, o) => d.Id == o.CallId)
|
|
|
|
+ .Where((d, o) => d.GroupId == "1")
|
|
.WhereIF(!string.IsNullOrEmpty(dto.OrderNo), (d, o) => o.No == dto.OrderNo)
|
|
.WhereIF(!string.IsNullOrEmpty(dto.OrderNo), (d, o) => o.No == dto.OrderNo)
|
|
.WhereIF(!string.IsNullOrEmpty(dto.FromNo), d => d.FromNo == dto.FromNo)
|
|
.WhereIF(!string.IsNullOrEmpty(dto.FromNo), d => d.FromNo == dto.FromNo)
|
|
.WhereIF(!string.IsNullOrEmpty(dto.ToNo), d => d.ToNo == dto.ToNo)
|
|
.WhereIF(!string.IsNullOrEmpty(dto.ToNo), d => d.ToNo == dto.ToNo)
|
|
@@ -224,13 +226,25 @@ public abstract class DefaultCallApplication : ICallApplication
|
|
query = query.WhereIF(dto.Type == 3, (d, o) => d.AnsweredTime == null);
|
|
query = query.WhereIF(dto.Type == 3, (d, o) => d.AnsweredTime == null);
|
|
query = query.WhereIF(dto.Type == 1, (d, o) => d.Direction == ECallDirection.In);
|
|
query = query.WhereIF(dto.Type == 1, (d, o) => d.Direction == ECallDirection.In);
|
|
query = query.WhereIF(dto.Type == 2, (d, o) => d.Direction == ECallDirection.Out);
|
|
query = query.WhereIF(dto.Type == 2, (d, o) => d.Direction == ECallDirection.Out);
|
|
- return await query.Select((d, o) => new CallNativeDto
|
|
|
|
|
|
+ var items = await query.Select((d, o) => new CallNativeDto
|
|
{
|
|
{
|
|
OrderId = o.Id,
|
|
OrderId = o.Id,
|
|
OrderNo = o.No,
|
|
OrderNo = o.No,
|
|
Title = o.Title,
|
|
Title = o.Title,
|
|
|
|
+ Gateway = SqlFunc.Subqueryable<CallNative>()
|
|
|
|
+ .Where(m => m.GroupId == "0" && m.CallNo == d.CallNo)
|
|
|
|
+ .Select(m => m.ToNo)
|
|
}, true)
|
|
}, true)
|
|
.ToFixedListAsync(dto, cancellationToken);
|
|
.ToFixedListAsync(dto, cancellationToken);
|
|
|
|
+
|
|
|
|
+ items.Where(m => m.Gateway != null)
|
|
|
|
+ .ToList().ForEach(m =>
|
|
|
|
+ {
|
|
|
|
+ var toNo = m.Gateway;
|
|
|
|
+ m.Gateway = m.ToNo;
|
|
|
|
+ m.ToNo = toNo;
|
|
|
|
+ });
|
|
|
|
+ return items;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|