first(); } /** * @description: 查询所有数据 * @param array $search * @return \Illuminate\Database\Eloquent\Collection */ public static function findAll(array $search = []) { return self::model()::where(self::getWhere($search))->get(); } /** * @description: 分页查询 * @param array $search * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator */ public static function paginate(array $search = []) { $limit = isset($search['limit']) ? $search['limit'] : 15; $date = Carbon::now('America/New_York')->format('Y-m-d'); $paginator = static::model()::where(self::getWhere($search)) ->where('date', '<', $date) ->orderByDesc('date') ->orderBy('status') ->orderByDesc('betting_amount') ->paginate($limit); return ['total' => $paginator->total(), 'data' => $paginator->items()]; } //更新有效投注额 public static function updateEffectiveBettingAmount($rebate, $amount): void { $rebate->increment('effective_betting_amount', $amount); } //笔笔返 根据某天的有效投注额,和反水比例,进行笔笔返 public static function BibiReturn(Rebate $rebate, $amount): bool { //比比返 返水比例 $rebate_ratio = Config::where('field', 'rebate')->first()->val; //比比返 返水比例百分比 $percentage = bcmul($rebate_ratio, 100, 2); $percentage = floatval($percentage); $rebateAmount = bcmul($amount, $rebate_ratio, 2); // $rebateAmount = floatval($rebateAmount); if ($rebateAmount > 0) { $res = WalletService::updateBalance($rebate->member_id, $rebateAmount); BalanceLogService::addLog($rebate->member_id, $rebateAmount, $res['before_balance'], $res['after_balance'], "笔笔返", $rebate->id, "日期:{$rebate->date};有效投注:{$amount};比例:{$percentage}%"); } $rebate->rebate_ratio = $rebate_ratio; $rebate->status = RebateModel::STATUS_FAN_YONG; $rebate->amount = $rebateAmount; $rebate->audited_by = request()->user->username; if (false !== $rebate->save()) return true; return false; } }