From 80aa425c4ca51f7c0224a6245968cdd08940321b Mon Sep 17 00:00:00 2001
From: 移动系统liao <liaoxujun@qq.com>
Date: 星期四, 13 六月 2024 10:17:30 +0800
Subject: [PATCH] 修改校园代理 完成

---
 CoreCms.Net.Model/Entities/baifenbingfa/DistributionSend/DistributionSendOder.cs |   71 +++
 CoreCms.Net.Services/baifenbingfa/DistributorDeliveryServices.cs                 |  204 +++++++++
 CoreCms.Net.Web.Admin/wwwroot/views/order/orders/edit.html                       |   53 ++
 CoreCms.Net.Web.WebApi/Controllers/PinTuanController.cs                          |    1 
 CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsOrderController.cs                |   89 +++
 CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs                           |   85 ++++
 CoreCms.Net.Web.Admin/wwwroot/views/order/orders/details.html                    |    4 
 CoreCms.Net.Configuration/GlobalConstVars.cs                                     |   12 
 CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs                                     |    5 
 CoreCms.Net.Services/CoreCms.Net.Services.csproj                                 |    1 
 CoreCms.Net.Web.Admin/wwwroot/views/order/orders/distribution.html               |    2 
 CoreCms.Net.Web.Admin/wwwroot/views/order/orders/union.html                      |    6 
 CoreCms.Net.DTO/CoreCms.Net.DTO.csproj                                           |    4 
 CoreCms.Net.Model/FromBody/FMOrder.cs                                            |    5 
 CoreCms.Net.Web.Admin/wwwroot/views/order/billdelivery/details.html              |    8 
 CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsBillDeliveryController.cs         |   42 +
 CoreCms.Net.Web.Admin/wwwroot/views/shop/store/edit.html                         |    1 
 CoreCms.Net.Model/Entities/Order/CoreCmsOrderItem.cs                             |    3 
 CoreCms.Net.Web.Admin/wwwroot/views/order/orders/shopping.html                   |    2 
 CoreCms.Net.Model/Entities/baifenbingfa/puhuo/Puhuo.cs                           |    2 
 CoreCms.Net.Web.Admin/wwwroot/views/order/orders/index.html                      |   23 +
 CoreCms.Net.Utility/Extensions/ObjectExtensions.cs                               |   15 
 CoreCms.Net.Model/Entities/Order/CoreCmsOrderPartial.cs                          |    7 
 CoreCms.Net.Model/Entities/Order/CoreCmsOrder.cs                                 |   23 
 CoreCms.Net.Model/Entities/Bill/CoreCmsBillDeliveryPartial.cs                    |   11 
 CoreCms.Net.RedisMQ/CoreCms.Net.RedisMQ.csproj                                   |    1 
 CoreCms.Net.IServices/Order/ICoreCmsOrderServices.cs                             |    6 
 CoreCms.Net.Model/Entities/Cart/CoreCmsCart.cs                                   |    2 
 CoreCms.Net.Services/Order/CoreCmsOrderServices.cs                               |   41 +
 CoreCms.Net.IServices/baifenbingfa/IBfbfComAPIService.cs                         |   32 +
 CoreCms.Net.Web.WebApi/Controllers/UserController.cs                             |   19 
 CoreCms.Net.Web.Admin/wwwroot/views/order/orders/ship.html                       |   33 +
 CoreCms.Net.Services/Bill/CoreCmsBillDeliveryServices.cs                         |   62 ++
 CoreCms.Net.Configuration/SystemSettingDictionary.cs                             |    1 
 CoreCms.Net.Model/Entities/Good/CoreCmsProducts.cs                               |    2 
 CoreCms.Net.DTO/BaifenBingFaDto.cs                                               |   35 +
 CoreCms.Net.Web.WebApi/Controllers/baifenbingfa/DistributorDeliveryController.cs |   94 ++++
 CoreCms.Net.Model/Entities/Bill/CoreCmsBillDelivery.cs                           |   73 +++
 CoreCms.Net.RedisMQ/DistributionSendOderMQ.cs                                    |   77 +++
 CoreCms.Net.Model/Entities/Distribution/CoreCmsDistribution.cs                   |    4 
 CoreCms.Net.IServices/Bill/ICoreCmsBillDeliveryServices.cs                       |    4 
 CoreCms.Net.IServices/baifenbingfa/IDistributorDeliveryServices.cs               |   69 +++
 42 files changed, 1,168 insertions(+), 66 deletions(-)

diff --git a/CoreCms.Net.Configuration/GlobalConstVars.cs b/CoreCms.Net.Configuration/GlobalConstVars.cs
index a70151c..2033d4f 100644
--- a/CoreCms.Net.Configuration/GlobalConstVars.cs
+++ b/CoreCms.Net.Configuration/GlobalConstVars.cs
@@ -424,6 +424,18 @@
         /// </summary>
         public const string DistributionAchievementOder = "DistributionAchievementOder";
 
+
+
+        /// <summary>
+        /// 澧炲姞缁忛攢鍟嗗垎閰嶈褰曡〃
+        /// </summary>
+        public const string AddDistributionSendOderMQ = "AddDistributionSendOderMQ";
+
+        /// <summary>
+        /// 淇敼缁忛攢鍟嗗垎閰嶈褰曡〃鍒嗛厤璁板綍
+        /// </summary>
+        public const string ActiveDistributionSendOderMQ = "ActiveDistributionSendOderMQ";
+
     }
 
     /// <summary>
diff --git a/CoreCms.Net.Configuration/SystemSettingDictionary.cs b/CoreCms.Net.Configuration/SystemSettingDictionary.cs
index 9bc34fb..578fa8e 100644
--- a/CoreCms.Net.Configuration/SystemSettingDictionary.cs
+++ b/CoreCms.Net.Configuration/SystemSettingDictionary.cs
@@ -336,6 +336,7 @@
             {
                 new CommonKeyValues() {sDescription = "鏈湴鍚屽煄閰嶉��", sValue = "鏃�", sKey = "benditongcheng"},
                 new CommonKeyValues() {sDescription = "鏈湴涓婇棬鑷彁", sValue = "鏃�", sKey = "shangmenziti"},
+                  new CommonKeyValues() {sDescription = "渚涘簲鍟嗛�佽揣", sValue = "鏃�", sKey = "Distributor"},
             };
             return list;
         }
diff --git a/CoreCms.Net.DTO/BaifenBingFaDto.cs b/CoreCms.Net.DTO/BaifenBingFaDto.cs
new file mode 100644
index 0000000..03b9b23
--- /dev/null
+++ b/CoreCms.Net.DTO/BaifenBingFaDto.cs
@@ -0,0 +1,35 @@
+锘縰sing CoreCms.Net.Model.Entities;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.DTO
+{
+    /// <summary>
+    /// ActiveDistributionSendOder  mq妯″瀷
+    /// </summary>
+    public class ActiveDistributionSendOderMQ
+    {
+        /// <summary>
+        /// 璁㈠崟鐘舵��
+        /// </summary>
+        public sendDistributionAcceptType? SendOderActive { get; set; }
+        /// <summary>
+        /// 鎻忚堪
+        /// </summary>
+        public string?  Dec { get; set; }
+
+        /// <summary>
+        /// 鍙戦�佸崟ID
+        /// </summary>
+        public string deliveryID { get; set; }
+
+        /// <summary>
+        /// 鎵�灞炵敤鎴稩D
+        /// </summary>
+        public int userID {  get; set; }
+
+    }
+}
diff --git a/CoreCms.Net.DTO/CoreCms.Net.DTO.csproj b/CoreCms.Net.DTO/CoreCms.Net.DTO.csproj
index 938d50a..f738a70 100644
--- a/CoreCms.Net.DTO/CoreCms.Net.DTO.csproj
+++ b/CoreCms.Net.DTO/CoreCms.Net.DTO.csproj
@@ -6,4 +6,8 @@
     <Nullable>enable</Nullable>
   </PropertyGroup>
 
+  <ItemGroup>
+    <ProjectReference Include="..\CoreCms.Net.Model\CoreCms.Net.Model.csproj" />
+  </ItemGroup>
+
 </Project>
diff --git a/CoreCms.Net.IServices/Bill/ICoreCmsBillDeliveryServices.cs b/CoreCms.Net.IServices/Bill/ICoreCmsBillDeliveryServices.cs
index 97aa77c..d9ad018 100644
--- a/CoreCms.Net.IServices/Bill/ICoreCmsBillDeliveryServices.cs
+++ b/CoreCms.Net.IServices/Bill/ICoreCmsBillDeliveryServices.cs
@@ -38,7 +38,7 @@
         /// <returns></returns>
         Task<WebApiCallBack> BatchShip(string[] orderId, string logiCode, string logiNo, Dictionary<int, int> items,
             int storeId = 0, string shipName = "", string shipMobile = "", int shipAreaId = 0, string shipAddress = "",
-            string memo = "", string deliveryCompanyId = "");
+            string memo = "", string deliveryCompanyId = "", int? sendDistributionID = null);
 
 
         /// <summary>
@@ -58,7 +58,7 @@
         /// <returns></returns>
         Task<WebApiCallBack> Ship(string orderId, string logiCode, string logiNo, Dictionary<int, int> items,
             int storeId = 0, string shipName = "", string shipMobile = "", int shipAreaId = 0, string shipAddress = "",
-            string memo = "", string deliveryCompanyId = "");
+            string memo = "", string deliveryCompanyId = "", int? sendDistributionID = null);
 
 
         /// <summary>
diff --git a/CoreCms.Net.IServices/Order/ICoreCmsOrderServices.cs b/CoreCms.Net.IServices/Order/ICoreCmsOrderServices.cs
index 28bdc99..c13c235 100644
--- a/CoreCms.Net.IServices/Order/ICoreCmsOrderServices.cs
+++ b/CoreCms.Net.IServices/Order/ICoreCmsOrderServices.cs
@@ -215,10 +215,11 @@
         /// <param name="storeId">搴楅摵鏀惰揣鍦板潃</param>
         /// <param name="shipAreaId">鐪佸競鍖篿d</param>
         /// <param name="deliveryCompanyId">绗笁鏂瑰鎺ョ墿娴佺紪鐮�</param>
+        /// <param name="deliveryCompanyId">閫佽揣缁忛攢鍟咺D</param>
         /// <returns></returns>
         Task<WebApiCallBack> BatchShip(string[] ids, string logiCode, string logiNo,
             Dictionary<int, int> items, string shipName, string shipMobile, string shipAddress, string memo,
-            int storeId = 0, int shipAreaId = 0, string deliveryCompanyId = "");
+            int storeId = 0, int shipAreaId = 0, string deliveryCompanyId = "",int? sendDistributionID=null);
 
         /// <summary>
         ///     璁㈠崟鍙戣揣
@@ -234,10 +235,11 @@
         /// <param name="storeId">搴楅摵鏀惰揣鍦板潃</param>
         /// <param name="shipAreaId">鐪佸競鍖篿d</param>
         /// <param name="deliveryCompanyId">绗笁鏂瑰鎺ョ墿娴佺紪鐮�</param>
+        /// <param name="sendDistributionID">閫佽揣缁忛攢鍟咺D</param>
         /// <returns></returns>
         Task<WebApiCallBack> Ship(string ids, string logiCode, string logiNo,
             Dictionary<int, int> items, string shipName, string shipMobile, string shipAddress, string memo,
-            int storeId = 0, int shipAreaId = 0, string deliveryCompanyId = "");
+            int storeId = 0, int shipAreaId = 0, string deliveryCompanyId = "", int? sendDistributionID = null);
 
 
         /// <summary>
diff --git a/CoreCms.Net.IServices/baifenbingfa/IBfbfComAPIService.cs b/CoreCms.Net.IServices/baifenbingfa/IBfbfComAPIService.cs
index 2ee3dff..ca738dc 100644
--- a/CoreCms.Net.IServices/baifenbingfa/IBfbfComAPIService.cs
+++ b/CoreCms.Net.IServices/baifenbingfa/IBfbfComAPIService.cs
@@ -38,7 +38,37 @@
         /// </summary>
         /// <param name="count"></param>
         /// <returns></returns>
