username@email.com
2024-04-30 d15481638e21ccc610f5e36577497cb6279839b9
CoreCms.Net.Services/Order/CoreCmsPlanOrderServices.cs
@@ -35,6 +35,7 @@
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;
namespace CoreCms.Net.Services
@@ -48,17 +49,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 实现重写增删改查操作==========================================================
@@ -163,6 +167,8 @@
            }
            if (userId > 0)
            {
                //var user = await _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Where(x => x.id == userId).FirstAsync();
                where = where.And(p => p.userId == userId);
            }
            var list = await _dal.QueryPageAsync(where, p => p.createTime, OrderByType.Desc, page, limit);
@@ -201,8 +207,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 +217,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;
@@ -240,20 +255,24 @@
                {
                    _unitOfWork.RollbackTran();
                    jm.status = false;
                    jm.otherData = "可用余额不能为负";
                    jm.otherData = "订单金额超出计划金额";
                    return jm;
                }
                var keYongAmount = oldorderAmount - 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,7 +324,15 @@
                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)
                {
@@ -313,9 +340,30 @@
                }
                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;
                    }
                    else
                    {
                            //找不到用户就注册用户
                            jm.code = 1;
                            jm.msg = order.shipMobile + "联系电话不正确";
                            return jm;
                    }
                }
               
                order.createBy = userName;
@@ -323,10 +371,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,8 +411,18 @@
                    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;
@@ -353,9 +430,16 @@
                order.keYongAmount = 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 +458,7 @@
            catch (Exception e)
            {
                _unitOfWork.RollbackTran();
                jm.code = 0;
                jm.code = 1;
                jm.otherData = e.ToString();
            }
            return jm;