From 85405ca125ae7c139e7dbc2dc56a997f3f196e30 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期三, 24 四月 2024 08:39:57 +0800
Subject: [PATCH] 计划订单功能

---
 CoreCms.Net.Repository/Order/CoreCmsPlanOrderItemRepository.cs        |  224 +++
 CoreCms.Net.Web.Admin/wwwroot/static/jihuageshi/上传计划订单.xlsx           |    0 
 CoreCms.Net.Utility/Helper/CommonHelper.cs                            |    3 
 CoreCms.Net.Web.Admin/Controllers/Com/ToolsController.cs              |  261 +++
 CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs                          |  110 +
 CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/index.html       |  495 +++++++
 CoreCms.Net.Repository/Order/CoreCmsPlanOrderRepository.cs            |  230 +++
 CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/details.html     |  144 ++
 CoreCms.Net.IServices/Order/ICoreCmsPlanOrderServices.cs              |  126 +
 CoreCms.Net.IRepository/Order/ICoreCmsPlanOrderRepository.cs          |   99 +
 CoreCms.Net.Web.WebApi/Controllers/OrderController.cs                 |  106 +
 CoreCms.Net.Services/Order/CoreCmsPlanOrderItemServices.cs            |  130 +
 CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsPlanOrderController.cs |  975 ++++++++++++++
 CoreCms.Net.Configuration/GlobalEnumVars.cs                           |   14 
 CoreCms.Net.IServices/Order/ICoreCmsPlanOrderItemServices.cs          |   95 +
 CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/create.html      |  141 ++
 CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/edit.html        |  139 ++
 CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs                |  383 +++++
 CoreCms.Net.Model/Entities/Order/CoreCmsPlanOrder.cs                  |  152 ++
 CoreCms.Net.Model/Entities/Order/CoreCmsPlanOrderItem.cs              |   92 +
 CoreCms.Net.IRepository/Order/ICoreCmsPlanOrderItemRepository.cs      |   99 +
 21 files changed, 4,015 insertions(+), 3 deletions(-)

diff --git a/CoreCms.Net.Configuration/GlobalEnumVars.cs b/CoreCms.Net.Configuration/GlobalEnumVars.cs
index 8a15848..6d4795c 100644
--- a/CoreCms.Net.Configuration/GlobalEnumVars.cs
+++ b/CoreCms.Net.Configuration/GlobalEnumVars.cs
@@ -72,6 +72,8 @@
             鏈嶅姟璁㈠崟缂栧彿 = 10,
             [Description("鏈嶅姟鍒稿厬鎹㈢爜")]
             鏈嶅姟鍒稿厬鎹㈢爜 = 11,
+            [Description("璁″垝璁㈠崟缂栧彿")]
+            璁″垝璁㈠崟缂栧彿 = 12,
         }
         /// <summary>
         /// 鏉ユ簮
@@ -659,6 +661,18 @@
             TransactionComponent = 10,
 
         }
+
+        /// <summary>
+        /// 璁″垝璁㈠崟鏄惁鎻愪氦
+        /// </summary>
+        public enum PlanOrderTiJiao
+        {
+            [Description("鏈彁浜�")]
+            鏈彁浜� = 1,
+            [Description("宸叉彁浜�")]
+            鎻愪氦 = 2
+        }
+
         /// <summary>
         /// 鍙戣揣鍗曠姸鎬�
         /// </summary>
diff --git a/CoreCms.Net.IRepository/Order/ICoreCmsPlanOrderItemRepository.cs b/CoreCms.Net.IRepository/Order/ICoreCmsPlanOrderItemRepository.cs
new file mode 100644
index 0000000..93381b6
--- /dev/null
+++ b/CoreCms.Net.IRepository/Order/ICoreCmsPlanOrderItemRepository.cs
@@ -0,0 +1,99 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/4/17 13:28:37
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.Order;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+
+
+namespace CoreCms.Net.IRepository
+{
+	/// <summary>
+    /// 璁″垝璁㈠崟鏄庣粏琛� 宸ュ巶鎺ュ彛
+    /// </summary>
+    public interface ICoreCmsPlanOrderItemRepository : IBaseRepository<CoreCmsPlanOrderItem>
+    {
+        #region 閲嶅啓澧炲垹鏀规煡鎿嶄綔===========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> InsertAsync(CoreCmsPlanOrderItem entity);
+
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(CoreCmsPlanOrderItem entity);
+
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(List<CoreCmsPlanOrderItem> entity);
+
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdAsync(object id);
+
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids);
+
+        #endregion
+
+        #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        Task<List<CoreCmsPlanOrderItem>> GetCaChe();
+
+        #endregion
+
+
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        Task<IPageList<CoreCmsPlanOrderItem>> QueryPageAsync(
+            Expression<Func<CoreCmsPlanOrderItem, bool>> predicate,
+            Expression<Func<CoreCmsPlanOrderItem, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false);
+
+    }
+}
diff --git a/CoreCms.Net.IRepository/Order/ICoreCmsPlanOrderRepository.cs b/CoreCms.Net.IRepository/Order/ICoreCmsPlanOrderRepository.cs
new file mode 100644
index 0000000..dc4d17c
--- /dev/null
+++ b/CoreCms.Net.IRepository/Order/ICoreCmsPlanOrderRepository.cs
@@ -0,0 +1,99 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/4/17 13:28:20
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.Order;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+
+
+namespace CoreCms.Net.IRepository
+{
+	/// <summary>
+    /// 璁″垝璁㈠崟琛� 宸ュ巶鎺ュ彛
+    /// </summary>
+    public interface ICoreCmsPlanOrderRepository : IBaseRepository<CoreCmsPlanOrder>
+    {
+        #region 閲嶅啓澧炲垹鏀规煡鎿嶄綔===========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> InsertAsync(CoreCmsPlanOrder entity);
+
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(CoreCmsPlanOrder entity);
+
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(List<CoreCmsPlanOrder> entity);
+
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdAsync(object id);
+
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids);
+
+        #endregion
+
+        #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        Task<List<CoreCmsPlanOrder>> GetCaChe();
+
+        #endregion
+
+
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        Task<IPageList<CoreCmsPlanOrder>> QueryPageAsync(
+            Expression<Func<CoreCmsPlanOrder, bool>> predicate,
+            Expression<Func<CoreCmsPlanOrder, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false);
+
+    }
+}
diff --git a/CoreCms.Net.IServices/Order/ICoreCmsPlanOrderItemServices.cs b/CoreCms.Net.IServices/Order/ICoreCmsPlanOrderItemServices.cs
new file mode 100644
index 0000000..70ad2e1
--- /dev/null
+++ b/CoreCms.Net.IServices/Order/ICoreCmsPlanOrderItemServices.cs
@@ -0,0 +1,95 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/4/17 13:28:37
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.Order;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+
+namespace CoreCms.Net.IServices
+{
+	/// <summary>
+    /// 璁″垝璁㈠崟鏄庣粏琛� 鏈嶅姟宸ュ巶鎺ュ彛
+    /// </summary>
+    public interface ICoreCmsPlanOrderItemServices : IBaseServices<CoreCmsPlanOrderItem>
+    {
+        #region 閲嶅啓澧炲垹鏀规煡鎿嶄綔===========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> InsertAsync(CoreCmsPlanOrderItem entity);
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(CoreCmsPlanOrderItem entity);
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(List<CoreCmsPlanOrderItem> entity);
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdAsync(object id);
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids);
+
+        #endregion
+
+        
+        #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        Task<List<CoreCmsPlanOrderItem>> GetCaChe();
+
+        #endregion
+
+        #region 閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        Task<IPageList<CoreCmsPlanOrderItem>> QueryPageAsync(
+            Expression<Func<CoreCmsPlanOrderItem, bool>> predicate,
+            Expression<Func<CoreCmsPlanOrderItem, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false);
+        #endregion
+    }
+}
diff --git a/CoreCms.Net.IServices/Order/ICoreCmsPlanOrderServices.cs b/CoreCms.Net.IServices/Order/ICoreCmsPlanOrderServices.cs
new file mode 100644
index 0000000..41ec920
--- /dev/null
+++ b/CoreCms.Net.IServices/Order/ICoreCmsPlanOrderServices.cs
@@ -0,0 +1,126 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/4/17 13:28:20
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.Order;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.DTO;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinUserInfoBatchGetRequest.Types;
+
+namespace CoreCms.Net.IServices
+{
+	/// <summary>
+    /// 璁″垝璁㈠崟琛� 鏈嶅姟宸ュ巶鎺ュ彛
+    /// </summary>
+    public interface ICoreCmsPlanOrderServices : IBaseServices<CoreCmsPlanOrder>
+    {
+        #region 閲嶅啓澧炲垹鏀规煡鎿嶄綔===========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> InsertAsync(CoreCmsPlanOrder entity);
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(CoreCmsPlanOrder entity);
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(List<CoreCmsPlanOrder> entity);
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdAsync(object id);
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids);
+
+        #endregion
+
+        
+        #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        Task<List<CoreCmsPlanOrder>> GetCaChe();
+
+        #endregion
+
+        #region 閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        Task<IPageList<CoreCmsPlanOrder>> QueryPageAsync(
+            Expression<Func<CoreCmsPlanOrder, bool>> predicate,
+            Expression<Func<CoreCmsPlanOrder, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false);
+        #endregion
+
+        /// <summary>
+        ///     鑾峰彇璁″垝璁㈠崟鍒楄〃寰俊灏忕▼搴�
+        /// </summary>
+        /// <returns></returns>
+        Task<WebApiCallBack> GetOrderList(int status = -1, int userId = 0, int page = 1, int limit = 5);
+
+
+        /// <summary>
+        ///     鍒涘缓璁㈠崟
+        /// </summary>
+        /// <param name="orderId">鐢ㄦ埛搴忓垪</param>
+        /// <param name="userId">鐢ㄦ埛搴忓垪</param>
+        /// <param name="userName">鐢ㄦ埛鏄电О</param>
+        /// <param name="status">璁″垝璁㈠崟鐘舵��</param>
+        /// <param name="itemIds">鏄庣粏id</param>
+        /// <param name="itemNums">鏄庣粏鏁伴噺</param>
+        /// <returns></returns>
+        Task<WebApiCallBack> ToUpdate(string orderId ,int userId, string userName, int status, string itemIds, string itemNums);
+
+        /// <summary>
+        ///     鍒涘缓璁″垝璁㈠崟
+        /// </summary>
+        /// <param name="jiHuaOrders">璁″垝璁㈠崟</param>
+        /// <param name="userId">鐢ㄦ埛搴忓垪</param>
+        /// <param name="userName">鐢ㄦ埛鏄电О</param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> ToAddJiHua(List<JiHuaOrder> jiHuaOrders,int userId, string userName);
+
+    }
+}
diff --git a/CoreCms.Net.Model/Entities/Order/CoreCmsPlanOrder.cs b/CoreCms.Net.Model/Entities/Order/CoreCmsPlanOrder.cs
new file mode 100644
index 0000000..4631c2e
--- /dev/null
+++ b/CoreCms.Net.Model/Entities/Order/CoreCmsPlanOrder.cs
@@ -0,0 +1,152 @@
+锘縰sing Chuanyin.Attribute;
+using CoreCms.Net.Model.Entities.baseModel;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.Model.Entities.Order
+{
+    /// <summary>
+    /// 璁″垝璁㈠崟琛�
+    /// </summary>
+    [SqlCodeFirst]
+    public class CoreCmsPlanOrder : BFBaseModel
+    {
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public CoreCmsPlanOrder()
+        {
+        }
+
+        /// <summary>
+        /// 璁㈠崟鍙�
+        /// </summary>
+        [Display(Name = "璁㈠崟鍙�")]
+
+        [SugarColumn(IsPrimaryKey = true)]
+
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+        [StringLength(maximumLength: 50, ErrorMessage = "{0}涓嶈兘瓒呰繃{1}瀛�")]
+
+
+        public System.String orderId { get; set; }
+
+
+        /// <summary>
+        /// 璋冩暣璁㈠崟閲戦
+        /// </summary>
+        [Display(Name = "璋冩暣璁㈠崟閲戦")]
+
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+
+
+
+        public System.Decimal orderAmount { get; set; }
+
+        /// <summary>
+        /// 璁㈠崟鐘舵��
+        /// </summary>
+        [Display(Name = "璁㈠崟鐘舵��")]
+
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+
+
+
+        public System.Int32 status { get; set; }
+
+
+        /// <summary>
+        /// 鐢ㄦ埛ID 鍏宠仈user.id
+        /// </summary>
+        [Display(Name = "鐢ㄦ埛ID 鍏宠仈user.id")]
+
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+
+
+
+        public System.Int32 userId { get; set; }
+
+
+
+        /// <summary>
+        /// 瀛︽牎
+        /// </summary>
+        [Display(Name = "瀛︽牎")]
+
+
+        [StringLength(maximumLength: 200, ErrorMessage = "{0}涓嶈兘瓒呰繃{1}瀛�")]
+
+
+        public System.String shipAddress { get; set; }
+
+
+        /// <summary>
+        /// 鑱旂郴浜�
+        /// </summary>
+        [Display(Name = "鑱旂郴浜�")]
+
+
+        [StringLength(maximumLength: 50, ErrorMessage = "{0}涓嶈兘瓒呰繃{1}瀛�")]
+
+
+        public System.String shipName { get; set; }
+
+
+        /// <summary>
+        /// 鏀惰揣鐢佃瘽
+        /// </summary>
+        [Display(Name = "鑱旂郴鐢佃瘽")]
+
+
+        [StringLength(maximumLength: 50, ErrorMessage = "{0}涓嶈兘瓒呰繃{1}瀛�")]
+
+
+        public System.String shipMobile { get; set; }
+
+
+        
+
+
+        
+
+
+
+
+        /// <summary>
+        /// 璁″垝璁㈠崟閲戦
+        /// </summary>
+        [Display(Name = "璁″垝璁㈠崟閲戦")]
+
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+
+
+
+        public System.Decimal oldOrderAmount { get; set; }
+
+
+
+        /// <summary>
+        /// 鍙敤浣欓
+        /// </summary>
+        [Display(Name = "鍙敤浣欓")]
+
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+
+
+
+        public System.Decimal keYongAmount { get; set; }
+
+
+        /// <summary>
+        ///     鐘舵�佽鏄�
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public string statusText { get; set; }
+    }
+}
diff --git a/CoreCms.Net.Model/Entities/Order/CoreCmsPlanOrderItem.cs b/CoreCms.Net.Model/Entities/Order/CoreCmsPlanOrderItem.cs
new file mode 100644
index 0000000..d68e022
--- /dev/null
+++ b/CoreCms.Net.Model/Entities/Order/CoreCmsPlanOrderItem.cs
@@ -0,0 +1,92 @@
+锘縰sing Chuanyin.Attribute;
+using CoreCms.Net.Model.Entities.baseModel;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.Model.Entities.Order
+{
+
+    /// <summary>
+    /// 璁㈠崟鏄庣粏琛�
+    /// </summary>
+    [SqlCodeFirst]
+    [SugarTable("CoreCmsPlanOrderItem", TableDescription = "璁″垝璁㈠崟鏄庣粏琛�")]
+    public class CoreCmsPlanOrderItem : BFBaseModel
+    {
+        /// <summary>
+        /// 璁″垝璁㈠崟鏄庣粏琛�
+        /// </summary>
+        public CoreCmsPlanOrderItem()
+        {
+        }
+
+        /// <summary>
+        /// 搴忓彿
+        /// </summary>
+        [Display(Name = "搴忓彿")]
+        [SugarColumn(ColumnDescription = "搴忓彿", IsPrimaryKey = true, IsIdentity = true)]
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+        public System.Int32 id { get; set; }
+        /// <summary>
+        /// 璁㈠崟ID 鍏宠仈order.id
+        /// </summary>
+        [Display(Name = "璁㈠崟ID 鍏宠仈order.id")]
+        [SugarColumn(ColumnDescription = "璁㈠崟ID 鍏宠仈order.id")]
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+        [StringLength(50, ErrorMessage = "銆恵0}銆戜笉鑳借秴杩噞1}瀛楃闀垮害")]
+        public System.String orderId { get; set; }
+
+
+        /// <summary>
+        /// 鍟嗗搧鍚嶇О
+        /// </summary>
+        [Display(Name = "鍟嗗搧鍚嶇О")]
+        [SugarColumn(ColumnDescription = "鍟嗗搧鍚嶇О")]
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+        [StringLength(200, ErrorMessage = "銆恵0}銆戜笉鑳借秴杩噞1}瀛楃闀垮害")]
+        public System.String name { get; set; }
+
+
+        /// <summary>
+        /// 鍟嗗搧瑙勬牸
+        /// </summary>
+        [Display(Name = "鍟嗗搧瑙勬牸")]
+        [SugarColumn(ColumnDescription = "鍟嗗搧瑙勬牸")]
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+        [StringLength(200, ErrorMessage = "銆恵0}銆戜笉鑳借秴杩噞1}瀛楃闀垮害")]
+        public System.String specification { get; set; }
+
+
+        /// <summary>
+        /// 璐у搧浠锋牸鍗曚环
+        /// </summary>
+        [Display(Name = "璐у搧浠锋牸鍗曚环")]
+        [SugarColumn(ColumnDescription = "璐у搧浠锋牸鍗曚环")]
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+        public System.Decimal price { get; set; }
+
+
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        [Display(Name = "鏁伴噺")]
+        [SugarColumn(ColumnDescription = "鏁伴噺")]
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+        public System.Int32 nums { get; set; }
+        /// <summary>
+        /// 鎬讳环
+        /// </summary>
+        [Display(Name = "鎬讳环")]
+        [SugarColumn(ColumnDescription = "鎬讳环")]
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+        public System.Decimal amount { get; set; }
+
+
+        
+    }
+}
diff --git a/CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs b/CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs
index 3320b8c..d44c1bb 100644
--- a/CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs
+++ b/CoreCms.Net.Model/ViewModels/DTO/OrderDTO.cs
@@ -11,8 +11,10 @@
 
 using System;
 using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
 using CoreCms.Net.Model.Entities;
 using Newtonsoft.Json.Linq;