-        public decimal CommandCustomizable(int count);
+         decimal CommandCustomizable(int count);
+
+       /// <summary>
+       ///  鏍规嵁缁忕含搴﹀鍒楄〃杩涜杩滆繎璺濈鎺掑簭
+       /// </summary>
+       /// <param name="DataList"></param>
+       /// <param name="longitude"></param>
+       /// <param name="latitude"></param>
+       /// <returns></returns>
+        List<DistributorSort> orderedDistributors(List<DistributorSort> DataList,string longitude,string latitude);
+
+        /// <summary>
+        /// 鑾峰彇鏍″洯浠g悊鍒楄〃 鏍规嵁璐у搧ID鑾峰彇宸茬粡閾鸿揣鐨勬牎鍥唬鐞嗗垪琛�
+        /// </summary>       
+        /// <returns></returns>
+        Task<List<DistributorSort>> GetDistributorsList(List<int > PIds);
+        /// <summary>
+        ///  鑾峰彇璁㈠崟鐨勬墍鏈夎揣鍝両D
+        /// </summary>
+        /// <param name="OderIds"></param>
+        /// <returns></returns>
+        public  Task<List<int>> GetOderProductsIDs(string[] OderIds);
+
+    }
+    
+   public class DistributorSort
+    {
+        public int id { get; set; }
+        public string name { get; set; }
+        public string longitude { get; set; } 
+        public string latitude { get; set; }
     }
 
 
diff --git a/CoreCms.Net.IServices/baifenbingfa/IDistributorDeliveryServices.cs b/CoreCms.Net.IServices/baifenbingfa/IDistributorDeliveryServices.cs
new file mode 100644
index 0000000..9f96c8a
--- /dev/null
+++ b/CoreCms.Net.IServices/baifenbingfa/IDistributorDeliveryServices.cs
@@ -0,0 +1,69 @@
+锘縰sing CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using static CoreCms.Net.Configuration.GlobalEnumVars;
+
+namespace CoreCms.Net.IServices.baifenbingfa
+{
+    /// <summary>
+    /// 缁忛攢鍟嗗彂璐х浉鍏虫湇鍔�
+    /// </summary>
+    public interface IDistributorDeliveryServices
+    {
+        /// <summary>
+        /// 鑾峰彇缁忛攢鍟嗗彂璐ф湭澶勭悊璁㈠崟
+        /// </summary>
+        /// <returns></returns>
+       Task< int> GetNoAcceptedDeliveryCount();
+
+        /// <summary>
+        /// 鏄惁鏄剧ず缁忛攢鍟嗚彍鍗曢」
+        /// </summary>
+        /// <returns></returns>
+        Task<bool> GetShowDelivery();
+
+        /// <summary>
+        /// 鑾峰彇鎵�鏈夎鍗�
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns>
+        /// </returns>
+        Task<(List<CoreCmsBillDelivery>, int)> GetDeliveryList(GetDeliveryListPost Param);
+        /// <summary>
+        /// 璁剧疆璁㈠崟鐘舵��
+        /// </summary>
+        /// <param name="acceptType"> 鍚屾剰绫诲瀷</param>
+        /// <param name="DeliveryID">閰嶉�佸崟ID</param>
+        /// <param name="CancelledDec">鍙栨秷鍘熷洜</param>
+        /// <returns></returns>
+        Task<WebApiCallBack> SetDeliveryAccepted(sendDistributionAcceptType acceptType,string DeliveryID,string CancelledDec= null);
+    }
+
+
+    public class GetDeliveryListPost
+    {
+        /// <summary>
+        ///     姣忛〉鏁伴噺
+        /// </summary>
+        public int limit { get; set; } = 5;
+
+        /// <summary>
+        ///     椤电爜
+        /// </summary>
+        public int page { get; set; } = 1;
+
+        /// <summary>
+        ///     缁忛攢鍟嗙‘璁ょ姸鎬�
+        /// </summary>
+        public sendDistributionAcceptType? distributionAcceptStatus { get; set; } 
+        /// <summary>
+        /// 璁㈠崟鐘舵��
+        /// </summary>
+        public BillDeliveryStatus? Status { get; set; }
+}
+}
diff --git a/CoreCms.Net.Model/Entities/Bill/CoreCmsBillDelivery.cs b/CoreCms.Net.Model/Entities/Bill/CoreCmsBillDelivery.cs
index 30b569e..00d00db 100644
--- a/CoreCms.Net.Model/Entities/Bill/CoreCmsBillDelivery.cs
+++ b/CoreCms.Net.Model/Entities/Bill/CoreCmsBillDelivery.cs
@@ -8,6 +8,7 @@
  *        Description: 鏆傛棤
  ***********************************************************************/
 
+using Chuanyin.Attribute;
 using SqlSugar;
 using System.ComponentModel;
 using System.ComponentModel.DataAnnotations;
@@ -16,7 +17,7 @@
 {
     /// <summary>
     /// 鍙戣揣鍗曡〃
-    /// </summary>
+    /// </summary>      
     public partial class CoreCmsBillDelivery
     {
         /// <summary>
@@ -218,7 +219,73 @@
         
         
         public System.DateTime? updateTime  { get; set; }
-        
-		
+
+        /// <summary>
+        /// SendDistributionID 鍙戣揣缁忛攢鍟咺D
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鍙戣揣缁忛攢鍟咺D")]
+        public int?  sendDistributionID { get; set; }
+
+        /// <summary>
+        /// 閫佽揣浠g悊鍟嗙敤鎴稩D
+        /// </summary>    
+        public int? sendDistributionUserID { get; set; }
+
+        /// <summary>
+        /// sendDistributionAccept 缁忛攢鍟嗗彂璐х‘璁ょ姸鎬�
+        /// </summary>
+        [SugarColumn(ColumnDescription = "缁忛攢鍟嗗彂璐х‘璁ょ姸鎬�")]
+        public sendDistributionAcceptType? sendDistributionAccept { get; set; }
+
+
+
+
     }
+    /// <summary>
+    /// 渚涘簲鍟嗛�佽揣纭鐘舵��
+    /// </summary>
+   public  enum sendDistributionAcceptType
+    {
+       
+        /// <summary>
+        /// 璁㈠崟宸茶鍒涘缓锛岀瓑寰呭鐞嗐��
+        /// </summary>
+        [Description("鎺ュ彈")]
+        Accepted,
+
+        /// <summary>
+        /// 璁㈠崟鍟嗗搧宸叉墦鍖咃紝鍑嗗鎴栧凡缁忓彂鍑恒��
+        /// </summary>
+        [Description("鍙戣揣")]
+        Shipped,
+
+        /// <summary>
+        /// 璁㈠崟鍟嗗搧宸叉垚鍔熼�佽揪瀹㈡埛鎵嬩腑銆�
+        /// </summary>
+        [Description("閫佽揪")]
+        Delivered,
+
+        /// <summary>
+        /// 璁㈠崟琚敤鎴锋垨绯荤粺鍙栨秷銆�
+        /// </summary>
+        [Description("鍙栨秷")]
+        Cancelled,
+
+        /// <summary>
+        /// 璁㈠崟澶勭悊瓒呰繃浜嗛瀹氱殑鏃堕棿闄愬埗锛岃嚜鍔ㄥ彇娑堛��
+        /// </summary>
+        [Description("瓒呮椂")]
+        TimedOut,
+
+        /// <summary>
+        /// 绛夊緟纭鎺ュ彈
+        /// </summary>
+        [Description("绛夊緟纭鎺ュ彈")]
+        NoAccted,
+
+
+
+    }
+
+
 }
diff --git a/CoreCms.Net.Model/Entities/Bill/CoreCmsBillDeliveryPartial.cs b/CoreCms.Net.Model/Entities/Bill/CoreCmsBillDeliveryPartial.cs
index 4739b8a..3ebc1f6 100644
--- a/CoreCms.Net.Model/Entities/Bill/CoreCmsBillDeliveryPartial.cs
+++ b/CoreCms.Net.Model/Entities/Bill/CoreCmsBillDeliveryPartial.cs
@@ -32,5 +32,16 @@
         [SugarColumn(IsIgnore = true)]
         public System.String shipAreaIdName { get; set; }
 
+       
+        /// <summary>
+        /// 鍟嗗搧鍒楄〃
+        /// </summary>
+        [Navigate(NavigateType.OneToOne,nameof(orderId))]
+        public  CoreCmsOrder? order { get; set; }
+        /// <summary>
+        /// sendDistributionAccept 缁忛攢鍟嗗彂璐х‘璁ょ姸鎬佸瓧绗︿覆鎻忚堪
+        /// </summary>
+        [SugarColumn(IsIgnore =true)]
+        public string  distributionAcceptStr { get; set; }
     }
 }
diff --git a/CoreCms.Net.Model/Entities/Cart/CoreCmsCart.cs b/CoreCms.Net.Model/Entities/Cart/CoreCmsCart.cs
index 80a1550..04b8662 100644
--- a/CoreCms.Net.Model/Entities/Cart/CoreCmsCart.cs
+++ b/CoreCms.Net.Model/Entities/Cart/CoreCmsCart.cs
@@ -17,7 +17,7 @@
     /// <summary>
     ///     璐墿杞﹁〃
     /// </summary>
