using LifePayment.Application.Contracts;
|
using LifePayment.Domain.Models;
|
using LifePayment.Domain.Shared;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Linq.Dynamic.Core;
|
using System.Threading.Tasks;
|
using Volo.Abp.Application.Services;
|
using Volo.Abp.Domain.Repositories;
|
using ZeroD.Util;
|
|
namespace LifePayment.Application
|
{
|
public class OperateHistoryService : ApplicationService, IOperateHistoryService
|
{
|
private readonly IRepository<OperateHistory, Guid> _operateHistory;
|
|
public OperateHistoryService(
|
IRepository<OperateHistory, Guid> operateHistory)
|
{
|
_operateHistory = operateHistory;
|
}
|
|
public async Task<PageOutput<OperateHistoryDto>> GetOperateHistoryByRelationId(GetOperateHistoryInput input)
|
{
|
var query = _operateHistory.Where(r => r.RelationId == input.RelationId)
|
.WhereIf(input.OperateName.IsNotNullOrEmpty(), r => r.OperateName == input.OperateName)
|
.Select(r => new OperateHistoryDto
|
{
|
OperateName = r.OperateName,
|
RelationId = r.RelationId,
|
CreationTime = r.CreationTime,
|
CreatorName = r.CreatorName,
|
OperateContent = r.OperateContent,
|
TableType = r.TableType
|
});
|
var result = await query.GetPageResult(input.PageModel);
|
|
return result;
|
}
|
|
public async Task<PageOutput<OperateHistoryDto>> GetOperateHistoryByType(QueryOperateHistoryByTypeInput input)
|
{
|
var query = _operateHistory.AsQueryable();
|
switch (input.OperateHistoryType)
|
{
|
case OperateHistoryTypeEnum.AccountManage:
|
query = query.Where(x => x.UserId == input.TypeId
|
&& LifePaymentConstant.LogsSpecies.AccountManageOperateNameList.Contains(x.OperateName));
|
break;
|
case OperateHistoryTypeEnum.LifePayChannles:
|
query = query.Where(x => x.RelationId == input.TypeId);
|
|
break;
|
default:
|
query = query.Where(x => x.RelationId == input.TypeId);
|
|
break;
|
}
|
|
var result = await query.Select(r =>
|
new OperateHistoryDto
|
{
|
OperateName = r.OperateName,
|
RelationId = r.RelationId,
|
CreationTime = r.CreationTime,
|
CreatorName = r.CreatorName,
|
OperateContent = r.OperateContent,
|
TableType = r.TableType
|
})
|
.GetPageResult(input.PageModel);
|
return result;
|
}
|
}
|
}
|