username@email.com
2024-12-11 5cccbb67654e468245dac77ca9de0b445771e329
CY_ECommercePlatform/CY.BLL/EC/EC_OrderBasicBLL.cs
@@ -29,6 +29,9 @@
using CY.Model;
using CY.IDAL;
using CY.Infrastructure.Query;
using CY.Model.Inquiry;
using CY.Infrastructure.Common;
using CY.IDAL.EC;
namespace CY.BLL.EC
{
@@ -38,10 +41,15 @@
    public class EC_OrderBasicBLL
    {
        IEC_OrderBasicDAL _eC_OrderBasicDAL = null;
        IEC_OrderPrintParameterDAL _eC_OrderPrintParameterDAL = null;
        IEC_OrderExtendDAL _eC_OrderExtendDAL = null;
        IPay_TradingSingleDAL _pay_TradingSingleDAL = null;
        public EC_OrderBasicBLL()
        {
            _eC_OrderBasicDAL = AbstractFactory.Factory.GetDALByInterfaceName(AbstractFactory.DALInterface.IEC_OrderBasicDAL) as IEC_OrderBasicDAL;
            _eC_OrderPrintParameterDAL = AbstractFactory.Factory.GetDALByInterfaceName(AbstractFactory.DALInterface.IEC_OrderPrintParameterDAL) as IEC_OrderPrintParameterDAL;
            _eC_OrderExtendDAL = AbstractFactory.Factory.GetDALByInterfaceName(AbstractFactory.DALInterface.IEC_OrderExtendDAL) as IEC_OrderExtendDAL;
            _pay_TradingSingleDAL = AbstractFactory.Factory.GetDALByInterfaceName(AbstractFactory.DALInterface.IPay_TradingSingleDAL) as IPay_TradingSingleDAL;
        }
        /// <summary>
@@ -64,6 +72,17 @@
        public IEnumerable<EC_OrderBasic> SelectModelPage_Seller(Infrastructure.Query.Pagination pagination, Dictionary<int, object> searchParam)
        {
            return _eC_OrderBasicDAL.SelectModelPage_Seller(pagination, searchParam);
        }
        /// <summary>
        /// 作业本送货分页查询
        /// </summary>
        /// <param name="pagination"></param>
        /// <returns></returns>
        public IEnumerable<EC_OrderBasic> SelectModelPageWorkBook(Infrastructure.Query.Pagination pagination, Guid _MemberID, string txtBeginDate, string txtEndDate, string txtOrderId, string txtSearchyjname, string selCustormerManager, string selBusinessManager, string selOrderStates)
        {
            return _eC_OrderBasicDAL.SelectModelPageWorkBook(pagination, _MemberID, txtBeginDate, txtEndDate, txtOrderId, txtSearchyjname, selCustormerManager, selBusinessManager, selOrderStates);
        }
        /// <summary>
@@ -122,6 +141,17 @@
        }
        /// <summary>
        /// 锁定订单
        /// </summary>
        /// <param name="orderId">订单编号</param>
        /// <param name="operator">操作人</param>
        /// <returns></returns>
        public bool SuodingOrder(int orderId, string operater)
        {
            return _eC_OrderBasicDAL.SuodingOrder(orderId, operater);
        }
        /// <summary>
        /// 批量受理订单
        /// </summary>
        /// <param name="orderIds"></param>
@@ -140,6 +170,16 @@
        public bool UpdateOrderState(params  EC_OrderOperate[] orderOperates)
        {
            return _eC_OrderBasicDAL.UpdateOrderState(orderOperates);
        }
        /// <summary>
        /// 修改订单状态(非支付状态且不可修改为未受理和已受理)
        /// </summary>
        /// <param name="orderOperate">订单操作</param>
        /// <returns></returns>
        public bool UpSurplusPrintNum(int? Keyid, int? SurplusPrintNum, string Operator)
        {
            return _eC_OrderExtendDAL.UpSurplusPrintNumsql(Keyid, SurplusPrintNum, Operator);
        }
        /// <summary>
@@ -171,6 +211,16 @@
        public EC_OrderBasic SelectModelById(int orderId)
        {
            return _eC_OrderBasicDAL.SelectModelById(orderId);
        }
        /// <summary>
        /// 根据订单编号获取订单
        /// </summary>
        /// <param name="orderIds">订单编号</param>
        /// <returns></returns>
        public IEnumerable<EC_OrderBasic> GetOrderByIds(string orderIds)
        {
            return _eC_OrderBasicDAL.GetOrderByIds(orderIds);
        }
        /// <summary>
@@ -245,6 +295,18 @@
        public bool ReceiveMoneyToAccount(int orderId, OA_FirmAccountRecord firmAccountRecord)
        {
            return _eC_OrderBasicDAL.ReceiveMoneyToAccount(orderId, firmAccountRecord);
        }
        /// <summary>
        /// 收款(线下转账、现金)
        /// </summary>
        /// <param name="orderId">订单编号</param>
        /// <param name="firmAccountRecord">操作记录</param>
        /// <returns></returns>
        public bool ReceiveMoneyToQueren(int orderId, OA_FirmAccountRecord firmAccountRecord)
        {
            return _eC_OrderBasicDAL.ReceiveMoneyToQueren(orderId, firmAccountRecord);
        }
        /// <summary>
@@ -413,6 +475,16 @@
        public void UpdatePrintState(int orderId)
        {
            _eC_OrderBasicDAL.UpdatePrintState(orderId);
        }
        /// <summary>
        /// 修改打印状态
        /// </summary>
        /// <param name="orderId"></param>
        public void UpdatePrintfengqianState(int orderId)
        {
            _eC_OrderBasicDAL.UpdatePrintfengqianState(orderId);
        }
        /// <summary>
@@ -614,5 +686,82 @@
        {
            return _eC_OrderBasicDAL.GetEC_OrderBasicListBydeliverorderId(deliverorderId, FirmId);
        }
        /// <summary>
        /// 重新计算订单的金额
        /// </summary>
        /// <param name="orderOperate"></param>
        /// <returns></returns>
        public bool UpdateorderJine(int orderId)
        {
            CoreCmsPlanOrderBLL _PlanOrderBLL = new CoreCmsPlanOrderBLL();
            CoreCmsPlanOrderItemBLL _coreCmsPlanOrderItemBLL = new CoreCmsPlanOrderItemBLL();
            var  eC_OrderBasic  = this.SelectModelById(orderId);
            EC_OrderPrintParameterBLL _OrderPrintParameterBLL = new EC_OrderPrintParameterBLL();
            var eC_OrderPrintParameter = _OrderPrintParameterBLL.GetModel(orderId);
           InquiryCommonModel model = SerializationHelper.DeSerialize(typeof(InquiryCommonModel), eC_OrderPrintParameter.PrintParameter) as InquiryCommonModel;
            //eC_OrderBasic.SumPrice =12 ;
            //eC_OrderBasic.UnitPrice = 12;
            var sss = model.InquiryWorkBookList;
            var coreCmsPlanOrders = _PlanOrderBLL.GetModelByorderid(orderId).ToList();
            decimal SumPrice = 0;
            int num = 0;
            var coreCmsPlanOrders2 = new List<CoreCmsPlanOrderItem>();
            foreach (var coreCmsPlanOrder  in coreCmsPlanOrders)
            {
                var coreCmsPlanOrders1  = _coreCmsPlanOrderItemBLL.GetModelsByOrderid(coreCmsPlanOrder.id).ToList();
                coreCmsPlanOrders2.AddRange(coreCmsPlanOrders1);
                num += coreCmsPlanOrders1.Sum(x=>x.nums);
                SumPrice += coreCmsPlanOrders1.Sum(x => x.amount);
            }
            eC_OrderBasic.SumPrice = SumPrice;
            if (num > 0)
            {
                eC_OrderBasic.UnitPrice = Math.Round(SumPrice / new decimal(num), 4);
            }
            else
            {
                eC_OrderBasic.UnitPrice = 0;
            }
            model.PrintCount = num;
            foreach ( var inquiryWorkBookModel in model.InquiryWorkBookList)
            {
                var sssssss = coreCmsPlanOrders2.Where(x => x.name == inquiryWorkBookModel.WorkBookNameTxt && x.specification == inquiryWorkBookModel.WorkBookSizeTxt).ToList();
                inquiryWorkBookModel.WorkBookCount = sssssss.Sum(x=>x.nums).ToString2();
                inquiryWorkBookModel.WorkBookMoney = sssssss.Sum(x=>x.amount).ToString2();
            }
            var isWin = _eC_OrderBasicDAL.Updatejinedanjia(eC_OrderBasic.Keyid.Value, eC_OrderBasic.SumPrice.Value, eC_OrderBasic.UnitPrice.Value, num);
            eC_OrderPrintParameter.PrintParameter = SerializationHelper.Serialize(model);
            isWin = _eC_OrderPrintParameterDAL.UpdateModel(eC_OrderPrintParameter);
            var pay_TradingSingles = _pay_TradingSingleDAL.GetOrderByIds(eC_OrderBasic.Keyid.Value).FirstOrDefault() ;
            if (pay_TradingSingles != null)
            {
                pay_TradingSingles.TradingMoney = eC_OrderBasic.SumPrice.Value;
                pay_TradingSingles.PayableMoney = eC_OrderBasic.SumPrice.Value;
                isWin = _pay_TradingSingleDAL.UpdateModel(pay_TradingSingles);
            }
            return isWin;
        }
    }
}