-    [SqlCodeFirst]
+   
     public class CoreCmsCart
     {
         /// <summary>
diff --git a/CoreCms.Net.Model/Entities/Distribution/CoreCmsDistribution.cs b/CoreCms.Net.Model/Entities/Distribution/CoreCmsDistribution.cs
index a38ccf3..c84bff4 100644
--- a/CoreCms.Net.Model/Entities/Distribution/CoreCmsDistribution.cs
+++ b/CoreCms.Net.Model/Entities/Distribution/CoreCmsDistribution.cs
@@ -17,7 +17,7 @@
     /// 缁忛攢鍟嗚〃
     /// </summary>
     [SugarTable("CoreCmsDistribution",TableDescription = "缁忛攢鍟嗚〃")]
-    [SqlCodeFirst]
+
     public partial class CoreCmsDistribution
     {
         /// <summary>
@@ -167,7 +167,7 @@
         [SugarColumn(ColumnDescription = "鎵�灞炶涓�")]
         public string profession { get; set; }
         /// <summary>
-        /// 搴楅摵鍋氭爣鐗�
+        /// 搴楅摵瀹氫綅
         /// </summary>
         [Display(Name = "搴楅摵瀹氫綅")]
         [SugarColumn(ColumnDescription = "搴楅摵瀹氫綅", IsNullable =true)]
diff --git a/CoreCms.Net.Model/Entities/Good/CoreCmsProducts.cs b/CoreCms.Net.Model/Entities/Good/CoreCmsProducts.cs
index 72b923a..8afe4af 100644
--- a/CoreCms.Net.Model/Entities/Good/CoreCmsProducts.cs
+++ b/CoreCms.Net.Model/Entities/Good/CoreCmsProducts.cs
@@ -18,7 +18,7 @@
     /// <summary>
     /// 璐у搧琛�
     /// </summary>
-    [SqlCodeFirst]
+    
     public partial class CoreCmsProducts
     {
         /// <summary>
diff --git a/CoreCms.Net.Model/Entities/Order/CoreCmsOrder.cs b/CoreCms.Net.Model/Entities/Order/CoreCmsOrder.cs
index 10c964c..d9e1bd7 100644
--- a/CoreCms.Net.Model/Entities/Order/CoreCmsOrder.cs
+++ b/CoreCms.Net.Model/Entities/Order/CoreCmsOrder.cs
@@ -8,6 +8,7 @@
  *        Description: 鏆傛棤
  ***********************************************************************/
 
+using Chuanyin.Attribute;
 using SqlSugar;
 using System.ComponentModel;
 using System.ComponentModel.DataAnnotations;
@@ -17,6 +18,7 @@
     /// <summary>
     /// 璁㈠崟琛�
     /// </summary>
+   
     public partial class CoreCmsOrder
     {
         /// <summary>
@@ -175,11 +177,9 @@
         /// <summary>
         /// 閰嶉�佹柟寮忓悕绉�
         /// </summary>
-        [Display(Name = "閰嶉�佹柟寮忓悕绉�")]
-		
+        [Display(Name = "閰嶉�佹柟寮忓悕绉�")]		
         
-        [StringLength(maximumLength:50,ErrorMessage = "{0}涓嶈兘瓒呰繃{1}瀛�")]
-        
+        [StringLength(maximumLength:50,ErrorMessage = "{0}涓嶈兘瓒呰繃{1}瀛�")]        
         
         public System.String logisticsName  { get; set; }
         
@@ -278,8 +278,13 @@
         
         
         public System.String shipAddress  { get; set; }
-        
-		
+
+        /// <summary>
+        /// 鏀惰揣鍦板潃瀹氫綅
+        /// </summary>
+        [Display(Name = "鏀惰揣鍦板潃瀹氫綅")]
+        [SugarColumn(ColumnDescription = "鏀惰揣鍦板潃瀹氫綅",IsNullable = true)]
+        public System.String shipCoordinate { get; set; }
         /// <summary>
         /// 鏀惰揣浜哄鍚�
         /// </summary>
@@ -543,11 +548,6 @@
         /// 鏇存柊鏃堕棿
         /// </summary>
         [Display(Name = "鏇存柊鏃堕棿")]
-		
-        
-        
-        
-        
         public System.DateTime? updateTime  { get; set; }
 
 
@@ -557,7 +557,6 @@
         /// 璁″垝璁㈠崟id    ALTER TABLE [CoreCmsOrder] ADD  [planorderId] [nvarchar](255) NULL;
         /// </summary>
         [Display(Name = "璁″垝璁㈠崟id")]
-
 
         [StringLength(maximumLength: 255, ErrorMessage = "{0}涓嶈兘瓒呰繃{1}瀛�")]
         [SugarColumn(IsNullable = true)]
diff --git a/CoreCms.Net.Model/Entities/Order/CoreCmsOrderItem.cs b/CoreCms.Net.Model/Entities/Order/CoreCmsOrderItem.cs
index 3f20306..e82337d 100644
--- a/CoreCms.Net.Model/Entities/Order/CoreCmsOrderItem.cs
+++ b/CoreCms.Net.Model/Entities/Order/CoreCmsOrderItem.cs
@@ -16,8 +16,7 @@
     /// <summary>
     /// 璁㈠崟鏄庣粏琛�
     /// </summary>
-    [SugarTable("CoreCmsOrderItem",TableDescription = "璁㈠崟鏄庣粏琛�")]
-    [SqlCodeFirst]
+    [SugarTable("CoreCmsOrderItem",TableDescription = "璁㈠崟鏄庣粏琛�")]  
     public partial class CoreCmsOrderItem
     {
         /// <summary>
diff --git a/CoreCms.Net.Model/Entities/Order/CoreCmsOrderPartial.cs b/CoreCms.Net.Model/Entities/Order/CoreCmsOrderPartial.cs
index 3d2ea81..58219d8 100644
--- a/CoreCms.Net.Model/Entities/Order/CoreCmsOrderPartial.cs
+++ b/CoreCms.Net.Model/Entities/Order/CoreCmsOrderPartial.cs
@@ -23,8 +23,13 @@
         ///     璁㈠崟璇︽儏
         /// </summary>
         [SugarColumn(IsIgnore = true)]
+   
         public List<CoreCmsOrderItem> items { get; set; }
-
+        /// <summary>
+        /// 瀛愭煡璇�
+        /// </summary>
+        [Navigate(NavigateType.OneToMany, nameof(CoreCmsOrderItem.orderId), nameof(orderId))]
+        public List<CoreCmsOrderItem> Orderitems { get; set; }
         /// <summary>
         ///     鐢ㄦ埛淇℃伅
         /// </summary>
diff --git a/CoreCms.Net.Model/Entities/baifenbingfa/DistributionSend/DistributionSendOder.cs b/CoreCms.Net.Model/Entities/baifenbingfa/DistributionSend/DistributionSendOder.cs
new file mode 100644
index 0000000..13e4497
--- /dev/null
+++ b/CoreCms.Net.Model/Entities/baifenbingfa/DistributionSend/DistributionSendOder.cs
@@ -0,0 +1,71 @@
+锘縰sing Chuanyin.Attribute;
+using CoreCms.Net.Model.Entities.baseModel;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.Model.Entities.baifenbingfa.DistributionSendOder
+{
+    /// <summary>
+    /// 渚涘簲鍟嗗彂璐ч厤鍙戣褰�
+    /// </summary>
+    [SugarTable(TableDescription = "渚涘簲鍟嗗彂璐ч厤鍙戣褰�")]
+    [SqlCodeFirst]
+    public class DistributionSendOder: BFBaseModel
+    {
+        /// <summary>
+        /// ID
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭ID")]
+        public int id { get; set; }
+        /// <summary>
+        /// 鍒嗛厤渚涘簲鍟嗙敤鎴稩D
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鍒嗛厤渚涘簲鍟嗙敤鎴稩D", IsNullable =true)]
+        public int?  userID { get; set; }
+        /// <summary>
+        /// 鍒嗛厤渚涘簲鍟咺D
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鍒嗛厤渚涘簲鍟咺D")]
+        public int distributionID { get; set; }
+
+        /// <summary>
+        /// 鍒嗛厤鏃堕棿
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鍒嗛厤鏃堕棿", IsNullable = true)]
+        public DateTime? sendTime { get; set; }
+
+        /// <summary>
+        /// 纭鏃堕棿
+        /// </summary>
+        [SugarColumn(ColumnDescription = "纭鏃堕棿", IsNullable = true)]
+        public DateTime? activeTime { get; set; }
+
+
+        /// <summary>
+        /// 鍘熷洜
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鍘熷洜", IsNullable = true)]
+        public string description { get; set; }
+
+        /// <summary>
+        /// 鍒嗛厤鎿嶄綔鍛業D
+        /// </summary>
+        [SugarColumn(ColumnDescription = "鍒嗛厤鎿嶄綔鍛業D", IsNullable = true)]
+        public int? sendMangerID { get; set; }
+        /// <summary>
+        /// 閰嶉�佸崟ID
+        /// </summary>
+        [SugarColumn(ColumnDescription = "閰嶉�佸崟Id")]
+        public string deliveryID { get; set; }
+
+        /// <summary>
+        /// 閰嶉�佺姸鎬�
+        /// </summary>
+        [SugarColumn(ColumnDescription = "閰嶉�佺姸鎬�",IsNullable =true)]
+        public sendDistributionAcceptType? sendDistributionAccept { get; set; }
+    }
+}
diff --git a/CoreCms.Net.Model/Entities/baifenbingfa/puhuo/Puhuo.cs b/CoreCms.Net.Model/Entities/baifenbingfa/puhuo/Puhuo.cs
index 0576a67..ddd39ef 100644
--- a/CoreCms.Net.Model/Entities/baifenbingfa/puhuo/Puhuo.cs
+++ b/CoreCms.Net.Model/Entities/baifenbingfa/puhuo/Puhuo.cs
@@ -14,7 +14,7 @@
     /// <summary>
     /// 閾鸿揣
     /// </summary>
-    [SqlCodeFirst]
+   
     public class Puhuo : BFBaseModel
     {
         /// <summary>
diff --git a/CoreCms.Net.Model/FromBody/FMOrder.cs b/CoreCms.Net.Model/FromBody/FMOrder.cs
index 5eafb59..fdd4365 100644
--- a/CoreCms.Net.Model/FromBody/FMOrder.cs
+++ b/CoreCms.Net.Model/FromBody/FMOrder.cs
@@ -98,6 +98,11 @@
         /// 澶囨敞
         /// </summary>
         public string memo { get; set; }
+
+        /// <summary>
+        /// 鏍″洯浠g悊SendDistributionID
+        /// </summary>
+        public int? SendDistributionID { get; set; }
     }
 
 
diff --git a/CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs b/CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs
index c6a256a..e38ac5d 100644
--- a/CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs
+++ b/CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs
@@ -439,6 +439,11 @@
         public string logisticsName { get; set; }
         public List<CoreCmsOrderItem> items { get; set; }
         public List<CoreCmsOrder> orders { get; set; }
+        /// <summary>
+        /// 瀹氫綅淇℃伅锛岀敤閫楀彿鍒嗗壊
+        /// liao20240605
+        /// </summary>
+         public  string? Coordinate {  get; set; }
     }
 
     /// <summary>
diff --git a/CoreCms.Net.RedisMQ/CoreCms.Net.RedisMQ.csproj b/CoreCms.Net.RedisMQ/CoreCms.Net.RedisMQ.csproj
index afc9ef8..eb437cc 100644
--- a/CoreCms.Net.RedisMQ/CoreCms.Net.RedisMQ.csproj
+++ b/CoreCms.Net.RedisMQ/CoreCms.Net.RedisMQ.csproj
@@ -14,6 +14,7 @@
   <ItemGroup>
     <ProjectReference Include="..\CoreCms.Net.Caching\CoreCms.Net.Caching.csproj" />
     <ProjectReference Include="..\CoreCms.Net.Configuration\CoreCms.Net.Configuration.csproj" />
+    <ProjectReference Include="..\CoreCms.Net.IRepository\CoreCms.Net.IRepository.csproj" />
     <ProjectReference Include="..\CoreCms.Net.IServices\CoreCms.Net.IServices.csproj" />
     <ProjectReference Include="..\CoreCms.Net.Loging\CoreCms.Net.Loging.csproj" />
     <ProjectReference Include="..\CoreCms.Net.WeChat.Service\CoreCms.Net.WeChat.Service.csproj" />
diff --git a/CoreCms.Net.RedisMQ/DistributionSendOderMQ.cs b/CoreCms.Net.RedisMQ/DistributionSendOderMQ.cs
new file mode 100644
index 0000000..7863227
--- /dev/null
+++ b/CoreCms.Net.RedisMQ/DistributionSendOderMQ.cs
@@ -0,0 +1,77 @@
+锘縰sing CoreCms.Net.Configuration;
+using CoreCms.Net.DTO;
+using CoreCms.Net.IRepository.UnitOfWork;
+using CoreCms.Net.IServices;
+using CoreCms.Net.Loging;
+using CoreCms.Net.Model.Entities.baifenbingfa.DistributionSendOder;
+using InitQ.Abstractions;
+using InitQ.Attributes;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.RedisMQ
+{
+    /// <summary>
+    ///  渚涘簲鍟嗛厤閫佽鍗曞垎閰嶈褰�
+    /// </summary>
+    public class DistributionSendOderMQ: IRedisSubscribe
+    {
+        private readonly IUnitOfWork _unitOfWork;
+        public DistributionSendOderMQ(IUnitOfWork unitOfWork)
+        {
+            _unitOfWork= unitOfWork;
+
+        }
+
+        /// <summary>
+        /// 澧炲姞涓�涓褰�
+        /// </summary>
+        /// <param name="message"></param>
+        [Subscribe(RedisMessageQueueKey.AddDistributionSendOderMQ)]
+        public async void AddDistributionSendOder(string message)
+        {
+            var Param = JsonConvert.DeserializeObject<DistributionSendOder>(message);
+            if(Param == null) {
+
+                NLogUtil.WriteAll(NLog.LogLevel.Error, LogType.RedisMessageQueue, "AddDistributionSendOder 澧炲姞涓�涓褰� 澶勭悊澶辫触", $"杞崲妯″瀷澶辫触===銆� {message}");
+                return;
+            }
+            Param.createTime = DateTime.Now;
+            Param.createBy = "绯荤粺闃熷垪";
+           
+            await _unitOfWork.GetDbClient().Insertable(Param).ExecuteCommandAsync();
+
+        }
+
+        /// <summary>
+        /// 淇敼鐘舵��
+        /// </summary>
+        /// <param name="message"></param>
+        [Subscribe(RedisMessageQueueKey.ActiveDistributionSendOderMQ)]
+        public async void ActiveDistributionSendOder(string message)
+        {
+            var Param = JsonConvert.DeserializeObject<ActiveDistributionSendOderMQ>(message);
+            if (Param == null)
+            {
+
+                NLogUtil.WriteAll(NLog.LogLevel.Error, LogType.RedisMessageQueue, "ActiveDistributionSendOder 淇敼鐘舵�� 澶勭悊澶辫触", $"杞崲妯″瀷澶辫触===銆� {message}");
+                return;
+            }
+
+          var oder=await   _unitOfWork.GetDbClient().Queryable<DistributionSendOder>().Where(x => x.deliveryID == Param.deliveryID && x.userID == Param.userID).FirstAsync();
+            oder.upDataTime = DateTime.Now;
+            oder.upDataBy = "ActiveDistributionSendOder 闃熷垪";
+            oder.description = Param.Dec;
+            oder.sendDistributionAccept= Param.SendOderActive;
+         
+            await _unitOfWork.GetDbClient().Updateable(Param).ExecuteCommandAsync();
+
+        }
+
+
+    }
+}
diff --git a/CoreCms.Net.Services/Bill/CoreCmsBillDeliveryServices.cs b/CoreCms.Net.Services/Bill/CoreCmsBillDeliveryServices.cs
index 6077e7e..af7246c 100644
--- a/CoreCms.Net.Services/Bill/CoreCmsBillDeliveryServices.cs
+++ b/CoreCms.Net.Services/Bill/CoreCmsBillDeliveryServices.cs
@@ -12,22 +12,27 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
+using CoreCms.Net.Auth.HttpContextUser;
 using CoreCms.Net.Caching.AutoMate.RedisCache;
 using CoreCms.Net.Configuration;
+using CoreCms.Net.DTO;
 using CoreCms.Net.IRepository;
 using CoreCms.Net.IRepository.UnitOfWork;
 using CoreCms.Net.IServices;
 using CoreCms.Net.Loging;
 using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.baifenbingfa.DistributionSendOder;
 using CoreCms.Net.Model.ViewModels.Api;
 using CoreCms.Net.Model.ViewModels.DTO;
 using CoreCms.Net.Model.ViewModels.UI;
 using CoreCms.Net.Utility.Helper;
+using Essensoft.Paylink.Alipay.Domain;
 using Flurl.Http;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Hosting;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
+using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinExpressDeliveryOpenMessageGetDeliveryListResponse.Types;
 
 
 namespace CoreCms.Net.Services
@@ -45,7 +50,9 @@
         private readonly IUnitOfWork _unitOfWork;
         private readonly IServiceProvider _serviceProvider;
         private readonly IRedisOperationRepository _redisOperationRepository;
+        private readonly ICoreCmsDistributionRepository _coreCmsDistributionRepository;
 
+        private readonly IHttpContextUser _user;
 
 
         public CoreCmsBillDeliveryServices(
@@ -55,7 +62,10 @@
             , ICoreCmsStoreServices storeServices
             , ICoreCmsBillDeliveryItemServices billDeliveryItemServices
             , ICoreCmsOrderLogServices orderLogServices
-            , ICoreCmsSettingServices settingServices, IRedisOperationRepository redisOperationRepository)
+            , ICoreCmsSettingServices settingServices
+            , IRedisOperationRepository redisOperationRepository,
+                ICoreCmsDistributionRepository coreCmsDistributionRepository
+            , IHttpContextUser user)
         {
             this._dal = dal;
             base.BaseDal = dal;
@@ -66,6 +76,9 @@
             _orderLogServices = orderLogServices;
             _settingServices = settingServices;
             _redisOperationRepository = redisOperationRepository;
+            _coreCmsDistributionRepository = coreCmsDistributionRepository;
+            _user = user;
+
         }
 
 
@@ -83,12 +96,17 @@
         /// <param name="shipAddress">鏀惰揣鍦板潃</param>
         /// <param name="memo">鍙戣揣鎻忚堪</param>
         /// <param name="deliveryCompanyId">绗笁鏂瑰鎺ョ墿娴佺紪鐮�</param>
+        /// <param name="sendDistributionID">閫佽揣渚涘簲鍟咺D</param>
         /// <returns></returns>
-        public async Task<WebApiCallBack> BatchShip(string[] orderId, string logiCode, string logiNo, Dictionary<int, int> items, int storeId = 0, string shipName = "", string shipMobile = "", int shipAreaId = 0, string shipAddress = "", string memo = "", string deliveryCompanyId = "")
+        public async Task<WebApiCallBack> BatchShip(string[] orderId, string logiCode, string logiNo, Dictionary<int, int> items, int storeId = 0, string shipName = "", string shipMobile = "", int shipAreaId = 0, string shipAddress = "", string memo = "", string deliveryCompanyId = "", int? sendDistributionID = null)
         {
             using var container = _serviceProvider.CreateScope();
             var jm = new WebApiCallBack();
-
+            if(sendDistributionID > 0)
+            {
+                jm.msg = "缁忛攢鍟嗗彂璐т笉鏀寔鎵归噺鍙戣揣";
+                return jm;
+            }
             var orderService = container.ServiceProvider.GetService<ICoreCmsOrderServices>();
             var stockServices = container.ServiceProvider.GetService<ICoreCmsStockServices>();
             //鑾峰彇璁㈠崟璇︽儏
@@ -180,7 +198,7 @@
             }
             if (tNum < 1)
             {
-                jm.msg = "璇疯嚦灏戝彂鐢熶竴浠跺晢鍝�!";
+                jm.msg = "璇疯嚦灏戝彂涓�浠跺晢鍝�!";
                 return jm;
             }
             //浜嬪姟澶勭悊寮�濮�
@@ -231,12 +249,13 @@
         /// <param name="shipAddress">鏀惰揣鍦板潃</param>
         /// <param name="memo">鍙戣揣鎻忚堪</param>
         /// <param name="deliveryCompanyId">绗笁鏂瑰鎺ョ墿娴佺紪鐮�</param>
+        /// <param name="sendDistributionID">缁忛攢鍟嗛�佽揣ID</param>
         /// <returns></returns>
-        public async Task<WebApiCallBack> Ship(string orderId, string logiCode, string logiNo, Dictionary<int, int> items, int storeId = 0, string shipName = "", string shipMobile = "", int shipAreaId = 0, string shipAddress = "", string memo = "", string deliveryCompanyId = "")
+        public async Task<WebApiCallBack> Ship(string orderId, string logiCode, string logiNo, Dictionary<int, int> items, int storeId = 0, string shipName = "", string shipMobile = "", int shipAreaId = 0, string shipAddress = "", string memo = "", string deliveryCompanyId = "",int? sendDistributionID=null)
         {
             using var container = _serviceProvider.CreateScope();
             var jm = new WebApiCallBack();
-
+            
             var orderService = container.ServiceProvider.GetService<ICoreCmsOrderServices>();
             //鑾峰彇璁㈠崟璇︽儏
             var dInfoResult = await orderService.GetOrderShipInfo(orderId);
@@ -288,7 +307,33 @@
             billDelivery.memo = memo;
             billDelivery.createTime = DateTime.Now;
             billDelivery.thirdPartylogiCode = deliveryCompanyId;
+         
+            if(sendDistributionID>0)
+            {
+              var a=  _coreCmsDistributionRepository.QueryById(sendDistributionID);
+                if(a==null)
+                {
+                    jm.msg = "缁忛攢鍟嗕笉瀛樺湪";
+                    return jm;
+                }
+                billDelivery.sendDistributionUserID= a.userId;  
+                billDelivery.sendDistributionID = sendDistributionID;
+                billDelivery.sendDistributionAccept = sendDistributionAcceptType.NoAccted;
+                var mQ = new DistributionSendOder
+                {
+                   
+                    sendDistributionAccept = sendDistributionAcceptType.NoAccted,
+                    distributionID = (int)sendDistributionID,
+                    sendMangerID = _user.ID,
+                    deliveryID = billDelivery.deliveryId,
+                     sendTime = DateTime.Now, 
+                      userID= a.userId
 
+
+                };
+                //璁板綍鎿嶄綔璁板綍
+                await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.AddDistributionSendOderMQ, JsonConvert.SerializeObject(mQ));
+            }
             //璁剧疆鍙戣揣鏄庣粏
             var bdRel = new List<CoreCmsBillDeliveryItem>();
 
@@ -335,7 +380,10 @@
 
 
             //鎻掑叆鍙戣揣鍗曚富浣撹〃
-            await _dal.InsertAsync(billDelivery);
+         await _dal.InsertAsync(billDelivery);
+           
+       
+            
 
             //鎻掑叆鍙戣揣鍗曟槑缁嗚〃
             await _billDeliveryItemServices.InsertAsync(bdRel);
diff --git a/CoreCms.Net.Services/CoreCms.Net.Services.csproj b/CoreCms.Net.Services/CoreCms.Net.Services.csproj
index b746a65..a795d38 100644
--- a/CoreCms.Net.Services/CoreCms.Net.Services.csproj
+++ b/CoreCms.Net.Services/CoreCms.Net.Services.csproj
@@ -11,6 +11,7 @@
     <PackageReference Include="Flurl.Http" Version="3.2.4" />
     <PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0" />
     <PackageReference Include="Microsoft.Extensions.Options" Version="8.0.0" />
+    <PackageReference Include="NEST" Version="7.17.5" />
     <PackageReference Include="Qiniu" Version="8.5.0" />
     <PackageReference Include="QRCoder" Version="1.4.3" />
     <PackageReference Include="SixLabors.ImageSharp.Web" Version="3.1.0" />
diff --git a/CoreCms.Net.Services/Order/CoreCmsOrderServices.cs b/CoreCms.Net.Services/Order/CoreCmsOrderServices.cs
index c31eadd..4eb4577 100644
--- a/CoreCms.Net.Services/Order/CoreCmsOrderServices.cs
+++ b/CoreCms.Net.Services/Order/CoreCmsOrderServices.cs
@@ -82,6 +82,7 @@
         private readonly ICoreCmsUserWeChatInfoServices _userWeChatInfoServices;
         private readonly WeChat.Service.HttpClients.IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
         private readonly ICoreCmsPlanOrderServices _planOrderServices;
+     
 
         private IUnitOfWork _unitOfWork;
 
@@ -666,6 +667,7 @@
                 order.shipAddress = userShipInfo.street + " " + userShipInfo.address;
                 order.shipName = userShipInfo.name;
                 order.shipMobile = userShipInfo.mobile;
+                order.shipCoordinate = userShipInfo.latitude + "," + userShipInfo.longitude;
 
                 var ship = await _shipServices.GetShip(userShipInfo.areaId);
                 if (ship != null)
@@ -907,12 +909,31 @@
             order.aftersalesItem = await _billAftersalesServices.QueryListByClauseAsync(p => p.orderId == order.orderId);
             //鍙戣揣鍗�
             order.delivery = await _billDeliveryServices.QueryListByClauseAsync(p => p.orderId == order.orderId);
+
             if (order.delivery != null && order.delivery.Any())
             {
                 foreach (var item in order.delivery)
                 {
-                    var outFirstAsync = await _logisticsServices.QueryByClauseAsync(p => p.logiCode == item.logiCode);
-                    item.logiName = outFirstAsync != null ? outFirstAsync.logiName : item.logiCode;
+                    if (item.logiCode == "Distributor")
+                    {
+                        //鏄緵搴斿晢閫佽揣
+                     var ds=   await  _unitOfWork.GetDbClient().Queryable<CoreCmsDistribution>().Where(x => x.id == item.sendDistributionID).FirstAsync();
+                        if(ds==null)
+                        {
+                            item.logiName = "缁忛攢鍟嗛厤閫侊紝浣嗘槸缁忛攢鍟嗗凡缁忛��鍑烘垨鑰呬笉瀛樺湪";
+                        }
+                        else
+                        {
+                            item.logiName = $"缁忛攢鍟嗛厤閫侊紙{ds.schoolName}--{ds.name}锛�";
+                        }
+                        item.distributionAcceptStr = item.sendDistributionAccept?.GetDescription() ?? "缁忛攢鍟嗘湭纭鎺ュ彈閰嶉��";
+
+                    }
+                    else
+                    {
+                        var outFirstAsync = await _logisticsServices.QueryByClauseAsync(p => p.logiCode == item.logiCode);
+                        item.logiName = outFirstAsync != null ? outFirstAsync.logiName : item.logiCode;
+                    }
                 }
             }
             //鑾峰彇鎻愯揣闂ㄥ簵
@@ -1886,6 +1907,7 @@
                 shipMobile = orderInfo[0].shipMobile,
                 logisticsId = orderInfo[0].logisticsId,
                 logisticsName = orderInfo[0].logisticsName,
+                Coordinate= orderInfo[0].shipCoordinate,
                 items = new List<CoreCmsOrderItem>(),
                 orders = orderInfo  //鎶婅鍗曚俊鎭啑浣欎笂鍘�
             };
@@ -1957,7 +1979,12 @@
             //鏄惁鏈夎鍛�
             if (string.IsNullOrEmpty(jm.msg))
             {
-                jm.msg = "璇锋敞鎰忥紒鍚堝苟鍙戣揣璁㈠崟涓瓨鍦細" + jm.msg + "銆傜‘瀹氬彂璐у悧锛�";
+                //澶氬湴鍧�澶氱敤鎴风姝� 鍚堝苟鍙戣揣 20240605
+
+                jm.msg = jm.msg + "銆備笉鍙悎骞跺彂璐�";
+                jm.status = false;
+                return jm;
+               // jm.msg = "璇锋敞鎰忥紒鍚堝苟鍙戣揣璁㈠崟涓瓨鍦細" + jm.msg + "銆傜‘瀹氬彂璐у悧锛�";
             }
             jm.status = true;
             jm.data = newOrder;
@@ -2124,10 +2151,10 @@
         /// <param name="deliveryCompanyId">绗笁鏂瑰鎺ョ墿娴佺紪鐮�</param>
         /// <returns></returns>
         public async Task<WebApiCallBack> BatchShip(string[] ids, string logiCode, string logiNo,
-            Dictionary<int, int> items, string shipName, string shipMobile, string shipAddress, string memo, int storeId = 0, int shipAreaId = 0, string deliveryCompanyId = "")
+            Dictionary<int, int> items, string shipName, string shipMobile, string shipAddress, string memo, int storeId = 0, int shipAreaId = 0, string deliveryCompanyId = "", int? sendDistributionID = null)
         {
 
-            var result = await _billDeliveryServices.BatchShip(ids, logiCode, logiNo, items, storeId, shipName, shipMobile, shipAreaId, shipAddress, memo, deliveryCompanyId);
+            var result = await _billDeliveryServices.BatchShip(ids, logiCode, logiNo, items, storeId, shipName, shipMobile, shipAreaId, shipAddress, memo, deliveryCompanyId,sendDistributionID);
             return result;
 
         }
@@ -2151,9 +2178,9 @@
         /// <param name="deliveryCompanyId">绗笁鏂瑰鎺ョ墿娴佺紪鐮�</param>
         /// <returns></returns>
         public async Task<WebApiCallBack> Ship(string orderId, string logiCode, string logiNo,
-            Dictionary<int, int> items, string shipName, string shipMobile, string shipAddress, string memo, int storeId = 0, int shipAreaId = 0, string deliveryCompanyId = "")
+            Dictionary<int, int> items, string shipName, string shipMobile, string shipAddress, string memo, int storeId = 0, int shipAreaId = 0, string deliveryCompanyId = "", int? sendDistributionID = null)
         {
-            var result = await _billDeliveryServices.Ship(orderId, logiCode, logiNo, items, storeId, shipName, shipMobile, shipAreaId, shipAddress, memo, deliveryCompanyId);
+            var result = await _billDeliveryServices.Ship(orderId, logiCode, logiNo, items, storeId, shipName, shipMobile, shipAreaId, shipAddress, memo, deliveryCompanyId,sendDistributionID);
             return result;
 
         }
