123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- /**
- * Created by PhpStorm.
- * User: tandunzhao
- * Date: 2017/11/20
- * Time: 下午5:26
- */
- namespace App\Console\Commands;
- use App\Modules\Book\Models\Book;
- use App\Modules\Subscribe\Services\BookOrderService;
- use App\Modules\User\Services\ReadRecordService;
- use DB;
- use Illuminate\Console\Command;
- use Log;
- class WholeBookOrderData extends Command
- {
- /**
- * 执行命令 检查图书封面
- *
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'wholeBookOrderData';
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = '整本书订购的统计';
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- Log::info('wholeBookOrderData start command');
- $this->loadWholeBookOrderInfo();
- Log::info('wholeBookOrderData end command');
- }
- function loadWholeBookOrderInfo()
- {
- $bookArray = [];
- $lastCidArray = [];
- $pageSize = 10000;
- $totalCount = BookOrderService::getCount();
- $totalPageCount = Ceil($totalCount / $pageSize); ////总页数
- for ($pageIndex = 0; $pageIndex < $totalPageCount; $pageIndex++) {
- $startIndex = $pageIndex * $pageSize;
- $orderInfo = BookOrderService::getOrderInfos($startIndex, $startIndex + $pageSize);
- foreach ($orderInfo as $orderItem) {
- $bid = $orderItem->bid;
- $readRecod = ReadRecordService::getRecordByUidBid($orderItem->uid, $bid);
- if ($readRecod) {
- $read_cid = explode($readRecod, '_')[0];
- if (isset($lastCidArray[$bid])) {
- $last_cid = $lastCidArray[$bid];
- } else {
- $cidInfo = Book::where('id', $bid)->select('last_cid')->first();
- $last_cid = $cidInfo->last_cid;
- $lastCidArray[$bid] = $last_cid;
- }
- if ($read_cid == $last_cid) {
- $bookArray[$bid] = isset($bookArray[$bid]) ? ($bookArray[$bid] + 1) : 1;
- }
- }
- }
- }
- foreach ($bookArray as $bid => $count) {
- DB::table('temp_book_order_stats')->where('bid', $bid)->update(['read_end_sub_user_num' => $count]);
- }
- }
- }
|