|
|
@@ -5,87 +5,98 @@ namespace console\controllers;
|
|
|
use biz\shop\classes\ShopClass;
|
|
|
use bizGhs\order\classes\OrderClass;
|
|
|
use common\components\noticeUtil;
|
|
|
-use common\components\util;
|
|
|
use Yii;
|
|
|
use yii\console\Controller;
|
|
|
|
|
|
class GhsOrderController extends Controller
|
|
|
{
|
|
|
|
|
|
- public function actionBcId()
|
|
|
- {
|
|
|
- ini_set('memory_limit', '2045M');
|
|
|
- set_time_limit(0);
|
|
|
-
|
|
|
- $list = OrderClass::getAllByCondition(['mainId' => 0], null, '*', null, true);
|
|
|
- if (!empty($list)) {
|
|
|
- foreach ($list as $order) {
|
|
|
- $shopId = $order->shopId ?? 0;
|
|
|
- $shop = ShopClass::getById($shopId, true);
|
|
|
- $mainId = $shop->mainId ?? 0;
|
|
|
- if (!empty($mainId)) {
|
|
|
- $order->mainId = $mainId;
|
|
|
- $order->save();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
// 脚本一:每天 03:20 执行,处理付款时间 7~10 天前订单
|
|
|
- public function actionAutoSetOrderToFinish()
|
|
|
+ public function actionAutoFinish()
|
|
|
{
|
|
|
ini_set('memory_limit', '2045M');
|
|
|
set_time_limit(0);
|
|
|
|
|
|
- $minPayTime = date('Y-m-d H:i:s', strtotime('-10 day'));
|
|
|
- $maxPayTime = date('Y-m-d H:i:s', strtotime('-7 day'));
|
|
|
+ $minPayTime = date('Y-m-d H:i:s', strtotime('-12 day'));
|
|
|
+ $maxPayTime = date('Y-m-d H:i:s', strtotime('-10 day'));
|
|
|
$extraCondition = [
|
|
|
+ 'payStatus' => 1,
|
|
|
'status' => ['in', [2, 3]],
|
|
|
'payTime' => ['between', [$minPayTime, $maxPayTime]],
|
|
|
];
|
|
|
- $params = ['staffId' => 0, 'staffName' => '系统', 'notice' => false]; // notice设置为 false,实现不发送发货通知
|
|
|
- $orders = OrderClass::getAllByCondition($extraCondition, 'id asc', '*', null, true);
|
|
|
- if (empty($orders)) {
|
|
|
- util::stop('没有数据需要处理');
|
|
|
- }
|
|
|
- foreach ($orders as $order) {
|
|
|
- $connection = Yii::$app->db;
|
|
|
- $transaction = $connection->beginTransaction();
|
|
|
- try {
|
|
|
- OrderClass::confirmReach($order, $params);
|
|
|
- $transaction->commit();
|
|
|
- } catch (\Exception $e) {
|
|
|
- $transaction->rollBack();
|
|
|
- $orderId = $order->id ?? 0;
|
|
|
- noticeUtil::push("批发订单自动完结失败 orderId={$orderId}, message={$e->getMessage()}", '15280215347');
|
|
|
+
|
|
|
+ $ghsShops = ShopClass::getAllByCondition(['ptStyle' => 2, 'live' => 1], null, 'mainId');
|
|
|
+ if (!empty($ghsShops)) {
|
|
|
+ $mainIds = array_unique(array_filter(array_column($ghsShops, 'mainId')));
|
|
|
+ if (!empty($mainIds)) {
|
|
|
+ $params = ['staffId' => 0, 'staffName' => '系统', 'notice' => false]; // notice设置为 false,实现不发送发货通知
|
|
|
+ foreach ($mainIds as $mainId) {
|
|
|
+ $condition = array_merge(['mainId' => $mainId], $extraCondition);
|
|
|
+ $query = OrderClass::getActiveRecord()->conditionQuery($condition)->orderBy('id asc');
|
|
|
+ foreach ($query->batch(1000) as $orders) {
|
|
|
+ if (empty($orders)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ foreach ($orders as $order) {
|
|
|
+ $connection = Yii::$app->db;
|
|
|
+ $transaction = $connection->beginTransaction();
|
|
|
+ try {
|
|
|
+ OrderClass::confirmReach($order, $params);
|
|
|
+ $transaction->commit();
|
|
|
+// $payTime = $order->payTime ?? 0;
|
|
|
+// echo $order->id . " " . $payTime . " ok \n";
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ $transaction->rollBack();
|
|
|
+ $orderId = $order->id ?? 0;
|
|
|
+ noticeUtil::push("订单自动完结失败 orderId={$orderId}, message={$e->getMessage()}", '15280215347');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
Yii::info('批发订单自动完结脚本成功执行');
|
|
|
}
|
|
|
|
|
|
// 脚本二:历史补偿,处理付款超过 10 天未完结订单
|
|
|
- public function actionSetOldOrderToFinish()
|
|
|
+ public function actionAutoFinishHistory()
|
|
|
{
|
|
|
$maxPayTime = date('Y-m-d H:i:s', strtotime('-10 day'));
|
|
|
$extraCondition = [
|
|
|
+ 'payStatus' => 1,
|
|
|
'status' => ['in', [2, 3]],
|
|
|
'payTime<' => $maxPayTime,
|
|
|
];
|
|
|
- $params = ['staffId' => 0, 'staffName' => '系统', 'notice' => false]; // notice设置为 false,实现不发送发货通知
|
|
|
- $orders = OrderClass::getAllByCondition($extraCondition, 'id asc', '*', null, true);
|
|
|
- if (empty($orders)) {
|
|
|
- util::stop('没有数据需要处理');
|
|
|
- }
|
|
|
- foreach ($orders as $order) {
|
|
|
- $connection = Yii::$app->db;
|
|
|
- $transaction = $connection->beginTransaction();
|
|
|
- try {
|
|
|
- OrderClass::confirmReach($order, $params);
|
|
|
- $transaction->commit();
|
|
|
- } catch (\Exception $e) {
|
|
|
- $transaction->rollBack();
|
|
|
- $orderId = $order->id ?? 0;
|
|
|
- noticeUtil::push("批发订单自动完结失败 orderId={$orderId}, message={$e->getMessage()}", '15280215347');
|
|
|
+
|
|
|
+ $ghsShops = ShopClass::getAllByCondition(['ptStyle' => 2, 'live' => 1], null, 'mainId');
|
|
|
+ if (!empty($ghsShops)) {
|
|
|
+ $mainIds = array_unique(array_filter(array_column($ghsShops, 'mainId')));
|
|
|
+ if (!empty($mainIds)) {
|
|
|
+ $params = ['staffId' => 0, 'staffName' => '系统', 'notice' => false]; // notice设置为 false,实现不发送发货通知
|
|
|
+ foreach ($mainIds as $mainId) {
|
|
|
+ $condition = array_merge(['mainId' => $mainId], $extraCondition);
|
|
|
+ $query = OrderClass::getActiveRecord()->conditionQuery($condition)->orderBy('id asc');
|
|
|
+ foreach ($query->batch(1000) as $orders) {
|
|
|
+ if (empty($orders)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ foreach ($orders as $order) {
|
|
|
+ $connection = Yii::$app->db;
|
|
|
+ $transaction = $connection->beginTransaction();
|
|
|
+ try {
|
|
|
+ OrderClass::confirmReach($order, $params);
|
|
|
+ $transaction->commit();
|
|
|
+ $payTime = $order->payTime ?? 0;
|
|
|
+ echo $order->id . " " . $payTime . " ok \n";
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ $transaction->rollBack();
|
|
|
+ $orderId = $order->id ?? 0;
|
|
|
+ noticeUtil::push("自动完结失败,orderId={$orderId}, message={$e->getMessage()}", '15280215347');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
Yii::info('批发订单自动完结历史补偿脚本成功执行');
|