diff --git a/CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs b/CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs
index 0b5c19e..9f355f2 100644
--- a/CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs
+++ b/CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs
@@ -4,6 +4,8 @@
 using CoreCms.Net.IServices.baifenbingfa;
 using CoreCms.Net.Model.Entities;
 using CoreCms.Net.Utility.Helper;
+using Nest;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -71,5 +73,88 @@
                 return 0;
             return count * 1;
         }
+
+        public List<DistributorSort> orderedDistributors(List<DistributorSort> DataList, string latitude, string longitude)
+        {
+          
+
+            GeoCoordinate inputLocation = new GeoCoordinate(double.Parse(longitude), double.Parse(latitude)); // 杈撳叆鐨勭粡绾害
+
+            var sortedDistributors = DataList.OrderBy(d => CalculateDistance(inputLocation, new GeoCoordinate(double.Parse(d.longitude), double.Parse(d.latitude))))
+                                                 .ToList();
+            return sortedDistributors;
+        }
+
+
+        /// <summary>
+        /// 璁$畻缁忕含杈捐窛绂�
+        /// </summary>
+        /// <param name="location1"></param>
+        /// <param name="location2"></param>
+        /// <returns></returns>
+        private static double CalculateDistance(GeoCoordinate location1, GeoCoordinate location2)
+        {
+            const double earthRadiusKm = 6371;
+            var dLat = ToRadians(location2.Latitude - location1.Latitude);
+            var dLon = ToRadians(location2.Longitude - location1.Longitude);
+
+            var a = Math.Sin(dLat / 2) * Math.Sin(dLat / 2) +
+                    Math.Cos(ToRadians(location1.Latitude)) * Math.Cos(ToRadians(location2.Latitude)) *
+                    Math.Sin(dLon / 2) * Math.Sin(dLon / 2);
+            var c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
+            var distance = earthRadiusKm * c;
+
+            return distance;
+        }
+
+        private static double ToRadians(double degree)
+        {
+            return degree * Math.PI / 180;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏈夋晥鏍″洯浠g悊
+        /// </summary>
+        /// <param name="PIds"></param>
+        /// <returns></returns>
+        public async Task< List<DistributorSort>> GetDistributorsList(List<int> PIds)
+        {
+          var blist=  await  _unitOfWork.GetDbClient().Queryable<CoreCmsDistribution>().Where(x=>x.profession=="鏍″洯浠g悊"&&x.verifyStatus== (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes).ToListAsync();
+            List < DistributorSort > retlist=new List<DistributorSort>();            
+            foreach (var item in blist)
+            {
+                if (string.IsNullOrEmpty(item.storeCoordinate) || item.storeCoordinate == ",")
+                    //娌℃湁瀹氫綅锛屼笉鍔犲叆
+                    continue;
+                var ldinate=   item.storeCoordinate.Split(',');
+                retlist.Add(   new DistributorSort()
+                {
+                    id = item.id,
+                    latitude = ldinate[0],
+                    longitude = ldinate[1],
+                    name = item.schoolName + ":" + item.name
+
+
+
+                });
+            }
+            return retlist;
+        }
+
+
+
+        public async Task< List< int>> GetOderProductsIDs(string[] OderIds)
+        {
+          var list=   await  _unitOfWork.GetDbClient().Queryable<CoreCmsOrder>().Where(x => OderIds.Contains(x.orderId))              
+                .Select(x =>  new { items = SqlFunc.Subqueryable<CoreCmsOrderItem>().Where(it => it.orderId == x.orderId).ToList() }).ToListAsync();
+            var li=new List<int>();
+            foreach (var item in list)
+            {
+                li.AddRange(item.items.Select(x=>x.id).ToList());
+
+
+            }
+            return li;
+        }
     }
 }
