zhengyuxuan
2025-03-31 18325eda17439bdd76f3b7e3f39cfae312738b2b
LifePayment/LifePayment.Domain/Common/ChannelFilter.cs
@@ -1,21 +1,51 @@
using System;
using LifePayment.Application.Contracts;
using LifePayment.Domain;
using LifePayment.Domain.Models;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Channels;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Repositories;
using Z.EntityFramework.Plus;
using ZeroD.Util;
namespace LifePayment.Domain.Common
{
    //public class ChannelFilter : AbstractChannelFilter
    //{
    //    public async Task<IQueryable<ChannelsBase>> GetPolicyFilter<ChannelsBase, TKey>(IQueryable<ChannelsBase> query)
    //    {
    //        throw new NotImplementedException();
    //    }
    //}
    public class ChannelFilter : AbstractChannelFilter
    {
        public override IQueryable<LifePayOrder> GetChannelLifePayOrderFilter(IQueryable<LifePayOrder> query)
        {
            if (CurrentUser.ClientId == Constant.ClientType.Back && !CurrentUser.IsSystem)
            {
                var queryUser = UserChannleRepository.Where(r => r.UserId == CurrentUser.Id).Select(s => s.ChannleId).ToList();
                var queryResult = query.Where(s => (!string.IsNullOrEmpty(s.ChannelId) && queryUser.Contains(s.ChannelId)));
                return queryResult;
            }
    //public class ChannelsBase:IChannelFilter
    //{
    //   // public Guid ChannelId { get; set; }
    //}
            return query;
        }
        public override IQueryable<LifePayUser> GetChannelLifePayUserFilter(IQueryable<LifePayUser> query)
        {
            if (CurrentUser.ClientId == Constant.ClientType.Back && !CurrentUser.IsSystem)
            {
                var queryUser = UserChannleRepository.Where(r => r.UserId == CurrentUser.Id).Select(s => s.ChannleId).ToList();
                var queryResult = query.Where(s => (!string.IsNullOrEmpty(s.CreationChannleNum) && queryUser.Contains(s.CreationChannleNum)));
                return queryResult;
            }
            return query;
        }
    }
    public class ChannelsBase : Entity<Guid>
    {
        public Guid ChannleId { get; set; }
    }
}