setCurrentTable($uid); return $chapter_model->where('uid', $uid) ->where('bid', $bid) ->where('cid', $cid) ->count(); } //判断本书是否订购过 public static function checkBookIsOrdered($uid, $bid){ $chapter_model = new ChapterOrder(); $chapter_model->setCurrentTable($uid); return $chapter_model->where('uid', $uid) ->where('bid', $bid) ->count(); } /** * 根据uid章节订购信息 * @return */ public function getByUid($uid, $page_size) { $chapter_model = new ChapterOrder(); $chapter_model->setCurrentTable($uid); return $chapter_model->where('uid', $uid)->orderBy('created_at', 'desc')->paginate($page_size); } /** * 根据用户id获取用户的订购记录 * @param $uid 用户id * @param string $startTime 开始时间 * @param string $endTime 结束时间 * @param bool $isAll 获取所有 * @return mixed */ public static function getRecordByUid($uid, $startTime = "", $endTime = "", $isAll = false) { $chapter_model = new ChapterOrder(); $chapter_model->setCurrentTable($uid); $chapter = $chapter_model->where('uid', $uid)->orderBy('updated_at', 'desc'); if ($startTime) { $chapter->where('updated_at', '>=', $startTime); } if ($endTime) { $chapter->where('updated_at', '<=', $endTime . ' 23:59:59'); } if ($isAll) { return $chapter->get(); } else { return $chapter->paginate(); } } /** * 获取章节消费总额 * @param $uid * @return mixed */ public static function getChapterTotalConsume($uid) { $chapter_model = new ChapterOrder(); $chapter_model->setCurrentTable($uid); return $chapter_model->where('uid', $uid)->sum('fee'); } /** * 获取章节消费总额 * @param $uid * @return mixed */ public static function getChapterTotalConsumeByUserIdAndTime($uid, $startTime = "", $endTime = "") { $chapter_model = new ChapterOrder(); $chapter_model->setCurrentTable($uid); $chapter = $chapter_model->where('uid', $uid); if ($startTime) { $chapter->where('updated_at', '>=', $startTime); } if ($endTime) { $chapter->where('updated_at', '<=', $endTime . ' 23:59:59'); } return $chapter->sum('fee'); } /** * 获取章节消费总额(确切时间段) * @param $uid * @return mixed */ public static function getChapterTotalConsumeByUserIdAndAccTime($uid, $startTime = "", $endTime = "") { $chapter_model = new ChapterOrder(); $chapter_model->setCurrentTable($uid); $chapter = $chapter_model->where('uid', $uid); if ($startTime) { $chapter->where('updated_at', '>=', $startTime); } if ($endTime) { $chapter->where('updated_at', '<=', $endTime . ' 23:59:59'); } return $chapter->sum('fee'); } /** * 获取订购章节数 * @param $uid * @return mixed */ public static function getUserRecordCount($uid) { $chapter_model = new ChapterOrder(); $chapter_model->setCurrentTable($uid); return $chapter_model->where('uid', $uid)->count(); } /** * 根据uid章节订购信息 * @return */ public static function addOrderAndDecrUserBalance($data, $uid) { $chapterOrder = new ChapterOrder(); $chapterOrder->setCurrentTable($uid); $chapterOrder->uid = $uid; $chapterOrder->bid = $data['bid']; $chapterOrder->cid = $data['cid']; $chapterOrder->fee = $data['fee']; $chapterOrder->chapter_name = $data['chapter_name']; $chapterOrder->book_name = $data['book_name']; $chapterOrder->send_order_id = $data['send_order_id']; $chapterOrder->distribution_channel_id = $data['distribution_channel_id']; $user = UserService::getById($uid); DB::beginTransaction(); $res = $result1 = $result2 = null; try { if ($user->charge_balance >= $data['fee']) { $chapterOrder->charge_balance = $data['fee']; $chapterOrder->reward_balance = 0; $res = $chapterOrder->save(); $result1 = $user->decrement('balance', $data['fee']); $result2 = $user->decrement('charge_balance', $data['fee']); } elseif ($user->charge_balance > 0) { $chapterOrder->charge_balance = $user->charge_balance; $chapterOrder->reward_balance = $data['fee'] - $user->charge_balance; $reward = $data['fee'] - $user->charge_balance; $res = $chapterOrder->save(); $result1 = $user->decrement('balance', $data['fee']); $result2 = $user->decrement('charge_balance', $user->charge_balance); $result3 = $user->decrement('reward_balance', $reward); } else { $chapterOrder->charge_balance = 0; $chapterOrder->reward_balance = $data['fee']; $res = $chapterOrder->save(); $result1 = $user->decrement('balance', $data['fee']); $result2 = $user->decrement('reward_balance', $data['fee']); } if ($user->is_new == 1) { $user->is_new = 0; $user->save(); } } catch (\Exception $e) { //\Log::info($e); } if ($res && $result1 && $result2) { DB::commit(); return true; } DB::rollback(); return false; } /** * @param $send_order_id * @param $start_time * @param $end_time * @return array ['total'=>133,'charge_balance'=>45,'reward_balance'=>$reward_balance] */ public static function getSendorderTotal($send_order_id, $start_time, $end_time) { $chapter_model = new ChapterOrder(); $charge_balance = 0; $reward_balance = 0; $fee = 0; /* for ($i = 0;$i<512;$i++){ $chapter_model->setCurrentTable($i); $charge_balance += $chapter_model->where('send_order_id',$send_order_id)->whereBetween('created_at',[$start_time,$end_time])->sum('charge_balance'); $reward_balance += $chapter_model->where('send_order_id',$send_order_id)->whereBetween('created_at',[$start_time,$end_time])->sum('reward_balance'); $fee += $chapter_model->where('send_order_id',$send_order_id)->whereBetween('created_at',[$start_time,$end_time])->sum('fee'); }*/ $chapter_model = null; return ['total' => $fee, 'charge_balance' => $charge_balance, 'reward_balance' => $reward_balance]; } }