+using SqlSugar;
 
 namespace CoreCms.Net.Model.ViewModels.DTO
 {
@@ -52,6 +54,26 @@
         ///     鍖哄煙搴忓垪
         /// </summary>
         public int areaId { get; set; }
+
+        /// <summary>
+        ///     璁㈠崟缂栧彿
+        /// </summary>
+        public string orderId { get; set; }
+
+        /// <summary>
+        ///     鐘舵��
+        /// </summary>
+        public int status { get; set; } = 0;
+
+        /// <summary>
+        ///     鏄庣粏id
+        /// </summary>
+        public string itemIds { get; set; }
+
+        /// <summary>
+        ///     鏄庣粏鏁伴噺
+        /// </summary>
+        public string itemNums { get; set; }
 
         /// <summary>
         ///     璐墿杞﹀簭鍒�
@@ -458,4 +480,92 @@
         /// </summary>
         public decimal refund { get; set; } = 0;
     }
+
+
+
+
+    /// <summary>
+    ///     璁″垝璁㈠崟
+    /// </summary>
+    public class JiHuaOrder
+    {
+
+
+        /// <summary>
+        /// 瀛︽牎
+        /// </summary>
+
+
+
+        public System.String shipAddress { get; set; }
+
+        /// <summary>
+        /// 鑱旂郴浜�
+        /// </summary>
+
+
+        public System.String shipName { get; set; }
+
+
+
+        /// <summary>
+        /// 鑱旂郴鐢佃瘽
+        /// </summary>
+
+
+
+        public System.String shipMobile { get; set; }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+      
+
+ 
+
+
+        /// <summary>
+        /// 鍟嗗搧鍚嶇О
+        /// </summary>
+       
+        public System.String name { get; set; }
+
+
+        /// <summary>
+        /// 鍟嗗搧瑙勬牸
+        /// </summary>
+       
+        public System.String specification { get; set; }
+
+
+        /// <summary>
+        /// 璐у搧浠锋牸鍗曚环
+        /// </summary>
+       
+        public System.Decimal price { get; set; }
+
+
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+       
+        public System.Int32 nums { get; set; }
+       
+
+
+    }
 }
