移动系统liao
2024-05-21 4d6cbddc0762c0164b072dc59ac8e0d51a0199ba
CoreCms.Net.Services/Distribution/CoreCmsDistributionServices.cs
@@ -17,6 +17,7 @@
using CoreCms.Net.IRepository;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.IServices;
using CoreCms.Net.IServices.baifenbingfa;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.Entities.baifenbingfa.apply;
@@ -54,9 +55,12 @@
        private readonly IUnitOfWork _unitOfWork;
        private readonly ICoreCmsUserBalanceServices _userBalanceServices;
        private readonly ICoreCmsUserServices _coreCmsUserServices;
        private readonly IBfbfComAPIService _bfbfComAPIService;
        public CoreCmsDistributionServices(IUnitOfWork unitOfWork, ICoreCmsDistributionRepository dal, ICoreCmsDistributionOrderRepository distributionOrderRepository, ICoreCmsUserRepository userRepository, ICoreCmsGoodsRepository goodsRepository, ICoreCmsUserGradeRepository userGradeRepository, ICoreCmsSettingServices settingServices, ICoreCmsOrderRepository orderRepository, ICoreCmsDistributionGradeRepository distributionGradeRepository, ICoreCmsDistributionResultRepository distributionResultRepository, ICoreCmsDistributionConditionServices coreCmsDistributionConditionServices, ICoreCmsUserBalanceServices userBalanceServices
            , ICoreCmsUserServices coreCmsUserServices)
        public CoreCmsDistributionServices(IBfbfComAPIService bfbfComAPIService, IUnitOfWork unitOfWork, ICoreCmsDistributionRepository dal, ICoreCmsDistributionOrderRepository distributionOrderRepository, ICoreCmsUserRepository userRepository, ICoreCmsGoodsRepository goodsRepository, ICoreCmsUserGradeRepository userGradeRepository, ICoreCmsSettingServices settingServices, ICoreCmsOrderRepository orderRepository, ICoreCmsDistributionGradeRepository distributionGradeRepository, ICoreCmsDistributionResultRepository distributionResultRepository, ICoreCmsDistributionConditionServices coreCmsDistributionConditionServices, ICoreCmsUserBalanceServices userBalanceServices
              , ICoreCmsUserServices coreCmsUserServices)
        {
            this._dal = dal;
            _distributionOrderRepository = distributionOrderRepository;
@@ -74,6 +78,8 @@
            _coreCmsUserServices = coreCmsUserServices;
            _bfbfComAPIService = bfbfComAPIService;
        }
@@ -97,6 +103,20 @@
                info.TotalSettlementAmount = await _distributionOrderRepository.GetSumAsync(
                    p => p.isSettlement != (int)GlobalEnumVars.DistributionOrderSettlementStatus.SettlementCancel && p.userId == userId,
                    p => p.amount);
                var lisdata = await _unitOfWork.GetDbClient().Queryable<CoreCmsDistributionOrder>().Where(x=>x.userId == userId&&x.isSettlement== (int)GlobalEnumVars.DistributionOrderSettlementStatus.SettlementNo)
                    .Select(x=>new CoreCmsDistributionOrder
                    {
                         amount = x.amount,
                        OderState= SqlFunc.Subqueryable<CoreCmsOrder>().Where(c=>c.orderId==x.orderId).Select(c=>c.confirmStatus),
                    }).WithCache(10).ToListAsync();
                //可领金额
                info.DistributionKeLingTotals = lisdata.Where(x=>x.OderState== (int)GlobalEnumVars.OrderConfirmStatus.ConfirmReceipt
                || x.OderState == (int)GlobalEnumVars.OrderShipStatus.Yes).Sum(x=>x.amount);
                //应领金额
                info.DistributionYingLingTotals = lisdata.Where(x => x.OderState == (int)GlobalEnumVars.OrderConfirmStatus.ReceiptNotConfirmed
                || x.OderState == (int)GlobalEnumVars.OrderShipStatus.Yes).Sum(x => x.amount); ;
                //已结算金额
                info.SettlementAmount = await _distributionOrderRepository.GetSumAsync(
                    p => p.isSettlement == (int)GlobalEnumVars.DistributionOrderSettlementStatus.SettlementYes && p.userId == userId,
@@ -418,6 +438,12 @@
        public async Task<WebApiCallBack> GetGradeAndCommission(int userId)
        {
            var jm = new WebApiCallBack();
            //百分兵法判断是否是经销商
             if(!await _bfbfComAPIService.IsDictionary(userId))
            {
                jm.msg = "不是经销商的,不返利";
                return jm;
            }
            var info = await _dal.QueryByClauseAsync(p => p.userId == userId);
            if (info == null)
@@ -824,7 +850,7 @@
         var da=  await  _dal.GetCountAsync(x=>x.userId== Parma.UserID && x.verifyStatus== (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes,isDataCache:true,cacheTimes:1);
            if (da == 0)
                return true;
            var oder = new DistributionAchievementOrder
            DistributionAchievementOrder oder = new DistributionAchievementOrder
            {
                achievementTotal = Parma.Money,
                createBy = "经销商业绩写入",