From 05d32271f646149609d8b42016e11cf95d8d5a84 Mon Sep 17 00:00:00 2001
From: liaoxujun@qq.com <liaoxujun@qq.com>
Date: 星期三, 10 四月 2024 11:18:05 +0800
Subject: [PATCH]  修改供应商价格显示

---
 CoreCms.Net.Services/Distribution/CoreCmsDistributionOrderServices.cs |   54 +++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 41 insertions(+), 13 deletions(-)

diff --git a/CoreCms.Net.Services/Distribution/CoreCmsDistributionOrderServices.cs b/CoreCms.Net.Services/Distribution/CoreCmsDistributionOrderServices.cs
index d31de0a..a139dce 100644
--- a/CoreCms.Net.Services/Distribution/CoreCmsDistributionOrderServices.cs
+++ b/CoreCms.Net.Services/Distribution/CoreCmsDistributionOrderServices.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.ViewModels.Basics;
@@ -45,10 +46,11 @@
         private readonly ICoreCmsGoodsServices _goodsServices;
         private readonly ICoreCmsDistributionOrderDetailsServices _distributionOrderDetailsServices;
         private readonly ICoreCmsSettingServices _settingServices;
+        private readonly IBfbfComAPIService _bfbfComAPIService;
 
 
         private readonly IUnitOfWork _unitOfWork;
-        public CoreCmsDistributionOrderServices(IUnitOfWork unitOfWork, ICoreCmsDistributionOrderRepository dal, ICoreCmsDistributionServices distributionServices, ICoreCmsUserBalanceServices balanceServices, ICoreCmsOrderServices orderServices, ICoreCmsUserServices userServices, ICoreCmsOrderItemServices orderItemServices, ICoreCmsProductsDistributionServices productsDistributionServices, ICoreCmsProductsServices productsServices, ICoreCmsGoodsServices goodsServices, ICoreCmsDistributionOrderDetailsServices distributionOrderDetailsServices, ICoreCmsSettingServices settingServices)
+        public CoreCmsDistributionOrderServices(IBfbfComAPIService bfbfComAPIService, IUnitOfWork unitOfWork, ICoreCmsDistributionOrderRepository dal, ICoreCmsDistributionServices distributionServices, ICoreCmsUserBalanceServices balanceServices, ICoreCmsOrderServices orderServices, ICoreCmsUserServices userServices, ICoreCmsOrderItemServices orderItemServices, ICoreCmsProductsDistributionServices productsDistributionServices, ICoreCmsProductsServices productsServices, ICoreCmsGoodsServices goodsServices, ICoreCmsDistributionOrderDetailsServices distributionOrderDetailsServices, ICoreCmsSettingServices settingServices)
         {
             this._dal = dal;
             _distributionServices = distributionServices;
@@ -63,6 +65,7 @@
             _settingServices = settingServices;
             base.BaseDal = dal;
             _unitOfWork = unitOfWork;
+            _bfbfComAPIService = bfbfComAPIService;
         }
 
 
@@ -101,7 +104,8 @@
             if (user is { parentId: > 0 })
             {
                 //鑾峰彇璐墿鏄庣粏
-                var orderItems = await _orderItemServices.QueryListByClauseAsync(p => p.orderId == order.orderId);
+                var orderItems = await _unitOfWork.GetDbClient().Queryable<CoreCmsOrderItem>().Where(p => p.orderId == order.orderId).Includes(x => x.productInfo).ToListAsync();
+                    //await _orderItemServices.QueryListByClauseAsync(p => p.orderId == order.orderId);
                 var goodIds = orderItems.Select(p => p.goodsId).ToList();
                 var productIds = orderItems.Select(p => p.productId).ToList();
                 //鑾峰彇璐у搧鏁版嵁
@@ -142,6 +146,7 @@
             var user = await _userServices.QueryByClauseAsync(p => p.id == userId);
             if (user != null)
             {
+                
                 var commission = await _distributionServices.GetGradeAndCommission(user.id);
                 if (commission.status && commission.data != null) //涓嶆槸缁忛攢鍟嗙殑锛屼笉杩斿埄銆�
                 {
@@ -149,7 +154,8 @@
                     //鐩磋繑鏈骇
                     decimal amount = 0;
                     var distributionOrderDetails = new List<CoreCmsDistributionOrderDetails>();
-
+                    //鐧惧垎鍏垫硶鍒ゆ柇璁㈠崟鐢ㄦ埛鏄惁鏄粡閿�鍟�
+                    bool OderUserIsDic = await _bfbfComAPIService.IsDictionary(order.userId);
                     foreach (var item in orderItems)
                     {
                         var orderDetails = new CoreCmsDistributionOrderDetails();
@@ -197,6 +203,8 @@
                             //濡傛灉鍘绘帀浼樻儬闇�瑕佽礋浜嗭紝灏变负0
                             if (itemAmount < 0) itemAmount = 0;
 
+
+
                             mathMoney = level switch
                             {
                                 //涓�绾у垎閿�
@@ -230,17 +238,37 @@
                             {
                                 continue;
                             }
-
-                            mathMoney = level switch
+                            //鐧惧垎鍏垫硶鍩烘暟鎸�
+                            switch (level)
                             {
-                                1 when productsDistribution.levelOne > 0 => Math.Round(
-                                    productsDistribution.levelOne * item.nums, 2),
-                                2 when productsDistribution.levelTwo > 0 => Math.Round(
-                                    productsDistribution.levelTwo * item.nums, 2),
-                                3 when productsDistribution.levelThree > 0 => Math.Round(
-                                    productsDistribution.levelThree * item.nums, 2),
-                                _ => mathMoney
-                            };
+                                case 1 :
+                                    
+                                       if(OderUserIsDic)
+                                        //鏄粡閿�鍟嗚喘涔�
+                                        mathMoney = item.productInfo.distributionCutMoney;
+                                       else
+                                        //闈炵粡閿�鍟嗚喘涔�
+                                        mathMoney= item.productInfo.cutMoney    ;
+                                            
+                                    break;
+                                case 2 when productsDistribution.levelTwo > 0:
+                                    break;
+                                case 3 when productsDistribution.levelThree>0:
+                                    break;
+                                default:
+                                    break;
+                            }
+                            //鍘熶剑閲戣绠楁柟娉�
+                            //mathMoney = level switch
+                            //{
+                            //    1 when productsDistribution.levelOne > 0 => Math.Round(
+                            //        productsDistribution.levelOne * item.nums, 2),
+                            //    2 when productsDistribution.levelTwo > 0 => Math.Round(
+                            //        productsDistribution.levelTwo * item.nums, 2),
+                            //    3 when productsDistribution.levelThree > 0 => Math.Round(
+                            //        productsDistribution.levelThree * item.nums, 2),
+                            //    _ => mathMoney
+                            //};
                         }
 
                         amount += mathMoney;

--
Gitblit v1.9.1