From cc170291673472d3cda8d7ea77f6bd3a3b5dbb83 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期一, 09 九月 2024 14:06:09 +0800
Subject: [PATCH] 增加了一些统计修改

---
 CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs |  291 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 260 insertions(+), 31 deletions(-)

diff --git a/CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs b/CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs
index 0464b05..08ba982 100644
--- a/CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs
+++ b/CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs
@@ -35,6 +35,8 @@
 using CoreCms.Net.Model.Entities.baifenbingfa.Promote;
 using static SKIT.FlurlHttpClient.Wechat.Api.Models.ScanProductAddV2Request.Types.Product.Types;
 using NPOI.SS.Formula.Functions;
+using CoreCms.Net.Model.FromBody;
+using Essensoft.Paylink.Alipay.Domain;
 
 
 namespace CoreCms.Net.Services
@@ -48,17 +50,20 @@
         private readonly IUnitOfWork _unitOfWork;
         private readonly ICoreCmsPlanOrderItemRepository _itemDal;
         private readonly ICoreCmsUserServices _coreCmsUserServices;
+        private readonly ICoreCmsUserServices _userServices;
 
         public CoreCmsPlanOrderServices(IUnitOfWork unitOfWork, ICoreCmsPlanOrderRepository dal
             , ICoreCmsPlanOrderItemRepository itemDal
-            , ICoreCmsUserServices coreCmsUserServices)
+            , ICoreCmsUserServices coreCmsUserServices
+            , ICoreCmsUserServices userServices)
         {
             this._dal = dal;
             base.BaseDal = dal;
             _unitOfWork = unitOfWork;
             _itemDal = itemDal;
             _coreCmsUserServices = coreCmsUserServices;
-        }
+            _userServices =userServices;
+    }
 
         #region 瀹炵幇閲嶅啓澧炲垹鏀规煡鎿嶄綔==========================================================
 
@@ -97,9 +102,72 @@
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
-        public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
+        public async Task<AdminUiCallBack> DeleteByIdAsync(object id,string userName)
         {
-            return await _dal.DeleteByIdAsync(id);
+            var jm = new AdminUiCallBack() ;
+            try
+            {
+                //寮�濮嬩簨鍔″鐞�
+                _unitOfWork.BeginTran();
+                var order = await _dal.QueryByIdAsync(id);
+
+                if (order.status == 2)  //&& string.IsNullOrEmpty(houtai)
+                {
+                    _unitOfWork.RollbackTran();
+                    jm.code = 1;
+                    jm.msg = "璁㈠崟宸茬粡閿佸崟涓嶈兘閲嶅閿佸崟";
+                    return jm;
+                }
+
+                order.upDataBy = userName;
+                order.upDataTime = DateTime.Now;
+
+
+
+
+
+
+
+                //order.keYongAmount = order.oldOrderAmount - order.orderAmount;
+              
+
+                 
+                    order.status = 2;
+
+                //if (order.keYongAmount > 0)
+                //{
+                //    //淇敼鐢ㄦ埛浣欓
+
+                //    var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, order.keYongAmount, "鐢ㄦ埛璁″垝璁㈠崟" + order.orderId + "娆鹃」缁撲綑");
+                //}
+
+
+
+                //}
+
+
+                //鏍¢獙鍚庡啀鍒涘缓璁㈠崟
+                var jmss = await _dal.UpdateAsync(order);
+
+
+
+
+
+
+                _unitOfWork.CommitTran();
+
+                jm.code = 0;
+                jm.data = order;
+                jm.msg = "閿佸崟鎴愬姛";
+            }
+            catch (Exception e)
+            {
+                _unitOfWork.RollbackTran();
+                jm.code = 1;
+                jm.msg = e.ToString();
+            }
+            return jm;
+            //return await _dal.DeleteByIdAsync(id);
         }
 
         /// <summary>
@@ -107,9 +175,77 @@
         /// </summary>
         /// <param name="ids"></param>
         /// <returns></returns>
-        public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
+        public async Task<AdminUiCallBack> DeleteByIdsAsync(string[] ids, string userName)
         {
-            return await _dal.DeleteByIdsAsync(ids);
+            var jm = new AdminUiCallBack();
+            try
+            {
+                //寮�濮嬩簨鍔″鐞�
+                _unitOfWork.BeginTran();
+                var orders = await _dal.QueryListByClauseAsync(p => ids.Contains(p.orderId), p => p.orderId, OrderByType.Asc, true);
+
+                foreach (var order in orders)
+                {
+                    if (order.status != 2)  //&& string.IsNullOrEmpty(houtai)
+                    {
+                        order.upDataBy = userName;
+                        order.upDataTime = DateTime.Now;
+                        order.status = 2;
+                        //鏍¢獙鍚庡啀鍒涘缓璁㈠崟
+                        var jmss = await _dal.UpdateAsync(order);
+                    }
+
+                    
+
+
+
+
+
+
+                    //order.keYongAmount = order.oldOrderAmount - order.orderAmount;
+
+
+
+
+
+                    //if (order.keYongAmount > 0)
+                    //{
+                    //    //淇敼鐢ㄦ埛浣欓
+
+                    //    var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, order.keYongAmount, "鐢ㄦ埛璁″垝璁㈠崟" + order.orderId + "娆鹃」缁撲綑");
+                    //}
+
+
+
+                    //}
+
+
+                    
+                }
+
+
+
+               
+
+
+
+
+
+
+                _unitOfWork.CommitTran();
+
+                jm.code = 0;
+                jm.data = orders;
+                jm.msg = "閿佸崟鎴愬姛";
+            }
+            catch (Exception e)
+            {
+                _unitOfWork.RollbackTran();
+                jm.code = 1;
+                jm.msg = e.ToString();
+            }
+            return jm;
+            //return await _dal.DeleteByIdsAsync(ids);
         }
 
         #endregion
