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 算力,解读结果公开显示在下面。
还没有人解读过这个文件。