travel/service/app/command/LiveRoomWorkCommand.php

55 lines
1.8 KiB
PHP

<?php
namespace app\command;
use app\model\Admins;
use app\model\LiveRoomWorks;
use app\model\Orders;
use app\model\Sales;
use app\model\Works;
use Carbon\Carbon;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputDefinition;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use think\facade\Db;
class LiveRoomWorkCommand extends Command
{
protected static $defaultName = 'LiveRoomWorkCommand';
protected static $defaultDescription = '直播间排班表处理';
protected function configure()
{
$this
->setName('LiveRoomWorkCommand')
->setDescription('直播间排班表处理')
->setDefinition(
new InputDefinition(array(
new InputOption('room_id', 'd', InputOption::VALUE_REQUIRED),
))
);
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('LiveRoomWorkService start');
// 找出直播已结束的排班
$now = Carbon::now()->toDateTimeString();
$endRooms = LiveRoomWorks::where([['end', '<', $now]])->whereNull('orders')->select();
// 统计排班数据
foreach ($endRooms as $endRoom) {
$orderSum = Orders::where('live_room_work_id', $endRoom->id)
->fieldRaw('count(1) as order_num')
->fieldRaw('sum(total_price) as total_price')
->find();
LiveRoomWorks::where('id', $endRoom->id)->update(['orders' => $orderSum->order_num ?? 0, 'total' => $orderSum->total_price ?? 0]);
}
$output->writeln('LiveRoomWorkService end');
return 1;
}
}