diff --git a/CoreCms.Net.Services/baifenbingfa/DistributorDeliveryServices.cs b/CoreCms.Net.Services/baifenbingfa/DistributorDeliveryServices.cs
new file mode 100644
index 0000000..e7e7b7c
--- /dev/null
+++ b/CoreCms.Net.Services/baifenbingfa/DistributorDeliveryServices.cs
@@ -0,0 +1,204 @@
+锘縰sing CoreCms.Net.Caching.AutoMate.RedisCache;
+using CoreCms.Net.IRepository.UnitOfWork;
+using CoreCms.Net.IRepository;
+using CoreCms.Net.IServices;
+using CoreCms.Net.IServices.baifenbingfa;
+using CoreCms.Net.Model.Entities;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using CoreCms.Net.Auth.HttpContextUser;
+using CoreCms.Net.Model.Entities.Expression;
+using CoreCms.Net.Model.ViewModels.Basics;
+using COSXML.Model.Tag;
+using NPOI.SS.Formula.Functions;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+using CoreCms.Net.Configuration;
+using Newtonsoft.Json;
+using CoreCms.Net.DTO;
+
+namespace CoreCms.Net.Services.baifenbingfa
+{
+    /// <summary>
+    /// 渚涘簲鍟嗗彂璐у崟澶勭悊鏈嶅姟
+    /// </summary>
+    public class DistributorDeliveryServices : BaseServices<CoreCmsBillDelivery>, IDistributorDeliveryServices
+    {
+
+        private readonly ICoreCmsBillDeliveryRepository _dal;
+        private readonly ICoreCmsStoreServices _storeServices;
+        private readonly ICoreCmsBillDeliveryItemServices _billDeliveryItemServices;
+        private readonly ICoreCmsOrderLogServices _orderLogServices;
+        private readonly ICoreCmsSettingServices _settingServices;
+        private readonly IUnitOfWork _unitOfWork;
+        private readonly IServiceProvider _serviceProvider;
+        private readonly IRedisOperationRepository _redisOperationRepository;
+       private readonly  IHttpContextUser _user;
+
+        public readonly ICoreCmsDistributionServices _coreCmsDistributionServices;
+
+        public DistributorDeliveryServices(
+            IUnitOfWork unitOfWork,
+            IServiceProvider serviceProvider
+            , ICoreCmsBillDeliveryRepository dal
+            , ICoreCmsStoreServices storeServices
+            , ICoreCmsBillDeliveryItemServices billDeliveryItemServices
+            , ICoreCmsOrderLogServices orderLogServices
+            , ICoreCmsSettingServices settingServices
+            , IRedisOperationRepository redisOperationRepository
+            , IHttpContextUser user
+            ,ICoreCmsDistributionServices coreCmsDistributionServices )
+        {
+            this._dal = dal;
+            base.BaseDal = dal;
+            _unitOfWork = unitOfWork;
+            _serviceProvider = serviceProvider;
+            _storeServices = storeServices;
+            _billDeliveryItemServices = billDeliveryItemServices;
+            _orderLogServices = orderLogServices;
+            _settingServices = settingServices;
+            _redisOperationRepository = redisOperationRepository;
+            _user = user;
+            _coreCmsDistributionServices = coreCmsDistributionServices;
+        }
+
+        public async Task<(List< CoreCmsBillDelivery>,int )> GetDeliveryList(GetDeliveryListPost Param)
+        {
+
+
+            var where = PredicateBuilder.True<CoreCmsBillDelivery>();
+             if(Param.Status != null )
+            {
+                where= where.And(x => x.status == (int)Param.Status);
+            }
+            if (Param.distributionAcceptStatus != null)
+            {
+                where= where.And(x => x.sendDistributionAccept == Param.distributionAcceptStatus);
+            }
+            where= where.And(x => x.sendDistributionUserID == _user.ID);
+            //蹇呴』鏄嚭浜庡彂璐х姸鎬�
+            //where= where.And(x => x.order.shipStatus ==(int ) GlobalEnumVars.OrderShipStatus.Yes);
+            //蹇呴』鏄湁鏁堢姸鎬�
+            //where= where.And(x => x.order.status == (int)GlobalEnumVars.OrderStatus.Normal);
+            RefAsync<int> totl = 0;
+           var list= await  _unitOfWork.GetDbClient().Queryable<CoreCmsBillDelivery>().Includes(x => x.order, order => order.Orderitems, ite => ite.productInfo)
+                .Where(where).OrderByDescending(x => x.createTime)
+                .ToPageListAsync(Param.page, Param.limit, totl);
+             var listdata=  new PageList<CoreCmsBillDelivery>(list, Param.page, Param.limit, totl);
+
+            return (listdata,totl);
+            //return  await  _dal.QueryPageAsync(where, x => x.createTime, SqlSugar.OrderByType.Desc, Param.page, Param.page);
+        }
+
+        public async Task<int> GetNoAcceptedDeliveryCount()
+        {
+           return  await _dal.GetCountAsync(x => x.sendDistributionUserID == _user.ID && x.sendDistributionAccept ==  sendDistributionAcceptType.NoAccted);
+        }
+
+        public async Task<bool> GetShowDelivery()
+        {
+            return (await _coreCmsDistributionServices.GetCountAsync(x => x.userId == _user.ID && x.verifyStatus == (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes&&x.profession=="鏍″洯浠g悊", isDataCache: true, cacheTimes: 60)>0);
+        }
+        public async Task<WebApiCallBack> SetDeliveryAccepted(sendDistributionAcceptType acceptType, string DeliveryID, string CancelledDec = null)
+        {
+            WebApiCallBack ret = new WebApiCallBack();
+            var data = await _dal.QueryByIdAsync(DeliveryID);
+            if (data == null)
+            {
+                ret.status = false;
+                ret.msg = " 娌℃湁鎵惧埌鍙戣揣鍗�";
+                return ret;
+
+            }
+            if (data.sendDistributionUserID != _user.ID)
+            {
+                ret.status = false;
+                ret.msg = "璇ュ彂璐у崟涓嶅睘浜庤璇ョ敤鎴�";
+                return ret;
+            }
+
+            var oder = await _unitOfWork.GetDbClient().Queryable<CoreCmsOrder>().Where(x=>x.status== (int)GlobalEnumVars.OrderStatus.Normal).Includes(x => x.Orderitems).Where(x => x.orderId == data.orderId).FirstAsync();
+            if(oder != null)
+            {
+                ret.status = false;
+                ret.msg = "璁㈠崟宸茬粡瀹岀粨锛屼笉鍙搷浣�";
+                return ret;
+            }
+
+            var mQ = new ActiveDistributionSendOderMQ
+            {
+                Dec = CancelledDec,
+                SendOderActive = acceptType,
+                deliveryID = DeliveryID,
+                userID = _user.ID
+            };
+            //璁板綍鎿嶄綔璁板綍
+            await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.ActiveDistributionSendOderMQ, JsonConvert.SerializeObject(mQ));
+            //鐢ㄦ埛涓嶅悓鎰忛厤閫�
+            try
+            {
+
+           
+            _unitOfWork.BeginTran();
+            if (acceptType == sendDistributionAcceptType.Cancelled)
+            {
+                //濡傛灉鏄彇娑堣鍗曪紝闇�瑕佹妸璁㈠崟
+                //涓嶆帴鍙� 闇�瑕佸皢鍘熻鍗曡缃负涓哄垎閰嶇姸鎬侊紝
+
+               
+                   
+                if (oder.status != (int)GlobalEnumVars.OrderStatus.Complete 
+                    && oder.status != (int)GlobalEnumVars.OrderStatus.Cancel
+                    &&oder.shipStatus== (int)GlobalEnumVars.OrderShipStatus.Yes
+                     )
+                {
+                        var Deliveryitem = await _unitOfWork.GetDbClient().Queryable<CoreCmsBillDeliveryItem>().Where(x => x.deliveryId == data.deliveryId).ToListAsync();
+
+                        foreach (var item in oder.Orderitems)
+                        {
+                            //澶勭悊宸插彂璐ф暟鎹�
+
+                            item.sendNums -= Deliveryitem.Where(x => x.productId == item.productId).Select(x => x.nums).FirstOrDefault();
+                            if(item.sendNums<0)
+                                item.sendNums = 0;
+                            item.updateTime = DateTime.Now;
+
+
+
+                        }
+                        oder.shipStatus =(int ) GlobalEnumVars.OrderShipStatus.No;
+
+                        oder.updateTime = DateTime.Now;
+                   await  _unitOfWork.GetDbClient().UpdateNav( oder ).Include(x=>x.Orderitems).ExecuteCommandAsync() ;
+                      
+
+                }
+
+
+            }
+
+            data.sendDistributionAccept = acceptType;
+            data.updateTime= DateTime.Now;
+            ret.status = true;
+            var r= await _dal.UpdateAsync(data);
+                if(r==true)
+                _unitOfWork.CommitTran();
+                else
+                {
+                    _unitOfWork.RollbackTran();
+                }
+            ret.status = r;
+            ret.msg = r ? "璁剧疆鎴愬姛" : "璁剧疆澶辫触";
+           return ret;
+            }
+            catch (Exception)
+            {
+                _unitOfWork.RollbackTran();
+                throw;
+            }
+        }
+    }
+}
diff --git a/CoreCms.Net.Utility/Extensions/ObjectExtensions.cs b/CoreCms.Net.Utility/Extensions/ObjectExtensions.cs
index 2f02087..9661063 100644
--- a/CoreCms.Net.Utility/Extensions/ObjectExtensions.cs
+++ b/CoreCms.Net.Utility/Extensions/ObjectExtensions.cs
@@ -14,6 +14,7 @@
 
 using System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Text;
 
 namespace CoreCms.Net.Utility.Extensions