@@ -139,10 +275,10 @@
         /// <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,
+            Expression<Func<CoreCmsPlanOrder, object>> orderByExpression, OrderByType orderByType, OtherData otherData , int pageIndex = 1,
             int pageSize = 20, bool blUseNoLock = false)
         {
-            return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock);
+            return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, otherData, pageIndex, pageSize, blUseNoLock);
         }
         #endregion
 
@@ -151,7 +287,7 @@
         /// 鑾峰彇璁″垝璁㈠崟鍒楄〃寰俊灏忕▼搴�
         /// </summary>
         /// <returns></returns>
-        public async Task<WebApiCallBack> GetOrderList(int status = -1, int userId = 0, int page = 1, int limit = 5)
+        public async Task<WebApiCallBack> GetOrderList(int status = -1, int userId = 0, int page = 1, int limit = 5, int money = 0)
         {
             var jm = new WebApiCallBack { status = true };
 
@@ -163,7 +299,13 @@
             }
             if (userId > 0)
             {
+                //var user = await _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Where(x => x.id == userId).FirstAsync();
+
                 where = where.And(p => p.userId == userId);
+            }
+            if (money > 0)
+            {
+                where = where.And(p => p.keYongAmount > p.huaFeiAmount);
             }
             var list = await _dal.QueryPageAsync(where, p => p.createTime, OrderByType.Desc, page, limit);
 
@@ -173,7 +315,7 @@
                 {
                     //鑾峰彇鐩稿叧鐘舵�佹弿杩拌鏄庤浆鎹�
                     order.statusText = EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.PlanOrderTiJiao>(order.status);
-                    
+                    order.keYongAmount = order.keYongAmount - order.huaFeiAmount;
                 }
             }
             jm.data = new
@@ -201,8 +343,9 @@
         /// <param name="status">璁″垝璁㈠崟鐘舵��</param>
         /// <param name="itemIds">鏄庣粏id</param>
         /// <param name="itemNums">鏄庣粏鏁伴噺</param>
+        /// <param name="houtai">鏄惁鍚庡彴缂栬緫</param>
         /// <returns></returns>
-        public async Task<WebApiCallBack> ToUpdate(string orderId, int userId, string userName, int status, string itemIds, string itemNums)
+        public async Task<WebApiCallBack> ToUpdate(string orderId, int userId, string userName, int status, string itemIds, string itemNums, string houtai = "")
         {
             var jm = new WebApiCallBack() { methodDescription = "淇敼璁″垝璁㈠崟" };
             try
@@ -210,7 +353,15 @@
                 //寮�濮嬩簨鍔″鐞�
                 _unitOfWork.BeginTran();
                 var order  = await _dal.QueryByIdAsync(orderId);
-               
+
+                var oldorderAmount = order.orderAmount;
+                if (order.status == 2 && string.IsNullOrEmpty(houtai))   
+                {
+                    _unitOfWork.RollbackTran();
+                    jm.status = false;
+                    jm.otherData = "璁㈠崟宸茬粡閿佸崟涓嶈兘淇敼";
+                    return jm;
+                }
 
                 order.upDataBy = userName;
                 order.upDataTime = DateTime.Now;
@@ -234,28 +385,36 @@
                 }
 
                 order.orderAmount = orderAmount;
-                order.keYongAmount = order.oldOrderAmount - order.orderAmount;
+                order.keYongAmount = order.oldOrderAmount - order.orderAmount ;
 
-                if (order.keYongAmount < 0)
+                if (order.keYongAmount < order.huaFeiAmount)
                 {
                     _unitOfWork.RollbackTran();
                     jm.status = false;
-                    jm.otherData = "鍙敤浣欓涓嶈兘涓鸿礋";
+                    jm.otherData = "鍙敤浣欓涓嶈冻";
+                    return jm;
                 }
 
-                if (status == 2)
-                {
-                    order.status = 2;
+                //var keYongAmount = oldorderAmount - orderAmount;
+                //if (order.status == 1)
+                //{
+                //    keYongAmount = order.oldOrderAmount - order.orderAmount;
+                //}
 
+                //if (status == 2)
+                //{
+                //    order.status = 2;
 
-                    if (order.keYongAmount > 0)
-                    {
-                        //淇敼鐢ㄦ埛浣欓
+                //    if (keYongAmount != 0)
+                //    {
+                //        //淇敼鐢ㄦ埛浣欓
 
-                        var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, order.keYongAmount, "鐢ㄦ埛璁″垝璁㈠崟娆鹃」缁撲綑");
-                    }
+                //        var jmsss = await _coreCmsUserServices.UpdateBalance(order.userId, keYongAmount, "鐢ㄦ埛璁″垝璁㈠崟"+ order.orderId + "娆鹃」缁撲綑");
+                //    }
+                        
                     