\ No newline at end of file
diff --git a/CoreCms.Net.Repository/Order/CoreCmsPlanOrderItemRepository.cs b/CoreCms.Net.Repository/Order/CoreCmsPlanOrderItemRepository.cs
new file mode 100644
index 0000000..f4cadba
--- /dev/null
+++ b/CoreCms.Net.Repository/Order/CoreCmsPlanOrderItemRepository.cs
@@ -0,0 +1,224 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/4/17 13:28:37
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Caching.Manual;
+using CoreCms.Net.Configuration;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.IRepository;
+using CoreCms.Net.IRepository.UnitOfWork;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+using CoreCms.Net.Model.Entities.Order;
+
+namespace CoreCms.Net.Repository
+{
+    /// <summary>
+    /// 璁″垝璁㈠崟鏄庣粏琛� 鎺ュ彛瀹炵幇
+    /// </summary>
+    public class CoreCmsPlanOrderItemRepository : BaseRepository<CoreCmsPlanOrderItem>, ICoreCmsPlanOrderItemRepository
+    {
+        private readonly IUnitOfWork _unitOfWork;
+        public CoreCmsPlanOrderItemRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
+        {
+            _unitOfWork = unitOfWork;
+        }
+
+       #region 瀹炵幇閲嶅啓澧炲垹鏀规煡鎿嶄綔==========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity">瀹炰綋鏁版嵁</param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> InsertAsync(CoreCmsPlanOrderItem entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Insertable(entity).ExecuteReturnIdentityAsync() > 0;
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(CoreCmsPlanOrderItem entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var oldModel = await DbClient.Queryable<CoreCmsPlanOrderItem>().In(entity.id).SingleAsync();
+            if (oldModel == null)
+            {
+            jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+            return jm;
+            }
+            //浜嬬墿澶勭悊杩囩▼寮�濮�
+        	oldModel.id = entity.id;
+            oldModel.orderId = entity.orderId;
+            oldModel.name = entity.name;
+            oldModel.specification = entity.specification;
+            oldModel.price = entity.price;
+            oldModel.nums = entity.nums;
+            oldModel.amount = entity.amount;
+            oldModel.createTime = entity.createTime;
+            oldModel.upDataTime = entity.upDataTime;
+            oldModel.createBy = entity.createBy;
+            oldModel.upDataBy = entity.upDataBy;
+            oldModel.isdelete = entity.isdelete;
+            
+            //浜嬬墿澶勭悊杩囩▼缁撴潫
+            var bl = await DbClient.Updateable(oldModel).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(List<CoreCmsPlanOrderItem> entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Updateable(entity).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Deleteable<CoreCmsPlanOrderItem>(id).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Deleteable<CoreCmsPlanOrderItem>().In(ids).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
+
+            return jm;
+        }
+
+        #endregion
+
+       #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        public async Task<List<CoreCmsPlanOrderItem>> GetCaChe()
+        {
+           var list = await DbClient.Queryable<CoreCmsPlanOrderItem>().With(SqlWith.NoLock).WithCache().ToListAsync();
+            return list;
+        }
+
+        #endregion
+
+
+        #region 閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        public async Task<IPageList<CoreCmsPlanOrderItem>> QueryPageAsync(Expression<Func<CoreCmsPlanOrderItem, bool>> predicate,
+            Expression<Func<CoreCmsPlanOrderItem, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false)
+        {
+            RefAsync<int> totalCount = 0;
+            List<CoreCmsPlanOrderItem> page;
+            if (blUseNoLock)
+            {
+                page = await DbClient.Queryable<CoreCmsPlanOrderItem>()
+                .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+                .WhereIF(predicate != null, predicate).Select(p => new CoreCmsPlanOrderItem
+                {
+                      id = p.id,
+                orderId = p.orderId,
+                name = p.name,
+                specification = p.specification,
+                price = p.price,
+                nums = p.nums,
+                amount = p.amount,
+                createTime = p.createTime,
+                upDataTime = p.upDataTime,
+                createBy = p.createBy,
+                upDataBy = p.upDataBy,
+                isdelete = p.isdelete,
+                
+                }).With(SqlWith.NoLock).ToPageListAsync(pageIndex, pageSize, totalCount);
+            }
+            else
+            {
+                page = await DbClient.Queryable<CoreCmsPlanOrderItem>()
+                .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+                .WhereIF(predicate != null, predicate).Select(p => new CoreCmsPlanOrderItem
+                {
+                      id = p.id,
+                orderId = p.orderId,
+                name = p.name,
+                specification = p.specification,
+                price = p.price,
+                nums = p.nums,
+                amount = p.amount,
+                createTime = p.createTime,
+                upDataTime = p.upDataTime,
+                createBy = p.createBy,
+                upDataBy = p.upDataBy,
+                isdelete = p.isdelete,
+                
+                }).ToPageListAsync(pageIndex, pageSize, totalCount);
+            }
+            var list = new PageList<CoreCmsPlanOrderItem>(page, pageIndex, pageSize, totalCount);
+            return list;
+        }
+
+        #endregion
+
+    }
+}
diff --git a/CoreCms.Net.Repository/Order/CoreCmsPlanOrderRepository.cs b/CoreCms.Net.Repository/Order/CoreCmsPlanOrderRepository.cs
new file mode 100644
index 0000000..a6a3b9f
--- /dev/null
+++ b/CoreCms.Net.Repository/Order/CoreCmsPlanOrderRepository.cs
@@ -0,0 +1,230 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/4/17 13:28:20
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Caching.Manual;
+using CoreCms.Net.Configuration;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.IRepository;
+using CoreCms.Net.IRepository.UnitOfWork;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+using CoreCms.Net.Model.Entities.Order;
+
+namespace CoreCms.Net.Repository
+{
+    /// <summary>
+    /// 璁″垝璁㈠崟琛� 鎺ュ彛瀹炵幇
+    /// </summary>
+    public class CoreCmsPlanOrderRepository : BaseRepository<CoreCmsPlanOrder>, ICoreCmsPlanOrderRepository
+    {
+        private readonly IUnitOfWork _unitOfWork;
+        public CoreCmsPlanOrderRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
+        {
+            _unitOfWork = unitOfWork;
+        }
+
+       #region 瀹炵幇閲嶅啓澧炲垹鏀规煡鎿嶄綔==========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity">瀹炰綋鏁版嵁</param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> InsertAsync(CoreCmsPlanOrder entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Insertable(entity).ExecuteReturnIdentityAsync() > 0;
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(CoreCmsPlanOrder entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var oldModel = await DbClient.Queryable<CoreCmsPlanOrder>().In(entity.orderId).SingleAsync();
+            if (oldModel == null)
+            {
+            jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+            return jm;
+            }
+            //浜嬬墿澶勭悊杩囩▼寮�濮�
+        	oldModel.orderId = entity.orderId;
+            oldModel.orderAmount = entity.orderAmount;
+            oldModel.status = entity.status;
+            oldModel.userId = entity.userId;
+            oldModel.shipAddress = entity.shipAddress;
+            oldModel.shipName = entity.shipName;
+            oldModel.shipMobile = entity.shipMobile;
+            oldModel.oldOrderAmount = entity.oldOrderAmount;
+            oldModel.keYongAmount = entity.keYongAmount;
+            oldModel.createTime = entity.createTime;
+            oldModel.upDataTime = entity.upDataTime;
+            oldModel.createBy = entity.createBy;
+            oldModel.upDataBy = entity.upDataBy;
+            oldModel.isdelete = entity.isdelete;
+            
+            //浜嬬墿澶勭悊杩囩▼缁撴潫
+            var bl = await DbClient.Updateable(oldModel).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(List<CoreCmsPlanOrder> entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Updateable(entity).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Deleteable<CoreCmsPlanOrder>(id).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Deleteable<CoreCmsPlanOrder>().In(ids).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
+
+            return jm;
+        }
+
+        #endregion
+
+       #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        public async Task<List<CoreCmsPlanOrder>> GetCaChe()
+        {
+           var list = await DbClient.Queryable<CoreCmsPlanOrder>().With(SqlWith.NoLock).WithCache().ToListAsync();
+            return list;
+        }
+
+        #endregion
+
+
+        #region 閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        public async Task<IPageList<CoreCmsPlanOrder>> QueryPageAsync(Expression<Func<CoreCmsPlanOrder, bool>> predicate,
+            Expression<Func<CoreCmsPlanOrder, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false)
+        {
+            RefAsync<int> totalCount = 0;
+            List<CoreCmsPlanOrder> page;
+            if (blUseNoLock)
+            {
+                page = await DbClient.Queryable<CoreCmsPlanOrder>()
+                .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+                .WhereIF(predicate != null, predicate).Select(p => new CoreCmsPlanOrder
+                {
+                      orderId = p.orderId,
+                orderAmount = p.orderAmount,
+                status = p.status,
+                userId = p.userId,
+                shipAddress = p.shipAddress,
+                shipName = p.shipName,
+                shipMobile = p.shipMobile,
+                oldOrderAmount = p.oldOrderAmount,
+                keYongAmount = p.keYongAmount,
+                createTime = p.createTime,
+                upDataTime = p.upDataTime,
+                createBy = p.createBy,
+                upDataBy = p.upDataBy,
+                isdelete = p.isdelete,
+                
+                }).With(SqlWith.NoLock).ToPageListAsync(pageIndex, pageSize, totalCount);
+            }
+            else
+            {
+                page = await DbClient.Queryable<CoreCmsPlanOrder>()
+                .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+                .WhereIF(predicate != null, predicate).Select(p => new CoreCmsPlanOrder
+                {
+                      orderId = p.orderId,
+                orderAmount = p.orderAmount,
+                status = p.status,
+                userId = p.userId,
+                shipAddress = p.shipAddress,
+                shipName = p.shipName,
+                shipMobile = p.shipMobile,
+                oldOrderAmount = p.oldOrderAmount,
+                keYongAmount = p.keYongAmount,
+                createTime = p.createTime,
+                upDataTime = p.upDataTime,
+                createBy = p.createBy,
+                upDataBy = p.upDataBy,
+                isdelete = p.isdelete,
+                
+                }).ToPageListAsync(pageIndex, pageSize, totalCount);
+            }
+            var list = new PageList<CoreCmsPlanOrder>(page, pageIndex, pageSize, totalCount);
+            return list;
+        }
+
+        #endregion
+
+    }
+}
diff --git a/CoreCms.Net.Services/Order/CoreCmsPlanOrderItemServices.cs b/CoreCms.Net.Services/Order/CoreCmsPlanOrderItemServices.cs
new file mode 100644
index 0000000..e6bb1f5
--- /dev/null
+++ b/CoreCms.Net.Services/Order/CoreCmsPlanOrderItemServices.cs
@@ -0,0 +1,130 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/4/17 13:28:37
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Configuration;
+using CoreCms.Net.IRepository;
+using CoreCms.Net.IRepository.UnitOfWork;
+using CoreCms.Net.IServices;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.Order;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+
+
+namespace CoreCms.Net.Services
+{
+    /// <summary>
+    /// 璁″垝璁㈠崟鏄庣粏琛� 鎺ュ彛瀹炵幇
+    /// </summary>
+    public class CoreCmsPlanOrderItemServices : BaseServices<CoreCmsPlanOrderItem>, ICoreCmsPlanOrderItemServices
+    {
+        private readonly ICoreCmsPlanOrderItemRepository _dal;
+        private readonly IUnitOfWork _unitOfWork;
+
+        public CoreCmsPlanOrderItemServices(IUnitOfWork unitOfWork, ICoreCmsPlanOrderItemRepository dal)
+        {
+            this._dal = dal;
+            base.BaseDal = dal;
+            _unitOfWork = unitOfWork;
+        }
+
+        #region 瀹炵幇閲嶅啓澧炲垹鏀规煡鎿嶄綔==========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity">瀹炰綋鏁版嵁</param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> InsertAsync(CoreCmsPlanOrderItem entity)
+        {
+            return await _dal.InsertAsync(entity);
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(CoreCmsPlanOrderItem entity)
+        {
+            return await _dal.UpdateAsync(entity);
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(List<CoreCmsPlanOrderItem> entity)
+        {
+            return await _dal.UpdateAsync(entity);
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
+        {
+            return await _dal.DeleteByIdAsync(id);
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
+        {
+            return await _dal.DeleteByIdsAsync(ids);
+        }
+
+        #endregion
+
+        #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        public async Task<List<CoreCmsPlanOrderItem>> GetCaChe()
+        {
+            return await _dal.GetCaChe();
+        }
+
+        #endregion
+
+       #region 閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        public async Task<IPageList<CoreCmsPlanOrderItem>> QueryPageAsync(Expression<Func<CoreCmsPlanOrderItem, bool>> predicate,
+            Expression<Func<CoreCmsPlanOrderItem, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false)
+        {
+            return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock);
+        }
+        #endregion
+
+    }
+}
diff --git a/CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs b/CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs
new file mode 100644
index 0000000..0464b05
--- /dev/null
+++ b/CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs
@@ -0,0 +1,383 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/4/17 13:28:20
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using CoreCms.Net.Configuration;
+using CoreCms.Net.IRepository;
+using CoreCms.Net.IRepository.UnitOfWork;
+using CoreCms.Net.IServices;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.Expression;
+using CoreCms.Net.Model.Entities.Order;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using CoreCms.Net.Utility.Helper;
+using Newtonsoft.Json.Linq;
+using Newtonsoft.Json;
+using SqlSugar;
+using static CoreCms.Net.Configuration.GlobalEnumVars;
+using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinExpressIntracityQueryStoreResponse.Types;
+using static SKIT.FlurlHttpClient.Wechat.Api.Models.ProductSPUAddRequest.Types;
+using System.Linq;
+using CoreCms.Net.Model.Entities.baifenbingfa.apply;
+using CoreCms.Net.Model.ViewModels.DTO;
+using CoreCms.Net.Model.Entities.baifenbingfa.Promote;
+using static SKIT.FlurlHttpClient.Wechat.Api.Models.ScanProductAddV2Request.Types.Product.Types;
+using NPOI.SS.Formula.Functions;
+
+
+namespace CoreCms.Net.Services
+{
+    /// <summary>
+    /// 璁″垝璁㈠崟琛� 鎺ュ彛瀹炵幇
+    /// </summary>
+    public class CoreCmsPlanOrderServices : BaseServices<CoreCmsPlanOrder>, ICoreCmsPlanOrderServices
+    {
+        private readonly ICoreCmsPlanOrderRepository _dal;
+        private readonly IUnitOfWork _unitOfWork;
+        private readonly ICoreCmsPlanOrderItemRepository _itemDal;
+        private readonly ICoreCmsUserServices _coreCmsUserServices;
+
+        public CoreCmsPlanOrderServices(IUnitOfWork unitOfWork, ICoreCmsPlanOrderRepository dal
+            , ICoreCmsPlanOrderItemRepository itemDal
+            , ICoreCmsUserServices coreCmsUserServices)
+        {
+            this._dal = dal;
+            base.BaseDal = dal;
+            _unitOfWork = unitOfWork;
+            _itemDal = itemDal;
+            _coreCmsUserServices = coreCmsUserServices;
+        }
+
+        #region 瀹炵幇閲嶅啓澧炲垹鏀规煡鎿嶄綔==========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity">瀹炰綋鏁版嵁</param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> InsertAsync(CoreCmsPlanOrder entity)
+        {
+            return await _dal.InsertAsync(entity);
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(CoreCmsPlanOrder entity)
+        {
+            return await _dal.UpdateAsync(entity);
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(List<CoreCmsPlanOrder> entity)
+        {
+            return await _dal.UpdateAsync(entity);
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
+        {
+            return await _dal.DeleteByIdAsync(id);
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
+        {
+            return await _dal.DeleteByIdsAsync(ids);
+        }
+
+        #endregion
+
+        #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        public async Task<List<CoreCmsPlanOrder>> GetCaChe()
+        {
+            return await _dal.GetCaChe();
+        }
+
+        #endregion
+
+       #region 閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        public async Task<IPageList<CoreCmsPlanOrder>> QueryPageAsync(Expression<Func<CoreCmsPlanOrder, bool>> predicate,
+            Expression<Func<CoreCmsPlanOrder, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false)
+        {
+            return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock);
+        }
+        #endregion
+
+        #region 鑾峰彇璁″垝璁㈠崟鍒楄〃寰俊灏忕▼搴�
+        /// <summary>
+        /// 鑾峰彇璁″垝璁㈠崟鍒楄〃寰俊灏忕▼搴�
+        /// </summary>
+        /// <returns></returns>
+        public async Task<WebApiCallBack> GetOrderList(int status = -1, int userId = 0, int page = 1, int limit = 5)
+        {
+            var jm = new WebApiCallBack { status = true };
+
+            var where = PredicateBuilder.True<CoreCmsPlanOrder>();
+
+            if (status > -1)
+            {
+                where = where.And(p => p.status == status);
+            }
+            if (userId > 0)
+            {
+                where = where.And(p => p.userId == userId);
+            }
+            var list = await _dal.QueryPageAsync(where, p => p.createTime, OrderByType.Desc, page, limit);
+
+            if (list!=null && list.Count>0)
+            {
+                foreach (var order in list)
+                {
+                    //鑾峰彇鐩稿叧鐘舵�佹弿杩拌鏄庤浆鎹�
+                    order.statusText = EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.PlanOrderTiJiao>(order.status);
+                    
+                }
+            }
+            jm.data = new
+            {
+                list,
+                count = list.TotalCount,
+                page,
+                limit,
+                status
+            };
+
+            return jm;
+        }
+
+
+        #endregion
+
+
+
+        /// <summary>
+        ///     鍒涘缓璁㈠崟
+        /// </summary>
+        /// <param name="userId">鐢ㄦ埛搴忓垪</param>
+        /// <param name="userName">鐢ㄦ埛鏄电О</param>
+        /// <param name="status">璁″垝璁㈠崟鐘舵��</param>
+        /// <param name="itemIds">鏄庣粏id</param>
+        /// <param name="itemNums">鏄庣粏鏁伴噺</param>
+        /// <returns></returns>
+        public async Task<WebApiCallBack> ToUpdate(string orderId, int userId, string userName, int status, string itemIds, string itemNums)
+        {
+            var jm = new WebApiCallBack() { methodDescription = "淇敼璁″垝璁㈠崟" };
+            try
+            {
+                //寮�濮嬩簨鍔″鐞�
+                _unitOfWork.BeginTran();
+                var order  = await _dal.QueryByIdAsync(orderId);
+               
+
+                order.upDataBy = userName;
+                order.upDataTime = DateTime.Now;
+
+                List<CoreCmsPlanOrderItem> orderItems;
+                var ids = CommonHelper.StringToIntArray(itemIds);
+                var nums = CommonHelper.StringToStringArray(itemNums);
+                orderItems = await _itemDal.QueryListByClauseAsync(x => x.orderId == orderId);
+                decimal orderAmount = 0;
+                for (int i=0;i< ids.Length; i++)
+                {
+                    var id = ids[i];
+                    int num = 0;
+                    int.TryParse(nums[i], out num);
+
+                   var item = orderItems.Where(p => p.id == id).FirstOrDefault();
+                    item.nums = num;
+                    item.amount = item.price * (decimal)num;
+                    var jms = await _itemDal.UpdateAsync(item);
+                    orderAmount += item.amount;
+                }
+
+                order.orderAmount = orderAmount;
+                order.keYongAmount = order.oldOrderAmount - order.orderAmount;
+
+                if (order.keYongAmount < 0)
+                {
+                    _unitOfWork.RollbackTran();
+                    jm.status = false;
+                    jm.otherData = "鍙敤浣欓涓嶈兘涓鸿礋";
+                }
+
+                if (status == 2)
+                {
+                    order.status = 2;
+
+
+                    if (order.keYongAmount > 0)
+                    {
+                        //淇敼鐢ㄦ埛浣欓
+
+                        var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, order.keYongAmount, "鐢ㄦ埛璁″垝璁㈠崟娆鹃」缁撲綑");
+                    }
+                    
+                }
+
+
+                //鏍¢獙鍚庡啀鍒涘缓璁㈠崟
+                var jmss = await _dal.UpdateAsync(order);
+
+              
+ 
+ 
+                   
+
+                _unitOfWork.CommitTran();
+
+                jm.status = true;
+                jm.data = order;
+                jm.msg = "淇敼鎴愬姛";
+            }
+            catch (Exception e)
+            {
+                _unitOfWork.RollbackTran();
+                jm.status = false;
+                jm.otherData = e.ToString();
+            }
+            return jm;
+        }
+
+
+
+
+
+        /// <summary>
+        ///     鍒涘缓璁㈠崟
+        /// </summary>
+        /// <param name="jiHuaOrders">璁″垝璁㈠崟</param>
+        /// <param name="userId">鐢ㄦ埛搴忓垪</param>
+        /// <param name="userName">鐢ㄦ埛鏄电О</param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> ToAddJiHua(List<JiHuaOrder> jiHuaOrders, int userId, string userName)
+        {
+            var jm = new AdminUiCallBack() ;
+            try
+            {
+                //寮�濮嬩簨鍔″鐞�
+                _unitOfWork.BeginTran();
+                CoreCmsPlanOrder order = new CoreCmsPlanOrder();
+                order.orderId = CommonHelper.GetSerialNumberType((int)GlobalEnumVars.SerialNumberType.璁″垝璁㈠崟缂栧彿);
+
+                order.status = 1;
+                order.shipMobile = jiHuaOrders[0].shipMobile;
+                order.shipAddress = jiHuaOrders[0].shipAddress;
+                order.shipName = jiHuaOrders[0].shipName; ;
+                var user = await _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Where(x => x.mobile == order.shipMobile && x.isDelete == false && x.status == 1).FirstAsync();
+                if (user != null)
+                {
+                    order.userId = user.id;
+                }
+                else
+                {
+                    jm.code = 1;
+                    jm.msg = order.shipMobile + "娌℃湁鎵惧埌鐢ㄦ埛";
+                    return jm;
+                }
+               
+                order.createBy = userName;
+                order.createTime = DateTime.Now;
+                order.upDataBy = userName;
+                order.upDataTime = DateTime.Now;
+                order.isdelete = false;
+             
+
+
+
+
+
+                decimal orderAmount = 0;
+                for (int i = 0; i < jiHuaOrders.Count; i++)
+                {
+                    var item = new CoreCmsPlanOrderItem();
+                    item.orderId = order.orderId;
+                    item.name = jiHuaOrders[i].name;
+                    item.specification = jiHuaOrders[i].specification;
+                    item.price = jiHuaOrders[i].price; 
+                    item.nums = jiHuaOrders[i].nums; ;
+                    item.amount = item.price * (decimal)jiHuaOrders[i].nums;
+                    item.createBy = userName;
+                    item.createTime = DateTime.Now;
+                    item.upDataBy = userName;
+                    item.upDataTime = DateTime.Now;
+                    item.isdelete = false;
+                    var jms = await _itemDal.InsertAsync(item);
+                    orderAmount += item.amount;
+                }
+
+                order.orderAmount = orderAmount;
+                order.oldOrderAmount = orderAmount;
+                order.keYongAmount = 0;
+
+                //鏍¢獙鍚庡啀鍒涘缓璁㈠崟
+                var jmss = await _dal.InsertAsync(order);
+
+
+
+
+
+
+
+
+
+
+
+                _unitOfWork.CommitTran();
+
+                jm.code = 0;
+                jm.data = order;
+                jm.msg = "瀵煎叆鎴愬姛";
+            }
+            catch (Exception e)
+            {
+                _unitOfWork.RollbackTran();
+                jm.code = 0;
+                jm.otherData = e.ToString();
+            }
+            return jm;
+        }
+    }
+}
diff --git a/CoreCms.Net.Utility/Helper/CommonHelper.cs b/CoreCms.Net.Utility/Helper/CommonHelper.cs
index 69386c3..43aab4f 100644
--- a/CoreCms.Net.Utility/Helper/CommonHelper.cs
+++ b/CoreCms.Net.Utility/Helper/CommonHelper.cs
@@ -312,6 +312,9 @@
                         str += charsStr2[rand.Next(0, charsLen2)];
                     }
                     break;
+                case (int)GlobalEnumVars.SerialNumberType.璁″垝璁㈠崟缂栧彿:         //璁″垝璁㈠崟缂栧彿
+                    str = type + YitIdHelper.NextId().ToString();
+                    break;
                 default:
                     str = 'T' + YitIdHelper.NextId().ToString();
                     break;
diff --git a/CoreCms.Net.Web.Admin/Controllers/Com/ToolsController.cs b/CoreCms.Net.Web.Admin/Controllers/Com/ToolsController.cs
index ff8fe3c..e4aa7f1 100644
--- a/CoreCms.Net.Web.Admin/Controllers/Com/ToolsController.cs
+++ b/CoreCms.Net.Web.Admin/Controllers/Com/ToolsController.cs
@@ -37,8 +37,12 @@
 using COSXML.Auth;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using Newtonsoft.Json;
+using NPOI.HSSF.UserModel;
+using NPOI.SS.UserModel;
+using NPOI.XSSF.UserModel;
 using SKIT.FlurlHttpClient.Wechat.Api;
 using SKIT.FlurlHttpClient.Wechat.Api.Models;
 using SqlSugar;
@@ -89,6 +93,7 @@
         private readonly IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
 
         private readonly SemaphoreSlim _semaphore;
+        private readonly ICoreCmsPlanOrderServices _coreCmsPlanOrderServices;
 
         /// <summary>
         ///     鏋勯�犲嚱鏁�
@@ -111,7 +116,8 @@
             , ISysUserRoleServices sysUserRoleServices
             , ISysOrganizationServices sysOrganizationServices,
             ICoreCmsLogisticsServices logisticsServices, ISysLoginRecordServices sysLoginRecordServices, ISysNLogRecordsServices sysNLogRecordsServices, ICoreCmsBillPaymentsServices paymentsServices, ICoreCmsBillDeliveryServices billDeliveryServices, ICoreCmsUserServices userServices, ICoreCmsOrderServices orderServices, ICoreCmsBillAftersalesServices aftersalesServices, ICoreCmsSettingServices settingServices, ICoreCmsProductsServices productsServices, ICoreCmsServicesServices servicesServices, ISysRoleMenuServices sysRoleMenuServices
-            , IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsPagesServices pagesServices, IToolsServices toolsServices, ICoreCmsReportsServices reportsServices, ICoreCmsGoodsCategoryServices goodsCategoryServices)
+            , IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsPagesServices pagesServices, IToolsServices toolsServices, ICoreCmsReportsServices reportsServices, ICoreCmsGoodsCategoryServices goodsCategoryServices
+            , ICoreCmsPlanOrderServices  coreCmsPlanOrderServices )
         {
             _user = user;
             _webHostEnvironment = webHostEnvironment;
@@ -148,6 +154,7 @@
             _toolsServices = toolsServices;
             _reportsServices = reportsServices;
             _goodsCategoryServices = goodsCategoryServices;
+            _coreCmsPlanOrderServices = coreCmsPlanOrderServices;
 
             //鏈�澶氬厑璁�2涓嚎绋嬪悓鏃惰闂�;
             _semaphore = new SemaphoreSlim(2);
@@ -363,6 +370,258 @@
 
         //閫氱敤鎿嶄綔=========================================================================
 
+        #region 璁″垝璁㈠崟涓婁紶鎺ュ彛====================================================
+
+        /// <summary>
+        /// 璁″垝璁㈠崟涓婁紶鎺ュ彛
+        /// </summary>
+        /// <returns></returns>
+        [Authorize]
+        [HttpPost]
+        public async Task<AdminUiCallBack> UploadFilesXls()
+        {
+
+            var jm = new AdminUiCallBack();
+            await _semaphore.WaitAsync();
+            try
+            {
+                var filesStorageOptions = await _coreCmsSettingServices.GetFilesStorageOptions();
+
+                //鍒濆鍖栦笂浼犲弬鏁�
+                var maxSize = 1024 * 1024 * filesStorageOptions.MaxSize; //涓婁紶澶у皬5M
+
+                var file = Request.Form.Files["file"];
+                if (file == null)
+                {
+                    jm.msg = "璇烽�夋嫨鏂囦欢";
+                    return jm;
+                }
+
+                var fileName = file.FileName;
+                var fileExt = Path.GetExtension(fileName).ToLowerInvariant();
+
+                //妫�鏌ュぇ灏�
+                if (file.Length > maxSize)
+                {
+                    jm.msg = "涓婁紶鏂囦欢澶у皬瓒呰繃闄愬埗锛屾渶澶у厑璁镐笂浼�" + filesStorageOptions.MaxSize + "M";
+                    return jm;
+                }
+
+                //妫�鏌ユ枃浠舵墿灞曞悕
+                if (string.IsNullOrEmpty(fileExt) ||
+                    Array.IndexOf(filesStorageOptions.FileTypes.Split(','), fileExt.Substring(1).ToLower()) == -1)
+                {
+                    jm.msg = "涓婁紶鏂囦欢鎵╁睍鍚嶆槸涓嶅厑璁哥殑鎵╁睍鍚�,璇蜂笂浼犲悗缂�鍚嶄负锛�" + filesStorageOptions.FileTypes;
+                    return jm;
+                }
+                var lie = new List<JiHuaOrder>();
+                using (var fileStream = file.OpenReadStream())
+                {
+
+                    // 浣跨敤HSSFWorkbook鎵撳紑.xls鏍煎紡鐨勬枃浠�
+                    IWorkbook workbook = new XSSFWorkbook(fileStream);
+
+                    // 鑾峰彇绗竴涓伐浣滆〃
+                    ISheet sheet = workbook.GetSheetAt(0);
+
+                
+
+                    // 杩唬宸ヤ綔琛ㄤ腑鐨勬墍鏈夎
+                    for (int i = 1; i <= sheet.LastRowNum; i++)
+                    {
+                        var hang = new JiHuaOrder();
+                        IRow row = sheet.GetRow(i);
+                        if (row == null) continue; // 璺宠繃绌鸿
+
+                        ICell cell1 = row.GetCell(1);
+                        if (cell1 == null)
+                        {
+                            jm.msg ="绗�" +(i+1) + "瀛︽牎涓嶈兘涓虹┖";
+                            return jm;
+                        }
+                        hang.shipAddress = getcellvalue(cell1);
+
+                        ICell cell2 = row.GetCell(2);
+                        if (cell2 == null)
+                        {
+                            jm.msg = "绗�" + (i + 1) + "鑱旂郴浜轰笉鑳戒负绌�";
+                            return jm;
+                        }
+                        hang.shipName = getcellvalue(cell2);
+
+                        ICell cell3 = row.GetCell(3);
+                        if (cell3 == null)
+                        {
+                            jm.msg = "绗�" + (i + 1) + "鑱旂郴鐢佃瘽涓嶈兘涓虹┖";
+                            return jm;
+                        }
+                        hang.shipMobile = getcellvalue(cell3);
+
+                        ICell cell4 = row.GetCell(4);
+                        if (cell4 == null)
+                        {
+                            jm.msg = "绗�" + (i + 1) + "鍟嗗搧鍚嶇О涓嶈兘涓虹┖";
+                            return jm;
+                        }
+                        hang.name = getcellvalue(cell4);
+
+                        ICell cell5 = row.GetCell(5);
+                        if (cell5 == null)
+                        {
+                            jm.msg = "绗�" + (i + 1) + "瑙勬牸涓嶈兘涓虹┖";
+                            return jm;
+                        }
+                        hang.specification = getcellvalue(cell5);
+
+                        ICell cell6 = row.GetCell(6);
+                        if (cell6 == null)
+                        {
+                            jm.msg = "绗�" + (i + 1) + "鍗曚环锛堝厓锛変笉鑳戒负绌�";
+                            return jm;
+                        }
+                        hang.price = decimal.Parse(getcellvalue(cell6));
+
+                        ICell cell7 = row.GetCell(7);
+                        if (cell7 == null)
+                        {
+                            jm.msg = "绗�" + (i + 1) + "鏁伴噺涓嶈兘涓虹┖";
+                            return jm;
+                        }
+                        hang.nums = int.Parse(getcellvalue(cell7)); ;
+
+                        lie.Add(hang);
+
+                    }
+                }
+                lie = lie.OrderBy(x => x.shipAddress).ThenBy(x => x.specification).ToList();
+                string url = string.Empty;
+                url = "121212";
+
+                if (lie!=null && lie.Count > 0)
+                {
+                   var  order = new List<JiHuaOrder>();
+                    for(int i=0;i< lie.Count; i++)
+                    {
+                        if (i == 0 )
+                        {
+                            order.Add(lie[i]);
+                            //if(lie.Count == 1)
+                            //{
+                            //    //淇濆瓨璁㈠崟
+                            //    jm = await  _coreCmsPlanOrderServices.ToAddJiHua(lie,_user.ID, _user.Name);
+                            //    if (jm.code == 1)
+                            //    {
+                            //        return jm;
+                            //    }
+                            //}
+                        }
+                        else
+                        {
+                            if(lie[i].shipAddress  == lie[i - 1].shipAddress)
+                            {
+                                order.Add(lie[i]);
+                            }
+                            else
+                            {
+                                //淇濆瓨璁㈠崟
+                                jm = await _coreCmsPlanOrderServices.ToAddJiHua(lie, _user.ID, _user.Name);
+                                if (jm.code == 1)
+                                {
+                                    return jm;
+                                }
+                                order = new List<JiHuaOrder>();
+                                order.Add(lie[i]);
+                            }
+                        }
+
+                        if (i == lie.Count - 1)
+                        {
+                            //淇濆瓨璁㈠崟
+                            jm = await _coreCmsPlanOrderServices.ToAddJiHua(lie, _user.ID, _user.Name);
+                            if (jm.code == 1)
+                            {
+                                return jm;
+                            }
+                        }
+                    }
+
+
+                }
+                else
+                {
+                    jm.code =1;
+                    jm.msg = "琛ㄦ牸鏃犳暟鎹�";
+                    jm.data = new
+                    {
+                        fileUrl = url,
+                        src = url
+                    };
+                }
+
+              
+
+              
+                var bl = !string.IsNullOrEmpty(url);
+                jm.code = bl ? 0 : 1;
+                jm.msg = bl ? "涓婁紶鎴愬姛!" : "涓婁紶澶辫触";
+                jm.data = new
+                {
+                    fileUrl = url,
+                    src = url
+                };
+            }
+            catch (Exception e)
+            {
+                jm.code = 1;
+                jm.msg = "鏁版嵁寮傚父";
+                jm.data = e;
+            }
+            finally
+            {
+                _semaphore.Release(); // 閲婃斁璁块棶
+            }
+
+            return jm;
+        }
+
+
+        /// <summary>
+        /// 璁″垝璁㈠崟涓婁紶鎺ュ彛
+        /// </summary>
+        /// <returns></returns>
+        public string getcellvalue(ICell cell)
+        {
+            string cellvalue = "";
+            switch (cell.CellType)
+            {
+                case CellType.String:
+                    // Console.WriteLine(cell.StringCellValue);
+                    cellvalue = cell.StringCellValue.Trim();
+                    break;
+                case CellType.Numeric:
+                    //Console.WriteLine(cell.NumericCellValue);
+                    cellvalue = cell.NumericCellValue.ToString().Trim();
+                    break;
+                case CellType.Boolean:
+                    //Console.WriteLine(cell.BooleanCellValue);
+                    cellvalue = cell.BooleanCellValue.ToString().Trim();
+                    break;
+                case CellType.Error:
+                    // Console.WriteLine(cell.ErrorCellValue);
+                    cellvalue = cell.ErrorCellValue.ToString().Trim();
+                    break;
+                    // 鍙互娣诲姞鍏朵粬绫诲瀷鐨刢ase
+            }
+
+            return cellvalue;
+        }
+
+
+
+
+        #endregion
+
+
         #region 閫氱敤涓婁紶鎺ュ彛====================================================
 
         /// <summary>
diff --git a/CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsPlanOrderController.cs b/CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsPlanOrderController.cs
new file mode 100644
index 0000000..78894d6
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/Controllers/Order/CoreCmsPlanOrderController.cs
@@ -0,0 +1,975 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/4/17 13:28:20
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+
+using System;
+using System.ComponentModel;
+using System.IO;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Configuration;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.Expression;
+using CoreCms.Net.Model.FromBody;
+using CoreCms.Net.Model.ViewModels.UI;
+using CoreCms.Net.Filter;
+using CoreCms.Net.Loging;
+using CoreCms.Net.IServices;
+using CoreCms.Net.Utility.Helper;
+using CoreCms.Net.Utility.Extensions;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Mvc;
+using NPOI.HSSF.UserModel;
+using SqlSugar;
+using CoreCms.Net.Web.Admin.Infrastructure;
+using CoreCms.Net.Model.Entities.Order;
+using CoreCms.Net.Services;
+using System.Threading;
+
+namespace CoreCms.Net.Web.Admin.Controllers
+{
+    /// <summary>
+    /// 璁″垝璁㈠崟琛�
+    ///</summary>
+    [Description("璁″垝璁㈠崟琛�")]
+    [Route("api/[controller]/[action]")]
+    [ApiController]
+    [RequiredErrorForAdmin]
+    [Authorize(Permissions.Name)]
+    public class CoreCmsPlanOrderController : ControllerBase
+    {
+        private readonly IWebHostEnvironment _webHostEnvironment;
+        private readonly ICoreCmsPlanOrderServices _CoreCmsPlanOrderServices;
+        private readonly ICoreCmsPlanOrderItemServices _planOrderItemServices;
+        private readonly ICoreCmsSettingServices _coreCmsSettingServices;
+        private readonly SemaphoreSlim _semaphore;
+
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        ///</summary>
+        public CoreCmsPlanOrderController(IWebHostEnvironment webHostEnvironment
+            ,ICoreCmsPlanOrderServices CoreCmsPlanOrderServices
+             , ICoreCmsPlanOrderItemServices planOrderItemServices
+            , ICoreCmsSettingServices coreCmsSettingServices
+            )
+        {
+            _webHostEnvironment = webHostEnvironment;
+            _CoreCmsPlanOrderServices = CoreCmsPlanOrderServices;
+            _planOrderItemServices = planOrderItemServices;
+            _coreCmsSettingServices = coreCmsSettingServices;
+        }
+
+        #region 鑾峰彇鍒楄〃============================================================
+        // POST: Api/CoreCmsPlanOrder/GetPageList
+         /// <summary>
+        /// 鑾峰彇鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鑾峰彇鍒楄〃")]
+        public async Task<AdminUiCallBack> GetPageList()
+        {
+            var jm = new AdminUiCallBack();
+            var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
+            var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
+            var where = PredicateBuilder.True<CoreCmsPlanOrder>();
+            //鑾峰彇鎺掑簭瀛楁
+            var orderField = Request.Form["orderField"].FirstOrDefault();
+
+            Expression<Func<CoreCmsPlanOrder, object>> orderEx = orderField switch
+            {
+                "orderId" => p => p.orderId,"orderAmount" => p => p.orderAmount,"status" => p => p.status,"userId" => p => p.userId,"shipAddress" => p => p.shipAddress,"shipName" => p => p.shipName,"shipMobile" => p => p.shipMobile,"oldOrderAmount" => p => p.oldOrderAmount,"keYongAmount" => p => p.keYongAmount,"createTime" => p => p.createTime,"upDataTime" => p => p.upDataTime,"createBy" => p => p.createBy,"upDataBy" => p => p.upDataBy,"isdelete" => p => p.isdelete,
+                _ => p => p.orderId
+            };
+
+            //璁剧疆鎺掑簭鏂瑰紡
+            var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
+            var orderBy = orderDirection switch
+            {
+                "asc" => OrderByType.Asc,
+                "desc" => OrderByType.Desc,
+                _ => OrderByType.Desc
+            };
+            //鏌ヨ绛涢��
+			
+			//璁㈠崟鍙� varchar
+			var orderId = Request.Form["orderId"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(orderId))
+            {
+                where = where.And(p => p.orderId.Contains(orderId));
+            }
+			//璋冩暣璁㈠崟閲戦 decimal
+			var orderAmount = Request.Form["orderAmount"].FirstOrDefault().ObjectToDecimal(0);
+            if (orderAmount > 0)
+            {
+                where = where.And(p => p.orderAmount == orderAmount);
+            }
+			//璁㈠崟鐘舵�� int
+			var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
+            if (status > 0)
+            {
+                where = where.And(p => p.status == status);
+            }
+			//鐢ㄦ埛ID 鍏宠仈user.id int
+			var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
+            if (userId > 0)
+            {
+                where = where.And(p => p.userId == userId);
+            }
+			//瀛︽牎 varchar
+			var shipAddress = Request.Form["shipAddress"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shipAddress))
+            {
+                where = where.And(p => p.shipAddress.Contains(shipAddress));
+            }
+			//鑱旂郴浜� varchar
+			var shipName = Request.Form["shipName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shipName))
+            {
+                where = where.And(p => p.shipName.Contains(shipName));
+            }
+			//鏀惰揣鐢佃瘽 varchar
+			var shipMobile = Request.Form["shipMobile"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shipMobile))
+            {
+                where = where.And(p => p.shipMobile.Contains(shipMobile));
+            }
+			//璁″垝璁㈠崟閲戦 decimal
+			var oldOrderAmount = Request.Form["oldOrderAmount"].FirstOrDefault().ObjectToDecimal(0);
+            if (oldOrderAmount > 0)
+            {
+                where = where.And(p => p.oldOrderAmount == oldOrderAmount);
+            }
+			//鍙敤浣欓 decimal
+			var keYongAmount = Request.Form["keYongAmount"].FirstOrDefault().ObjectToDecimal(0);
+            if (keYongAmount > 0)
+            {
+                where = where.And(p => p.keYongAmount == keYongAmount);
+            }
+			//寤虹珛鏃堕棿 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);
+                }
+            }
+			//淇敼鏃堕棿 datetime
+			var upDataTime = Request.Form["upDataTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(upDataTime))
+            {
+                if (upDataTime.Contains("鍒�"))
+                {
+                    var dts = upDataTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.upDataTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.upDataTime < dtEnd);
+                }
+                else
+                {
+                    var dt = upDataTime.ObjectToDate();
+                    where = where.And(p => p.upDataTime > dt);
+                }
+            }
+			//鍒涘缓浜� varchar
+			var createBy = Request.Form["createBy"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(createBy))
+            {
+                where = where.And(p => p.createBy.Contains(createBy));
+            }
+			//淇敼浜� varchar
+			var upDataBy = Request.Form["upDataBy"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(upDataBy))
+            {
+                where = where.And(p => p.upDataBy.Contains(upDataBy));
+            }
+			//鍒犻櫎鏍囧織 bit
+			var isdelete = Request.Form["isdelete"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(isdelete) && isdelete.ToLowerInvariant() == "true")
+            {
+                where = where.And(p => p.isdelete == true);
+            }
+            else if (!string.IsNullOrEmpty(isdelete) && isdelete.ToLowerInvariant() == "false")
+            {
+                where = where.And(p => p.isdelete == false);
+            }
+            //鑾峰彇鏁版嵁
+            var list = await _CoreCmsPlanOrderServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
+
+            if (list != null && list.Count > 0)
+            {
+                foreach (var order in list)
+                {
+                    //鑾峰彇鐩稿叧鐘舵�佹弿杩拌鏄庤浆鎹�
+                    order.statusText = EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.PlanOrderTiJiao>(order.status);
+
+                }
+            }
+
+            //杩斿洖鏁版嵁
+            jm.data = list;
+            jm.code = 0;
+            jm.count = list.TotalCount;
+            jm.msg = "鏁版嵁璋冪敤鎴愬姛!";
+            return jm;
+        }
+        #endregion
+
+        #region 棣栭〉鏁版嵁============================================================
+        // POST: Api/CoreCmsPlanOrder/GetIndex
+        /// <summary>
+        /// 棣栭〉鏁版嵁
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("棣栭〉鏁版嵁")]
+        public AdminUiCallBack GetIndex()
+        {
+            //杩斿洖鏁版嵁
+            var jm = new AdminUiCallBack { code = 0 };
+            return jm;
+        }
+        #endregion
+
+        #region 鍒涘缓鏁版嵁============================================================
+        // POST: Api/CoreCmsPlanOrder/GetCreate
+        /// <summary>
+        /// 鍒涘缓鏁版嵁
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鍒涘缓鏁版嵁")]
+        public AdminUiCallBack GetCreate()
+        {
+            //杩斿洖鏁版嵁
+            var jm = new AdminUiCallBack { code = 0 };
+            return jm;
+        }
+        #endregion
+
+        #region 鍒涘缓鎻愪氦============================================================
+        // POST: Api/CoreCmsPlanOrder/DoCreate
+        /// <summary>
+        /// 鍒涘缓鎻愪氦
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鍒涘缓鎻愪氦")]
+        public async Task<AdminUiCallBack> DoCreate([FromBody]CoreCmsPlanOrder entity)
+        {
+            var jm = await _CoreCmsPlanOrderServices.InsertAsync(entity);
+            return jm;
+        }
+        #endregion
+
+        #region 缂栬緫鏁版嵁============================================================
+        // POST: Api/CoreCmsPlanOrder/GetEdit
+        /// <summary>
+        /// 缂栬緫鏁版嵁
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("缂栬緫鏁版嵁")]
+        public async Task<AdminUiCallBack> GetEdit([FromBody]FMIntId entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var model = await _CoreCmsPlanOrderServices.QueryByIdAsync(entity.id, false);
+            if (model == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            jm.code = 0;
+            jm.data = model;
+
+            return jm;
+        }
+        #endregion
+
+        #region 缂栬緫鎻愪氦============================================================
+        // POST: Api/CoreCmsPlanOrder/Edit
+        /// <summary>
+        /// 缂栬緫鎻愪氦
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("缂栬緫鎻愪氦")]
+        public async Task<AdminUiCallBack> DoEdit([FromBody]CoreCmsPlanOrder entity)
+        {
+            var jm = await _CoreCmsPlanOrderServices.UpdateAsync(entity);
+            return jm;
+        }
+        #endregion
+
+        #region 鍒犻櫎鏁版嵁============================================================
+        // POST: Api/CoreCmsPlanOrder/DoDelete/10
+        /// <summary>
+        /// 鍗曢�夊垹闄�
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鍗曢�夊垹闄�")]
+        public async Task<AdminUiCallBack> DoDelete([FromBody]FMStringId entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var model = await _CoreCmsPlanOrderServices.ExistsAsync(p => p.orderId == entity.id, true);
+            if (!model)
+            {
+                jm.msg = GlobalConstVars.DataisNo;
+				return jm;
+            }
+            jm = await _CoreCmsPlanOrderServices.DeleteByIdAsync(entity.id);
+
+            return jm;
+        }
+        #endregion
+
+        #region 鎵归噺鍒犻櫎============================================================
+        // POST: Api/CoreCmsPlanOrder/DoBatchDelete/10,11,20
+        /// <summary>
+        /// 鎵归噺鍒犻櫎
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鎵归噺鍒犻櫎")]
+        public async Task<AdminUiCallBack> DoBatchDelete([FromBody]FMArrayIntIds entity)
+        {
+            var jm = await _CoreCmsPlanOrderServices.DeleteByIdsAsync(entity.id);
+            return jm;
+        }
+
+        #endregion
+
+        #region 棰勮鏁版嵁============================================================
+        // POST: Api/CoreCmsPlanOrder/GetDetails/10
+        /// <summary>
+        /// 棰勮鏁版嵁
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("棰勮鏁版嵁")]
+        public async Task<AdminUiCallBack> GetDetails([FromBody]FMStringId entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var model = await _CoreCmsPlanOrderServices.QueryByIdAsync(entity.id, false);
+            if (model == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            //鑾峰彇鐩稿叧鐘舵�佹弿杩拌鏄庤浆鎹�
+            model.statusText = EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.PlanOrderTiJiao>(model.status);
+
+
+            var modelItem = await _planOrderItemServices.QueryListByClauseAsync(p => p.orderId == entity.id, p => p.specification, OrderByType.Asc);
+            jm.data = new
+            {
+                model,
+                modelItem,
+            };
+            jm.code = 0;
+            //jm.data = model;
+
+            return jm;
+        }
+        #endregion
+
+        #region 閫夋嫨瀵煎嚭============================================================
+        // POST: Api/CoreCmsPlanOrder/SelectExportExcel/10
+        /// <summary>
+        /// 閫夋嫨瀵煎嚭
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("閫夋嫨瀵煎嚭")]
+        public async Task<AdminUiCallBack> SelectExportExcel([FromBody]FMArrayStringIds entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            //鍒涘缓Excel鏂囦欢鐨勫璞�
+            var book = new HSSFWorkbook();
+            //娣诲姞涓�涓猻heet
+            var mySheet = book.CreateSheet("Sheet1");
+            //鑾峰彇list鏁版嵁
+            var listModel = await _CoreCmsPlanOrderServices.QueryListByClauseAsync(p => entity.id.Contains(p.orderId), p => p.orderId, OrderByType.Asc, true);
+            //缁檚heet1娣诲姞绗竴琛岀殑澶撮儴鏍囬
+            var headerRow = mySheet.CreateRow(0);
+            var headerStyle = ExcelHelper.GetHeaderStyle(book);
+            var cellNum = 0;
+
+            var cell0 = headerRow.CreateCell(cellNum);
+            cell0.SetCellValue("璁㈠崟鍙�");
+            cell0.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell1 = headerRow.CreateCell(cellNum);
+            cell1.SetCellValue("璋冩暣璁㈠崟閲戦");
+            cell1.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell2 = headerRow.CreateCell(cellNum);
+            cell2.SetCellValue("璁㈠崟鐘舵��");
+            cell2.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell3 = headerRow.CreateCell(cellNum);
+            cell3.SetCellValue("鐢ㄦ埛ID 鍏宠仈user.id");
+            cell3.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell4 = headerRow.CreateCell(cellNum);
+            cell4.SetCellValue("瀛︽牎");
+            cell4.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell5 = headerRow.CreateCell(cellNum);
+            cell5.SetCellValue("鑱旂郴浜�");
+            cell5.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell6 = headerRow.CreateCell(cellNum);
+            cell6.SetCellValue("鏀惰揣鐢佃瘽");
+            cell6.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell7 = headerRow.CreateCell(cellNum);
+            cell7.SetCellValue("璁″垝璁㈠崟閲戦");
+            cell7.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell8 = headerRow.CreateCell(cellNum);
+            cell8.SetCellValue("鍙敤浣欓");
+            cell8.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell9 = headerRow.CreateCell(cellNum);
+            cell9.SetCellValue("寤虹珛鏃堕棿");
+            cell9.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell10 = headerRow.CreateCell(cellNum);
+            cell10.SetCellValue("淇敼鏃堕棿");
+            cell10.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell11 = headerRow.CreateCell(cellNum);
+            cell11.SetCellValue("鍒涘缓浜�");
+            cell11.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell12 = headerRow.CreateCell(cellNum);
+            cell12.SetCellValue("淇敼浜�");
+            cell12.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell13 = headerRow.CreateCell(cellNum);
+            cell13.SetCellValue("鍒犻櫎鏍囧織");
+            cell13.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            headerRow.Height = 30 * 20;
+            var commonCellStyle = ExcelHelper.GetCommonStyle(book);
+
+            //灏嗘暟鎹�愭鍐欏叆sheet1鍚勪釜琛�
+            for (var i = 0; i < listModel.Count; i++)
+            {
+                var rowTemp = mySheet.CreateRow(i + 1);
+                var cellNumTemp = 0;
+
+                    var rowTemp0 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp0.SetCellValue(listModel[i].orderId.ToString());
+                        rowTemp0.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp1 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp1.SetCellValue(listModel[i].orderAmount.ToString());
+                        rowTemp1.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp2 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp2.SetCellValue(listModel[i].status.ToString());
+                        rowTemp2.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp3 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp3.SetCellValue(listModel[i].userId.ToString());
+                        rowTemp3.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp4 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp4.SetCellValue(listModel[i].shipAddress.ToString());
+                        rowTemp4.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp5 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp5.SetCellValue(listModel[i].shipName.ToString());
+                        rowTemp5.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp6 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp6.SetCellValue(listModel[i].shipMobile.ToString());
+                        rowTemp6.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp7 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp7.SetCellValue(listModel[i].oldOrderAmount.ToString());
+                        rowTemp7.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp8 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp8.SetCellValue(listModel[i].keYongAmount.ToString());
+                        rowTemp8.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp9 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp9.SetCellValue(listModel[i].createTime.ToString());
+                        rowTemp9.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp10 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp10.SetCellValue(listModel[i].upDataTime.ToString());
+                        rowTemp10.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp11 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp11.SetCellValue(listModel[i].createBy.ToString());
+                        rowTemp11.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp12 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp12.SetCellValue(listModel[i].upDataBy.ToString());
+                        rowTemp12.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp13 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp13.SetCellValue(listModel[i].isdelete.ToString());
+                        rowTemp13.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+            }
+            // 瀵煎嚭excel
+            string webRootPath = _webHostEnvironment.WebRootPath;
+            string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
+            string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsPlanOrder瀵煎嚭(閫夋嫨缁撴灉).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.msg = GlobalConstVars.ExcelExportSuccess;
+            jm.data = tpath + fileName;
+
+            return jm;
+        }
+        #endregion
+
+        #region 鏌ヨ瀵煎嚭============================================================
+        // POST: Api/CoreCmsPlanOrder/QueryExportExcel/10
+        /// <summary>
+        /// 鏌ヨ瀵煎嚭
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鏌ヨ瀵煎嚭")]
+        public async Task<AdminUiCallBack> QueryExportExcel()
+        {
+            var jm = new AdminUiCallBack();
+
+            var where = PredicateBuilder.True<CoreCmsPlanOrder>();
+                //鏌ヨ绛涢��
+			
+			//璁㈠崟鍙� varchar
+			var orderId = Request.Form["orderId"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(orderId))
+            {
+                where = where.And(p => p.orderId.Contains(orderId));
+            }
+			//璋冩暣璁㈠崟閲戦 decimal
+			var orderAmount = Request.Form["orderAmount"].FirstOrDefault().ObjectToDecimal(0);
+            if (orderAmount > 0)
+            {
+                where = where.And(p => p.orderAmount == orderAmount);
+            }
+			//璁㈠崟鐘舵�� int
+			var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
+            if (status > 0)
+            {
+                where = where.And(p => p.status == status);
+            }
+			//鐢ㄦ埛ID 鍏宠仈user.id int
+			var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
+            if (userId > 0)
+            {
+                where = where.And(p => p.userId == userId);
+            }
+			//瀛︽牎 varchar
+			var shipAddress = Request.Form["shipAddress"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shipAddress))
+            {
+                where = where.And(p => p.shipAddress.Contains(shipAddress));
+            }
+			//鑱旂郴浜� varchar
+			var shipName = Request.Form["shipName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shipName))
+            {
+                where = where.And(p => p.shipName.Contains(shipName));
+            }
+			//鏀惰揣鐢佃瘽 varchar
+			var shipMobile = Request.Form["shipMobile"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shipMobile))
+            {
+                where = where.And(p => p.shipMobile.Contains(shipMobile));
+            }
+			//璁″垝璁㈠崟閲戦 decimal
+			var oldOrderAmount = Request.Form["oldOrderAmount"].FirstOrDefault().ObjectToDecimal(0);
+            if (oldOrderAmount > 0)
+            {
+                where = where.And(p => p.oldOrderAmount == oldOrderAmount);
+            }
+			//鍙敤浣欓 decimal
+			var keYongAmount = Request.Form["keYongAmount"].FirstOrDefault().ObjectToDecimal(0);
+            if (keYongAmount > 0)
+            {
+                where = where.And(p => p.keYongAmount == keYongAmount);
+            }
+			//寤虹珛鏃堕棿 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);
+                }
+            }
+			//淇敼鏃堕棿 datetime
+			var upDataTime = Request.Form["upDataTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(upDataTime))
+            {
+                if (upDataTime.Contains("鍒�"))
+                {
+                    var dts = upDataTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.upDataTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.upDataTime < dtEnd);
+                }
+                else
+                {
+                    var dt = upDataTime.ObjectToDate();
+                    where = where.And(p => p.upDataTime > dt);
+                }
+            }
+			//鍒涘缓浜� varchar
+			var createBy = Request.Form["createBy"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(createBy))
+            {
+                where = where.And(p => p.createBy.Contains(createBy));
+            }
+			//淇敼浜� varchar
+			var upDataBy = Request.Form["upDataBy"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(upDataBy))
+            {
+                where = where.And(p => p.upDataBy.Contains(upDataBy));
+            }
+			//鍒犻櫎鏍囧織 bit
+			var isdelete = Request.Form["isdelete"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(isdelete) && isdelete.ToLowerInvariant() == "true")
+            {
+                where = where.And(p => p.isdelete == true);
+            }
+            else if (!string.IsNullOrEmpty(isdelete) && isdelete.ToLowerInvariant() == "false")
+            {
+                where = where.And(p => p.isdelete == false);
+            }
+            //鑾峰彇鏁版嵁
+            //鍒涘缓Excel鏂囦欢鐨勫璞�
+            var book = new HSSFWorkbook();
+            //娣诲姞涓�涓猻heet
+            var mySheet = book.CreateSheet("Sheet1");
+            //鑾峰彇list鏁版嵁
+            var listModel = await _CoreCmsPlanOrderServices.QueryListByClauseAsync(where, p => p.orderId, OrderByType.Asc, true);
+            //缁檚heet1娣诲姞绗竴琛岀殑澶撮儴鏍囬
+                var headerRow = mySheet.CreateRow(0);
+            var headerStyle = ExcelHelper.GetHeaderStyle(book);
+            var cellNum = 0;
+            
+            var cell0 = headerRow.CreateCell(cellNum);
+            cell0.SetCellValue("璁㈠崟鍙�");
+            cell0.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell1 = headerRow.CreateCell(cellNum);
+            cell1.SetCellValue("璋冩暣璁㈠崟閲戦");
+            cell1.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell2 = headerRow.CreateCell(cellNum);
+            cell2.SetCellValue("璁㈠崟鐘舵��");
+            cell2.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell3 = headerRow.CreateCell(cellNum);
+            cell3.SetCellValue("鐢ㄦ埛ID 鍏宠仈user.id");
+            cell3.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell4 = headerRow.CreateCell(cellNum);
+            cell4.SetCellValue("瀛︽牎");
+            cell4.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell5 = headerRow.CreateCell(cellNum);
+            cell5.SetCellValue("鑱旂郴浜�");
+            cell5.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell6 = headerRow.CreateCell(cellNum);
+            cell6.SetCellValue("鏀惰揣鐢佃瘽");
+            cell6.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell7 = headerRow.CreateCell(cellNum);
+            cell7.SetCellValue("璁″垝璁㈠崟閲戦");
+            cell7.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell8 = headerRow.CreateCell(cellNum);
+            cell8.SetCellValue("鍙敤浣欓");
+            cell8.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell9 = headerRow.CreateCell(cellNum);
+            cell9.SetCellValue("寤虹珛鏃堕棿");
+            cell9.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell10 = headerRow.CreateCell(cellNum);
+            cell10.SetCellValue("淇敼鏃堕棿");
+            cell10.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell11 = headerRow.CreateCell(cellNum);
+            cell11.SetCellValue("鍒涘缓浜�");
+            cell11.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell12 = headerRow.CreateCell(cellNum);
+            cell12.SetCellValue("淇敼浜�");
+            cell12.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell13 = headerRow.CreateCell(cellNum);
+            cell13.SetCellValue("鍒犻櫎鏍囧織");
+            cell13.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+
+            headerRow.Height = 30 * 20;
+            var commonCellStyle = ExcelHelper.GetCommonStyle(book);
+
+            //灏嗘暟鎹�愭鍐欏叆sheet1鍚勪釜琛�
+            for (var i = 0; i < listModel.Count; i++)
+            {
+                var rowTemp = mySheet.CreateRow(i + 1);
+                var cellNumTemp = 0;
+
+            var rowTemp0 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp0.SetCellValue(listModel[i].orderId.ToString());
+                rowTemp0.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp1 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp1.SetCellValue(listModel[i].orderAmount.ToString());
+                rowTemp1.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp2 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp2.SetCellValue(listModel[i].status.ToString());
+                rowTemp2.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp3 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp3.SetCellValue(listModel[i].userId.ToString());
+                rowTemp3.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp4 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp4.SetCellValue(listModel[i].shipAddress.ToString());
+                rowTemp4.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp5 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp5.SetCellValue(listModel[i].shipName.ToString());
+                rowTemp5.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp6 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp6.SetCellValue(listModel[i].shipMobile.ToString());
+                rowTemp6.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp7 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp7.SetCellValue(listModel[i].oldOrderAmount.ToString());
+                rowTemp7.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp8 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp8.SetCellValue(listModel[i].keYongAmount.ToString());
+                rowTemp8.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp9 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp9.SetCellValue(listModel[i].createTime.ToString());
+                rowTemp9.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp10 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp10.SetCellValue(listModel[i].upDataTime.ToString());
+                rowTemp10.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp11 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp11.SetCellValue(listModel[i].createBy.ToString());
+                rowTemp11.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp12 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp12.SetCellValue(listModel[i].upDataBy.ToString());
+                rowTemp12.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp13 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp13.SetCellValue(listModel[i].isdelete.ToString());
+                rowTemp13.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            }
+            // 鍐欏叆鍒癳xcel
+            string webRootPath = _webHostEnvironment.WebRootPath;
+            string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
+            string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsPlanOrder瀵煎嚭(鏌ヨ缁撴灉).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.msg = GlobalConstVars.ExcelExportSuccess;
+            jm.data = tpath + fileName;
+
+            return jm;
+        }
+        #endregion
+
+        
+        #region 璁剧疆鍒犻櫎鏍囧織============================================================
+        // POST: Api/CoreCmsPlanOrder/DoSetisdelete/10
+        /// <summary>
+        /// 璁剧疆鍒犻櫎鏍囧織
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("璁剧疆鍒犻櫎鏍囧織")]
+        public async Task<AdminUiCallBack> DoSetisdelete([FromBody]FMUpdateBoolDataByIntId entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var oldModel = await _CoreCmsPlanOrderServices.QueryByIdAsync(entity.id, false);
+            if (oldModel == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            oldModel.isdelete = (bool)entity.data;
+
+            var bl = await _CoreCmsPlanOrderServices.UpdateAsync(p => new CoreCmsPlanOrder() { isdelete = oldModel.isdelete }, p => p.orderId == oldModel.orderId);
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+		}
+        #endregion
+
+      
+    }
+}
diff --git "a/CoreCms.Net.Web.Admin/wwwroot/static/jihuageshi/\344\270\212\344\274\240\350\256\241\345\210\222\350\256\242\345\215\225.xlsx" "b/CoreCms.Net.Web.Admin/wwwroot/static/jihuageshi/\344\270\212\344\274\240\350\256\241\345\210\222\350\256\242\345\215\225.xlsx"
new file mode 100644
index 0000000..877b4a2
--- /dev/null
+++ "b/CoreCms.Net.Web.Admin/wwwroot/static/jihuageshi/\344\270\212\344\274\240\350\256\241\345\210\222\350\256\242\345\215\225.xlsx"
Binary files differ
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/create.html b/CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/create.html
new file mode 100644
index 0000000..df2ecbe
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/create.html
@@ -0,0 +1,141 @@
+<script type="text/html" template lay-done="layui.data.done(d);">
+<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsPlanOrder-createForm" id="LAY-app-CoreCmsPlanOrder-createForm">
+	
+	<div class="layui-form-item">
+        <label for="orderId" class="layui-form-label  layui-form-required">璁㈠崟鍙�</label>
+        <div class="layui-input-block">
+            <input name="orderId"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ヨ鍗曞彿" lay-reqText="璇疯緭鍏ヨ鍗曞彿"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="orderAmount" class="layui-form-label  layui-form-required">璋冩暣璁㈠崟閲戦</label>
+        <div class="layui-input-block">
+            <input name="orderAmount"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ヨ皟鏁磋鍗曢噾棰�" lay-reqText="璇疯緭鍏ヨ皟鏁磋鍗曢噾棰�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="status" class="layui-form-label  layui-form-required">璁㈠崟鐘舵��</label>
+        <div class="layui-input-block">
+            <input  type="number" min="0" max="999999" name="status"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ヨ鍗曠姸鎬�" lay-reqText="璇疯緭鍏ヨ鍗曠姸鎬佸苟涓烘暟瀛�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="userId" class="layui-form-label  layui-form-required">鐢ㄦ埛ID 鍏宠仈user.id</label>
+        <div class="layui-input-block">
+            <input  type="number" min="0" max="999999" name="userId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ョ敤鎴稩D 鍏宠仈user.id" lay-reqText="璇疯緭鍏ョ敤鎴稩D 鍏宠仈user.id骞朵负鏁板瓧"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="shipAddress" class="layui-form-label  layui-form-required">瀛︽牎</label>
+        <div class="layui-input-block">
+            <input name="shipAddress"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ュ鏍�" lay-reqText="璇疯緭鍏ュ鏍�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="shipName" class="layui-form-label  layui-form-required">鑱旂郴浜�</label>
+        <div class="layui-input-block">
+            <input name="shipName"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ヨ仈绯讳汉" lay-reqText="璇疯緭鍏ヨ仈绯讳汉"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="shipMobile" class="layui-form-label  layui-form-required">鏀惰揣鐢佃瘽</label>
+        <div class="layui-input-block">
+            <input name="shipMobile"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ユ敹璐х數璇�" lay-reqText="璇疯緭鍏ユ敹璐х數璇�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="oldOrderAmount" class="layui-form-label  layui-form-required">璁″垝璁㈠崟閲戦</label>
+        <div class="layui-input-block">
+            <input name="oldOrderAmount"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ヨ鍒掕鍗曢噾棰�" lay-reqText="璇疯緭鍏ヨ鍒掕鍗曢噾棰�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="keYongAmount" class="layui-form-label  layui-form-required">鍙敤浣欓</label>
+        <div class="layui-input-block">
+            <input name="keYongAmount"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ュ彲鐢ㄤ綑棰�" lay-reqText="璇疯緭鍏ュ彲鐢ㄤ綑棰�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="createTime" class="layui-form-label  layui-form-required">寤虹珛鏃堕棿</label>
+        <div class="layui-input-block">
+            <input name="createTime"  id="createTime-CoreCmsPlanOrder-createTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="璇疯緭鍏ュ缓绔嬫椂闂�" lay-reqText="璇疯緭鍏ュ缓绔嬫椂闂�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="upDataTime" class="layui-form-label  layui-form-required">淇敼鏃堕棿</label>
+        <div class="layui-input-block">
+            <input name="upDataTime"  id="createTime-CoreCmsPlanOrder-upDataTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�" lay-reqText="璇疯緭鍏ヤ慨鏀规椂闂�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="createBy" class="layui-form-label  layui-form-required">鍒涘缓浜�</label>
+        <div class="layui-input-block">
+            <input name="createBy"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ュ垱寤轰汉" lay-reqText="璇疯緭鍏ュ垱寤轰汉"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="upDataBy" class="layui-form-label  layui-form-required">淇敼浜�</label>
+        <div class="layui-input-block">
+            <input name="upDataBy"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ヤ慨鏀逛汉" lay-reqText="璇疯緭鍏ヤ慨鏀逛汉"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item" pane>
+        <label for="isdelete" class="layui-form-label  layui-form-required">鍒犻櫎鏍囧織</label>
+        <div class="layui-input-block">
+            <input type="checkbox" lay-filter="switch" name="isdelete"   lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+        </div>
+    </div>
+	
+      <div class="layui-form-item text-right core-hidden">
+        <input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-CoreCmsPlanOrder-createForm-submit" id="LAY-app-CoreCmsPlanOrder-createForm-submit" value="纭娣诲姞">
+    </div>
+</div>
+</script>
+<script>
+    var debug= layui.setter.debug;
+    layui.data.done = function (d) {
+        //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+        if (debug) { console.log(d.params.data); }
+        layui.use(['admin', 'form', 'laydate', 'upload', 'coreHelper', 'cropperImg'],
+        function () {
+            var $ = layui.$
+                , form = layui.form
+                , admin = layui.admin
+                , laydate = layui.laydate
+                , upload = layui.upload
+                , cropperImg = layui.cropperImg
+                , coreHelper = layui.coreHelper;
+	        
+            laydate.render({
+                elem: '#createTime-CoreCmsPlanOrder-createTime',
+                type: 'datetime',
+                value: new Date(),
+                fullPanel: true
+            });
+            laydate.render({
+                elem: '#createTime-CoreCmsPlanOrder-upDataTime',
+                type: 'datetime',
+                value: new Date(),
+                fullPanel: true
+            });
+	        form.verify({
+                
+	        });
+            //閲嶈浇form
+            form.render(null, 'LAY-app-CoreCmsPlanOrder-createForm');
+        })
+    };
+</script>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/details.html b/CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/details.html
new file mode 100644
index 0000000..fc0958e
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/details.html
@@ -0,0 +1,144 @@
+<script type="text/html" template  lay-done="layui.data.done(d);">
+    <table class="layui-table layui-form" lay-filter="LAY-app-CoreCmsPlanOrder-detailsForm" id="LAY-app-CoreCmsPlanOrder-detailsForm">
+        <colgroup>
+            <col width="100">
+            <col>
+        </colgroup>
+        <tbody>
+
+            <tr>
+                <td width="25%">
+                    <label for="orderId">璁㈠崟鍙�</label>
+                </td>
+                <td width="25%">
+                    {{ d.params.data.model.orderId || '' }}
+                </td>
+                <td width="25%">
+                    <label for="shipAddress">瀛︽牎</label>
+                </td>
+                <td width="25%"> 
+                    {{ d.params.data.model.shipAddress || '' }}
+                </td>
+            </tr>
+
+
+
+
+
+
+
+            <tr>
+                <td>
+                    <label for="shipName">鑱旂郴浜�</label>
+                </td>
+                <td>
+                    {{ d.params.data.model.shipName || '' }}
+                </td>
+                <td>
+                    <label for="shipMobile">鑱旂郴鐢佃瘽</label>
+                </td>
+                <td>
+                    {{ d.params.data.model.shipMobile || '' }}
+                </td>
+            </tr>
+
+            <tr>
+                <td>
+                    <label for="oldOrderAmount">璁″垝閲戦</label>
+                </td>
+                <td>
+                    {{ d.params.data.model.oldOrderAmount || '' }}
+                </td>
+                <td>
+                    <label for="orderAmount">璋冩暣閲戦</label>
+                </td>
+                <td>
+                    {{ d.params.data.model.orderAmount || '' }}
+                </td>
+            </tr>
+
+
+            <tr>
+                <td>
+                    <label for="keYongAmount">鍙敤浣欓</label>
+                </td>
+                <td>
+                    {{ d.params.data.model.keYongAmount || '' }}
+                </td>
+                <td>
+                    <label for="status">璁㈠崟鐘舵��</label>
+                </td>
+                <td>
+                    {{ d.params.data.model.statusText || '' }}
+                </td>
+            </tr>
+
+            <tr>
+                <td>
+                    <label for="createTime">寤虹珛鏃堕棿</label>
+                </td>
+                <td>
+                    {{ d.params.data.model.createTime || '' }}
+                </td>
+                <td>
+                    <label for="upDataTime">淇敼鏃堕棿</label>
+                </td>
+                <td>
+                    {{ d.params.data.model.upDataTime || '' }}
+                </td>
+            </tr>
+
+
+            <tr>
+                <td style="background-color:lightsteelblue;">
+                    鍟嗗搧鍚嶇О
+                </td>
+                <td style="background-color:lightsteelblue;">
+                    鍗曚环锛堝厓锛�
+                </td>
+                <td style="background-color:lightsteelblue;">
+                    鏁伴噺
+                </td>
+                <td style="background-color:lightsteelblue;" >
+                    鎬讳环锛堝厓锛�
+                </td>
+            </tr>
+
+            {{# layui.each(d.params.data.modelItem, function(index, item){ }}
+            <tr>
+                <td>
+                    {{ item.name }}   {{ item.specification }}
+                </td>
+                <td>
+                    {{ item.price }}
+                </td>
+                <td>
+                    {{ item.nums }}
+                </td>
+                <td>
+                    {{ item.amount }}
+                </td>
+            </tr>
+            {{# }); }}
+
+
+
+        </tbody>
+    </table>
+</script>
+<script>
+    var debug= layui.setter.debug;
+    layui.data.done = function (d) {
+        //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+        if (debug) { console.log(d.params.data); }
+
+        layui.use(['admin', 'form', 'coreHelper'], function () {
+            var $ = layui.$
+                , setter = layui.setter
+                , admin = layui.admin
+                , coreHelper = layui.coreHelper
+                , form = layui.form;
+            form.render(null, 'LAY-app-CoreCmsPlanOrder-detailsForm');
+        });
+    };
+</script>
\ No newline at end of file
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/edit.html b/CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/edit.html
new file mode 100644
index 0000000..ec5212b
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/edit.html
@@ -0,0 +1,139 @@
+<script type="text/html" template lay-done="layui.data.sendParams(d);">
+    <div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsPlanOrder-editForm" id="LAY-app-CoreCmsPlanOrder-editForm">
+	    
+	    <div class="layui-form-item">
+            <label for="orderId" class="layui-form-label  layui-form-required">璁㈠崟鍙�</label>
+            <div class="layui-input-block">
+                <input name="orderId"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ鍗曞彿" lay-reqText="璇疯緭鍏ヨ鍗曞彿"  value="{{d.params.data.orderId || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="orderAmount" class="layui-form-label  layui-form-required">璋冩暣璁㈠崟閲戦</label>
+            <div class="layui-input-block">
+                <input name="orderAmount"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ皟鏁磋鍗曢噾棰�" lay-reqText="璇疯緭鍏ヨ皟鏁磋鍗曢噾棰�"  value="{{d.params.data.orderAmount || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="status" class="layui-form-label  layui-form-required">璁㈠崟鐘舵��</label>
+            <div class="layui-input-block">
+                <input  type="number" min="0" max="999999" name="status"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.status || '' }}" placeholder="璇疯緭鍏ヨ鍗曠姸鎬�" lay-reqText="璇疯緭鍏ヨ鍗曠姸鎬佸苟涓烘暟瀛�"  />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="userId" class="layui-form-label  layui-form-required">鐢ㄦ埛ID 鍏宠仈user.id</label>
+            <div class="layui-input-block">
+                <input  type="number" min="0" max="999999" name="userId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.userId || '' }}" placeholder="璇疯緭鍏ョ敤鎴稩D 鍏宠仈user.id" lay-reqText="璇疯緭鍏ョ敤鎴稩D 鍏宠仈user.id骞朵负鏁板瓧"  />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="shipAddress" class="layui-form-label  layui-form-required">瀛︽牎</label>
+            <div class="layui-input-block">
+                <input name="shipAddress"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ュ鏍�" lay-reqText="璇疯緭鍏ュ鏍�"  value="{{d.params.data.shipAddress || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="shipName" class="layui-form-label  layui-form-required">鑱旂郴浜�</label>
+            <div class="layui-input-block">
+                <input name="shipName"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ仈绯讳汉" lay-reqText="璇疯緭鍏ヨ仈绯讳汉"  value="{{d.params.data.shipName || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="shipMobile" class="layui-form-label  layui-form-required">鏀惰揣鐢佃瘽</label>
+            <div class="layui-input-block">
+                <input name="shipMobile"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ユ敹璐х數璇�" lay-reqText="璇疯緭鍏ユ敹璐х數璇�"  value="{{d.params.data.shipMobile || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="oldOrderAmount" class="layui-form-label  layui-form-required">璁″垝璁㈠崟閲戦</label>
+            <div class="layui-input-block">
+                <input name="oldOrderAmount"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ鍒掕鍗曢噾棰�" lay-reqText="璇疯緭鍏ヨ鍒掕鍗曢噾棰�"  value="{{d.params.data.oldOrderAmount || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="keYongAmount" class="layui-form-label  layui-form-required">鍙敤浣欓</label>
+            <div class="layui-input-block">
+                <input name="keYongAmount"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ュ彲鐢ㄤ綑棰�" lay-reqText="璇疯緭鍏ュ彲鐢ㄤ綑棰�"  value="{{d.params.data.keYongAmount || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="createTime" class="layui-form-label  layui-form-required">寤虹珛鏃堕棿</label>
+            <div class="layui-input-block">
+                <input name="createTime"  id="editTime-CoreCmsPlanOrder-createTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="璇疯緭鍏ュ缓绔嬫椂闂�" lay-reqText="璇疯緭鍏ュ缓绔嬫椂闂�"   value="{{d.params.data.createTime || '' }}"/>
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="upDataTime" class="layui-form-label  layui-form-required">淇敼鏃堕棿</label>
+            <div class="layui-input-block">
+                <input name="upDataTime"  id="editTime-CoreCmsPlanOrder-upDataTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�" lay-reqText="璇疯緭鍏ヤ慨鏀规椂闂�"   value="{{d.params.data.upDataTime || '' }}"/>
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="createBy" class="layui-form-label  layui-form-required">鍒涘缓浜�</label>
+            <div class="layui-input-block">
+                <input name="createBy"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ュ垱寤轰汉" lay-reqText="璇疯緭鍏ュ垱寤轰汉"  value="{{d.params.data.createBy || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="upDataBy" class="layui-form-label  layui-form-required">淇敼浜�</label>
+            <div class="layui-input-block">
+                <input name="upDataBy"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヤ慨鏀逛汉" lay-reqText="璇疯緭鍏ヤ慨鏀逛汉"  value="{{d.params.data.upDataBy || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item" pane>
+            <label for="isdelete" class="layui-form-label  layui-form-required">鍒犻櫎鏍囧織</label>
+            <div class="layui-input-block">
+                <input type="checkbox" lay-filter="switch" name="isdelete"   {{ d.params.data.isdelete ? 'checked' : '' }} lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+            </div>
+        </div>
+	    
+        <div class="layui-form-item text-right core-hidden">
+            <input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-CoreCmsPlanOrder-editForm-submit" id="LAY-app-CoreCmsPlanOrder-editForm-submit" value="纭缂栬緫">
+        </div>
+    </div>
+</script>
+<script>
+    var debug= layui.setter.debug;
+    layui.data.sendParams = function (d) {
+        //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+        if (debug) { console.log(d.params.data); }
+        layui.use(['admin', 'form', 'laydate', 'upload', 'coreHelper', 'cropperImg'],
+        function () {
+            var $ = layui.$
+                , form = layui.form
+                , admin = layui.admin
+                , laydate = layui.laydate
+                , upload = layui.upload
+                , cropperImg = layui.cropperImg
+                , coreHelper = layui.coreHelper;
+        
+            laydate.render({
+                elem: '#editTime-CoreCmsPlanOrder-createTime',
+                type: 'datetime',
+                fullPanel: true
+            });
+            laydate.render({
+                elem: '#editTime-CoreCmsPlanOrder-upDataTime',
+                type: 'datetime',
+                fullPanel: true
+            });
+            form.verify({
+                
+            });
+            //閲嶈浇form
+            form.render(null, 'LAY-app-CoreCmsPlanOrder-editForm');
+        })
+    };
+</script>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/index.html
new file mode 100644
index 0000000..3286391
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/corecmsplanorder/index.html
@@ -0,0 +1,495 @@
+<title>璁″垝璁㈠崟琛�</title>
+<!--褰撳墠浣嶇疆寮�濮�-->
+<div class="layui-card layadmin-header">
+    <div class="layui-breadcrumb" lay-filter="breadcrumb">
+        <script type="text/html" template lay-done="layui.data.updateMainBreadcrumb();">
+        </script>
+    </div>
+</div>
+<!--褰撳墠浣嶇疆缁撴潫-->
+<style>
+    /* 閲嶅啓鏍峰紡 */
+</style>
+<script type="text/html" template lay-type="Post" lay-url="Api/CoreCmsPlanOrder/GetIndex" lay-done="layui.data.done(d);">
+    
+</script>
+<div class="table-body">
+    <table  id="LAY-app-CoreCmsPlanOrder-tableBox" lay-filter="LAY-app-CoreCmsPlanOrder-tableBox"></table>
+</div>
+
+<script type="text/html" id="LAY-app-CoreCmsPlanOrder-toolbar">
+    <div class="layui-form coreshop-toolbar-search-form">
+        <div class="layui-form-item">
+
+            <div class="layui-inline">
+                <label class="layui-form-label" for="orderId">璁㈠崟鍙�</label>
+                <div class="layui-input-inline">
+                    <input type="text" name="orderId" placeholder="璇疯緭鍏ヨ鍗曞彿" class="layui-input">
+                </div>
+            </div>
+            <!--<div class="layui-inline">
+        <label class="layui-form-label" for="orderAmount">璋冩暣璁㈠崟閲戦</label>
+        <div class="layui-input-inline">
+            <input type="text" name="orderAmount"  placeholder="璇疯緭鍏ヨ皟鏁磋鍗曢噾棰�" class="layui-input">
+        </div>
+    </div>-->
+            
+
+            <div class="layui-inline">
+                <label class="layui-form-label" for="status">璁㈠崟鐘舵��</label>
+        <div class="layui-input-inline">
+            <select name="status">
+                <option value="">璇烽�夋嫨</option>
+                <option value="1">鏈彁浜�</option>
+                <option value="2">宸叉彁浜�</option>
+            </select>
+        </div>
+    </div>
+            <!--<div class="layui-inline">
+        <label class="layui-form-label" for="userId">鐢ㄦ埛ID 鍏宠仈user.id</label>
+        <div class="layui-input-inline">
+            <input type="text" name="userId"  placeholder="璇疯緭鍏ョ敤鎴稩D 鍏宠仈user.id" class="layui-input">
+        </div>
+    </div>-->
+            <div class="layui-inline">
+                <label class="layui-form-label" for="shipAddress">瀛︽牎</label>
+                <div class="layui-input-inline">
+                    <input type="text" name="shipAddress" placeholder="璇疯緭鍏ュ鏍�" class="layui-input">
+                </div>
+            </div>
+            <div class="layui-inline">
+                <label class="layui-form-label" for="shipName">鑱旂郴浜�</label>
+                <div class="layui-input-inline">
+                    <input type="text" name="shipName" placeholder="璇疯緭鍏ヨ仈绯讳汉" class="layui-input">
+                </div>
+            </div>
+            <div class="layui-inline">
+                <label class="layui-form-label" for="shipMobile">鑱旂郴鐢佃瘽</label>
+                <div class="layui-input-inline">
+                    <input type="text" name="shipMobile" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" class="layui-input">
+                </div>
+            </div>
+            <!--<div class="layui-inline">
+        <label class="layui-form-label" for="oldOrderAmount">璁″垝璁㈠崟閲戦</label>
+        <div class="layui-input-inline">
+            <input type="text" name="oldOrderAmount"  placeholder="璇疯緭鍏ヨ鍒掕鍗曢噾棰�" class="layui-input">
+        </div>
+    </div>-->
+            <!--<div class="layui-inline">
+        <label class="layui-form-label" for="keYongAmount">鍙敤浣欓</label>
+        <div class="layui-input-inline">
+            <input type="text" name="keYongAmount"  placeholder="璇疯緭鍏ュ彲鐢ㄤ綑棰�" class="layui-input">
+        </div>
+    </div>-->
+            <div class="layui-inline">
+                <label class="layui-form-label" for="createTime">寤虹珛鏃堕棿</label>
+                <div class="layui-input-inline" style="width: 260px;">
+                    <input type="text" name="createTime" id="searchTime-CoreCmsPlanOrder-createTime" placeholder="璇疯緭鍏ュ缓绔嬫椂闂�" class="layui-input">
+                </div>
+            </div>
+            <div class="layui-inline">
+                <label class="layui-form-label" for="upDataTime">淇敼鏃堕棿</label>
+                <div class="layui-input-inline" style="width: 260px;">
+                    <input type="text" name="upDataTime" id="searchTime-CoreCmsPlanOrder-upDataTime" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�" class="layui-input">
+                </div>
+            </div>
+            <!--<div class="layui-inline">
+        <label class="layui-form-label" for="createBy">鍒涘缓浜�</label>
+        <div class="layui-input-inline">
+            <input type="text" name="createBy"  placeholder="璇疯緭鍏ュ垱寤轰汉" class="layui-input">
+        </div>
+    </div>-->
+            <!--<div class="layui-inline">
+        <label class="layui-form-label" for="upDataBy">淇敼浜�</label>
+        <div class="layui-input-inline">
+            <input type="text" name="upDataBy"  placeholder="璇疯緭鍏ヤ慨鏀逛汉" class="layui-input">
+        </div>
+    </div>-->
+            <!--<div class="layui-inline">
+        <label class="layui-form-label" for="isdelete">鍒犻櫎鏍囧織</label>
+        <div class="layui-input-inline">
+            <select name="isdelete">
+                <option value="">璇烽�夋嫨</option>
+                <option value="True">鏄�</option>
+                <option value="False">鍚�</option>
+            </select>
+        </div>
+    </div>-->
+            <div class="layui-inline">
+                <button class="layui-btn layui-btn-sm" lay-submit lay-filter="LAY-app-CoreCmsPlanOrder-search"><i class="layui-icon layui-icon-search"></i>绛涢��</button>
+            </div>
+        </div>
+    </div>
+</script>
+
+<script type="text/html" id="LAY-app-CoreCmsPlanOrder-pagebar">
+    <div class="layui-btn-container">
+        <!--<button class="layui-btn layui-btn-sm" lay-event="addData"><i class="layui-icon layui-icon-add-1"></i>娣诲姞鏁版嵁</button>
+    <button class="layui-btn layui-btn-sm" lay-event="batchDelete"><i class="layui-icon layui-icon-delete"></i>鎵归噺鍒犻櫎</button>-->
+        <button type="button" class="layui-btn layui-btn-sm" id="upIndexPopupWindowImageUrlBtn">涓婁紶璁″垝璁㈠崟</button>
+        <button class="layui-btn layui-btn-sm" lay-event="selectExportExcel"><i class="layui-icon layui-icon-add-circle"></i>閫夋嫨瀵煎嚭</button>
+        <button class="layui-btn layui-btn-sm" lay-event="queryExportExcel"><i class="layui-icon layui-icon-download-circle"></i>鏌ヨ瀵煎嚭</button>
+        <a class="layui-btn layui-btn-sm" href="/static/jihuageshi/涓婁紶璁″垝璁㈠崟.xlsx"  >涓婁紶妯℃澘</a>
+    </div>
+</script>
+
+<script type="text/html" id="LAY-app-CoreCmsPlanOrder-tableBox-bar">
+    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">鏌ョ湅</a>
+    <!--<a class="layui-btn layui-btn-xs" lay-event="edit">缂栬緫</a>
+    <a class="layui-btn layui-btn-danger layui-btn-xs" data-dropdown="#CoreCmsPlanOrderTbDelDrop{{d.LAY_INDEX}}" no-shade="true">鍒犻櫎</a>-->
+    <div class="dropdown-menu-nav dropdown-popconfirm dropdown-top-right layui-hide" id="CoreCmsPlanOrderTbDelDrop{{d.LAY_INDEX}}"
+         style="max-width: 200px;white-space: normal;min-width: auto;margin-left: 10px;">
+        <div class="dropdown-anchor"></div>
+        <div class="dropdown-popconfirm-title">
+            <i class="layui-icon layui-icon-help"></i>
+            纭畾瑕佸垹闄ゅ悧锛�
+        </div>
+        <div class="dropdown-popconfirm-btn">
+            <a class="layui-btn layui-btn-primary cursor" btn-cancel>鍙栨秷</a>
+            <a class="layui-btn layui-btn-normal cursor" lay-event="del">纭畾</a>
+        </div>
+    </div>
+</script>
+
+<script>
+    var indexData;
+    var debug= layui.setter.debug;
+    layui.data.done = function (d) {
+        //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+        if (debug) { console.log(d); }
+
+        indexData = d.data;
+        layui.use(['index', 'table', 'laydate', 'util', 'coredropdown', 'coreHelper', 'upload'],
+            function () {
+                var $ = layui.$
+                    , admin = layui.admin
+                    , table = layui.table
+                    , form = layui.form
+                    , laydate = layui.laydate
+                    , setter = layui.setter
+                    , coreHelper = layui.coreHelper
+                    , util = layui.util
+                    , view = layui.view
+                    , upload = layui.upload;
+			    
+                var searchwhere;
+                //鐩戝惉鎼滅储
+                form.on('submit(LAY-app-CoreCmsPlanOrder-search)',
+                    function(data) {
+                        var field = data.field;
+                        searchwhere = field;
+                        //鎵ц閲嶈浇
+                        table.reloadData('LAY-app-CoreCmsPlanOrder-tableBox',{ where: field });
+                    });
+                //鏁版嵁缁戝畾
+                table.render({
+                    elem: '#LAY-app-CoreCmsPlanOrder-tableBox',
+                    url: layui.setter.apiUrl + 'Api/CoreCmsPlanOrder/GetPageList',
+                    method: 'POST',
+				    toolbar: '#LAY-app-CoreCmsPlanOrder-toolbar',
+				    pagebar: '#LAY-app-CoreCmsPlanOrder-pagebar',
+                    className: 'pagebarbox',
+                    defaultToolbar: ['filter', 'print', 'exports'],
+                    height: 'full-127',//闈㈠寘灞�142px,鎼滅储妗�4琛�172,3琛�137,2琛�102,1琛�67
+                    page: true,
+                    limit: 30,
+                    limits: [10, 15, 20, 25, 30, 50, 100, 200],
+                    text: {none: '鏆傛棤鐩稿叧鏁版嵁'},
+                    cols: [
+                        [
+                            { type: "checkbox", fixed: "left" },
+						    { field: 'orderId', title: '璁㈠崟鍙�', sort: false,width: 115 },
+						  
+                           
+						 /*   { field: 'userId', title: '鐢ㄦ埛ID 鍏宠仈user.id', sort: false,width: 105 },*/
+						    { field: 'shipAddress', title: '瀛︽牎', sort: false,width: 335 },
+						    { field: 'shipName', title: '鑱旂郴浜�', sort: false,width: 115 },
+						    { field: 'shipMobile', title: '鑱旂郴鐢佃瘽', sort: false,width: 115 },
+                            { field: 'oldOrderAmount', title: '璁″垝閲戦', sort: false, width: 115 },
+                            { field: 'orderAmount', title: '璋冩暣閲戦', sort: false, width: 115 },
+						    { field: 'keYongAmount', title: '鍙敤浣欓', sort: false,width: 115 },
+						    { field: 'createTime', title: '寤虹珛鏃堕棿', width: 140, sort: false},
+						    { field: 'upDataTime', title: '淇敼鏃堕棿', width: 140, sort: false},
+						    //{ field: 'createBy', title: '鍒涘缓浜�', sort: false,width: 105 },
+						    //{ field: 'upDataBy', title: '淇敼浜�', sort: false,width: 105 },
+                            //{ field: 'isdelete', title: '鍒犻櫎鏍囧織', width: 95, templet: '#switch_isdelete', sort: false , unresize: true},
+                            { field: 'statusText', title: '璁㈠崟鐘舵��', sort: false, width: 115 },
+                            { width: 172, align: 'center', title:'鎿嶄綔', fixed: 'right', toolbar: '#LAY-app-CoreCmsPlanOrder-tableBox-bar' }
+                        ]
+                    ]
+                });
+                //鐩戝惉鎺掑簭浜嬩欢
+                table.on('sort(LAY-app-CoreCmsPlanOrder-tableBox)', function(obj){
+                    table.reloadData('LAY-app-CoreCmsPlanOrder-tableBox', {
+                        initSort: obj, //璁板綍鍒濆鎺掑簭锛屽鏋滀笉璁剧殑璇濓紝灏嗘棤娉曟爣璁拌〃澶寸殑鎺掑簭鐘舵�併��
+                        where: { //璇锋眰鍙傛暟锛堟敞鎰忥細杩欓噷闈㈢殑鍙傛暟鍙换鎰忓畾涔夛紝骞堕潪涓嬮潰鍥哄畾鐨勬牸寮忥級
+                            orderField: obj.field, //鎺掑簭瀛楁
+                            orderDirection: obj.type //鎺掑簭鏂瑰紡
+                        }
+                    });
+                });
+                //鐩戝惉琛屽弻鍑讳簨浠�
+                table.on('rowDouble(LAY-app-CoreCmsPlanOrder-tableBox)', function (obj) {
+                    //鏌ョ湅璇︽儏
+                    doDetails(obj);
+                });
+                //澶村伐鍏锋爮浜嬩欢
+                table.on('pagebar(LAY-app-CoreCmsPlanOrder-tableBox)', function (obj) {
+                    var checkStatus = table.checkStatus(obj.config.id);
+                    switch (obj.event) {
+                    case 'addData':
+                        doCreate();
+                        break;
+                    case 'batchDelete':
+                        doBatchDelete(checkStatus);
+                        break;
+                    case 'selectExportExcel':
+                        doSelectExportExcel(checkStatus);
+                        break;
+                    case 'queryExportExcel':
+                        doQueryExportexcel();
+                        break;
+                    };
+                });
+                //鐩戝惉宸ュ叿鏉�
+                table.on('tool(LAY-app-CoreCmsPlanOrder-tableBox)',
+                    function(obj) {
+                        if (obj.event === 'detail') {
+                            doDetails(obj);
+                        } else if (obj.event === 'del') {
+                            doDelete(obj);
+                        } else if (obj.event === 'edit') {
+                            doEdit(obj)
+                        }
+                    });
+                //鎵ц鍒涘缓鎿嶄綔
+                function doCreate(){
+                    coreHelper.Post("Api/CoreCmsPlanOrder/GetCreate", null, function (e) {
+                            if (e.code === 0) {
+                                admin.popup({
+                                    shadeClose: false,
+                                    title: '鍒涘缓鏁版嵁',
+                                    area: ['1200px', '90%'],
+                                    id: 'LAY-popup-CoreCmsPlanOrder-create',
+                                    success: function (layero, index) {
+                                        view(this.id).render('base/CoreCmsPlanOrder/create', { data: e.data }).done(function () {
+                                            //鐩戝惉鎻愪氦
+                                            form.on('submit(LAY-app-CoreCmsPlanOrder-createForm-submit)',
+                                                function(data) {
+                                                    var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
+                                                    
+                                                    field.isdelete = field.isdelete == 'on';
+
+                                                    if (debug) { console.log(field); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                                                    //鎻愪氦 Ajax 鎴愬姛鍚庯紝鍏抽棴褰撳墠寮瑰眰骞堕噸杞借〃鏍�
+                                                    coreHelper.Post("Api/CoreCmsPlanOrder/DoCreate", field, function (e) {
+                                                            console.log(e)
+                                                            if (e.code === 0) {
+                                                                layui.table.reloadData('LAY-app-CoreCmsPlanOrder-tableBox'); //閲嶈浇琛ㄦ牸
+                                                                layer.close(index); //鍐嶆墽琛屽叧闂�
+                                                                layer.msg(e.msg);
+                                                            } else {
+                                                                layer.msg(e.msg);
+                                                            }
+                                                        });
+                                                });
+                                        });
+                                        // 绂佹寮圭獥鍑虹幇婊氬姩鏉�
+                                        $(layero).children('.layui-layer-content').css('overflow', 'visible');
+                                    }
+                                    , btn: ['纭畾', '鍙栨秷']
+                                    , yes: function (index, layero) {
+                                        layero.contents().find("#LAY-app-CoreCmsPlanOrder-createForm-submit").click();
+                                    }
+                                });
+                            } else {
+                                layer.msg(e.msg);
+                            }
+                        });
+			    }
+                //鎵ц缂栬緫鎿嶄綔
+                function doEdit(obj){
+                    coreHelper.Post("Api/CoreCmsPlanOrder/GetEdit", {id:obj.data.id}, function (e) {
+                        if (e.code === 0) {
+                            admin.popup({
+                                shadeClose: false,
+                                title: '缂栬緫鏁版嵁',
+                                area: ['1200px', '90%'],
+                                id: 'LAY-popup-CoreCmsPlanOrder-edit',
+                                success: function (layero, index) {
+                                    view(this.id).render('base/CoreCmsPlanOrder/edit', { data: e.data }).done(function () {
+                                        //鐩戝惉鎻愪氦
+                                        form.on('submit(LAY-app-CoreCmsPlanOrder-editForm-submit)',
+                                            function(data) {
+                                                var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
+                                                
+                                                field.isdelete = field.isdelete == 'on';
+
+                                                if (debug) { console.log(field); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                                                //鎻愪氦 Ajax 鎴愬姛鍚庯紝鍏抽棴褰撳墠寮瑰眰骞堕噸杞借〃鏍�
+                                                coreHelper.Post("Api/CoreCmsPlanOrder/DoEdit", field, function (e) {
+                                                        console.log(e)
+                                                        if (e.code === 0) {
+                                                            layui.table.reloadData('LAY-app-CoreCmsPlanOrder-tableBox'); //閲嶈浇琛ㄦ牸
+                                                            layer.close(index); //鍐嶆墽琛屽叧闂�
+                                                            layer.msg(e.msg);
+                                                        } else {
+                                                            layer.msg(e.msg);
+                                                        }
+                                                    });
+                                            });
+                                    })
+                                    // 绂佹寮圭獥鍑虹幇婊氬姩鏉�
+                                    $(layero).children('.layui-layer-content').css('overflow', 'visible');
+                                }
+                                 , btn: ['纭畾', '鍙栨秷']
+                                , yes: function (index, layero) {
+                                     layero.contents().find("#LAY-app-CoreCmsPlanOrder-editForm-submit").click();
+                                }
+                            });
+                        } else {
+                            layer.msg(e.msg);
+                        }
+                    });
+			    }
+                //鎵ц棰勮鎿嶄綔
+                function doDetails(obj) {
+                    coreHelper.Post("Api/CoreCmsPlanOrder/GetDetails", { id: obj.data.orderId }, function (e) {
+                        if (e.code === 0) {
+                            admin.popup({
+                                shadeClose: false,
+                                title: '鏌ョ湅璇︽儏',
+                                area: ['1200px', '90%'],
+                                id: 'LAY-popup-CoreCmsPlanOrder-details',
+                                success: function (layero, index) {
+                                    view(this.id).render('CoreCmsPlanOrder/details', { data: e.data }).done(function () {
+                                        form.render();
+                                    });
+                                    // 绂佹寮圭獥鍑虹幇婊氬姩鏉�
+                                    $(layero).children('.layui-layer-content').css('overflow', 'visible');
+                                }
+                            });
+                        } else {
+                            layer.msg(e.msg);
+                        }
+                    });
+                }
+                //鎵ц鍗曚釜鍒犻櫎
+                function doDelete(obj){
+                    coreHelper.Post("Api/CoreCmsPlanOrder/DoDelete", { id: obj.data.id }, function (e) {
+                            if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                            table.reloadData('LAY-app-CoreCmsPlanOrder-tableBox');
+                            layer.msg(e.msg);
+                        });
+			    }
+                //鎵ц鎵归噺鍒犻櫎
+                function doBatchDelete(checkStatus){
+                    var checkData = checkStatus.data;
+                    if (checkData.length === 0) {
+                        return layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁');
+                    }
+                    layer.confirm('纭畾鍒犻櫎鍚楋紵鍒犻櫎鍚庡皢鏃犳硶鎭㈠銆�',
+                        function(index) {
+                            var delidsStr = [];
+                            layui.each(checkData,
+                                function(index, item) {
+                                    delidsStr.push(item.id);
+                                });
+                            coreHelper.Post("Api/CoreCmsPlanOrder/DoBatchDelete", { id: delidsStr }, function (e) {
+                                    if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                                    table.reloadData('LAY-app-CoreCmsPlanOrder-tableBox');
+                                    layer.msg(e.msg);
+                                });
+                        });
+			    }
+                //鎵ц鏌ヨ鏉′欢瀵煎嚭excel
+                function doQueryExportexcel(){
+                    layer.confirm('纭畾鏍规嵁褰撳墠鐨勬煡璇㈡潯浠跺鍑烘暟鎹悧锛�',
+                        function(index) {
+                            var field = searchwhere;
+                            coreHelper.PostForm("Api/CoreCmsPlanOrder/QueryExportExcel", field, function (e) {
+                                    if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                                    if (e.code === 0) {
+                                        window.open(e.data);
+                                    } else {
+                                        layer.msg(e.msg);
+                                    }
+                                });
+                        });
+			    }
+                //鎵ц閫夋嫨鐩綍瀵煎嚭鏁版嵁
+                function doSelectExportExcel(checkStatus){
+                    var checkData = checkStatus.data;
+                    if (checkData.length === 0) {
+                        return layer.msg('璇烽�夋嫨鎮ㄨ瀵煎嚭鐨勬暟鎹�');
+                    }
+                    layer.confirm('纭畾瀵煎嚭閫夋嫨鐨勫唴瀹瑰悧锛�',
+                        function(index) {
+                            var delidsStr = [];
+                            layui.each(checkData,
+                                function(index, item) {
+                                    delidsStr.push(item.id);
+                                });
+                            layer.close(index);
+                            coreHelper.Post("Api/CoreCmsPlanOrder/SelectExportExcel", { id: delidsStr }, function (e) {
+                                    if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                                    if (e.code === 0) {
+                                        window.open(e.data);
+                                    } else {
+                                        layer.msg(e.msg);
+                                    }
+                                });
+                        });
+			    }
+
+                
+                laydate.render({
+                    elem: '#searchTime-CoreCmsPlanOrder-createTime',
+                    type: 'datetime',
+                    range: '鍒�',
+                });
+                laydate.render({
+                    elem: '#searchTime-CoreCmsPlanOrder-upDataTime',
+                    type: 'datetime',
+                    range: '鍒�',
+                });
+
+                //鐩戝惉 琛ㄦ牸澶嶉�夋鎿嶄綔
+                
+                layui.form.on('switch(switch_isdelete)', function (obj) {
+                    coreHelper.Post("Api/CoreCmsPlanOrder/DoSetisdelete", { id: this.value, data: obj.elem.checked }, function (e) {
+                        if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                        //table.reloadData('LAY-app-CoreCmsPlanOrder-tableBox');
+                        layer.msg(e.msg);
+                    });
+                });
+
+
+                //棣栭〉寮圭獥骞垮憡鍥剧墖
+                upload.render({
+                    elem: '#upIndexPopupWindowImageUrlBtn'
+                    , url: layui.setter.apiUrl + 'Api/Tools/UploadFilesXls'
+                    , accept: 'file' // 鍏佽涓婁紶鏂囦欢
+                    , exts: 'xlsx|xls' // 鍙厑璁镐笂浼燛xcel鏂囦欢
+                    , done: function (res) {
+                        if (res.code > 0) {
+                            return layer.msg(res.msg);
+                        }
+                        layer.msg(res.msg);
+                        layui.table.reloadData('LAY-app-CoreCmsPlanOrder-tableBox'); //閲嶈浇琛ㄦ牸
+                    }
+                    , error: function () {
+                        return layer.msg('涓婁紶澶辫触');
+                    }
+                });
+                //閲嶈浇form
+                form.render();
+            });
+    };
+</script>
+
+<!--璁剧疆鍒犻櫎鏍囧織-->
+<script type="text/html" id="switch_isdelete">
+    <input type="checkbox" name="switch_isdelete" value="{{d.id}}" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴" lay-filter="switch_isdelete" {{ d.isdelete ? 'checked' : '' }}>
+</script>
+
diff --git a/CoreCms.Net.Web.WebApi/Controllers/OrderController.cs b/CoreCms.Net.Web.WebApi/Controllers/OrderController.cs
index c5c3f4c..fb89f0c 100644
--- a/CoreCms.Net.Web.WebApi/Controllers/OrderController.cs
+++ b/CoreCms.Net.Web.WebApi/Controllers/OrderController.cs
@@ -22,6 +22,7 @@
 using CoreCms.Net.Model.FromBody;
 using CoreCms.Net.Model.ViewModels.DTO;
 using CoreCms.Net.Model.ViewModels.UI;
+using CoreCms.Net.Services;
 using CoreCms.Net.Utility.Extensions;
 using CoreCms.Net.Utility.Helper;
 using Microsoft.AspNetCore.Authorization;
@@ -51,7 +52,8 @@
         private readonly ICoreCmsUserServices _userServices;
         private readonly ICoreCmsClerkServices _clerkServices;
         private readonly ICoreCmsInvoiceServices _invoiceServices;
-
+        private readonly ICoreCmsPlanOrderServices _planOrderServices;
+        private readonly ICoreCmsPlanOrderItemServices _planOrderItemServices;
 
         /// <summary>
         /// 鏋勯�犲嚱鏁�
@@ -61,7 +63,9 @@
         , ICoreCmsBillAftersalesServices aftersalesServices
         , ICoreCmsSettingServices settingServices
         , ICoreCmsAreaServices areaServices
-        , ICoreCmsBillReshipServices reshipServices, ICoreCmsShipServices shipServices, ICoreCmsLogisticsServices logisticsServices, ICoreCmsOrderDistributionModelServices orderDistributionModelServices, IRedisOperationRepository redisOperationRepository, ICoreCmsUserServices userServices, ICoreCmsClerkServices clerkServices, ICoreCmsInvoiceServices invoiceServices)
+        , ICoreCmsBillReshipServices reshipServices, ICoreCmsShipServices shipServices, ICoreCmsLogisticsServices logisticsServices, ICoreCmsOrderDistributionModelServices orderDistributionModelServices, IRedisOperationRepository redisOperationRepository, ICoreCmsUserServices userServices, ICoreCmsClerkServices clerkServices, ICoreCmsInvoiceServices invoiceServices
+          , ICoreCmsPlanOrderServices planOrderServices
+            , ICoreCmsPlanOrderItemServices planOrderItemServices)
         {
             _user = user;
             _orderServices = orderServices;
@@ -76,6 +80,8 @@
             _userServices = userServices;
             _clerkServices = clerkServices;
             _invoiceServices = invoiceServices;
+            _planOrderServices = planOrderServices;
+            _planOrderItemServices = planOrderItemServices;
         }
 
 
@@ -370,6 +376,102 @@
 
         #endregion
 
+
+        #region 鑾峰彇璁″垝璁㈠崟鍒楄〃寰俊灏忕▼搴�=======================================================
+
+        /// <summary>
+        /// 鑾峰彇璁″垝璁㈠崟鍒楄〃寰俊灏忕▼搴�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> GetPlanOrderList([FromBody] GetOrderListPost entity)
+        {
+            var jm = await _planOrderServices.GetOrderList(entity.status, _user.ID, entity.page, entity.limit);
+            return jm;
+        }
+
+
+
+        #endregion
+
+
+        #region 鑾峰彇璁″垝璁㈠崟璇︽儏=======================================================
+
+        /// <summary>
+        /// 鑾峰彇璁″垝璁㈠崟璇︽儏
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> GetPlanOrder([FromBody] FMStringId entity)
+        {
+            var jm = new WebApiCallBack();
+
+            var model = await _planOrderServices.QueryByIdAsync(entity.id);
+            if (model == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+
+            //鑾峰彇鐩稿叧鐘舵�佹弿杩拌鏄庤浆鎹�
+            model.statusText = EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.PlanOrderTiJiao>(model.status);
+            var modelItem = await _planOrderItemServices.QueryListByClauseAsync(p => p.orderId == entity.id, p => p.specification, OrderByType.Asc);
+
+            jm.code = 0;
+            jm.status = true;
+            jm.data = new
+            {
+                model,
+                modelItem,
+            };
+
+            return jm;
+        }
+
+
+        #region 淇敼璁″垝璁㈠崟==================================================
+        /// <summary>
+        /// 淇敼璁″垝璁㈠崟
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Authorize]
+        public async Task<WebApiCallBack> UpdatePlanOrder([FromBody] CreateOrder entity)
+        {
+            var jm = new WebApiCallBack();
+
+            
+            
+                try
+                {
+                    
+
+                    if (string.IsNullOrEmpty(entity.itemIds))
+                    {
+                        jm.data = 10000;
+                        jm.msg = GlobalErrorCodeVars.Code10000;
+                        return jm;
+                    }
+
+                    jm = await _planOrderServices.ToUpdate(entity.orderId , _user.ID, _user.Name, entity.status, entity.itemIds, entity.itemNums);
+                }
+                catch (Exception e)
+                {
+                    jm.msg = "鏁版嵁澶勭悊寮傚父";
+                    jm.otherData = e;
+                }
+                 
+            
+            return jm;
+        }
+        #endregion
+
+
+
+        #endregion
+
         #region 鍙栨秷璁㈠崟====================================================
 
         /// <summary>

--
Gitblit v1.9.1