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