-                }
+                    
+                //}
 
 
                 //鏍¢獙鍚庡啀鍒涘缓璁㈠崟
@@ -305,17 +464,50 @@
                 order.status = 1;
                 order.shipMobile = jiHuaOrders[0].shipMobile;
                 order.shipAddress = jiHuaOrders[0].shipAddress;
-                order.shipName = jiHuaOrders[0].shipName; ;
+                order.shipName = jiHuaOrders[0].shipName;
+                order.shouhuoAddress = jiHuaOrders[0].shouhuoAddress;
+                if (string.IsNullOrEmpty(order.shipMobile))
+                {
+                    //鎵句笉鍒扮敤鎴峰氨娉ㄥ唽鐢ㄦ埛
+                    jm.code = 1;
+                    jm.msg = order.shipMobile + "鑱旂郴鐢佃瘽涓嶈兘涓虹┖";
+                    return jm;
+                }
                 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;
+                    user.isplanorder = "鏄�";
+                  var users = await _unitOfWork.GetDbClient().Updateable(user).ExecuteCommandAsync();
                 }
                 else
                 {
-                    jm.code = 1;
-                    jm.msg = order.shipMobile + "娌℃湁鎵惧埌鐢ㄦ埛";
-                    return jm;
+
+                    var data = new FMWxAccountCreate
+                    {
+                        mobile = order.shipMobile,
+                        invitecode = 0,
+                        sessionAuthId = ""
+                    };
+
+                   var jms = await _userServices.SmsLogin(data);
+                     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;
+                        user.isplanorder = "鏄�";
+                        var users = await _unitOfWork.GetDbClient().Updateable(user).ExecuteCommandAsync();
+                    }
+                    else
+                    {
+                       
+                            //鎵句笉鍒扮敤鎴峰氨娉ㄥ唽鐢ㄦ埛
+                            jm.code = 1;
+                            jm.msg = order.shipMobile + "鑱旂郴鐢佃瘽涓嶆纭�";
+                            return jm;
+                        
+                    }
+                  
                 }
                
                 order.createBy = userName;
@@ -323,10 +515,29 @@
                 order.upDataBy = userName;
                 order.upDataTime = DateTime.Now;
                 order.isdelete = false;
-             
 
 
+                var shi = await _unitOfWork.GetDbClient().Queryable<CoreCmsArea>().Where(x => x.name == jiHuaOrders[0].shi).FirstAsync();
+                if(shi == null)
+                {
+                    jm.code = 1;
+                    jm.msg = order.shipMobile + "娌℃湁鎵惧埌甯�";
+                    return jm;
+                }
 
+                var quxian = await _unitOfWork.GetDbClient().Queryable<CoreCmsArea>().Where(x => x.name == jiHuaOrders[0].quxian && x.parentId == shi.id).FirstAsync();
+                if (shi == null)
+                {
+                    jm.code = 1;
+                    jm.msg = order.shipMobile + "娌℃湁鎵惧埌鍖哄幙";
+                    return jm;
+                }
+                order.shengId = 510000;
+                order.shi = jiHuaOrders[0].shi;
+                order.shiId = shi.id;
+                order.quxianId = quxian.id;
+                order.quxian = jiHuaOrders[0].quxian;
+                order.pianqu = jiHuaOrders[0].pianqu;
 
 
                 decimal orderAmount = 0;
@@ -344,18 +555,36 @@
                     item.upDataBy = userName;
                     item.upDataTime = DateTime.Now;
                     item.isdelete = false;
+                    item.isOld = true;
                     var jms = await _itemDal.InsertAsync(item);
                     orderAmount += item.amount;
+
+
+                    item.isOld = false;
+                    jms = await _itemDal.InsertAsync(item);
+                    if (jms.code == 1)
+                    {
+                         
+                        return jms;
+                    }
                 }
 
                 order.orderAmount = orderAmount;
                 order.oldOrderAmount = orderAmount;
                 order.keYongAmount = 0;
+                order.huaFeiAmount = 0;
 
                 //鏍¢獙鍚庡啀鍒涘缓璁㈠崟
-                var jmss = await _dal.InsertAsync(order);
 
+                var sss =  await _unitOfWork.GetDbClient().Insertable<CoreCmsPlanOrder>(order).ExecuteCommandAsync();
 
+                //var jmss = await _dal.InsertAsync(order);
+
+                //if (jmss.code == 1)
+                //{
+
+                //    return jmss;
+                //}
 
 
 
@@ -374,7 +603,7 @@
             catch (Exception e)
             {
                 _unitOfWork.RollbackTran();
-                jm.code = 0;
+                jm.code = 1;
                 jm.otherData = e.ToString();
             }
             return jm;

--
Gitblit v1.9.1