55 lines
1.8 KiB
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;
|
|
}
|
|
} |