uid = $uid ? $uid : 0; $this->setCurrentTable(); } protected $connection = 'chapter_order_mysql'; protected $fillable = [ 'distribution_channel_id', 'bid', 'cid', 'chapter_name', 'uid', 'u', 'fee', 'book_name', 'send_order_id', 'charge_balance', 'reward_balance' ]; public function setCurrentTable() { $this->setTable('chapter_orders' . $this->uid % 512); } /** * 判断是否章节订购 */ public function checkIsOrdered($bid, $cid) { return self::where('uid', $this->uid) ->where('bid', $bid) ->where('cid', $cid) ->count(); } /** * 判断作品是否有章节订购 */ public function checkBookIsOrdered($bid) { return self::where('uid', $this->uid) ->where('bid', $bid) ->count(); } public function getByUid($page_size) { $chapter_orders = self::where('uid', $this->uid)->orderBy('created_at', 'desc')->paginate($page_size); $cids = collect($chapter_orders->items())->pluck('cid'); $bids = collect($chapter_orders->items())->pluck('bid'); $chapters = Chapter::select('id', 'name')->whereIn('id', $cids)->get(); $books = Book::select('id', 'name')->whereIn('id', $bids)->get(); foreach ($chapter_orders as $k => $v) { $chapter = $chapters->where('id', $v->cid)->first(); $book = $books->where('id', $v->bid)->first(); if ($chapter) $v->chapter_name = $chapter->name; if ($book) $v->book_name = $book->name; $chapter_orders[$k] = $v; } return $chapter_orders; } /** * @param $uid * @return array */ public function getUserAllSubBooks($uid): array { if (empty($uid)) { return []; } $result = self::select('bid')->where('uid', $uid)->groupBy('bid')->get(); return $result ? $result->toArray() : []; } }