From 626943b5ba84ce44bc19f4c3b8e8e94638bec733 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期一, 09 九月 2024 14:15:59 +0800
Subject: [PATCH] 查单

---
 CoreCms.Net.Model/ViewModels/UI/WebApiCallBack.cs                  |    5 
 CoreCms.Net.Model/Entities/Order/CoreCmsOrderItemPartial.cs        |    7 
 CoreCms.Net.Services/Order/CoreCmsOrderServices.cs                 |  390 ++++++++
 CoreCms.Net.Web.WebApi/Controllers/OrderJingXiaoshangController.cs | 1985 +++++++++++++++++++++++++++++++++++++++++++++++
 CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs                       |   88 ++
 5 files changed, 2,459 insertions(+), 16 deletions(-)

diff --git a/CoreCms.Net.Model/Entities/Order/CoreCmsOrderItemPartial.cs b/CoreCms.Net.Model/Entities/Order/CoreCmsOrderItemPartial.cs
index 4adfbf1..8c2881d 100644
--- a/CoreCms.Net.Model/Entities/Order/CoreCmsOrderItemPartial.cs
+++ b/CoreCms.Net.Model/Entities/Order/CoreCmsOrderItemPartial.cs
@@ -41,5 +41,12 @@
         public int atPresentReshipNums { get; set; } = 0;
 
         [SugarColumn(IsIgnore = true)] public object promotionObj { get; set; }
+
+
+        /// <summary>
+        /// 瀹℃牳鑰呭憳宸YSUserID"
+        /// </summary>		
+        [SugarColumn(IsIgnore = true)]
+        public int? publisherId { get; set; }
     }
 }
\ No newline at end of file
diff --git a/CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs b/CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs
index e38ac5d..366d0a4 100644
--- a/CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs
+++ b/CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs
@@ -254,6 +254,94 @@
         public int money { get; set; } = 0;
     }
 
+
+
+    /// <summary>
+    ///     鑾峰彇璁㈠崟鍒楄〃鎻愪氦鍙傛暟
+    /// </summary>
+    public class GetOrderJingxiaoListPost
+    {
+        /// <summary>
+        ///     姣忛〉鏁伴噺
+        /// </summary>
+        public int limit { get; set; } = 5;
+
+        /// <summary>
+        ///     椤电爜
+        /// </summary>
+        public int page { get; set; } = 1;
+
+        /// <summary>
+        ///     璁㈠崟id
+        /// </summary>
+        public string orderId { get; set; }
+
+        /// <summary>
+        ///   璁㈠崟鐘舵��  鏄惁澶т簬0
+        /// </summary>
+        public int status { get; set; } = 0;
+        /// <summary>
+        ///   璁㈠崟绫诲瀷  鏄惁澶т簬0
+        /// </summary>
+        public int orderType { get; set; } = 0;
+        /// <summary>
+        ///   鍙戣揣鐘舵��  鏄惁澶т簬0
+        /// </summary>
+        public int shipStatus { get; set; } = 0;
+        /// <summary>
+        ///   鏀粯鐘舵��  鏄惁澶т簬0
+        /// </summary>
+        public int payStatus { get; set; } = 0;
+        /// <summary>
+        ///     鏀粯鏂瑰紡浠g爜
+        /// </summary>
+        public string paymentCode { get; set; }
+        /// <summary>
+        ///   鍞悗鐘舵��  鏄惁澶т簬0
+        /// </summary>
+        public int confirmStatus { get; set; } = 0;
+        /// <summary>
+        ///   璁㈠崟鏉ユ簮  鏄惁澶т簬0
+        /// </summary>
+        public int source { get; set; } = 0;
+        /// <summary>
+        ///   鏀惰揣鏂瑰紡  鏄惁澶т簬0
+        /// </summary>
+        public int receiptType { get; set; } = 0;
+        /// <summary>
+        ///     鏀惰揣浜哄鍚�
+        /// </summary>
+        public string shipName { get; set; }
+        /// <summary>
+        ///     鏀惰揣浜哄湴鍧�
+        /// </summary>
+        public string shipAddress { get; set; }
+        /// <summary>
+        ///     鏀惰揣鐢佃瘽
+        /// </summary>
+        public string shipMobile { get; set; }
+        /// <summary>
+        ///     浠樻鍗曞彿
+        /// </summary>
+        public string paymentId { get; set; }
+        /// <summary>
+        ///     datetime   2024-01-02鍒�2024-08-07  鎴栬��  2024-08-07
+        /// </summary>
+        public string createTime { get; set; }
+        /// <summary>
+        ///     鍟嗗搧鍚嶇О
+        /// </summary>
+        public string goodName { get; set; }
+        /// <summary>
+        ///     鍟嗗搧缂栫爜
+        /// </summary>
+        public string goodSn { get; set; }
+        /// <summary>
+        ///   璁㈠崟鐘舵��  鏄惁澶т簬0
+        /// </summary>
+        public int orderUnifiedStatus { get; set; } = 0;
+    }
+
     /// <summary>
     ///     鑾峰彇璁㈠崟鍒楄〃鎻愪氦鍙傛暟
     /// </summary>
diff --git a/CoreCms.Net.Model/ViewModels/UI/WebApiCallBack.cs b/CoreCms.Net.Model/ViewModels/UI/WebApiCallBack.cs
index ad34231..f143379 100644
--- a/CoreCms.Net.Model/ViewModels/UI/WebApiCallBack.cs
+++ b/CoreCms.Net.Model/ViewModels/UI/WebApiCallBack.cs
@@ -45,5 +45,10 @@
         ///     杩斿洖缂栫爜
         /// </summary>
         public int code { get; set; } = 0;
+
+        /// <summary>
+        ///     鎬绘暟
+        /// </summary>
+        public int count { get; set; } = 0;
     }
 }
\ No newline at end of file
diff --git a/CoreCms.Net.Services/Order/CoreCmsOrderServices.cs b/CoreCms.Net.Services/Order/CoreCmsOrderServices.cs
index 0ee675d..af659b2 100644
--- a/CoreCms.Net.Services/Order/CoreCmsOrderServices.cs
+++ b/CoreCms.Net.Services/Order/CoreCmsOrderServices.cs
@@ -31,6 +31,7 @@
 using CoreCms.Net.Utility.Extensions;
 using CoreCms.Net.Utility.Helper;
 using CoreCms.Net.WeChat.Service.HttpClients;
+using Essensoft.Paylink.Alipay.Domain;
 using Microsoft.AspNetCore.Http;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
@@ -38,6 +39,7 @@
 using SKIT.FlurlHttpClient.Wechat.Api.Models;
 using SqlSugar;
 using Yitter.IdGenerator;
+using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinUserInfoBatchGetRequest.Types;
 using static SKIT.FlurlHttpClient.Wechat.Api.Models.ChannelsECLeagueHeadSupplierOrderGetResponse.Types.CommssionOrder.Types.OrderDetail.Types;
 
 
@@ -492,6 +494,13 @@
                     };
                     await _orderLogServices.InsertAsync(orderLog);
 
+
+                    //鎷嗗崟
+                    var jms  = await  Chaidan(order.orderId);
+                    var orderchai = await _dal.QueryByClauseAsync(p => p.orderId == order.orderId);
+                    orderchai.Orderitems = await _orderItemServices.QueryListByClauseAsync(p => p.orderId == order.orderId);
+
+
                     //濡傛灉鏄棬搴楄嚜鎻愶紝搴旇鑷姩璺宠繃鍙戣揣锛岀敓鎴愭彁璐у崟淇℃伅锛屼娇鐢ㄦ彁璐у崟鏍搁攢銆�
                     if (order.receiptType == (int)GlobalEnumVars.OrderReceiptType.SelfDelivery)
                     {
@@ -502,17 +511,17 @@
                         if (storeOrderAutomaticDelivery == 1)
                         {
                             //璁㈠崟鑷姩鍙戣揣
-                            await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderAutomaticDelivery, JsonConvert.SerializeObject(order));
+                            await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderAutomaticDelivery, JsonConvert.SerializeObject(orderchai));
                         }
                     }
 
                     //鐢ㄦ埛鍗囩骇澶勭悊
-                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.UserUpGrade, JsonConvert.SerializeObject(order));
+                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.UserUpGrade, JsonConvert.SerializeObject(orderchai));
                     //鍙戦�佹敮浠樻垚鍔熶俊鎭�,澧炲姞鍙戦�佸唴瀹�
-                    await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.OrderPayed.ToString(), JObject.FromObject(order));
-                    await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.SellerOrderNotice.ToString(), JObject.FromObject(order));
+                    await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.OrderPayed.ToString(), JObject.FromObject(orderchai));
+                    await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.SellerOrderNotice.ToString(), JObject.FromObject(orderchai));
                     //鏄撹仈浜戞墦鍗版満鎵撳嵃
-                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderPrint, JsonConvert.SerializeObject(order));
+                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderPrint, JsonConvert.SerializeObject(orderchai));
                 }
                 else
                 {
@@ -587,6 +596,12 @@
                         };
                         await _orderLogServices.InsertAsync(orderLog);
 
+
+                        //鎷嗗崟
+                        var jms = await Chaidan(order.orderId);
+                        var orderchai = await _dal.QueryByClauseAsync(p => p.orderId == order.orderId);
+                        orderchai.Orderitems = await _orderItemServices.QueryListByClauseAsync(p => p.orderId == order.orderId);
+
                         //濡傛灉鏄棬搴楄嚜鎻愶紝搴旇鑷姩璺宠繃鍙戣揣锛岀敓鎴愭彁璐у崟淇℃伅锛屼娇鐢ㄦ彁璐у崟鏍搁攢銆�
                         if (order.receiptType == (int)GlobalEnumVars.OrderReceiptType.SelfDelivery)
                         {
@@ -597,17 +612,20 @@
                             if (storeOrderAutomaticDelivery == 1)
                             {
                                 //璁㈠崟鑷姩鍙戣揣
-                                await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderAutomaticDelivery, JsonConvert.SerializeObject(order));
+                                await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderAutomaticDelivery, JsonConvert.SerializeObject(orderchai));
                             }
                         }
 
+                        //缁撲剑澶勭悊
+                        await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderAgentOrDistribution, JsonConvert.SerializeObject(orderchai));
+
                         //鐢ㄦ埛鍗囩骇澶勭悊
-                       // await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.UserUpGrade, JsonConvert.SerializeObject(order));
+                        await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.UserUpGrade, JsonConvert.SerializeObject(orderchai));
                         //鍙戦�佹敮浠樻垚鍔熶俊鎭�,澧炲姞鍙戦�佸唴瀹�
-                        await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.OrderPayed.ToString(), JObject.FromObject(order));
-                        await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.SellerOrderNotice.ToString(), JObject.FromObject(order));
+                        await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.OrderPayed.ToString(), JObject.FromObject(orderchai));
+                        await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.SellerOrderNotice.ToString(), JObject.FromObject(orderchai));
                         //鏄撹仈浜戞墦鍗版満鎵撳嵃
-                        await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderPrint, JsonConvert.SerializeObject(order));
+                        await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderPrint, JsonConvert.SerializeObject(orderchai));
 
                     }
                     else
@@ -1628,6 +1646,13 @@
                         await _invoiceServices.InsertAsync(taxInfo);
                     }
 
+                    //鎷嗗崟
+                    var jms = await Chaidan(order.orderId);
+                    var orderchai = await _dal.QueryByClauseAsync(p => p.orderId == order.orderId);
+                    orderchai.Orderitems = await _orderItemServices.QueryListByClauseAsync(p => p.orderId == order.orderId);
+
+
+
                     //濡傛灉鏄棬搴楄嚜鎻愶紝搴旇鑷姩璺宠繃鍙戣揣锛岀敓鎴愭彁璐у崟淇℃伅锛屼娇鐢ㄦ彁璐у崟鏍搁攢銆�
                     if (order.receiptType == (int)GlobalEnumVars.OrderReceiptType.SelfDelivery)
                     {
@@ -1638,7 +1663,7 @@
                         if (storeOrderAutomaticDelivery == 1)
                         {
                             //璁㈠崟鑷姩鍙戣揣
-                            await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderAutomaticDelivery, JsonConvert.SerializeObject(order));
+                            await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderAutomaticDelivery, JsonConvert.SerializeObject(orderchai));
                         }
                     }
 
@@ -1651,16 +1676,16 @@
                     //}
 
                     //缁撲剑澶勭悊
-                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderAgentOrDistribution, JsonConvert.SerializeObject(order));
+                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderAgentOrDistribution, JsonConvert.SerializeObject(orderchai));
                     //鏄撹仈浜戞墦鍗版満鎵撳嵃
