v.2.27
Fixed reports
This commit is contained in:
@@ -2,11 +2,16 @@
|
||||
|
||||
namespace App\Commands;
|
||||
|
||||
use App\Component\Models\Base;
|
||||
use App\Component\Models\Dishes;
|
||||
use App\Component\Models\OrderBot;
|
||||
use App\Component\Models\OrderBotStorage;
|
||||
use App\Component\Models\OrderItems;
|
||||
use App\Component\Models\Orders;
|
||||
use App\Component\Models\TerminalUpdate;
|
||||
use App\Console\Commands\HRCCommand;
|
||||
use App\Console\Commands\HRCCommandInterface;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class POSTOrder extends HRCCommand implements HRCCommandInterface {
|
||||
protected $signature = 'postorder';
|
||||
@@ -97,6 +102,132 @@ class POSTOrder extends HRCCommand implements HRCCommandInterface {
|
||||
];
|
||||
}
|
||||
|
||||
if ($input['task'] == 'pay' && isset($input['info'])) {
|
||||
$test_json = Base::validate_json(urldecode($input['info']));
|
||||
if (!$test_json) {
|
||||
return [
|
||||
'status' => 'fail',
|
||||
'message' => 'Ошибка обработки JSON',
|
||||
];
|
||||
}
|
||||
$order_info = json_decode(urldecode($input['info']), true);
|
||||
|
||||
if (isset($order_info['order_id'])) {
|
||||
$order_id = intval($order_info['order_id']);
|
||||
$order = OrderBotStorage::where('id', $order_id)->first();
|
||||
if (!isset($order)) {
|
||||
return [
|
||||
'status' => 'fail',
|
||||
'message' => 'Заказ с данным ID не найден',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
return [
|
||||
'status' => 'fail',
|
||||
'message' => 'Отсутствует ID заказа',
|
||||
];
|
||||
}
|
||||
|
||||
if (isset($order_info['transaction_id'])) {
|
||||
$transaction_id = intval($order_info['transaction_id']);
|
||||
$order_data = json_decode(base64_decode($order['order']), true);
|
||||
if ($transaction_id != $order_data['id']) {
|
||||
return [
|
||||
'status' => 'fail',
|
||||
'message' => 'ID заказа не соответствует ID транзакции',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
return [
|
||||
'status' => 'fail',
|
||||
'message' => 'Отсутствует ID транзакции',
|
||||
];
|
||||
}
|
||||
|
||||
if (isset($order_info['time'])) {
|
||||
$pay_time = $order_info['time'];
|
||||
if ($pay_time < $order['created_at']) {
|
||||
return [
|
||||
'status' => 'fail',
|
||||
'message' => 'Время создания заказа больше чем время оплаты',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
return [
|
||||
'status' => 'fail',
|
||||
'message' => 'Отсутствует время оплаты заказа',
|
||||
];
|
||||
}
|
||||
|
||||
if (isset($order_info['amount'])) {
|
||||
$amount = floatval($order_info['amount']);
|
||||
if ($amount != floatval($order_data['price'])) {
|
||||
return [
|
||||
'status' => 'fail',
|
||||
'message' => 'Сумма оплаты не соответствует сумме заказа',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
return [
|
||||
'status' => 'fail',
|
||||
'message' => 'Отсутствует сумма оплаты',
|
||||
];
|
||||
}
|
||||
|
||||
if (isset($order_info['is_print'])) {
|
||||
$is_print = $order_info['is_print'];
|
||||
} else {
|
||||
$is_print = false;
|
||||
}
|
||||
|
||||
if (isset($order_info['is_closed'])) {
|
||||
$is_closed = $order_info['is_closed'];
|
||||
} else {
|
||||
$is_closed = false;
|
||||
}
|
||||
|
||||
if ($order['is_send'] === 0) {
|
||||
return [
|
||||
'status' => 'fail',
|
||||
'message' => 'Заказ ещё не отправлен',
|
||||
];
|
||||
} else {
|
||||
$pay_task = array(
|
||||
'order_id' => $order_id,
|
||||
'transaction_id' => $transaction_id,
|
||||
'time' => $pay_time,
|
||||
'amount' => $amount,
|
||||
'is_print' => $is_print,
|
||||
'is_closed' => $is_closed
|
||||
);
|
||||
$todayDate = Carbon::now('Europe/Minsk')->format('Y-m-d H:i:m');
|
||||
$bot_info = OrderBot::first();
|
||||
$terminal_id = $bot_info['terminal_id'];
|
||||
$check_order = TerminalUpdate::where('method', 'payorder')
|
||||
->where('more', base64_encode(json_encode($pay_task)))
|
||||
->count();
|
||||
if ($check_order > 0) {
|
||||
return [
|
||||
'status' => 'fail',
|
||||
'message' => 'Задача оплаты в обработке',
|
||||
];
|
||||
}
|
||||
$task = new TerminalUpdate;
|
||||
$task->terminal_id = $terminal_id;
|
||||
$task->next_at = $todayDate;
|
||||
$task->method = 'payorder';
|
||||
$task->period = 1;
|
||||
$task->is_cycle = 0;
|
||||
$task->more = base64_encode(json_encode($pay_task));
|
||||
$task->save();
|
||||
}
|
||||
|
||||
return [
|
||||
'status' => 'success',
|
||||
'message' => 'Информация об оплате отправлена',
|
||||
];
|
||||
}
|
||||
|
||||
} else {
|
||||
return [
|
||||
'status' => 'success',
|
||||
|
||||
Reference in New Issue
Block a user