SourceCode/jiouosdptask/BLL/Order.cs

(开头部分) 11KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using RFrameGenerate.BLL;
using RFrameGenerate.DAL.Enums;
using RFrameGenerate.Model;
using RFramework.SQLServer;
using RFramework.SQLServer.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace jiouosdptask.BLL
{
    public class Order
    {
        /// <summary>
        /// 买家下单后,超过过期时间而未付款,订单自动变为过期。过期订单,不能继续交易。 
        /// </summary>
        public static void orderCloseTime()
        {
            using (var tran = new SqlRTransaction())
            {
                var queryOrder = Factory.CreateT_BAS_Orders(tran);
                var query = Factory.CreateProcedure(tran);
                var query_sku = Factory.CreateT_BAS_ProductSKU(tran);
                GridModel gridModel = new GridModel() { page = 1, rows = 10000, };
                while (true)
                {
                    var orderList = queryOrder.GetPageList(gridModel, a => a.OrderState == DictionaryConst.OrderState.Unpaid, false, b => b.OrderTime, OrderMethods.ASC, LockType.Default, false);
                    orderList.ForEach(o =>
                    {
                        var param = ParameterManage.GetParameter(ParameterName.Order.AutoExpirationTime, o.MerchantGuid.Value);
                        if (param != null)
                        {
                            var minute = Convert.ToDouble(param.ParameterValue);
                            if (minute > 0)
                            {
                                if (o.OrderTime.AddMinutes(minute) < DateTime.Now)
                                {//超过过期时间而未付款,关闭
                                    queryOrder.Update(a => new object[] { a.OrderState == DictionaryConst.OrderState.BeCancel, a.OrderInnerState == DictionaryConst.OrderInnerState.BeCancel }, b => b.OrderGuid == o.OrderGuid, false);
                                    //自动关闭订单
                                    var listDetail = query.GetOrderDetails(o.OrderGuid);
                                    foreach (var v in listDetail)
                                    {
                                        var product = query.GetProduct(v.ProductGuid.Value);
                                        if (product.InventoryWay == DictionaryConst.InventoryWay.LessStockBySingle)
                                        {

                                            //无规格
                                            if (v.GroupGuid == null)
                                            {
                                                //付款减库存,未并发处理
                                                decimal inventory = product.Inventory + v.Quantity.Value;
                                                decimal saleVolume = product.SalesVolume - v.Quantity.Value;
                                                query.UpdateProduct(inventory, saleVolume, product.ProductGuid);
                                            }//有规格
                                            else
                                            {
                                                //付款减库存,未并发处理
                                                decimal inventory = product.Inventory + v.Quantity.Value;
                                                decimal saleVolume = product.SalesVolume - v.Quantity.Value;
后面还有 143 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。