@@ -174,8 +175,18 @@
             return thisValue != null && thisValue != DBNull.Value && bool.TryParse(thisValue.ToString(), out result) ? result : result;
         }
 
-
-
+        /// <summary>
+        /// 鑾峰彇鏋氫妇鐨勬爣娉ㄧ殑鍊�
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="value"></param>
+        /// <returns></returns>
+        public static string GetDescription(this Enum value) 
+        {
+            var field = value.GetType().GetField(value.ToString());
+            var attributes = (DescriptionAttribute[])field.GetCustomAttributes(typeof(DescriptionAttribute), false);
+            return attributes.Length > 0 ? attributes[0].Description : value.ToString();
+        }
 
     }
 }
diff --git a/CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsBillDeliveryController.cs b/CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsBillDeliveryController.cs
index d3665c6..4f46918 100644
--- a/CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsBillDeliveryController.cs
+++ b/CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsBillDeliveryController.cs
@@ -16,6 +16,7 @@
 using System.Threading.Tasks;
 using CoreCms.Net.Configuration;
 using CoreCms.Net.Filter;
+using CoreCms.Net.IRepository.UnitOfWork;
 using CoreCms.Net.IServices;
 using CoreCms.Net.Loging;
 using CoreCms.Net.Model.Entities;
@@ -24,6 +25,7 @@
 using CoreCms.Net.Model.ViewModels.UI;
 using CoreCms.Net.Utility.Extensions;
 using CoreCms.Net.Web.Admin.Infrastructure;
+using DotLiquid.Util;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Mvc;
@@ -47,19 +49,25 @@
         private readonly ICoreCmsBillDeliveryItemServices _itemServices;
         private readonly ICoreCmsLogisticsServices _logisticsServices;
         private readonly IWebHostEnvironment _webHostEnvironment;
+        private readonly IUnitOfWork _unitOfWork;
+        private readonly ICoreCmsDistributionOrderServices _coreCmsDistributionOrderServices;
 
         /// <summary>
         ///     鏋勯�犲嚱鏁�
         /// </summary>
         public CoreCmsBillDeliveryController(IWebHostEnvironment webHostEnvironment,
             ICoreCmsBillDeliveryServices coreCmsBillDeliveryServices, ICoreCmsAreaServices areaServices,
-            ICoreCmsBillDeliveryItemServices itemServices, ICoreCmsLogisticsServices logisticsServices)
+            ICoreCmsBillDeliveryItemServices itemServices
+            , ICoreCmsLogisticsServices logisticsServices
+            , IUnitOfWork sugarUnitOfWork, ICoreCmsDistributionOrderServices coreCmsDistributionOrderServices)
         {
             _webHostEnvironment = webHostEnvironment;
             _coreCmsBillDeliveryServices = coreCmsBillDeliveryServices;
             _areaServices = areaServices;
             _itemServices = itemServices;
             _logisticsServices = logisticsServices;
+            _unitOfWork = sugarUnitOfWork;
+            _coreCmsDistributionOrderServices = coreCmsDistributionOrderServices;
         }
 
         #region 鑾峰彇鍒楄〃============================================================
@@ -221,8 +229,19 @@
 
                     if (!string.IsNullOrEmpty(item.logiCode))
                     {
+
+                        if (item.logiCode == "Distributor")
+                        {
+                            //鏄緵搴斿晢渚涜揣锛岄偅涔堥渶瑕佽幏鍙栦緵搴斿晢淇℃伅
+                            var dis = await _unitOfWork.GetDbClient().Queryable<CoreCmsDistribution>().Where(x => x.id == item.sendDistributionID).FirstAsync();
+                            if (dis != null)
+                                item.logiName = $"鍒嗛厤缁欑粡閿�鍟嗗彂璐э紙{dis.name} -- {dis.schoolName}锛�";
+                        }
+                        else
+                        { 
                         var logiModel = logist.Find(p => p.logiCode == item.logiCode);
                         if (logiModel != null) item.logiName = logiModel.logiName;
+                         }
                     }
                 }
             }
@@ -363,9 +382,24 @@
 
             if (!string.IsNullOrEmpty(model.logiCode))
             {
-                var logiModel = await _logisticsServices.QueryByClauseAsync(p => p.logiCode == model.logiCode);
-                ;
-                if (logiModel != null) model.logiName = logiModel.logiName;
+                if (model.logiCode == "Distributor")
+                {
+                    //鏄緵搴斿晢渚涜揣锛岄偅涔堥渶瑕佽幏鍙栦緵搴斿晢淇℃伅
+                    var dis = await _unitOfWork.GetDbClient().Queryable<CoreCmsDistribution>().Where(x => x.id == model.sendDistributionID).FirstAsync();
+                    if (dis != null)
+                    {
+                        model.logiName = $"鍒嗛厤缁欑粡閿�鍟嗗彂璐э紙{dis.name} -- {dis.schoolName}锛�";
+                        model.distributionAcceptStr = model.sendDistributionAccept?.GetDescription()??"鏈‘璁ゆ帴鍙楀垎閰�";
+                    }
+
+                }
+                else
+
+                {
+                    var logiModel = await _logisticsServices.QueryByClauseAsync(p => p.logiCode == model.logiCode);
+                    if (logiModel != null) model.logiName = logiModel.logiName;
+                }
+                
             }
 
             var items = await _itemServices.QueryListByClauseAsync(p => p.deliveryId == model.deliveryId,
diff --git a/CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsOrderController.cs b/CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsOrderController.cs
index dac6e3c..391da5a 100644
--- a/CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsOrderController.cs
+++ b/CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsOrderController.cs
@@ -19,10 +19,12 @@
 using CoreCms.Net.Configuration;
 using CoreCms.Net.Filter;
 using CoreCms.Net.IServices;
+using CoreCms.Net.IServices.baifenbingfa;
 using CoreCms.Net.Loging;
 using CoreCms.Net.Model.Entities;
 using CoreCms.Net.Model.Entities.Expression;
 using CoreCms.Net.Model.FromBody;
+using CoreCms.Net.Model.ViewModels.DTO;
 using CoreCms.Net.Model.ViewModels.Excel;
 using CoreCms.Net.Model.ViewModels.UI;
 using CoreCms.Net.Utility.Extensions;
@@ -69,7 +71,7 @@
 
 
         private readonly ICoreCmsOrderItemServices _orderItemServices;
-
+        private readonly IBfbfComAPIService _bfbfServices;
 
 
         /// <summary>
@@ -84,7 +86,14 @@
             , ICoreCmsLogisticsServices logisticsServices
             , ICoreCmsBillPaymentsServices billPaymentsServices
             , ICoreCmsPaymentsServices paymentsServices
-            , ICoreCmsSettingServices settingServices, ICoreCmsUserWeChatInfoServices userWeChatInfoServices, IRedisOperationRepository redisOperationRepository, ICoreCmsBillDeliveryServices billDeliveryServices, IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsOrderItemServices orderItemServices, IWeChatShippingDeliveryServices weChatShippingDeliveryServices)
+            , ICoreCmsSettingServices settingServices
+            , ICoreCmsUserWeChatInfoServices userWeChatInfoServices
+            , IRedisOperationRepository redisOperationRepository
+            , ICoreCmsBillDeliveryServices billDeliveryServices
+            , IWeChatApiHttpClientFactory weChatApiHttpClientFactory
+            , ICoreCmsOrderItemServices orderItemServices
+            , IWeChatShippingDeliveryServices weChatShippingDeliveryServices
+            , IBfbfComAPIService bfbfComAPIService)
         {
             _webHostEnvironment = webHostEnvironment;
             _coreCmsOrderServices = coreCmsOrderServices;
@@ -102,6 +111,7 @@
             _weChatApiHttpClientFactory = weChatApiHttpClientFactory;
             _orderItemServices = orderItemServices;
             _weChatShippingDeliveryServices = weChatShippingDeliveryServices;
+            _bfbfServices = bfbfComAPIService;
         }
 
         #region 鑾峰彇鍒楄〃============================================================
@@ -519,6 +529,16 @@
             var storeList = await _storeServices.QueryAsync();
 
             var logistics = await _logisticsServices.QueryListByClauseAsync(p => p.isDelete == false);
+            logistics.Add(new CoreCmsLogistics
+            {
+                id = int.MaxValue,
+                logiCode = "Distributor",
+                logiName = "鏍″洯浠g悊閰嶉��",
+                sort = -1,
+
+            });
+
+            logistics = logistics.OrderBy(x => x.sort).ToList();
             var deliveryCompany = await _weChatShippingDeliveryServices.GetCaChe();
             var result = await _coreCmsOrderServices.GetOrderShipInfo(entity.id);
             if (!result.status)
@@ -526,7 +546,40 @@
                 jm.msg = result.msg;
                 return jm;
             }
+            string lat = "";
+            try
+            {
+                lat = (result.data as AdminOrderShipResult).Coordinate;
+            }
+            catch (Exception)
+            {
 
+                lat = "";
+            }
+            List<DistributorSort> Distributors = new List<DistributorSort>();
+            if (!string.IsNullOrEmpty(lat))
+            //璧版牎鍥唬鐞�
+           { 
+                string[] latlist= lat.Split(',');
+                if (latlist.Length == 2)
+                {
+                    try
+                    {
+                        var ProductsIds = await _bfbfServices.GetOderProductsIDs(entity.id);
+                        Distributors = await _bfbfServices.GetDistributorsList(ProductsIds);
+                        //Distributors = _bfbfServices.orderedDistributors(Distributors, latlist[0], latlist[1]);
+
+                    }
+                    catch (Exception)
+                    {
+                        Distributors = new List<DistributorSort>();
+
+
+                    }
+                   
+                }
+            }
+    
             if (storeList.Any())
             {
                 foreach (var store in storeList)
@@ -546,6 +599,7 @@
                 deliveryCompany,
                 storeList,
                 logistics,
+                Distributors
             };
 
             return jm;