-                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderPrint, JsonConvert.SerializeObject(order));
+                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderPrint, JsonConvert.SerializeObject(orderchai));
 
                     //鍙戦�佹敮浠樻垚鍔熶俊鎭�,澧炲姞鍙戦�佸唴瀹�
-                    await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.OrderPayed.ToString(), JObject.FromObject(order));
-                    await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.SellerOrderNotice.ToString(), JObject.FromObject(order));
+                    await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.OrderPayed.ToString(), JObject.FromObject(orderchai));
+                    await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.SellerOrderNotice.ToString(), JObject.FromObject(orderchai));
 
                     //鐢ㄦ埛鍗囩骇澶勭悊
-                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.UserUpGrade, JsonConvert.SerializeObject(order));
+                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.UserUpGrade, JsonConvert.SerializeObject(orderchai));
 
                 }
             }
@@ -2709,5 +2734,338 @@
         }
         #endregion
 
+
+
+        #region 璁㈠崟鎷嗗崟
+
+        /// <summary>
+        /// 璁㈠崟鎷嗗崟(鏍规嵁鍟嗗搧鎵�灞炲璁㈠崟杩涜鎷嗗崟)
+        /// </summary>
+        /// <param name="orderId">璁㈠崟缂栧彿</param>
+        /// <returns></returns>
+        public async Task<WebApiCallBack> Chaidan(string orderId)
+        {
+            var jm = new WebApiCallBack() { msg = "璁㈠崟鎷嗗崟澶辫触" };
+
+            //鑾峰彇璁㈠崟
+            var order = await _dal.QueryByClauseAsync(p => p.orderId == orderId);
+            if (order == null)
+            {
+                return jm;
+            }
+            //鏌ヨ璁㈠崟鏄庣粏
+            //璁㈠崟璇︽儏(瀛愯揣鍝佹暟鎹�)
+            var orderItems = await _orderItemServices.QueryListByClauseAsync(p => p.orderId == order.orderId);
+            var goodsids = orderItems.Select(x => x.goodsId).ToArray();
+            //鏌ヨ璁㈠崟鍖呭惈鐨勮揣鍝�
+            var coreCmsGoods = await _goodsServices.QueryListByClauseAsync(p => goodsids.Contains(p.id));
+            coreCmsGoods = coreCmsGoods.OrderBy(x => x.publisherId).ToList();
+            //鍒ゆ柇璁㈠崟鏄惁灞炰簬澶氫釜渚涘簲鍟嗭紝濡傛灉灞炰簬澶氫釜渚涘簲鍟嗭紝鍒欐媶鍗曞彂璐�
+            int publisherIdcount = 1 ;
+            int publisherId = coreCmsGoods[0].publisherId.HasValue? coreCmsGoods[0].publisherId.Value : 0;
+
+            for (int i = 1; i < coreCmsGoods.Count; i++)
+            {
+                int publisherIdnow = coreCmsGoods[i].publisherId.HasValue ? coreCmsGoods[i].publisherId.Value : 0;
+
+                if ( publisherId == publisherIdnow)
+                {
+                    continue;
+                }else  
+                {
+                    publisherIdcount += 1;
+                }       
+            }
+          
+
+            if (publisherIdcount <= 1)
+            {
+                //淇敼璁㈠崟鐨勮揣鏉冧汉
+                if (coreCmsGoods[0].publisherId.HasValue)
+                {
+                    order.publisherId = coreCmsGoods[0].publisherId;
+                    await _dal.UpdateAsync(order);
+                }
+                jm.status = true;
+                jm.msg = "璁㈠崟涓嶉渶瑕佹媶鍗�";
+                return jm;
+            }
+
+            foreach (var orderItem in orderItems)
+            {
+                var coreCmsGoods1 = coreCmsGoods.Where(x => x.id == orderItem.goodsId).FirstOrDefault();
+                if (coreCmsGoods1 != null)
+                {
+                    orderItem.publisherId = coreCmsGoods1.publisherId;
+                }
+            }
+            orderItems = orderItems.OrderBy(x => x.publisherId).ToList() ;
+            //璁㈠崟鍟嗗搧鎬讳环
+            var amount = orderItems.Sum(x => x.amount);
+            //寮�濮嬫媶鍗�
+            int orderItemscount = 1;
+            while(orderItemscount < orderItems.Count)
+            {
+                if (orderItems[orderItemscount].publisherId != orderItems[orderItemscount - 1].publisherId)
+                {
+                    //褰撳墠渚涘簲鍟嗙殑鎵�鏈夊晢鍝�
+                    var coreCmsOrderItems = orderItems.Where(x=>x.publisherId == orderItems[orderItemscount].publisherId).ToList();
+                    var coreCmsamount = coreCmsOrderItems.Sum(x => x.amount);
+                    //褰撳墠渚涘簲鍟嗘墍鍗犲晢鍝佷环鏍兼瘮鍊�
+                    var bizhi = coreCmsamount / amount;
+
+                    //鐢熸垚鏂扮殑璁㈠崟
+                    var coreCmsOrder = new CoreCmsOrder();
+                    coreCmsOrder.orderId = CommonHelper.GetSerialNumberType((int)GlobalEnumVars.SerialNumberType.璁㈠崟缂栧彿);
+                    if (order.goodsAmount > 0)
+                    {
+                        coreCmsOrder.goodsAmount = Math.Round(order.goodsAmount * bizhi,2);
+                        order.goodsAmount = order.goodsAmount - coreCmsOrder.goodsAmount;
+                    }
+                    else
+                    {
+                        coreCmsOrder.goodsAmount = 0;
+                    }
+
+                    if (order.payedAmount > 0)
+                    {
+                        coreCmsOrder.payedAmount = Math.Round(order.payedAmount * bizhi, 2);
+                        order.payedAmount = order.payedAmount - coreCmsOrder.payedAmount;
+                    }
+                    else
+                    {
+                        coreCmsOrder.payedAmount = 0;
+                    }
+
+                    if (order.orderAmount > 0)
+                    {
+                        coreCmsOrder.orderAmount = Math.Round(order.orderAmount * bizhi, 2);
+                        order.orderAmount = order.orderAmount - coreCmsOrder.orderAmount;
+                    }
+                    else
+                    {
+                        coreCmsOrder.orderAmount = 0;
+                    }
+
+                    coreCmsOrder.payStatus = order.payStatus;
+                    coreCmsOrder.shipStatus = order.shipStatus;
+                    coreCmsOrder.status = order.status;
+                    coreCmsOrder.orderType = order.orderType;
+                    coreCmsOrder.receiptType = order.receiptType;
+                    coreCmsOrder.paymentCode = order.paymentCode;
+                    coreCmsOrder.paymentTime = order.paymentTime;
+                    coreCmsOrder.logisticsId = order.logisticsId;
+                    coreCmsOrder.logisticsName = order.logisticsName;
+
+                    if (order.costFreight > 0)
+                    {
+                        coreCmsOrder.costFreight = Math.Round(order.costFreight * bizhi, 2);
+                        order.costFreight = order.costFreight - coreCmsOrder.costFreight;
+                    }
+                    else
+                    {
+                        coreCmsOrder.costFreight = 0;
+                    }
+
+                    coreCmsOrder.userId = order.userId;
+                    coreCmsOrder.sellerId = order.sellerId;
+                    coreCmsOrder.confirmStatus = order.confirmStatus;
+                    coreCmsOrder.confirmTime = order.confirmTime;
+                    coreCmsOrder.storeId = order.storeId;
+                    coreCmsOrder.shipAreaId = order.shipAreaId;
+                    coreCmsOrder.shipAddress = order.shipAddress;
+                    coreCmsOrder.shipCoordinate = order.shipCoordinate;
+                    coreCmsOrder.shipName = order.shipName;
+                    coreCmsOrder.shipMobile = order.shipMobile;
+
+                    coreCmsOrder.weight = coreCmsOrderItems.Sum(x=>x.weight);
+                    order.weight = order.weight - coreCmsOrder.weight;
+
+                    coreCmsOrder.taxType = order.taxType;
+                    coreCmsOrder.taxCode = order.taxCode;
+                    coreCmsOrder.taxTitle = order.taxTitle;
+
+                    if (order.point > 0)
+                    {
+                        coreCmsOrder.point = Convert.ToInt32(order.point * bizhi);
+                        order.point = order.point - coreCmsOrder.point;
+                    }
+                    else
+                    {
+                        coreCmsOrder.point = 0;
+                    }
+
+                    if (order.pointMoney > 0)
+                    {
+                        coreCmsOrder.pointMoney = Math.Round(order.pointMoney * bizhi, 2);
+                        order.pointMoney = order.pointMoney - coreCmsOrder.pointMoney;
+                    }
+                    else
+                    {
+                        coreCmsOrder.pointMoney = 0;
+                    }
+
+                    if (order.orderDiscountAmount > 0)
+                    {
+                        coreCmsOrder.orderDiscountAmount = Math.Round(order.orderDiscountAmount * bizhi, 2);
+                        order.orderDiscountAmount = order.orderDiscountAmount - coreCmsOrder.orderDiscountAmount;
+                    }
+                    else
+                    {
+                        coreCmsOrder.orderDiscountAmount = 0;
+                    }
+
+
+                    if (order.goodsDiscountAmount > 0)
+                    {
+                        coreCmsOrder.goodsDiscountAmount = Math.Round(order.goodsDiscountAmount * bizhi, 2);
+                        order.goodsDiscountAmount = order.goodsDiscountAmount - coreCmsOrder.goodsDiscountAmount;
+                    }
+                    else
+                    {
+                        coreCmsOrder.goodsDiscountAmount = 0;
+                    }
+
+                    if (order.couponDiscountAmount > 0)
+                    {
+                        coreCmsOrder.couponDiscountAmount = Math.Round(order.couponDiscountAmount * bizhi, 2);
+                        order.couponDiscountAmount = order.couponDiscountAmount - coreCmsOrder.couponDiscountAmount;
+                    }
+                    else
+                    {
+                        coreCmsOrder.couponDiscountAmount = 0;
+                    }
+
+                    coreCmsOrder.coupon = order.coupon;
+                    coreCmsOrder.promotionList = order.promotionList;
+                    coreCmsOrder.memo = order.memo;
+                    coreCmsOrder.ip = order.ip;
+                    coreCmsOrder.mark = order.mark;
+                    coreCmsOrder.source = order.source;
+                    coreCmsOrder.scene = order.scene;
+                    coreCmsOrder.isComment = order.isComment;
+                    coreCmsOrder.isdel = order.isdel;
+                    coreCmsOrder.objectId = order.objectId;
+                    coreCmsOrder.createTime = order.createTime;
+                    coreCmsOrder.updateTime = order.updateTime;
+                    coreCmsOrder.planorderId = order.planorderId;
+                    coreCmsOrder.publisherId = order.publisherId;
+                    coreCmsOrder.oldOderId = order.oldOderId;
+
+
+                    var res =  await _dal.InsertAsync(coreCmsOrder);
+
+                    //淇敼璁㈠崟鐨勬墍鏈夋槑缁�
+                    foreach (var coreCmsOrderItem in coreCmsOrderItems)
+                    {
+                        coreCmsOrderItem.orderId = coreCmsOrder.orderId;
+                        var sss = await _orderItemServices.UpdateAsync(coreCmsOrderItem);
+                    }
+
+                    coreCmsOrder.Orderitems = coreCmsOrderItems;
+
+
+
+                    //鐢熸垚鏀粯淇℃伅
+
+                    //鍒涘缓鏀粯鍗�
+                    var billPayments = new CoreCmsBillPayments();
+                    billPayments.paymentId = CommonHelper.GetSerialNumberType((int)GlobalEnumVars.SerialNumberType.鏀粯鍗曠紪鍙�);
+                    billPayments.sourceId = coreCmsOrder.orderId;
+                    billPayments.money = coreCmsOrder.orderAmount;
+                    billPayments.userId = coreCmsOrder.userId;
+                    billPayments.type = coreCmsOrder.orderType;
+                    billPayments.status = (int)GlobalEnumVars.BillPaymentsStatus.Payed;
+                    billPayments.paymentCode = coreCmsOrder.paymentCode;
+                    billPayments.ip = _httpContextAccessor.HttpContext?.Connection.RemoteIpAddress != null ? _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString() : "127.0.0.1";
+                    billPayments.payedMsg = "璁㈠崟鎷嗗崟鏀粯鎴愬姛";
+                    billPayments.parameters = "";
+                    billPayments.createTime = DateTime.Now;
+                    billPayments.updateTime = DateTime.Now;
+
+
+                    await _billPaymentsServices.InsertAsync(billPayments);
+
+                    //鍚勭澶勭悊
+                    //濡傛灉鏄棬搴楄嚜鎻愶紝搴旇鑷姩璺宠繃鍙戣揣锛岀敓鎴愭彁璐у崟淇℃伅锛屼娇鐢ㄦ彁璐у崟鏍搁攢銆�
+                    if (coreCmsOrder.receiptType == (int)GlobalEnumVars.OrderReceiptType.SelfDelivery)
+                    {
+                        var allConfigs = await _settingServices.GetConfigDictionaries();
+                        var storeOrderAutomaticDelivery = CommonHelper
+                            .GetConfigDictionary(allConfigs, SystemSettingConstVars.StoreOrderAutomaticDelivery)
+                            .ObjectToInt(1);
+                        if (storeOrderAutomaticDelivery == 1)
+                        {
+                            //璁㈠崟鑷姩鍙戣揣
+                            await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderAutomaticDelivery, JsonConvert.SerializeObject(coreCmsOrder));
+                        }
+                    }
+
+                   
+
+                    //缁撲剑澶勭悊
+                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderAgentOrDistribution, JsonConvert.SerializeObject(coreCmsOrder));
+                    //鏄撹仈浜戞墦鍗版満鎵撳嵃
+                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderPrint, JsonConvert.SerializeObject(coreCmsOrder));
+
+                    //鍙戦�佹敮浠樻垚鍔熶俊鎭�,澧炲姞鍙戦�佸唴瀹�
+                    await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.OrderPayed.ToString(), JObject.FromObject(coreCmsOrder));
+                    await _messageCenterServices.SendMessage(order.userId, GlobalEnumVars.PlatformMessageTypes.SellerOrderNotice.ToString(), JObject.FromObject(coreCmsOrder));
+
+                    //鐢ㄦ埛鍗囩骇澶勭悊
+                    await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.UserUpGrade, JsonConvert.SerializeObject(coreCmsOrder));
+
+
+                    //璺宠浆鍒颁笅涓�涓鍗�
+                    orderItemscount += coreCmsOrderItems.Count;
+                }
+                else
+                {
+                    orderItemscount += 1;
+                }
+            }
+
+            //淇敼璁㈠崟鐨勮揣鏉冧汉
+            if (coreCmsGoods[0].publisherId.HasValue)
+            {
+                order.publisherId = coreCmsGoods[0].publisherId;
+
+            }
+            var ssssss = await _dal.UpdateAsync(order);
+
+            jm.status = true;
+            jm.msg = "璁㈠崟鎷嗗崟鎴愬姛";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
+ 
+            //璁㈠崟璁板綍
+            var orderLog = new CoreCmsOrderLog
+            {
+                orderId = order.orderId,
+                userId = order.userId,
+                type = (int)GlobalEnumVars.OrderLogTypes.LOG_TYPE_PAY,
+                msg = jm.msg,
+                data = JsonConvert.SerializeObject(jm),
+                createTime = DateTime.Now
+            };
+            await _orderLogServices.InsertAsync(orderLog);
+
+            return jm;
+        }
+        #endregion
+
     }
 }
