Browse Source

增加订单超时字段

develop
李可松 4 years ago
parent
commit
71120f0701
  1. 4
      MySQL_change.sql
  2. 18
      app/Http/Controllers/Api/OrderController.php

4
MySQL_change.sql

@ -217,3 +217,7 @@ ALTER TABLE `agent_products`
ADD COLUMN `deposit_timeout` INT NOT NULL DEFAULT 0 COMMENT '订金支付超时时间,单位:分钟' AFTER `deposit`, ADD COLUMN `deposit_timeout` INT NOT NULL DEFAULT 0 COMMENT '订金支付超时时间,单位:分钟' AFTER `deposit`,
ADD COLUMN `earnest` DECIMAL(20,2) NOT NULL DEFAULT '0' COMMENT '定金' AFTER `deposit_timeout`, ADD COLUMN `earnest` DECIMAL(20,2) NOT NULL DEFAULT '0' COMMENT '定金' AFTER `deposit_timeout`,
ADD COLUMN `earnest_timeout` INT NOT NULL DEFAULT 0 COMMENT '定金支付超时时间,单位:分钟' AFTER `earnest`; ADD COLUMN `earnest_timeout` INT NOT NULL DEFAULT 0 COMMENT '定金支付超时时间,单位:分钟' AFTER `earnest`;
# 10:58 2021/8/30
ALTER TABLE `orders`
ADD COLUMN `timeout` TIMESTAMP NULL DEFAULT NULL COMMENT '订单超时时间,超过这个时间,订单将变为“已取消”' AFTER `verify_code`;

18
app/Http/Controllers/Api/OrderController.php

@ -6,8 +6,8 @@ use App\Common\PayType;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\Agent; use App\Models\Agent;
use App\Models\AgentProduct; use App\Models\AgentProduct;
use App\Models\AgentSetting;
use App\Models\Coupon; use App\Models\Coupon;
use App\Models\Product;
use App\Models\User; use App\Models\User;
use App\Models\Order; use App\Models\Order;
use EasyWeChat\Factory; use EasyWeChat\Factory;
@ -74,8 +74,8 @@ class OrderController extends Controller
}, $v['pictures']); }, $v['pictures']);
} }
//10分钟内未付款订单提示付款
if ($v['status'] == Status::UNPAID) {
//10分钟内未付款订单提示付款 TODO 此部分由定时
/*if ($v['status'] == Status::UNPAID) {
$minute = $time - strtotime($v['created_at']); $minute = $time - strtotime($v['created_at']);
//订单创建后10分钟内未付款则提示,否则取消订单 //订单创建后10分钟内未付款则提示,否则取消订单
if ($minute < 600) { if ($minute < 600) {
@ -87,7 +87,7 @@ class OrderController extends Controller
//TODO 加回库存,未考虑到几天/几个月后再打开订单列表页的情况,需要定时任务处理 //TODO 加回库存,未考虑到几天/几个月后再打开订单列表页的情况,需要定时任务处理
Product::query()->find($v['product_id'])->increment('stock', $v['num']); Product::query()->find($v['product_id'])->increment('stock', $v['num']);
} }
}
}*/
} }
//超时订单设置为已取消 TODO 测试阶段暂时注释 //超时订单设置为已取消 TODO 测试阶段暂时注释
@ -154,6 +154,15 @@ class OrderController extends Controller
//代理商产品表减库存 //代理商产品表减库存
$ap->decrement('stock', $formData['num']); $ap->decrement('stock', $formData['num']);
if ($formData['pay_type'] == PayType::DEPOSIT_PAY && $ap->deposit_timeout > 0) {
$timeout = date('Y-m-d H:i:s', time() + $ap->deposit_timeout * 60);
} else if ($formData['pay_type'] == PayType::EARNEST_PAY && $ap->earnest_timeout > 0) {
$timeout = date('Y-m-d H:i:s', time() + $ap->earnest_timeout * 60);
} else {
$order_timeout = AgentSetting::val($this->agent_id, 'order_timeout') ?? 1440;
$timeout = date('Y-m-d H:i:s', time() + $ap->earnest_timeout * $order_timeout);
}
// 存入订单表 // 存入订单表
$order = Order::query()->create([ $order = Order::query()->create([
'user_id' => $this->user_id, 'user_id' => $this->user_id,
@ -172,6 +181,7 @@ class OrderController extends Controller
'pay_type' => $formData['pay_type'], 'pay_type' => $formData['pay_type'],
'coupon_id' => join(',', $coupon_ids), 'coupon_id' => join(',', $coupon_ids),
'guide_id' => $ap->guide_id, 'guide_id' => $ap->guide_id,
'timeout' => $timeout,
]); ]);
DB::commit(); DB::commit();

Loading…
Cancel
Save