@@ -564,12 +618,23 @@
         public async Task<AdminUiCallBack> DoShip([FromBody] AdminOrderShipPost entity)
         {
             var jm = new AdminUiCallBack();
+            if (entity.logiCode== "Distributor")
+            //濡傛灉閫夋嫨浜嗘牎鍥唬鐞嗗彂璐�
+            {
+                if (entity.SendDistributionID == null && entity.SendDistributionID == 0)
+                {
+                    jm.code= 1;
+                    jm.msg = "蹇呴』閫夋嫨涓�涓牎鍥唬鐞嗛厤閫�";
+                    return jm;
+                 }
+            }
+   
 
             WebApiCallBack result;
             if (entity.orderId.Contains(","))
             {
                 var ids = entity.orderId.Split(",");
-                result = await _coreCmsOrderServices.BatchShip(ids, entity.logiCode, entity.logiNo, entity.items, entity.shipName, entity.shipMobile, entity.shipAddress, entity.memo, entity.storeId, entity.shipAreaId, entity.deliveryCompanyId);
+                result = await _coreCmsOrderServices.BatchShip(ids, entity.logiCode, entity.logiNo, entity.items, entity.shipName, entity.shipMobile, entity.shipAddress, entity.memo, entity.storeId, entity.shipAreaId, entity.deliveryCompanyId,entity.SendDistributionID);
 
                 if (result.status)
                 {
@@ -579,6 +644,8 @@
                         //渚濇鎺ㄥ叆闃熷垪.
                         foreach (var item in orderPaymentIds)
                         {
+                            //缁忛攢鍟嗗彂璐т笉澶勭悊鍙戣揣淇℃伅  鏄簲璇ヤ綔涓哄悓鍩庡鐞嗭紵杩樻槸涓嶅鐞嗭紝闇�瑕佽繍琛屾椂鐮旂┒
+                            if(entity.logiCode != "Distributor")
                             await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.WeChatPayShipping, item.paymentId);
                         }
                     }
@@ -588,12 +655,14 @@
             }
             else
             {
-                result = await _coreCmsOrderServices.Ship(entity.orderId, entity.logiCode, entity.logiNo, entity.items, entity.shipName, entity.shipMobile, entity.shipAddress, entity.memo, entity.storeId, entity.shipAreaId, entity.deliveryCompanyId);
+                result = await _coreCmsOrderServices.Ship(entity.orderId, entity.logiCode, entity.logiNo, entity.items, entity.shipName, entity.shipMobile, entity.shipAddress, entity.memo, entity.storeId, entity.shipAreaId, entity.deliveryCompanyId,entity.SendDistributionID);
 
                 //寰俊鍙戣揣淇℃伅绠$悊API鍙戣揣
                 if (result.status && await _billPaymentsServices.QueryByClauseAsync(p => p.sourceId == entity.orderId && p.status == (int)GlobalEnumVars.BillPaymentsStatus.Payed) is { } paymentInfo)
                 {
-                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.WeChatPayShipping, paymentInfo.paymentId);
+                    //缁忛攢鍟嗗彂璐т笉澶勭悊鍙戣揣淇℃伅
+                    if (entity.logiCode != "Distributor")
+                        await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.WeChatPayShipping, paymentInfo.paymentId);
                 }
 
             }
@@ -916,9 +985,17 @@
                 return jm;
             }
             jm.code = result.status ? 0 : 1;
+            var CmsOrder = result.data as CoreCmsOrder;
+            if(CmsOrder == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            //鍓旈櫎缁忛攢鍟嗗彇娑堢殑鐗╂祦淇℃伅
+            CmsOrder.delivery = CmsOrder.delivery.Where(x => x.logiCode != "Distributor" || (x.logiCode == "Distributor" && x.sendDistributionAccept == sendDistributionAcceptType.Accepted)).ToList();
 
 
-            var allConfigs = await _settingServices.GetConfigDictionaries();
+                var allConfigs = await _settingServices.GetConfigDictionaries();
 
             var shopName = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopName);
             var shopMobile = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopMobile);
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/order/billdelivery/details.html b/CoreCms.Net.Web.Admin/wwwroot/views/order/billdelivery/details.html
index f1a90ab..7c5e237 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/order/billdelivery/details.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/order/billdelivery/details.html
@@ -29,10 +29,17 @@
                         <div class="layui-input-inline layui-form-mid layui-inline-3">
                             {{d.params.data.model.logiName || '' }}
                         </div>