diff --git a/CoreCms.Net.Web.WebApi/Controllers/OrderJingXiaoshangController.cs b/CoreCms.Net.Web.WebApi/Controllers/OrderJingXiaoshangController.cs
new file mode 100644
index 0000000..1d02a72
--- /dev/null
+++ b/CoreCms.Net.Web.WebApi/Controllers/OrderJingXiaoshangController.cs
@@ -0,0 +1,1985 @@
+锘�/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 202408/07   
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.IO;
+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.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.Services;
+using CoreCms.Net.Utility.Extensions;
+using CoreCms.Net.Utility.Helper;
+using CoreCms.Net.WeChat.Service.HttpClients;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json;
+using NPOI.HSSF.UserModel;
+using NPOI.SS.Util;
+using SqlSugar;
+
+namespace CoreCms.Net.Web.WebApi.Controllers
+{
+    /// <summary>
+    /// 璁㈠崟璋冪敤鎺ュ彛鏁版嵁
+    /// </summary>
+    [Route("api/[controller]/[action]")]
+    [ApiController]
+    public class OrderJingXiaoshangController : ControllerBase
+    {
+        private readonly IHttpContextUser _user;
+        private readonly IWebHostEnvironment _webHostEnvironment;
+        private readonly ICoreCmsOrderServices _coreCmsOrderServices;
+        private readonly ICoreCmsUserServices _userServices;
+        private readonly ICoreCmsAreaServices _areaServices;
+        private readonly ICoreCmsBillAftersalesServices _aftersalesServices;
+        private readonly ICoreCmsBillPaymentsServices _billPaymentsServices;
+        private readonly ICoreCmsBillDeliveryServices _billDeliveryServices;
+        private readonly ICoreCmsStoreServices _storeServices;
+        private readonly ICoreCmsLogisticsServices _logisticsServices;
+        private readonly ICoreCmsPaymentsServices _paymentsServices;
+        private readonly ICoreCmsSettingServices _settingServices;
+        private readonly ICoreCmsUserWeChatInfoServices _userWeChatInfoServices;
+        private readonly IRedisOperationRepository _redisOperationRepository;
+        private readonly CoreCms.Net.WeChat.Service.HttpClients.IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
+        private readonly IWeChatShippingDeliveryServices _weChatShippingDeliveryServices;
+
+
+        private readonly ICoreCmsOrderItemServices _orderItemServices;
+        private readonly IBfbfComAPIService _bfbfServices;
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public OrderJingXiaoshangController(IHttpContextUser user
+            , IWebHostEnvironment webHostEnvironment
+            , ICoreCmsOrderServices coreCmsOrderServices
+            , ICoreCmsUserServices userServices
+            , ICoreCmsAreaServices areaServices
+            , ICoreCmsBillAftersalesServices aftersalesServices
+            , ICoreCmsStoreServices storeServices
+            , ICoreCmsLogisticsServices logisticsServices
+            , ICoreCmsBillPaymentsServices billPaymentsServices
+            , ICoreCmsPaymentsServices paymentsServices
+            , ICoreCmsSettingServices settingServices
+            , ICoreCmsUserWeChatInfoServices userWeChatInfoServices
+            , IRedisOperationRepository redisOperationRepository
+            , ICoreCmsBillDeliveryServices billDeliveryServices
+            , IWeChatApiHttpClientFactory weChatApiHttpClientFactory
+            , ICoreCmsOrderItemServices orderItemServices
+            , IWeChatShippingDeliveryServices weChatShippingDeliveryServices
+            , IBfbfComAPIService bfbfComAPIService
+            )
+        {
+            _user = user;
+            _webHostEnvironment = webHostEnvironment;
+            _coreCmsOrderServices = coreCmsOrderServices;
+            _userServices = userServices;
+            _areaServices = areaServices;
+            _aftersalesServices = aftersalesServices;
+            _storeServices = storeServices;
+            _logisticsServices = logisticsServices;
+            _billPaymentsServices = billPaymentsServices;
+            _paymentsServices = paymentsServices;
+            _settingServices = settingServices;
+            _userWeChatInfoServices = userWeChatInfoServices;
+            _redisOperationRepository = redisOperationRepository;
+            _billDeliveryServices = billDeliveryServices;
+            _weChatApiHttpClientFactory = weChatApiHttpClientFactory;
+            _orderItemServices = orderItemServices;
+            _weChatShippingDeliveryServices = weChatShippingDeliveryServices;
+            _bfbfServices = bfbfComAPIService;
+        }
+
+        #region 鑾峰彇鍒楄〃============================================================
+        // POST: Api/OrderJingXiao/GetPageList
+        /// <summary>
+        /// 鑾峰彇鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> GetPageList([FromBody] GetOrderJingxiaoListPost entity)
+        {
+            var jm = new WebApiCallBack();
+            var pageCurrent = entity.page;// Request.Form["page"].FirstOrDefault().ObjectToInt(1);
+            var pageSize = entity.limit;// Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
+            var where = PredicateBuilder.True<CoreCmsOrder>();
+            //鑾峰彇鎺掑簭瀛楁
+
+            //璁㈠崟鍙� nvarchar
+            var orderId = entity.orderId;// Request.Form["orderId"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(orderId))
+            {
+                where = where.And(p => p.orderId.Contains(orderId));
+            }
+
+            //璁㈠崟鐘舵�� int
+            var status = entity.status;// Request.Form["status"].FirstOrDefault().ObjectToInt(0);
+            if (status > 0)
+            {
+                where = where.And(p => p.status == status);
+            }
+            //璁㈠崟绫诲瀷 int
+            var orderType = entity.orderType;// Request.Form["orderType"].FirstOrDefault().ObjectToInt(0);
+            if (orderType > 0)
+            {
+                where = where.And(p => p.orderType == orderType);
+            }
+            //鍙戣揣鐘舵�� int
+            var shipStatus = entity.shipStatus;// Request.Form["shipStatus"].FirstOrDefault().ObjectToInt(0);
+            if (shipStatus > 0)
+            {
+                where = where.And(p => p.shipStatus == shipStatus);
+            }
+            //鏀粯鐘舵�� int
+            var payStatus = entity.payStatus;//Request.Form["payStatus"].FirstOrDefault().ObjectToInt(0);
+            if (payStatus > 0)
+            {
+                where = where.And(p => p.payStatus == payStatus);
+            }
+            //鏀粯鏂瑰紡浠g爜 nvarchar
+            var paymentCode = entity.paymentCode;//Request.Form["paymentCode"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(paymentCode))
+            {
+                where = where.And(p => p.paymentCode.Contains(paymentCode));
+            }
+            //鍞悗鐘舵�� int
+            var confirmStatus = entity.confirmStatus;//Request.Form["confirmStatus"].FirstOrDefault().ObjectToInt(0);
+            if (confirmStatus > 0)
+            {
+                where = where.And(p => p.confirmStatus == confirmStatus);
+            }
+            //璁㈠崟鏉ユ簮 int
+            var source = entity.source;//Request.Form["source"].FirstOrDefault().ObjectToInt(0);
+            if (source > 0)
+            {
+                where = where.And(p => p.source == source);
+            }
+            //鏀惰揣鏂瑰紡 int
+            var receiptType = entity.receiptType;//Request.Form["receiptType"].FirstOrDefault().ObjectToInt(0);
+            if (receiptType > 0)
+            {
+                where = where.And(p => p.receiptType == receiptType);
+            }
+
+            //鏀惰揣浜哄鍚� nvarchar
+            var shipName = entity.shipName;//Request.Form["shipName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shipName))
+            {
+                where = where.And(p => p.shipName.Contains(shipName));
+            }
+            //鏀惰揣浜哄湴鍧� nvarchar
+            var shipAddress = entity.shipAddress;//Request.Form["shipAddress"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shipAddress))
+            {
+                where = where.And(p => p.shipAddress.Contains(shipAddress));
+            }
+
+            //鏀惰揣鐢佃瘽 nvarchar
+            var shipMobile = entity.shipMobile;//Request.Form["shipMobile"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shipMobile))
+            {
+                where = where.And(p => p.shipMobile.Contains(shipMobile));
+            }
+
+            //浠樻鍗曞彿 nvarchar
+            var paymentId = entity.paymentId;//Request.Form["paymentId"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(paymentId))
+            {
+                where = where.And(p => p.shipMobile.Contains(paymentId));
+            }
+
+            // datetime
+            var createTime = entity.createTime;//Request.Form["createTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(createTime))
+            {
+                if (createTime.Contains("鍒�"))
+                {
+                    var dts = createTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.createTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.createTime < dtEnd);
+                }
+                else
+                {
+                    var dt = createTime.ObjectToDate();
+                    where = where.And(p => p.createTime > dt);
+                }
+            }
+
+            //鍟嗗搧鍚嶇О nvarchar
+            var goodName = entity.goodName;//Request.Form["goodName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(goodName))
+            {
+                var orderItems = await _orderItemServices.QueryListByClauseAsync(p => p.name.Contains(goodName), p => p.createTime, OrderByType.Desc, true);
+                if (orderItems.Any())
+                {
+                    var itemIds = orderItems.Select(p => p.orderId).ToList();
+                    where = where.And(p => itemIds.Contains(p.orderId));
+                }
+            }
+
+            //鍟嗗搧缂栫爜 nvarchar
+            var goodSn = entity.goodSn;//Request.Form["goodSn"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(goodSn))
+            {
+                var orderItems = await _orderItemServices.QueryListByClauseAsync(p => p.sn.Contains(goodSn), p => p.createTime, OrderByType.Desc, true);
+                if (orderItems.Any())
+                {
+                    var itemIds = orderItems.Select(p => p.orderId).ToList();
+                    where = where.And(p => itemIds.Contains(p.orderId));
+                }
+            }
+
+            //璁㈠崟鐘舵�� int
+            var orderUnifiedStatus = entity.orderUnifiedStatus;//Request.Form["orderUnifiedStatus"].FirstOrDefault().ObjectToInt(0);
+            if (orderUnifiedStatus > 0)
+            {
+                if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.payment)
+                {
+                    //寰呮敮浠�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_PAYMENT));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.delivered)
+                {
+                    //寰呭彂璐�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_DELIVERY));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.receive)
+                {
+                    //寰呮敹璐�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_RECEIPT));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.evaluated)
+                {
+                    //宸茶瘎浠�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_COMPLETED_EVALUATE));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.noevaluat)
+                {
+                    //寰呰瘎浠�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_EVALUATE));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.complete)
+                {
+                    //宸插畬鎴�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_COMPLETED));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.cancel)
+                {
+                    //宸插彇娑�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_CANCEL));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.delete)
+                {
+                    //宸插彇娑�
+                    where = where.And(p => p.isdel == true);
+                }
+            }
+            else
+            {
+                where = where.And(p => p.isdel == false);
+            }
+
+            //缁忛攢鍟嗗彧鑳芥煡鐪嬭嚜宸卞悕涓嬬殑璁㈠崟
+            where = where.And(p => p.publisherId == _user.ID);
+
+            //鑾峰彇鏁版嵁
+            var list = await _coreCmsOrderServices.QueryPageAsync(where, p => p.createTime, OrderByType.Desc, pageCurrent, pageSize, true);
+            if (list != null && list.Any())
+            {
+                var areaCache = await _areaServices.GetCaChe();
+                foreach (var item in list)
+                {
+                    item.operating = _coreCmsOrderServices.GetOperating(item.orderId, item.status, item.payStatus, item.shipStatus, item.receiptType, item.isdel);
+                    item.afterSaleStatus = "";
+                    if (item.aftersalesItem != null && item.aftersalesItem.Any())
+                    {
+                        foreach (var sale in item.aftersalesItem)
+                        {
+                            item.afterSaleStatus += EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.BillAftersalesStatus>(sale.status) + "<br>";
+                        }
+                    }
+                    var areas = await _areaServices.GetAreaFullName(item.shipAreaId, areaCache);
+                    item.shipAreaName = areas.status ? areas.data + "-" + item.shipAddress : item.shipAddress;
+                }
+            }
+
+            //杩斿洖鏁版嵁
+            jm.data = list;
+           // jm.code = 1;
+            jm.status = true;
+            jm.count = list.TotalCount;
+            jm.otherData = new
+            {
+                list.HasNextPage,
+                list.HasPreviousPage,
+                list.PageIndex,
+                list.PageSize,
+                list.TotalCount,
+                list.TotalPages
+            };
+            jm.msg = "鏁版嵁璋冪敤鎴愬姛!";
+            return jm;
+        }
+        #endregion
+
+        #region 棣栭〉鏁版嵁============================================================
+        // POST: Api/OrderJingXiao/GetIndex
+        /// <summary>
+        /// 棣栭〉鏁版嵁
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> GetIndex()
+        {
+            //杩斿洖鏁版嵁
+            var jm = new WebApiCallBack { status = true };
+           
+            //鍏ㄩ儴
+            var all = await _coreCmsOrderServices.GetCountAsync(p => p.isdel == false && p.publisherId == _user.ID);
+            //寰呮敮浠�
+            var paymentWhere = _coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_PAYMENT);
+            paymentWhere = paymentWhere.And(x => x.publisherId == _user.ID);
+            var payment = await _coreCmsOrderServices.GetCountAsync(paymentWhere);
+            //寰呭彂璐�
+            var deliveredWhere = _coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_DELIVERY);
+            deliveredWhere = deliveredWhere.And(x => x.publisherId == _user.ID);
+            var delivered = await _coreCmsOrderServices.GetCountAsync(deliveredWhere);
+            //寰呮敹璐�
+            var receiveWhere = _coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_RECEIPT);
+            receiveWhere = receiveWhere.And(x => x.publisherId == _user.ID);
+            var receive = await _coreCmsOrderServices.GetCountAsync(receiveWhere);
+            //宸茶瘎浠�
+            var evaluatedWhere = _coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_COMPLETED_EVALUATE);
+            evaluatedWhere = evaluatedWhere.And(x => x.publisherId == _user.ID);
+            var evaluated = await _coreCmsOrderServices.GetCountAsync(evaluatedWhere);
+            //寰呰瘎浠�
+            var noevaluatWhere = _coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_EVALUATE);
+            noevaluatWhere = noevaluatWhere.And(x => x.publisherId == _user.ID);
+            var noevaluat = await _coreCmsOrderServices.GetCountAsync(noevaluatWhere);
+            //宸插畬鎴�
+            var completeWhere = _coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_COMPLETED);
+            completeWhere = completeWhere.And(x => x.publisherId == _user.ID);
+            var complete = await _coreCmsOrderServices.GetCountAsync(completeWhere);
+            //宸插彇娑�
+            var cancelWhere = _coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_CANCEL);
+            cancelWhere = cancelWhere.And(x => x.publisherId == _user.ID);
+            var cancel = await _coreCmsOrderServices.GetCountAsync(cancelWhere);
+            //鍒犻櫎
+            var delete = await _coreCmsOrderServices.GetCountAsync(p => p.isdel == true && p.publisherId == _user.ID);
+
+
+            //璁㈠崟鐘舵�佽鏄�
+            var orderStatus = EnumHelper.EnumToList<GlobalEnumVars.OrderStatus>();
+            //浠樻鐘舵��
+            var payStatus = EnumHelper.EnumToList<GlobalEnumVars.OrderPayStatus>();
+            //鍙戣揣鐘舵��
+            var shipStatus = EnumHelper.EnumToList<GlobalEnumVars.OrderShipStatus>();
+            //璁㈠崟鏉ユ簮
+            var source = EnumHelper.EnumToList<GlobalEnumVars.Source>();
+            //璁㈠崟绫诲瀷
+            var orderType = EnumHelper.EnumToList<GlobalEnumVars.OrderType>();
+            //璁㈠崟鏀粯鏂瑰紡
+            var paymentCode = EnumHelper.EnumToList<GlobalEnumVars.PaymentsTypes>();
+            //鏀惰揣鐘舵��
+            var confirmStatus = EnumHelper.EnumToList<GlobalEnumVars.OrderConfirmStatus>();
+            //璁㈠崟鏀惰揣鏂瑰紡
+            var receiptType = EnumHelper.EnumToList<GlobalEnumVars.OrderReceiptType>();
+
+            jm.data = new
+            {
+                all,
+                payment,
+                delivered,
+                receive,
+                evaluated,
+                noevaluat,
+                complete,
+                cancel,
+                delete,
+                orderStatus,
+                payStatus,
+                shipStatus,
+                orderType,
+                source,
+                paymentCode,
+                confirmStatus,
+                receiptType
+            };
+
+            return jm;
+        }
+        #endregion
+
+        #region 缂栬緫鏁版嵁============================================================
+        // POST: Api/OrderJingXiao/GetEdit
+        /// <summary>
+        /// 缂栬緫鏁版嵁
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> GetEdit([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var storeList = await _storeServices.QueryAsync();
+            var result = await _coreCmsOrderServices.GetOrderInfoByOrderId(entity.id);
+            if (!result.status)
+            {
+                jm.msg = result.msg;
+                return jm;
+            }
+            //jm.code = 0;
+            jm.status = true;
+            jm.data = new
+            {
+                orderModel = result.data,
+                storeList
+            };
+
+            return jm;
+        }
+        #endregion
+
+        #region 缂栬緫鎻愪氦============================================================
+        // POST: Admins/OrderJingXiao/Edit
+        /// <summary>
+        /// 缂栬緫鎻愪氦
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> DoEdit([FromBody] AdminEditOrderPost entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var oldModel = await _coreCmsOrderServices.QueryByIdAsync(entity.orderId);
+            if (oldModel == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            //浜嬬墿澶勭悊杩囩▼寮�濮�
+            if (entity.editType == 1)
+            {
+                oldModel.shipName = entity.shipName;
+                oldModel.shipMobile = entity.shipMobile;
+                oldModel.shipAreaId = entity.shipAreaId;
+                oldModel.shipAddress = entity.shipAddress;
+            }
+            else if (entity.editType == 2)
+            {
+                oldModel.storeId = entity.storeId;
+                oldModel.shipName = entity.shipName;
+                oldModel.shipMobile = entity.shipMobile;
+            }
+
+            if (oldModel.orderAmount != entity.orderAmount && entity.orderAmount > 0)
+            {
+                oldModel.orderAmount = entity.orderAmount;
+            }
+            //浜嬬墿澶勭悊杩囩▼缁撴潫
+            var bl = await _coreCmsOrderServices.UpdateAsync(oldModel);
+            //jm.code = bl ? 0 : 1;
+            jm.status = bl;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+        #endregion
+
+        #region 鍙戣揣============================================================
+        // POST: Api/OrderJingXiao/GetShip
+        /// <summary>
+        /// 鍙戣揣
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> GetShip([FromBody] FMArrayStringIds entity)
+        {
+            var jm = new WebApiCallBack();
+
+            if (entity.id.Length == 0)
+            {
+                jm.msg = "璇烽�夋嫨闇�瑕佸彂璐х殑鏁版嵁";
+                return jm;
+            }
+
+
+
+            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)
+            {
+                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)
+                {
+                    var getfullName = await _areaServices.GetAreaFullName(store.areaId);
+                    if (getfullName.status)
+                    {
+                        store.allAddress = getfullName.data + store.address;
+                    }
+                }
+            }
+            //jm.code = 0;
+            jm.status = true;
+            jm.msg = result.msg;
+            jm.data = new
+            {
+                orderModel = result.data,
+                deliveryCompany,
+                storeList,
+                logistics,
+                Distributors
+            };
+
+            return jm;
+        }
+        #endregion
+
+        #region 鍙戣揣鎻愪氦============================================================
+        // POST: Admins/OrderJingXiao/Edit
+        /// <summary>
+        /// 鍙戣揣鎻愪氦
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> DoShip([FromBody] AdminOrderShipPost entity)
+        {
+            var jm = new WebApiCallBack();
+            if (entity.logiCode == "Distributor")
+            //濡傛灉閫夋嫨浜嗘牎鍥唬鐞嗗彂璐�
+            {
+                if (entity.SendDistributionID == null && entity.SendDistributionID == 0)
+                {
+                    //jm.code = 1;
+                    jm.status = false;
+                    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, entity.SendDistributionID);
+
+                if (result.status)
+                {
+                    var orderPaymentIds = await _billPaymentsServices.QueryListByClauseAsync(p => ids.Contains(p.sourceId) && p.paymentCode == GlobalEnumVars.PaymentsTypes.wechatpay.ToString() && p.status == (int)GlobalEnumVars.BillPaymentsStatus.Payed);
+                    if (orderPaymentIds.Any())
+                    {
+                        //渚濇鎺ㄥ叆闃熷垪.
+                        foreach (var item in orderPaymentIds)
+                        {
+                            //缁忛攢鍟嗗彂璐т笉澶勭悊鍙戣揣淇℃伅  鏄簲璇ヤ綔涓哄悓鍩庡鐞嗭紵杩樻槸涓嶅鐞嗭紝闇�瑕佽繍琛屾椂鐮旂┒
+                            if (entity.logiCode != "Distributor")
+                                await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.WeChatPayShipping, item.paymentId);
+                        }
+                    }
+
+                }
+
+            }
+            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, entity.SendDistributionID);
+
+                //寰俊鍙戣揣淇℃伅绠$悊API鍙戣揣
+                if (result.status && await _billPaymentsServices.QueryByClauseAsync(p => p.sourceId == entity.orderId && p.status == (int)GlobalEnumVars.BillPaymentsStatus.Payed) is { } paymentInfo)
+                {
+                    //缁忛攢鍟嗗彂璐т笉澶勭悊鍙戣揣淇℃伅
+                    if (entity.logiCode != "Distributor")
+                        await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.WeChatPayShipping, paymentInfo.paymentId);
+                }
+
+            }
+
+            //jm.code = result.status ? 0 : 1;
+            jm.status = result.status;
+            jm.msg = result.msg;
+            jm.data = result.data;
+            jm.otherData = entity;
+
+            return jm;
+        }
+        #endregion
+
+        #region 绉掑彂璐�============================================================
+        // POST: Admins/OrderJingXiao/Edit
+        /// <summary>
+        /// 绉掑彂璐�
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> DoSecondsShip([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var order = await _coreCmsOrderServices.QueryByIdAsync(entity.id);
+            if (order == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+
+            var goodItems = await _orderItemServices.QueryListByClauseAsync(p => p.orderId == entity.id);
+            if (!goodItems.Any())
+            {
+                jm.msg = "鏄庣粏鑾峰彇澶辫触";
+                return jm;
+            }
+
+            Dictionary<int, int> items = new Dictionary<int, int>();
+
+            goodItems.ForEach(p =>
+            {
+                items.Add(p.productId, p.nums);
+            });
+
+            var result = new WebApiCallBack();
+
+            if (order.receiptType == (int)GlobalEnumVars.OrderReceiptType.SelfDelivery)
+            {
+                result = await _coreCmsOrderServices.Ship(order.orderId, "shangmenziti", "鏃�", items, order.shipName, order.shipMobile, order.shipAddress, order.memo, order.storeId, order.shipAreaId, "OTHERS");
+            }
+            else if (order.receiptType == (int)GlobalEnumVars.OrderReceiptType.IntraCityService)
+            {
+                result = await _coreCmsOrderServices.Ship(order.orderId, "benditongcheng", "鏃�", items, order.shipName, order.shipMobile, order.shipAddress, order.memo, order.storeId, order.shipAreaId, "OTHERS");
+            }
+
+            //寰俊鍙戣揣淇℃伅绠$悊API鍙戣揣
+            if (result.status && await _billPaymentsServices.QueryByClauseAsync(p => p.sourceId == order.orderId && p.status == (int)GlobalEnumVars.BillPaymentsStatus.Payed) is { } paymentInfo)
+            {
+                await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.WeChatPayShipping, paymentInfo.paymentId);
+            }
+
+            //jm.code = result.status ? 0 : 1;
+            jm.status = result.status;
+            jm.msg = result.msg;
+            jm.data = result.data;
+            jm.otherData = entity;
+
+            return jm;
+        }
+        #endregion
+
+        #region 鏀粯============================================================
+        // POST: Api/OrderJingXiao/GetPay
+        /// <summary>
+        /// 鏀粯
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> GetPay([FromBody] FMArrayStringIds entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var type = entity.data.ObjectToInt();
+            if (type == 0 || entity.id.Length == 0)
+            {
+                jm.msg = "璇锋彁浜ゅ悎娉曠殑鏁版嵁";
+                return jm;
+            }
+
+            var result = await _billPaymentsServices.BatchFormatPaymentRel(entity.id, type, null);
+            if (result.status == false)
+            {
+                jm.msg = result.msg;
+                jm.data = result.data;
+                return jm;
+            }
+            //鍙栨敮浠樻柟寮�
+            var payments = await _paymentsServices.QueryListByClauseAsync(p => p.isEnable, p => p.sort, OrderByType.Asc);
+            //jm.code = 0;
+            jm.status = true;
+            jm.msg = "鑾峰彇鏁版嵁鎴愬姛";
+            jm.data = new
+            {
+                orderId = entity.id,
+                type = entity.data,
+                payments,
+                rel = result.data
+            };
+
+            return jm;
+        }
+        #endregion
+
+        #region 鎻愪氦鏀粯============================================================
+        // POST: Admins/OrderJingXiao/DoToPay
+        /// <summary>
+        /// 鎻愪氦鏀粯
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> DoToPay([FromBody] AdminOrderDoPayPost entity)
+        {
+            var jm = new WebApiCallBack();
+
+            //浜嬬墿澶勭悊杩囩▼缁撴潫
+            var ids = entity.orderId.Split(",");
+            var result = await _billPaymentsServices.ToPay(entity.orderId, entity.type, entity.paymentCode);
+
+            //jm.code = result.status ? 0 : 1;
+            jm.status = result.status;
+            jm.msg = result.msg;
+
+            return jm;
+        }
+        #endregion
+
+        #region 鍒犻櫎鏁版嵁============================================================
+        // POST: Api/OrderJingXiao/DoDelete/10
+        /// <summary>
+        /// 鍗曢�夊垹闄�
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> DoDelete([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var model = await _coreCmsOrderServices.QueryByIdAsync(entity.id);
+            if (model == null)
+            {
+                jm.msg = GlobalConstVars.DataisNo;
+                return jm;
+            }
+            //鍋囧垹闄�
+            var bl = await _coreCmsOrderServices.UpdateAsync(p => new CoreCmsOrder() { isdel = true }, p => p.orderId == model.orderId);
+            //jm.code = bl ? 0 : 1;
+            jm.status = bl;
+            jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
+            return jm;
+
+        }
+        #endregion
+
+        #region 杩樺師璁㈠崟============================================================
+        // POST: Api/OrderJingXiao/DoRestore/10
+        /// <summary>
+        /// 杩樺師璁㈠崟
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> DoRestore([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var model = await _coreCmsOrderServices.QueryByIdAsync(entity.id);
+            if (model == null)
+            {
+                jm.msg = GlobalConstVars.DataisNo;
+                return jm;
+            }
+            //杩樺師
+            var bl = await _coreCmsOrderServices.UpdateAsync(p => new CoreCmsOrder() { isdel = false }, p => p.orderId == model.orderId);
+            //jm.code = bl ? 0 : 1;
+            jm.status = bl;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+            return jm;
+
+        }
+        #endregion
+
+        #region 鍒ゆ柇鏄惁瀛樺湪鍞悗============================================================
+        // POST: Api/OrderJingXiao/GetDoHaveAfterSale/10
+        /// <summary>
+        /// 鍒ゆ柇鏄惁瀛樺湪鍞悗
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> GetDoHaveAfterSale([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            //绛夊緟鍞悗瀹℃牳鐨勮鍗曪紝涓嶈嚜鍔ㄦ搷浣滃畬鎴愩��
+            var billAftersalesCount = await _aftersalesServices.GetCountAsync(p => p.orderId == entity.id && p.status == (int)GlobalEnumVars.BillAftersalesStatus.WaitAudit);
+
+            bool bl = billAftersalesCount > 0;
+
+            //jm.code = bl ? 0 : 1;
+            jm.status = bl;
+            jm.msg = "瀛樺湪鏈鐞嗙殑鍞悗";
+
+            return jm;
+
+        }
+        #endregion
+
+        #region 瀹屾垚璁㈠崟============================================================
+        // POST: Api/OrderJingXiao/DoComplete/10
+        /// <summary>
+        /// 瀹屾垚璁㈠崟
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> DoComplete([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var result = await _coreCmsOrderServices.CompleteOrder(entity.id);
+            //jm.code = result.status ? 0 : 1;
+            jm.status = result.status;
+            jm.msg = result.msg;
+            jm.data = result.data;
+            jm.otherData = result.otherData;
+
+            return jm;
+
+        }
+        #endregion
+
+        #region 棰勮鏁版嵁============================================================
+        // POST: Api/OrderJingXiao/GetDetails/10
+        /// <summary>
+        /// 棰勮鏁版嵁
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> GetDetails([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var result = await _coreCmsOrderServices.GetOrderInfoByOrderId(entity.id);
+            if (result == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            //jm.code = result.status ? 0 : 1;
+            jm.status = result.status;
+            jm.data = result.data;
+
+            return jm;
+        }
+        #endregion
+
+        #region 閲嶆墦灏忕エ============================================================
+        // POST: Api/OrderJingXiao/GetPrintTpl/10
+        /// <summary>
+        /// 閲嶆墦灏忕エ
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> GetPrintCloud([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var order = await _coreCmsOrderServices.QueryByClauseAsync(p => p.orderId == entity.id);
+            if (order == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+
+            //鏄撹仈浜戞墦鍗版満鎵撳嵃
+            await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.OrderPrint, JsonConvert.SerializeObject(order));
+
+            //jm.code = 0;
+            jm.status = true;
+            jm.msg = "鎻愪氦鎵撳嵃闃熷垪鎴愬姛";
+
+            return jm;
+        }
+        #endregion
+
+        #region 璁㈠崟鎵撳嵃============================================================
+        // POST: Api/OrderJingXiao/GetPrintTpl/10
+        /// <summary>
+        /// 璁㈠崟鎵撳嵃
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> GetPrintTpl([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var result = await _coreCmsOrderServices.GetOrderInfoByOrderId(entity.id);
+            if (result == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            //jm.code = result.status ? 0 : 1;
+            jm.status = result.status;
+            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 shopName = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopName);
+            var shopMobile = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopMobile);
+
+            jm.data = new
+            {
+                order = result.data,
+                shopName,
+                shopMobile
+            };
+
+            return jm;
+        }
+        #endregion
+
+        #region 閫夋嫨瀵煎嚭============================================================
+        // POST: Api/OrderJingXiao/SelectExportExcel/10
+        /// <summary>
+        /// 閫夋嫨瀵煎嚭
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> SelectExportExcel([FromBody] FMArrayStringIds entity)
+        {
+            var jm = new WebApiCallBack();
+
+            if (entity.id.Length == 0)
+            {
+                jm.msg = "璇烽�夋嫨瑕佸鍑虹殑鏁版嵁";
+                return jm;
+            }
+
+
+            //鑾峰彇鏁版嵁
+            var list = await _coreCmsOrderServices.QueryListAsync(p => entity.id.Contains(p.orderId), p => p.createTime, OrderByType.Desc);
+            if (list != null && list.Any())
+            {
+                var areaCache = await _areaServices.GetCaChe();
+                foreach (var item in list)
+                {
+                    //item.operating = _coreCmsOrderServices.GetOperating(item.orderId, item.status, item.payStatus, item.shipStatus, item.isdel);
+                    //item.afterSaleStatus = "";
+                    //if (item.aftersalesItem != null && item.aftersalesItem.Any())
+                    //{
+                    //    foreach (var sale in item.aftersalesItem)
+                    //    {
+                    //        item.afterSaleStatus += EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.BillAftersalesStatus>(sale.status) + "<br>";
+                    //    }
+                    //}
+                    var areas = await _areaServices.GetAreaFullName(item.shipAreaId, areaCache);
+                    item.shipAreaName = areas.status ? areas.data + "-" + item.shipAddress : item.shipAddress;
+                }
+            }
+
+
+            //璁㈠崟鐘舵�佽鏄�
+            var orderStatusEntities = EnumHelper.EnumToList<GlobalEnumVars.OrderStatusDescription>();
+            //浠樻鐘舵��
+            var orderPayStatusEntities = EnumHelper.EnumToList<GlobalEnumVars.OrderPayStatus>();
+            //鍙戣揣鐘舵��
+            var shipStatusEntities = EnumHelper.EnumToList<GlobalEnumVars.OrderShipStatus>();
+            //璁㈠崟鏉ユ簮
+            var sourceEntities = EnumHelper.EnumToList<GlobalEnumVars.Source>();
+            //璁㈠崟绫诲瀷
+            var orderTypeEntities = EnumHelper.EnumToList<GlobalEnumVars.OrderType>();
+            //璁㈠崟鏀粯鏂瑰紡
+            var paymentsTypesEntities = EnumHelper.EnumToList<GlobalEnumVars.PaymentsTypes>();
+            //鏀惰揣鐘舵��
+            var orderConfirmStatusEntities = EnumHelper.EnumToList<GlobalEnumVars.OrderConfirmStatus>();
+            //璁㈠崟鏀惰揣鏂瑰紡
+            var orderReceiptTypeEntities = EnumHelper.EnumToList<GlobalEnumVars.OrderReceiptType>();
+
+
+            //鑾峰彇鏁版嵁
+            //鍒涘缓Excel鏂囦欢鐨勫璞�
+            var book = new HSSFWorkbook();
+            //娣诲姞涓�涓猻heet
+            var sheet1 = book.CreateSheet("Sheet1");
+
+            //鑾峰彇list鏁版嵁
+            //缁檚heet1娣诲姞绗竴琛岀殑澶撮儴鏍囬
+            var row1 = sheet1.CreateRow(0);
+
+            var items = new List<CellValueItem>();
+            items.Add(new CellValueItem() { name = "搴忓彿", width = 10 });
+            items.Add(new CellValueItem() { name = "璁㈠崟鍙�", width = 20 });
+            items.Add(new CellValueItem() { name = "鍟嗗搧鎬讳环", width = 12 });
+            items.Add(new CellValueItem() { name = "鏀粯閲戦", width = 12 });
+            items.Add(new CellValueItem() { name = "璁㈠崟鎬婚", width = 12 });
+            items.Add(new CellValueItem() { name = "鏀粯鐘舵��", width = 12 });
+            items.Add(new CellValueItem() { name = "鍙戣揣鐘舵��", width = 12 });
+            items.Add(new CellValueItem() { name = "璁㈠崟鐘舵��", width = 12 });
+            items.Add(new CellValueItem() { name = "璁㈠崟绫诲瀷", width = 12 });
+            items.Add(new CellValueItem() { name = "鏀粯鏂瑰紡", width = 12 });
+            items.Add(new CellValueItem() { name = "鏀粯鏃堕棿", width = 20 });
+
+            items.Add(new CellValueItem() { name = "璐у搧鍚嶇О", width = 50 });
+            items.Add(new CellValueItem() { name = "鏁伴噺", width = 12 });
+            items.Add(new CellValueItem() { name = "鍗曚环", width = 12 });
+            items.Add(new CellValueItem() { name = "浼樻儬", width = 12 });
+            items.Add(new CellValueItem() { name = "鍚堣", width = 12 });
+
+
+            items.Add(new CellValueItem() { name = "鏀惰揣浜哄鍚�", width = 12 });
+            items.Add(new CellValueItem() { name = "鏀惰揣鐢佃瘽", width = 12 });
+            items.Add(new CellValueItem() { name = "鏀惰揣璇︾粏鍦板潃", width = 80 });
+
+
+            items.Add(new CellValueItem() { name = "閰嶉�佹柟寮忓悕绉�", width = 20 });
+            items.Add(new CellValueItem() { name = "閰嶉�佽垂鐢�", width = 12 });
+            items.Add(new CellValueItem() { name = "鐢ㄦ埛ID", width = 12 });
+
+            items.Add(new CellValueItem() { name = "鏄惁鏀惰揣", width = 20 });
+            items.Add(new CellValueItem() { name = "纭鏀惰揣鏃堕棿", width = 20 });
+
+
+            items.Add(new CellValueItem() { name = "鍟嗗搧鎬婚噸閲�", width = 20 });
+            items.Add(new CellValueItem() { name = "鏄惁寮�鍙戠エ", width = 20 });
+            items.Add(new CellValueItem() { name = "绋庡彿", width = 20 });
+            items.Add(new CellValueItem() { name = "鍙戠エ鎶ご", width = 20 });
+            items.Add(new CellValueItem() { name = "浣跨敤绉垎", width = 20 });
+            items.Add(new CellValueItem() { name = "绉垎鎶垫墸閲戦", width = 20 });
+            items.Add(new CellValueItem() { name = "璁㈠崟浼樻儬閲戦", width = 20 });
+            items.Add(new CellValueItem() { name = "鍟嗗搧浼樻儬閲戦", width = 20 });
+            items.Add(new CellValueItem() { name = "浼樻儬鍒镐紭鎯犻搴�", width = 20 });
+            items.Add(new CellValueItem() { name = "浼樻儬鍒镐俊鎭�", width = 20 });
+            items.Add(new CellValueItem() { name = "浼樻儬淇℃伅", width = 20 });
+            items.Add(new CellValueItem() { name = "涔板澶囨敞", width = 20 });
+            items.Add(new CellValueItem() { name = "涓嬪崟IP", width = 20 });
+            items.Add(new CellValueItem() { name = "鍗栧澶囨敞", width = 20 });
+            items.Add(new CellValueItem() { name = "璁㈠崟鏉ユ簮", width = 20 });
+            items.Add(new CellValueItem() { name = "鏄惁璇勮", width = 20 });
+            items.Add(new CellValueItem() { name = "鍒犻櫎鏍囧織", width = 20 });
+            items.Add(new CellValueItem() { name = "璁㈠崟鏃堕棿", width = 20 });
+            items.Add(new CellValueItem() { name = "鏇存柊鏃堕棿", width = 20 });
+
+            var headerStyle = ExcelHelper.GetHeaderStyle(book);
+
+            for (int i = 0; i < items.Count; i++)
+            {
+                var cell = row1.CreateCell(i);
+                cell.SetCellValue(items[i].name);
+                cell.CellStyle = headerStyle;
+                sheet1.SetColumnWidth(i, items[i].width * 256);
+            }
+
+            row1.Height = 30 * 20;
+
+            var commonCellStyle = ExcelHelper.GetCommonStyle(book);
+
+
+            var detailsStartNumber = 0;
+            var listStartNumber = 0;
+            foreach (var order in list)
+            {
+                listStartNumber++;
+                //褰撳墠寮�濮嬭
+                var nowNumber = detailsStartNumber;
+                //灏嗘暟鎹�愭鍐欏叆sheet1鍚勪釜琛�
+                foreach (var t in order.items)
+                {
+                    var rowTemp = sheet1.CreateRow(detailsStartNumber + 1);
+
+                    rowTemp.CreateCell(0).SetCellValue(listStartNumber);
+                    rowTemp.CreateCell(1).SetCellValue(order.orderId);
+                    rowTemp.CreateCell(2).SetCellValue(order.goodsAmount.ToString());
+                    rowTemp.CreateCell(3).SetCellValue(order.payedAmount.ToString());
+                    rowTemp.CreateCell(4).SetCellValue(order.orderAmount.ToString());
+
+                    var payModel = orderPayStatusEntities.Find(p => p.value == order.payStatus);
+                    rowTemp.CreateCell(5).SetCellValue(payModel != null ? payModel.description : "");
+
+                    var shipStatusModel = shipStatusEntities.Find(p => p.value == order.shipStatus);
+                    rowTemp.CreateCell(6).SetCellValue(shipStatusModel != null ? shipStatusModel.description : "");
+
+                    var statusModel = orderStatusEntities.Find(p => p.value == order.status);
+                    rowTemp.CreateCell(7).SetCellValue(statusModel != null ? statusModel.description : "");
+
+                    var orderTypeModel = orderTypeEntities.Find(p => p.value == order.orderType);
+                    rowTemp.CreateCell(8).SetCellValue(orderTypeModel != null ? orderTypeModel.description : "");
+
+                    var paymentCodeModel = paymentsTypesEntities.Find(p => p.title == order.paymentCode);
+                    rowTemp.CreateCell(9).SetCellValue(paymentCodeModel != null ? paymentCodeModel.description : "");
+
+                    rowTemp.CreateCell(10).SetCellValue(order.paymentTime.ToString());
+
+
+                    rowTemp.CreateCell(11).SetCellValue(!string.IsNullOrEmpty(t.addon) ? t.name + "銆�" + t.goodsId + "銆戣鏍硷細" + t.addon : "銆�" + t.goodsId + "銆�" + t.name);
+                    rowTemp.CreateCell(12).SetCellValue(t.nums);
+                    rowTemp.CreateCell(13).SetCellValue(t.price + "鍏�");
+                    rowTemp.CreateCell(14).SetCellValue(t.promotionAmount + "鍏�");
+                    rowTemp.CreateCell(15).SetCellValue(t.amount + "鍏�");
+
+
+                    rowTemp.CreateCell(16).SetCellValue(order.shipName);
+                    rowTemp.CreateCell(17).SetCellValue(order.shipMobile);
+                    rowTemp.CreateCell(18).SetCellValue(order.shipAreaName);
+
+                    rowTemp.CreateCell(19).SetCellValue(!string.IsNullOrEmpty(order.logisticsName) ? order.logisticsName : "鑷彁閰嶉��");
+                    rowTemp.CreateCell(20).SetCellValue(order.costFreight.ToString());
+                    rowTemp.CreateCell(21).SetCellValue(order.userId.ToString());
+
+                    var confirmStatusModel = orderConfirmStatusEntities.Find(p => p.value == order.confirmStatus);
+                    rowTemp.CreateCell(22).SetCellValue(confirmStatusModel != null ? confirmStatusModel.description : "");
+
+                    rowTemp.CreateCell(23).SetCellValue(order.confirmTime.ToString());
+
+                    rowTemp.CreateCell(24).SetCellValue(order.weight.ToString());
+                    rowTemp.CreateCell(25).SetCellValue(order.taxType.ToString());
+                    rowTemp.CreateCell(26).SetCellValue(order.taxCode);
+                    rowTemp.CreateCell(27).SetCellValue(order.taxTitle);
+                    rowTemp.CreateCell(28).SetCellValue(order.point.ToString());
+                    rowTemp.CreateCell(29).SetCellValue(order.pointMoney.ToString());
+                    rowTemp.CreateCell(30).SetCellValue(order.orderDiscountAmount.ToString());
+                    rowTemp.CreateCell(31).SetCellValue(order.goodsDiscountAmount.ToString());
+                    rowTemp.CreateCell(32).SetCellValue(order.couponDiscountAmount.ToString());
+                    rowTemp.CreateCell(33).SetCellValue(order.coupon);
+                    rowTemp.CreateCell(34).SetCellValue(order.promotionList);
+                    rowTemp.CreateCell(35).SetCellValue(order.memo);
+                    rowTemp.CreateCell(36).SetCellValue(order.ip);
+                    rowTemp.CreateCell(37).SetCellValue(order.mark);
+                    rowTemp.CreateCell(38).SetCellValue(order.source.ToString());
+                    rowTemp.CreateCell(39).SetCellValue(order.isComment.ToString());
+                    rowTemp.CreateCell(40).SetCellValue(order.isdel.ToString());
+                    rowTemp.CreateCell(41).SetCellValue(order.createTime.ToString());
+                    rowTemp.CreateCell(42).SetCellValue(order.updateTime.ToString());
+
+
+                    rowTemp.Cells.ForEach(p =>
+                    {
+                        p.CellStyle = commonCellStyle;
+                    });
+                    rowTemp.Height = 20 * 20;
+
+
+                    detailsStartNumber++;
+                }
+                //鍚堝苟鍗曞厓鏍硷紙绗嚑琛岋紝鍒扮鍑犺锛岀鍑犲垪锛屽埌绗嚑鍒楋級
+
+                var marId = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42 };
+                if (order.items.Count <= 1) continue;
+                foreach (var id in marId)
+                {
+                    sheet1.AddMergedRegion(new CellRangeAddress(nowNumber + 1, detailsStartNumber, id, id));
+                }
+            }
+
+            // 鍐欏叆鍒癳xcel
+            string webRootPath = _webHostEnvironment.WebRootPath;
+            string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
+            string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-璁㈠崟瀵煎嚭(閫夋嫨缁撴灉).xls";
+            string filePath = webRootPath + tpath;
+            DirectoryInfo di = new DirectoryInfo(filePath);
+            if (!di.Exists)
+            {
+                di.Create();
+            }
+            FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
+            book.Write(fileHssf);
+            fileHssf.Close();
+
+            //jm.code = 0;
+            jm.status = true;
+            jm.msg = GlobalConstVars.ExcelExportSuccess;
+            jm.data = tpath + fileName;
+
+            return jm;
+        }
+        #endregion
+
+        #region 鏌ヨ瀵煎嚭============================================================
+        // POST: Api/OrderJingXiao/QueryExportExcel/10
+        /// <summary>
+        /// 鏌ヨ瀵煎嚭
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> QueryExportExcel()
+        {
+
+            var jm = new WebApiCallBack();
+            var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
+            var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
+            var where = PredicateBuilder.True<CoreCmsOrder>();
+            //鑾峰彇鎺掑簭瀛楁
+
+            //璁㈠崟鍙� nvarchar
+            var orderId = Request.Form["orderId"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(orderId))
+            {
+                where = where.And(p => p.orderId.Contains(orderId));
+            }
+
+            //璁㈠崟鐘舵�� int
+            var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
+            if (status > 0)
+            {
+                where = where.And(p => p.status == status);
+            }
+            //璁㈠崟绫诲瀷 int
+            var orderType = Request.Form["orderType"].FirstOrDefault().ObjectToInt(0);
+            if (orderType > 0)
+            {
+                where = where.And(p => p.orderType == orderType);
+            }
+            //鍙戣揣鐘舵�� int
+            var shipStatus = Request.Form["shipStatus"].FirstOrDefault().ObjectToInt(0);
+            if (shipStatus > 0)
+            {
+                where = where.And(p => p.shipStatus == shipStatus);
+            }
+            //鏀粯鐘舵�� int
+            var payStatus = Request.Form["payStatus"].FirstOrDefault().ObjectToInt(0);
+            if (payStatus > 0)
+            {
+                where = where.And(p => p.payStatus == payStatus);
+            }
+            //鏀粯鏂瑰紡浠g爜 nvarchar
+            var paymentCode = Request.Form["paymentCode"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(paymentCode))
+            {
+                where = where.And(p => p.paymentCode.Contains(paymentCode));
+            }
+            //鍞悗鐘舵�� int
+            var confirmStatus = Request.Form["confirmStatus"].FirstOrDefault().ObjectToInt(0);
+            if (confirmStatus > 0)
+            {
+                where = where.And(p => p.confirmStatus == confirmStatus);
+            }
+            //璁㈠崟鏉ユ簮 int
+            var source = Request.Form["source"].FirstOrDefault().ObjectToInt(0);
+            if (source > 0)
+            {
+                where = where.And(p => p.source == source);
+            }
+            //鏀惰揣鏂瑰紡 int
+            var receiptType = Request.Form["receiptType"].FirstOrDefault().ObjectToInt(0);
+            if (receiptType > 0)
+            {
+                where = where.And(p => p.receiptType == receiptType);
+            }
+
+            //鏀惰揣浜哄鍚� nvarchar
+            var shipName = Request.Form["shipName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shipName))
+            {
+                where = where.And(p => p.shipName.Contains(shipName));
+            }
+            //鏀惰揣浜哄湴鍧� nvarchar
+            var shipAddress = Request.Form["shipAddress"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shipAddress))
+            {
+                where = where.And(p => p.shipAddress.Contains(shipAddress));
+            }
+
+            //鏀惰揣鐢佃瘽 nvarchar
+            var shipMobile = Request.Form["shipMobile"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shipMobile))
+            {
+                where = where.And(p => p.shipMobile.Contains(shipMobile));
+            }
+
+            //浠樻鍗曞彿 nvarchar
+            var paymentId = Request.Form["paymentId"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(paymentId))
+            {
+                where = where.And(p => p.shipMobile.Contains(paymentId));
+            }
+
+            // datetime
+            var createTime = Request.Form["createTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(createTime))
+            {
+                if (createTime.Contains("鍒�"))
+                {
+                    var dts = createTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.createTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.createTime < dtEnd);
+                }
+                else
+                {
+                    var dt = createTime.ObjectToDate();
+                    where = where.And(p => p.createTime > dt);
+                }
+            }
+
+
+            //璁㈠崟鐘舵�� int
+            var orderUnifiedStatus = ObjectExtensions.ObjectToInt(Request.Form["orderUnifiedStatus"].FirstOrDefault(), 0);
+            if (orderUnifiedStatus > 0)
+            {
+                if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.payment)
+                {
+                    //寰呮敮浠�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_PAYMENT));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.delivered)
+                {
+                    //寰呭彂璐�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_DELIVERY));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.receive)
+                {
+                    //寰呮敹璐�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_RECEIPT));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.evaluated)
+                {
+                    //宸茶瘎浠�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_COMPLETED_EVALUATE));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.noevaluat)
+                {
+                    //寰呰瘎浠�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_EVALUATE));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.complete)
+                {
+                    //宸插畬鎴�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_COMPLETED));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.cancel)
+                {
+                    //宸插彇娑�
+                    where = where.And(_coreCmsOrderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_CANCEL));
+                }
+                else if (orderUnifiedStatus == (int)GlobalEnumVars.OrderCountType.delete)
+                {
+                    //宸插彇娑�
+                    where = where.And(p => p.isdel == true);
+                }
+            }
+            else
+            {
+                where = where.And(p => p.isdel == false);
+            }
+
+            //鑾峰彇鏁版嵁
+            var list = await _coreCmsOrderServices.QueryListAsync(where, p => p.createTime, OrderByType.Desc);
+            if (list != null && list.Any())
+            {
+                var areaCache = await _areaServices.GetCaChe();
+                foreach (var item in list)
+                {
+                    //item.operating = _coreCmsOrderServices.GetOperating(item.orderId, item.status, item.payStatus, item.shipStatus, item.isdel);
+                    //item.afterSaleStatus = "";
+                    //if (item.aftersalesItem != null && item.aftersalesItem.Any())
+                    //{
+                    //    foreach (var sale in item.aftersalesItem)
+                    //    {
+                    //        item.afterSaleStatus += EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.BillAftersalesStatus>(sale.status) + "<br>";
+                    //    }
+                    //}
+                    var areas = await _areaServices.GetAreaFullName(item.shipAreaId, areaCache);
+                    item.shipAreaName = areas.status ? areas.data + "-" + item.shipAddress : item.shipAddress;
+                }
+            }
+
+
+            //璁㈠崟鐘舵�佽鏄�
+            var orderStatusEntities = EnumHelper.EnumToList<GlobalEnumVars.OrderStatusDescription>();
+            //浠樻鐘舵��
+            var orderPayStatusEntities = EnumHelper.EnumToList<GlobalEnumVars.OrderPayStatus>();
+            //鍙戣揣鐘舵��
+            var shipStatusEntities = EnumHelper.EnumToList<GlobalEnumVars.OrderShipStatus>();
+            //璁㈠崟鏉ユ簮
+            var sourceEntities = EnumHelper.EnumToList<GlobalEnumVars.Source>();
+            //璁㈠崟绫诲瀷
+            var orderTypeEntities = EnumHelper.EnumToList<GlobalEnumVars.OrderType>();
+            //璁㈠崟鏀粯鏂瑰紡
+            var paymentsTypesEntities = EnumHelper.EnumToList<GlobalEnumVars.PaymentsTypes>();
+            //鏀惰揣鐘舵��
+            var orderConfirmStatusEntities = EnumHelper.EnumToList<GlobalEnumVars.OrderConfirmStatus>();
+            //璁㈠崟鏀惰揣鏂瑰紡
+            var orderReceiptTypeEntities = EnumHelper.EnumToList<GlobalEnumVars.OrderReceiptType>();
+
+
+            //鑾峰彇鏁版嵁
+            //鍒涘缓Excel鏂囦欢鐨勫璞�
+            var book = new HSSFWorkbook();
+            //娣诲姞涓�涓猻heet
+            var sheet1 = book.CreateSheet("Sheet1");
+
+            //鑾峰彇list鏁版嵁
+            //缁檚heet1娣诲姞绗竴琛岀殑澶撮儴鏍囬
+            var row1 = sheet1.CreateRow(0);
+
+            var items = new List<CellValueItem>();
+            items.Add(new CellValueItem() { name = "搴忓彿", width = 10 });
+            items.Add(new CellValueItem() { name = "璁㈠崟鍙�", width = 20 });
+            items.Add(new CellValueItem() { name = "鍟嗗搧鎬讳环", width = 12 });
+            items.Add(new CellValueItem() { name = "鏀粯閲戦", width = 12 });
+            items.Add(new CellValueItem() { name = "璁㈠崟鎬婚", width = 12 });
+            items.Add(new CellValueItem() { name = "鏀粯鐘舵��", width = 12 });
+            items.Add(new CellValueItem() { name = "鍙戣揣鐘舵��", width = 12 });
+            items.Add(new CellValueItem() { name = "璁㈠崟鐘舵��", width = 12 });
+            items.Add(new CellValueItem() { name = "璁㈠崟绫诲瀷", width = 12 });
+            items.Add(new CellValueItem() { name = "鏀粯鏂瑰紡", width = 12 });
+            items.Add(new CellValueItem() { name = "鏀粯鏃堕棿", width = 20 });
+
+            items.Add(new CellValueItem() { name = "璐у搧鍚嶇О", width = 50 });
+            items.Add(new CellValueItem() { name = "鏁伴噺", width = 12 });
+            items.Add(new CellValueItem() { name = "鍗曚环", width = 12 });
+            items.Add(new CellValueItem() { name = "浼樻儬", width = 12 });
+            items.Add(new CellValueItem() { name = "鍚堣", width = 12 });
+
+
+            items.Add(new CellValueItem() { name = "鏀惰揣浜哄鍚�", width = 12 });
+            items.Add(new CellValueItem() { name = "鏀惰揣鐢佃瘽", width = 12 });
+            items.Add(new CellValueItem() { name = "鏀惰揣璇︾粏鍦板潃", width = 80 });
+
+
+            items.Add(new CellValueItem() { name = "閰嶉�佹柟寮忓悕绉�", width = 20 });
+            items.Add(new CellValueItem() { name = "閰嶉�佽垂鐢�", width = 12 });
+            items.Add(new CellValueItem() { name = "鐢ㄦ埛ID", width = 12 });
+
+            items.Add(new CellValueItem() { name = "鏄惁鏀惰揣", width = 20 });
+            items.Add(new CellValueItem() { name = "纭鏀惰揣鏃堕棿", width = 20 });
+
+
+            items.Add(new CellValueItem() { name = "鍟嗗搧鎬婚噸閲�", width = 20 });
+            items.Add(new CellValueItem() { name = "鏄惁寮�鍙戠エ", width = 20 });
+            items.Add(new CellValueItem() { name = "绋庡彿", width = 20 });
+            items.Add(new CellValueItem() { name = "鍙戠エ鎶ご", width = 20 });
+            items.Add(new CellValueItem() { name = "浣跨敤绉垎", width = 20 });
+            items.Add(new CellValueItem() { name = "绉垎鎶垫墸閲戦", width = 20 });
+            items.Add(new CellValueItem() { name = "璁㈠崟浼樻儬閲戦", width = 20 });
+            items.Add(new CellValueItem() { name = "鍟嗗搧浼樻儬閲戦", width = 20 });
+            items.Add(new CellValueItem() { name = "浼樻儬鍒镐紭鎯犻搴�", width = 20 });
+            items.Add(new CellValueItem() { name = "浼樻儬鍒镐俊鎭�", width = 20 });
+            items.Add(new CellValueItem() { name = "浼樻儬淇℃伅", width = 20 });
+            items.Add(new CellValueItem() { name = "涔板澶囨敞", width = 20 });
+            items.Add(new CellValueItem() { name = "涓嬪崟IP", width = 20 });
+            items.Add(new CellValueItem() { name = "鍗栧澶囨敞", width = 20 });
+            items.Add(new CellValueItem() { name = "璁㈠崟鏉ユ簮", width = 20 });
+            items.Add(new CellValueItem() { name = "鏄惁璇勮", width = 20 });
+            items.Add(new CellValueItem() { name = "鍒犻櫎鏍囧織", width = 20 });
+            items.Add(new CellValueItem() { name = "璁㈠崟鏃堕棿", width = 20 });
+            items.Add(new CellValueItem() { name = "鏇存柊鏃堕棿", width = 20 });
+
+            var headerStyle = ExcelHelper.GetHeaderStyle(book);
+
+            for (int i = 0; i < items.Count; i++)
+            {
+                var cell = row1.CreateCell(i);
+                cell.SetCellValue(items[i].name);
+                cell.CellStyle = headerStyle;
+                sheet1.SetColumnWidth(i, items[i].width * 256);
+            }
+
+            row1.Height = 30 * 20;
+
+            var commonCellStyle = ExcelHelper.GetCommonStyle(book);
+
+
+            var detailsStartNumber = 0;
+            var listStartNumber = 0;
+            foreach (var order in list)
+            {
+                listStartNumber++;
+                //褰撳墠寮�濮嬭
+                var nowNumber = detailsStartNumber;
+                //灏嗘暟鎹�愭鍐欏叆sheet1鍚勪釜琛�
+                foreach (var t in order.items)
+                {
+                    var rowTemp = sheet1.CreateRow(detailsStartNumber + 1);
+
+                    rowTemp.CreateCell(0).SetCellValue(listStartNumber);
+                    rowTemp.CreateCell(1).SetCellValue(order.orderId);
+                    rowTemp.CreateCell(2).SetCellValue(order.goodsAmount.ToString());
+                    rowTemp.CreateCell(3).SetCellValue(order.payedAmount.ToString());
+                    rowTemp.CreateCell(4).SetCellValue(order.orderAmount.ToString());
+
+                    var payModel = orderPayStatusEntities.Find(p => p.value == order.payStatus);
+                    rowTemp.CreateCell(5).SetCellValue(payModel != null ? payModel.description : "");
+
+                    var shipStatusModel = shipStatusEntities.Find(p => p.value == order.shipStatus);
+                    rowTemp.CreateCell(6).SetCellValue(shipStatusModel != null ? shipStatusModel.description : "");
+
+                    var statusModel = orderStatusEntities.Find(p => p.value == order.status);
+                    rowTemp.CreateCell(7).SetCellValue(statusModel != null ? statusModel.description : "");
+
+                    var orderTypeModel = orderTypeEntities.Find(p => p.value == order.orderType);
+                    rowTemp.CreateCell(8).SetCellValue(orderTypeModel != null ? orderTypeModel.description : "");
+
+                    var paymentCodeModel = paymentsTypesEntities.Find(p => p.title == order.paymentCode);
+                    rowTemp.CreateCell(9).SetCellValue(paymentCodeModel != null ? paymentCodeModel.description : "");
+
+                    rowTemp.CreateCell(10).SetCellValue(order.paymentTime.ToString());
+
+
+                    rowTemp.CreateCell(11).SetCellValue(!string.IsNullOrEmpty(t.addon) ? t.name + "銆�" + t.goodsId + "銆戣鏍硷細" + t.addon : "銆�" + t.goodsId + "銆�" + t.name);
+                    rowTemp.CreateCell(12).SetCellValue(t.nums);
+                    rowTemp.CreateCell(13).SetCellValue(t.price + "鍏�");
+                    rowTemp.CreateCell(14).SetCellValue(t.promotionAmount + "鍏�");
+                    rowTemp.CreateCell(15).SetCellValue(t.amount + "鍏�");
+
+
+                    rowTemp.CreateCell(16).SetCellValue(order.shipName);
+                    rowTemp.CreateCell(17).SetCellValue(order.shipMobile);
+                    rowTemp.CreateCell(18).SetCellValue(order.shipAreaName);
+
+                    rowTemp.CreateCell(19).SetCellValue(!string.IsNullOrEmpty(order.logisticsName) ? order.logisticsName : "鑷彁閰嶉��");
+                    rowTemp.CreateCell(20).SetCellValue(order.costFreight.ToString());
+                    rowTemp.CreateCell(21).SetCellValue(order.userId.ToString());
+
+                    var confirmStatusModel = orderConfirmStatusEntities.Find(p => p.value == order.confirmStatus);
+                    rowTemp.CreateCell(22).SetCellValue(confirmStatusModel != null ? confirmStatusModel.description : "");
+
+                    rowTemp.CreateCell(23).SetCellValue(order.confirmTime.ToString());
+
+                    rowTemp.CreateCell(24).SetCellValue(order.weight.ToString());
+                    rowTemp.CreateCell(25).SetCellValue(order.taxType.ToString());
+                    rowTemp.CreateCell(26).SetCellValue(order.taxCode);
+                    rowTemp.CreateCell(27).SetCellValue(order.taxTitle);
+                    rowTemp.CreateCell(28).SetCellValue(order.point.ToString());
+                    rowTemp.CreateCell(29).SetCellValue(order.pointMoney.ToString());
+                    rowTemp.CreateCell(30).SetCellValue(order.orderDiscountAmount.ToString());
+                    rowTemp.CreateCell(31).SetCellValue(order.goodsDiscountAmount.ToString());
+                    rowTemp.CreateCell(32).SetCellValue(order.couponDiscountAmount.ToString());
+                    rowTemp.CreateCell(33).SetCellValue(order.coupon);
+                    rowTemp.CreateCell(34).SetCellValue(order.promotionList);
+                    rowTemp.CreateCell(35).SetCellValue(order.memo);
+                    rowTemp.CreateCell(36).SetCellValue(order.ip);
+                    rowTemp.CreateCell(37).SetCellValue(order.mark);
+                    rowTemp.CreateCell(38).SetCellValue(order.source.ToString());
+                    rowTemp.CreateCell(39).SetCellValue(order.isComment.ToString());
+                    rowTemp.CreateCell(40).SetCellValue(order.isdel.ToString());
+                    rowTemp.CreateCell(41).SetCellValue(order.createTime.ToString());
+                    rowTemp.CreateCell(42).SetCellValue(order.updateTime.ToString());
+
+
+                    rowTemp.Cells.ForEach(p =>
+                    {
+                        p.CellStyle = commonCellStyle;
+                    });
+                    rowTemp.Height = 20 * 20;
+
+
+                    detailsStartNumber++;
+                }
+                //鍚堝苟鍗曞厓鏍硷紙绗嚑琛岋紝鍒扮鍑犺锛岀鍑犲垪锛屽埌绗嚑鍒楋級
+                var marId = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42 };
+                if (order.items.Count <= 1) continue;
+                foreach (var id in marId)
+                {
+                    sheet1.AddMergedRegion(new CellRangeAddress(nowNumber + 1, detailsStartNumber, id, id));
+                }
+            }
+
+            // 鍐欏叆鍒癳xcel
+            string webRootPath = _webHostEnvironment.WebRootPath;
+            string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
+            string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-璁㈠崟瀵煎嚭(鏌ヨ缁撴灉).xls";
+            string filePath = webRootPath + tpath;
+            DirectoryInfo di = new DirectoryInfo(filePath);
+            if (!di.Exists)
+            {
+                di.Create();
+            }
+            FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
+            book.Write(fileHssf);
+            fileHssf.Close();
+
+            //jm.code = 0;
+            jm.status = true;
+            jm.msg = GlobalConstVars.ExcelExportSuccess;
+            jm.data = tpath + fileName;
+
+            return jm;
+        }
+        #endregion
+
+        #region 璁剧疆鏄惁寮�鍙戠エ============================================================
+        // POST: Api/OrderJingXiao/DoSettaxType/10
+        /// <summary>
+        /// 璁剧疆鏄惁寮�鍙戠エ
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> DoSettaxType([FromBody] FMUpdateIntegerDataByIntId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var oldModel = await _coreCmsOrderServices.QueryByIdAsync(entity.id);
+            if (oldModel == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            oldModel.taxType = entity.data;
+
+            var bl = await _coreCmsOrderServices.UpdateAsync(oldModel);
+            //jm.code = bl ? 0 : 1;
+            jm.status = bl;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+        #endregion
+
+        #region 璁剧疆鏄惁璇勮============================================================
+        // POST: Api/OrderJingXiao/DoSetisComment/10
+        /// <summary>
+        /// 璁剧疆鏄惁璇勮
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> DoSetisComment([FromBody] FMUpdateBoolDataByIntId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var oldModel = await _coreCmsOrderServices.QueryByIdAsync(entity.id);
+            if (oldModel == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            oldModel.isComment = (bool)entity.data;
+
+            var bl = await _coreCmsOrderServices.UpdateAsync(oldModel);
+            //jm.code = bl ? 0 : 1;
+            jm.status = bl;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+        #endregion
+
+        #region 鏇存柊澶囨敞============================================================
+        // POST: Api/OrderJingXiao/DoSetisdel/10
+        /// <summary>
+        /// 鏇存柊澶囨敞
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> DoUpdateMark([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var oldModel = await _coreCmsOrderServices.QueryByIdAsync(entity.id);
+            if (oldModel == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            oldModel.mark = entity.data.ToString();
+            var bl = await _coreCmsOrderServices.UpdateAsync(p => new CoreCmsOrder() { mark = oldModel.mark }, p => p.orderId == oldModel.orderId);
+            //jm.code = bl ? 0 : 1;
+            jm.status = bl;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+        #endregion
+
+        #region 鍙栨秷璁㈠崟============================================================
+        // POST: Api/OrderJingXiao/CancelOrder/10
+        /// <summary>
+        /// 鍙栨秷璁㈠崟
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> CancelOrder([FromBody] FMArrayStringIds entity)
+        {
+            var jm = new WebApiCallBack();
+
+            if (entity.id.Length == 0)
+            {
+                jm.msg = "璇锋彁浜よ鍙栨秷鐨勮鍗曞彿";
+                return jm;
+            }
+
+            var result = await _coreCmsOrderServices.CancelOrder(entity.id);
+            //jm.code = result.status ? 0 : 1;
+            jm.status = result.status;
+            jm.msg = result.msg;
+
+            return jm;
+        }
+        #endregion
+
+        #region 鎵归噺鍒犻櫎璁㈠崟============================================================
+        // POST: Api/OrderJingXiao/DeleteOrder/10
+        /// <summary>
+        /// 鎵归噺鍒犻櫎璁㈠崟
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> DeleteOrder([FromBody] FMArrayStringIds entity)
+        {
+            var jm = new WebApiCallBack();
+
+            if (entity.id.Length == 0)
+            {
+                jm.msg = "璇锋彁浜よ鎵归噺鍒犻櫎鐨勮鍗曞彿";
+                return jm;
+            }
+
+            var result = await _coreCmsOrderServices.UpdateAsync(p => new CoreCmsOrder() { isdel = true }, p => entity.id.Contains(p.orderId));
+           // jm.code = result ? 0 : 1;
+            jm.status = result;
+            jm.msg = result ? "鍒犻櫎鎴愬姛" : "鍒犻櫎澶辫触";
+
+            return jm;
+        }
+        #endregion
+
+        #region 閲嶆柊鍚屾鍙戣揣============================================================
+        // POST: Api/OrderJingXiao/DeleteOrder/10
+        /// <summary>
+        /// 閲嶆柊鍚屾鍙戣揣
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> RefreshDelivery([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            if (string.IsNullOrEmpty(entity.id))
+            {
+                jm.msg = "璇锋彁浜よ鍙栨秷鐨勮鍗曞彿";
+                return jm;
+            }
+
+            var delivery = await _billDeliveryServices.QueryByClauseAsync(p => p.deliveryId == entity.id);
+            if (delivery == null)
+            {
+                jm.msg = "鍙戣揣鍗曡幏鍙栧け璐�";
+                return jm;
+            }
+
+            //jm.code = 0;
+            jm.status = true;
+            jm.msg = "鎻愪氦浠诲姟鎴愬姛,璇锋牳瀹炶繙绔姸鎬�";
+
+            return jm;
+        }
+        #endregion
+
+        #region 棰勮蹇�掕繘搴�============================================================
+        // POST: Api/OrderJingXiao/GetDetails/10
+        /// <summary>
+        /// 棰勮蹇�掕繘搴�
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> GetOrderLogistics([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var result = await _coreCmsOrderServices.GetOrderInfoByOrderId(entity.id);
+            if (result == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            //jm.code = result.status ? 0 : 1;
+            jm.status = result.status;
+            jm.data = result.data;
+
+            return jm;
+        }
+        #endregion
+
+
+
+        #region 鍚庡彴Select涓夌骇涓嬫媺鑱斿姩閰嶅悎
+
+        /// <summary>
+        ///     鑾峰彇澶х被鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<List<AreasDtoForAdminEdit>> GetAreaCheckedList([FromBody] FMIntId entity)
+        {
+            var res = new List<AreasDtoForAdminEdit>();
+
+            if (entity.id != 0)
+            {
+                var model3 = new AreasDtoForAdminEdit();
+                model3.info = await _areaServices.QueryByIdAsync(entity.id);
+                if (model3.info != null && model3.info.parentId != 0)
+                {
+                    model3.list = await _areaServices.QueryListByClauseAsync(p => p.parentId == model3.info.parentId);
+
+                    var model2 = new AreasDtoForAdminEdit();
+                    model2.info = await _areaServices.QueryByIdAsync(model3.info.parentId);
+                    if (model2.info != null && model2.info.parentId != 0)
+                    {
+                        model2.list =
+                            await _areaServices.QueryListByClauseAsync(p => p.parentId == model2.info.parentId);
+
+                        var model = new AreasDtoForAdminEdit();
+                        model.info = await _areaServices.QueryByIdAsync(model2.info.parentId);
+                        if (model.info != null)
+                            model.list =
+                                await _areaServices.QueryListByClauseAsync(p => p.parentId == model.info.parentId);
+                        res.Add(model);
+                    }
+                    else
+                    {
+                        //淇敼涓嶅彲浠ヤ换鎰忛�夋嫨灞傜骇鐨刡ug
+                        model2.thisList = await _areaServices.QueryListByClauseAsync(p => p.parentId == 0);
+                    }
+
+                    res.Add(model2);
+                }
+                else
+                    if (model3.info != null && model3.info.parentId == 0)
+                {
+                    //淇敼涓嶅彲浠ヤ换鎰忛�夋嫨灞傜骇鐨刡ug
+                    model3.thisList = await _areaServices.QueryListByClauseAsync(p => p.parentId == 0);
+                }
+
+
+                res.Add(model3);
+            }
+            else
+            {
+                //淇敼涓嶅彲浠ヤ换鎰忛�夋嫨灞傜骇鐨刡ug
+                var model4 = new AreasDtoForAdminEdit();
+                model4.list = await _areaServices.QueryListByClauseAsync(p => p.parentId == 0);
+                model4.info = null;
+                res.Add(model4);
+            }
+
+            return res;
+        }
+
+        /// <summary>
+        ///     鍙栧湴鍖虹殑涓嬬骇鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<List<CoreCmsArea>> GetAreaChildren([FromBody] FMIntId entity)
+        {
+            var list = await _areaServices.QueryListByClauseAsync(p => p.parentId == entity.id);
+            return list;
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.9.1