+                        {{# if(d.params.data.model.logiCode!="Distributor"){}}
                         <label class="layui-form-label">蹇�掑崟鍙凤細</label>
                         <div class="layui-input-inline layui-form-mid layui-inline-3">
                             {{d.params.data.model.logiNo || '' }}
                         </div>
+                        {{# }else {}}
+                        <label class="layui-form-label">缁忛攢鍟嗗彂璐х‘璁ょ姸鎬侊細</label>
+                        <div class="layui-input-inline layui-form-mid layui-inline-3">
+                            {{d.params.data.model.distributionAcceptStr || '' }}
+                        </div>
+                        {{#}}}
                     </div>
                     <div class="layui-form-item">
                         <label class="layui-form-label">鏀惰揣鐢佃瘽锛�</label>
@@ -50,6 +57,7 @@
                             {{d.params.data.model.shipAddress || '' }}
                         </div>
                     </div>
+
                     <div class="layui-form-item">
                         <label class="layui-form-label">鍙戣揣澶囨敞锛�</label>
                         <div class="layui-input-inline layui-form-mid layui-inline-100">
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/details.html b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/details.html
index aa85068..d569d87 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/details.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/details.html
@@ -340,7 +340,7 @@
                                 <th>鏀惰揣浜哄悕</th>
                                 <th>鏀惰揣鐢佃瘽</th>
                                 <th>鏀惰揣鍦板潃</th>
-                                <th style="width: 60px">鎿嶄綔</th>
+                                <th style="width: 60px">鐘舵��</th>
                             </tr>
                         </thead>
                         <tbody>
@@ -354,6 +354,8 @@
                                 <td>{{item.shipMobile}}</td>
                                 <td>{{item.shipAreaIdName}}-{{item.shipAddress}}</td>
                                 <td>
+
+                                    {{item.logiCode=="Distributor"? item.distributionAcceptStr??"鏈‘璁ゆ帴鍙楅厤閫�":""}}
                                     <!-- <button type="button" class="layui-btn  layui-btn-warm layui-btn-xs" data-deliveryId="{{item.deliveryId}}" lay-active="refreshDelivery" style="margin-left: 0px">鍚屾鐩存挱璁㈠崟</button> -->
                                 </td>
                             </tr>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/distribution.html b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/distribution.html
index a8f34dd..6ed1c12 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/distribution.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/distribution.html
@@ -53,7 +53,7 @@
                 <td style="padding: 10px 5px; border-bottom: 1px solid #ddd; font-size: 14px; vertical-align: top; text-align: center">
                     {{item.nums-item.sendNums-item.reshipNums+item.reshipedNums}}
                 </td>
-                <td style="padding: 10px 5px; border-bottom: 1px solid #ddd; font-size: 14px; vertical-align: top; text-align: center">锟� {{  item.price * (item.nums-item.sendNums-item.reshipNums+item.reshipedNums) }}</td>
+                <td style="padding: 10px 5px; border-bottom: 1px solid #ddd; font-size: 14px; vertical-align: top; text-align: center">锟� {{  Number(item.price * (item.nums-item.sendNums-item.reshipNums+item.reshipedNums)).toFixed(2) }}</td>
             </tr>
             {{# }); }}
             </tbody>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/edit.html b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/edit.html
index 3788d14..f1a5175 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/edit.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/edit.html
@@ -65,9 +65,27 @@
             </div>
         </div>
         <div class="layui-form-item">
+            <label for="shipCoordinate" class="layui-form-label layui-form-required"
+              >鍧愭爣浣嶇疆</label
+            >
+            <div class="layui-input-block">
+              <input
+                name="shipCoordinate"
+                id="coordinateBox"
+                lay-active="showMap"
+                lay-verType="tips"
+                value="{{d.params.data.orderModel.shipCoordinate || '' }}"
+                lay-verify="required|verifycoordinate"
+                class="layui-input"
+                lay-reqText="璇疯緭鍏ュ潗鏍囦綅缃�"
+                placeholder="璇疯緭鍏ュ潗鏍囦綅缃�"
+              />
+            </div>
+          </div>
+        <div class="layui-form-item">
             <label class="layui-form-label">鏀惰揣鍦板潃</label>
             <div class="layui-input-block">
-                <input type="text" name="shipAddress" value="{{d.params.data.orderModel.shipAddress}}" class="layui-input">
+                <input type="text" name="shipAddress" id="shipAddressBox" value="{{d.params.data.orderModel.shipAddress}}" class="layui-input">
             </div>
         </div>
         {{# } }}
@@ -81,7 +99,7 @@
     layui.data.sendParams = function (d) {
         //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
         if (debug) { console.log(d.params.data); }
-        layui.use(['admin', 'form', 'laydate', 'upload', 'coreHelper', 'cropperImg'],
+        layui.use(['admin', 'form', 'laydate', 'upload', 'coreHelper', 'cropperImg',"util",],
             function () {
                 var $ = layui.$
                     , form = layui.form
@@ -89,6 +107,7 @@
                     , laydate = layui.laydate
                     , upload = layui.upload
                     , cropperImg = layui.cropperImg
+                    ,util = layui.util
                     , coreHelper = layui.coreHelper;
 
                 coreHelper.Post("Api/Tools/GetAreaCheckedList", { id: d.params.data.orderModel.shipAreaId }, function (data) {
@@ -168,6 +187,36 @@
                         }
                     }
                 }
+                 //澶勭悊灞炴�� 涓� lay-active 鐨勬墍鏈夊厓绱犱簨浠�
+        util.event("lay-active", {
+            showMap: function () {
+              var oldData = $("#coordinateBox").val();
+              let data = {
+                oldData: oldData,
+                coordinateBoxIdName: "coordinateBox",
+                addressBoxIdName: "shipAddressBox",
+              };
+  
+              admin.popup({
+                shadeClose: false,
+                title: "鏌ョ湅璇︽儏",
+                area: ["1000px", "570px"],
+                id: "LAY-popup-common-getQQMap",
+                success: function (layero, index) {
+                  layui
+                    .view(this.id)
+                    .render("common/getQQMap", { data })
+                    .done(function () {
+                      form.render();
+                    });
+                  // 绂佹寮圭獥鍑虹幇婊氬姩鏉�
+                  $(layero)
+                    .children(".layui-layer-content")
+                    .css("overflow", "visible");
+                },
+              });
+            },
+          });
 
                 //閲嶈浇form
                 form.render(null, 'LAY-app-CoreCmsOrder-editForm');
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/index.html
index f676c6b..1a8c3e3 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/index.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/index.html
@@ -922,6 +922,17 @@
                                 area: ['1000px', '90%'],
                                 id: 'LAY-popup-CoreCmsOrder-distribution',
                                 success: function (layero, index) {
+                                    
+                                    if(e.data.order.delivery?.length>0)
+                                    {
+                                        e.data.order.delivery.forEach(element => {
+                                           if( element.logiCode=="Distributor")
+                                           {
+                                               e.data.order.logisticsName+=`[${element.logiName} == ${element.sendDistributionAccept}] `
+                                           }
+                                        });
+                                    }
+                                  
                                     view(this.id).render('order/orders/distribution', { data: e.data }).done(function () {
                                         form.on('submit(LAY-app-order-distributionPrint-submit)', function (data) {
                                             LODOP = getLodop();
@@ -955,6 +966,17 @@
                                 id: 'LAY-popup-CoreCmsOrder-union',
                                 success: function (layero, index) {
                                     view(this.id).render('order/orders/union', { data: e.data }).done(function () {
+                                         
+                                    if(e.data.order.delivery?.length>0)
+                                    {
+                                        e.data.order.delivery.forEach(element => {
+                                           if( element.logiCode=="Distributor")
+                                           {
+                                               e.data.order.logisticsName+=`[${element.logiName} == ${element.sendDistributionAccept}]`
+                                           }
+                                        });
+                                    }
+                                     
                                         form.on('submit(LAY-app-order-unionPrint-submit)', function (data) {
                                             LODOP = getLodop();
                                             LODOP.ADD_PRINT_HTM(20, "5%", "90%", "100%", document.getElementById("printDiv").innerHTML);
@@ -1089,6 +1111,7 @@
                                         //鐩戝惉鎻愪氦
                                         form.on('submit(LAY-app-CoreCmsOrder-shipForm-submit)',
                                             function (data) {
+                                                
                                                 var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
 
                                                 var keys = Object.keys(field);
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/ship.html b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/ship.html
index 8ae2d17..34cf868 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/ship.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/ship.html
@@ -113,7 +113,7 @@
             <div class="layui-inline">
                 <label class="layui-form-label">鐗╂祦鍏徃</label>
                 <div class="layui-input-inline layui-inline-4">
-                    <select name="logiCode" lay-verify="required" lay-reqText="璇烽�夋嫨鐗╂祦鍏徃" lay-search lay-filter="logiCodefilter">
+                    <select name="logiCode" lay-verify="required" lay-reqText="璇烽�夋嫨鐗╂祦鍏徃" lay-search lay-filter="logiCodefilter" id="SelWUliuId">
                         <option value="">鎼滅储閫夋嫨鐗╂祦鍏徃</option>
                         {{# layui.each(d.params.data.logistics, function(index, item){ }}
                         <option value="{{item.logiCode}}">{{item.logiName}}</option>
@@ -121,7 +121,7 @@
                     </select>
                 </div>
             </div>
-            <div class="layui-inline">
+            <!-- <div class="layui-inline" >
                 <label class="layui-form-label">鐩存挱鐗╂祦</label>
                 <div class="layui-input-inline layui-inline-4">
                     <select name="deliveryCompanyId" lay-verify="required" lay-reqText="鐩存挱鐗╂祦" lay-search>
@@ -129,6 +129,18 @@
                         <option value="OTHERS" selected="selected">鏃犵墿娴�</option>
                         {{# layui.each(d.params.data.deliveryCompany, function(index, item){ }}
                         <option value="{{item.deliveryId}}">{{item.deliveryName}}</option>
+                        {{# }); }}
+                    </select>
+                </div>
+            </div> -->
+
+            <div class="layui-inline"   id="SelXiaoyuanDiali_"   >
+                <label class="layui-form-label ">閫夋嫨鏍″洯浠g悊</label> 
+                <div class="layui-input-inline layui-inline-4">
+                    <select name="sendDistributionID"  lay-reqText="閫夋嫨鏍″洯浠g悊" lay-search id="selXiaoYuanDaiLiInputID">
+                        <option value="">閫夋嫨鏍″洯浠g悊</option>                       
+                        {{# layui.each(d.params.data.distributors, function(index, item){ }}
+                        <option value="{{item.id}}">{{item.name}}</option>
                         {{# }); }}
                     </select>
                 </div>
@@ -169,7 +181,17 @@
                     , coreHelper = layui.coreHelper;
 
                 form.on('select(logiCodefilter)', function (data) {
-                    if (data.value == 'benditongcheng' || data.value == 'shangmenziti') {
+                     if(data.value=="Distributor")
+                     {
+                                $('#SelXiaoyuanDiali_').show();
+                                $('#selXiaoYuanDaiLiInputID').attr('lay-verify', 'required')
+                                form.render(null, 'LAY-app-CoreCmsOrder-shipForm');
+                     }
+                     else{
+                                 $('#SelXiaoyuanDiali_').hide();
+                                 $('#selXiaoYuanDaiLiInputID').removeAttr('lay-verify')
+                     }
+                    if (data.value == 'benditongcheng' || data.value == 'shangmenziti'||data.value=='Distributor') {
                         $('#logiNo').val('鏃�');
                     } else {
                         var logiNoVal = $('#logiNo').val();
@@ -260,6 +282,11 @@
                 }
 
                 //閲嶈浇form
+                 if($("#SelWUliuId").val()!="Distributor") 
+                 {
+                     $('#SelXiaoyuanDiali_').hide();
+                     $('#selXiaoYuanDaiLiInputID').attr('lay-verify', '')
+                    }   
                 form.render(null, 'LAY-app-CoreCmsOrder-shipForm');
             })
     };
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/shopping.html b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/shopping.html
index 1c33a87..ff51d49 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/shopping.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/shopping.html
@@ -52,7 +52,7 @@
                     <td style="padding: 10px 5px; border-bottom: 1px solid #ddd; font-size: 14px; vertical-align: top; text-align: center">
                         {{item.nums-item.sendNums-item.reshipNums+item.reshipedNums}}
                     </td>
-                    <td style="padding: 10px 5px; border-bottom: 1px solid #ddd; font-size: 14px; vertical-align: top;">锟� {{  item.price * (item.nums-item.sendNums-item.reshipNums+item.reshipedNums) }}</td>
+                    <td style="padding: 10px 5px; border-bottom: 1px solid #ddd; font-size: 14px; vertical-align: top;">锟� {{  Number(item.price * (item.nums-item.sendNums-item.reshipNums+item.reshipedNums)).toFixed(2) }}</td>
                 </tr>
                 {{# }); }}
             </tbody>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/union.html b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/union.html
index c270d33..5d0b587 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/union.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/order/orders/union.html
@@ -50,7 +50,7 @@
                     <td style="padding: 10px 5px; border-bottom: 1px solid #ddd; font-size: 14px; vertical-align: top; text-align: center">
                         {{item.nums-item.sendNums-item.reshipNums+item.reshipedNums}}
                     </td>
-                    <td style="padding: 10px 5px; border-bottom: 1px solid #ddd; font-size: 14px; vertical-align: top;">锟� {{  item.price * (item.nums-item.sendNums-item.reshipNums+item.reshipedNums) }}</td>
+                    <td style="padding: 10px 5px; border-bottom: 1px solid #ddd; font-size: 14px; vertical-align: top;">锟� {{   Number( item.price * (item.nums-item.sendNums-item.reshipNums+item.reshipedNums)).toFixed(2) }}</td>
                 </tr>
                 {{# }); }}
             </tbody>
@@ -133,7 +133,7 @@
                     <td style="padding: 10px 5px; border-bottom: 1px solid #ddd; font-size: 14px; vertical-align: top; text-align: center">
                         {{item.nums-item.sendNums-item.reshipNums+item.reshipedNums}}
                     </td>
-                    <td style="padding: 10px 5px; border-bottom: 1px solid #ddd; font-size: 14px; vertical-align: top; text-align: center">锟� {{  item.price * (item.nums-item.sendNums-item.reshipNums+item.reshipedNums) }}</td>
+                    <td style="padding: 10px 5px; border-bottom: 1px solid #ddd; font-size: 14px; vertical-align: top; text-align: center">锟� {{  Number( item.price * (item.nums-item.sendNums-item.reshipNums+item.reshipedNums)).toFixed(2) }}</td>
                 </tr>
                 {{# }); }}
             </tbody>
@@ -181,6 +181,7 @@
     layui.data.sendParams = function (d) {
         //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
         if (debug) { console.log(d.params.data); }
+        
         layui.use(['admin', 'form', 'laydate', 'upload', 'coreHelper', 'cropperImg'],
             function () {
                 var $ = layui.$
@@ -192,6 +193,7 @@
                     , coreHelper = layui.coreHelper;
 
                 //閲嶈浇form
+                
                 form.render();
             })
     };
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/shop/store/edit.html b/CoreCms.Net.Web.Admin/wwwroot/views/shop/store/edit.html
index 38ba732..92bef24 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/shop/store/edit.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/shop/store/edit.html
@@ -399,6 +399,7 @@
         util.event("lay-active", {
           showMap: function () {
             var oldData = $("#coordinateBox").val();
+            
             let data = {
               oldData: oldData,
               coordinateBoxIdName: "coordinateBox",
diff --git a/CoreCms.Net.Web.WebApi/Controllers/PinTuanController.cs b/CoreCms.Net.Web.WebApi/Controllers/PinTuanController.cs
index 0878855..0e32150 100644
--- a/CoreCms.Net.Web.WebApi/Controllers/PinTuanController.cs
+++ b/CoreCms.Net.Web.WebApi/Controllers/PinTuanController.cs
@@ -31,6 +31,7 @@
     /// </summary>
     [Route("api/[controller]/[action]")]
     [ApiController]
+
     public class PinTuanController : ControllerBase
     {
 
diff --git a/CoreCms.Net.Web.WebApi/Controllers/UserController.cs b/CoreCms.Net.Web.WebApi/Controllers/UserController.cs
index c813e43..99c0ae1 100644
--- a/CoreCms.Net.Web.WebApi/Controllers/UserController.cs
+++ b/CoreCms.Net.Web.WebApi/Controllers/UserController.cs
@@ -23,6 +23,7 @@
 using CoreCms.Net.Caching.AutoMate.RedisCache;
 using CoreCms.Net.Configuration;
 using CoreCms.Net.IServices;
+using CoreCms.Net.IServices.baifenbingfa;
 using CoreCms.Net.Loging;
 using CoreCms.Net.Model.Entities;
 using CoreCms.Net.Model.Entities.Expression;
@@ -92,6 +93,7 @@
         private readonly IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
         private readonly WeChatOptions _weChatOptions;
         private readonly IRedisOperationRepository _redisOperationRepository;
+        private readonly IDistributorDeliveryServices _distributorDeliveryServices;
 
         /// <summary>
         /// 鏋勯�犲嚱鏁�
@@ -122,7 +124,14 @@
             , ICoreCmsSettingServices settingServices
             , ICoreCmsServicesServices servicesServices
             , IOptions<WeChatOptions> weChatOptions
-            , ICoreCmsUserServicesOrderServices userServicesOrderServices, ICoreCmsUserServicesTicketServices userServicesTicketServices, ICoreCmsStoreServices storeServices, ICoreCmsCouponServices couponServices, ICoreCmsOrderServices orderServices, IWeChatApiHttpClientFactory weChatApiHttpClientFactory, IRedisOperationRepository redisOperationRepository)
+            , ICoreCmsUserServicesOrderServices userServicesOrderServices
+            , ICoreCmsUserServicesTicketServices userServicesTicketServices
+            , ICoreCmsStoreServices storeServices
+            , ICoreCmsCouponServices couponServices
+            , ICoreCmsOrderServices orderServices
+            , IWeChatApiHttpClientFactory weChatApiHttpClientFactory
+            , IRedisOperationRepository redisOperationRepository
+            , IDistributorDeliveryServices distributorDeliveryServices)
         {
             _user = user;
             _userWeChatInfoServices = userWeChatInfoServices;
@@ -156,6 +165,7 @@
             _weChatApiHttpClientFactory = weChatApiHttpClientFactory;
             _redisOperationRepository = redisOperationRepository;
             _weChatOptions = weChatOptions.Value;
+            _distributorDeliveryServices = distributorDeliveryServices;
 
         }
 
@@ -1006,7 +1016,10 @@
             {
                 user.sex = (int)GlobalEnumVars.UserSexTypes.鏈煡;
             }
+            //鏈鐞嗚鍗曟暟閲�
+            var DeliveryCount = await _distributorDeliveryServices.GetNoAcceptedDeliveryCount();
 
+            var ShowDelivery = await _distributorDeliveryServices.GetShowDelivery();
             jm.data = new
             {
                 user.id,
@@ -1031,7 +1044,9 @@
                 orderCount,
                 footPrintCount,
                 collectionCount,
-                user.isplanorder
+                user.isplanorder,
+                DeliveryCount,
+                ShowDelivery
             };
             return jm;
         }
diff --git a/CoreCms.Net.Web.WebApi/Controllers/baifenbingfa/DistributorDeliveryController.cs b/CoreCms.Net.Web.WebApi/Controllers/baifenbingfa/DistributorDeliveryController.cs
new file mode 100644
index 0000000..4f6b3ca
--- /dev/null
+++ b/CoreCms.Net.Web.WebApi/Controllers/baifenbingfa/DistributorDeliveryController.cs
@@ -0,0 +1,94 @@
+锘縰sing CoreCms.Net.IRepository;
+using CoreCms.Net.IServices;
+using CoreCms.Net.IServices.baifenbingfa;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.FromBody;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using CoreCms.Net.Utility.Extensions;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using SKIT.FlurlHttpClient.Wechat.Api.Models;
+using Swashbuckle.AspNetCore.Annotations;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.Web.WebApi.Controllers.baifenbingfa
+{
+    /// <summary>
+    /// 缁忛攢鍟嗗彂璐у崟澶勭悊
+    /// </summary>
+    /// <summary>
+    /// 椤甸潰鎺ュ彛
+    /// </summary>
+    [Route("api/[controller]/[action]")]
+    [ApiController]
+    [Authorize]
+    public class DistributorDeliveryController: ControllerBase
+    {
+
+        IDistributorDeliveryServices _distributorDeliveryServices ;
+      
+        public DistributorDeliveryController(IDistributorDeliveryServices distributorDeliveryServices )
+        {
+            _distributorDeliveryServices= distributorDeliveryServices ;
+        }
+        /// <summary>
+        /// 鑾峰彇list
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("GetList")]
+        [SwaggerResponse(200, "杩斿洖鏁版嵁", typeof(WebApiCallBack))]
+        [SwaggerResponse(201, "Data绫诲瀷", typeof(IPageList<CoreCmsBillDelivery>))]
+
+        public async Task<WebApiCallBack> GetList(GetDeliveryListPost param)
+        {
+            var datalist = await _distributorDeliveryServices.GetDeliveryList(param);
+            return new WebApiCallBack
+            {
+                status = true,
+                data =new { datalist= datalist.Item1,
+                total=datalist.Item2
+                }
+
+            };
+            
+        }
+
+        /// <summary>
+        /// 鎺ュ彈鍙戣揣鍗�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("Accepted")]      
+        public async Task<WebApiCallBack> Accepted([FromBody] AccptedInParam param)
+        {
+            var datalist = await _distributorDeliveryServices.SetDeliveryAccepted( param.acceptType, param.id,param.noAcceptTypeMsg);
+            return new WebApiCallBack
+            {
+                status = true,
+                data = datalist
+
+            };
+
+        }
+
+
+    }
+    public class AccptedInParam
+    {
+        /// <summary>
+        /// 鐘舵�� 0 涓烘帴鍙� 3 涓烘嫆缁�/鍙栨秷
+        /// </summary>
+        public sendDistributionAcceptType  acceptType { get; set; }
+        /// <summary>
+        /// 鍙戣揣鍗旾D
+        /// 
+        /// </summary>
+        public string id { get; set; }
+        /// <summary>
+        /// 鏍″洯浠g悊鎷掔粷鍘熷洜
+        /// </summary>
+        public string noAcceptTypeMsg { get; set; }
+    }
+
+
+}

--
Gitblit v1.9.1