whereDate('date_at', '<=', date("Y-m-d")) ->whereDate('date_at', '>', Carbon::now()->subDays(30)->format("Y-m-d")) ->get()->toArray(); $a = []; foreach ($candle as $c) { $create['date'] = $c["date_at"]; unset($c["date_at"]); $create['candle'] = array_values($c); $a[] = array_values($create); } return response()->json($a); } public function updatePrise() { $difference = config('fee.single'); $lastPrice = Price::latest()->first(); $PriceTriggers = PriceTrigger::where("is_active", true)->get(); foreach ($PriceTriggers as $PriceTrigger) { $priseGold = $PriceTrigger->dirction == 1 ? $lastPrice->price - $difference : ($PriceTrigger->dirction == 2 ? $lastPrice->price + $difference : $lastPrice->price); if (eval('return $priseGold ' . $PriceTrigger->price_condition . ' $PriceTrigger->target_price;')) { $customer = Customer::find($PriceTrigger->customer_id); $message = "قیمت طلا به " . number_format($priseGold, -1) . " در هر گرم رسید\n" .$this->Config('name_fa'); if ($PriceTrigger->action == 'email') { Mail::to("$customer->email")->send(new YourMailableClass($message, '', '', '', '')); } elseif ($PriceTrigger->action == 'sms') { $this->send($customer->mobile, $message); } $PriceTrigger->is_active = false; $PriceTrigger->triggered_at = Carbon::now(); $PriceTrigger->save(); } } return response()->json(); } public function upDownPrice() { $difference = config('fee.single'); $today = Carbon::now()->format("Y-m-d"); $prises = Price::where('date_at', $today)->get("price"); $minP = 0; // Initialize to the highest possible value $maxP = 0; // Initialize to the lowest possible value foreach ($prises as $p) { // Initialize $minP to the first price if it's null if ($minP == 0 || $p->price < $minP) { $minP = $p->price; } // Initialize $maxP to the first price if it's null if ($maxP == 0 || $p->price > $maxP) { $maxP = $p->price; } } if (count($prises) === 0) { // Fetching the current gold price from the API $response = Http::get('https://www.tala.ir/ajax/price'); $data = $response->json(); // Clean the price value retrieved from API $data['gold']['gold_18k']['v'] = str_replace(',', '', $data['gold']['gold_18k']['v']); $priceValue = $data['gold']['gold_18k']['v'] * 10; // Assuming the multiplication by 10 is needed // Create and save the new Price instance $price = new Price(); $price->price = $priceValue; // Assign the cleaned and calculated price value $price->time_at = Carbon::now()->toTimeString(); // Set current time $price->date_at = Carbon::now()->toDateString(); // Set current date $price->save(); // Save to the database return ['sell' => $price->price - $difference, 'buy' => $price->price + $difference]; } else { // Assuming $minP and $maxP are defined elsewhere in your code return ['sell' => $minP - $difference, 'buy' => $maxP + $difference]; } // return $prises; // $add_sell_price = config('add_sell_price.major'); // $price = PriceCandle::whereDate('date_at',)->first(); // $price_price = Price::orderBy('id','desc')->first(); } public function lastPrice() { $difference = config('fee.single'); // try { // $tala_ir = (int)str_replace(',', '', Http::timeout(2)->get('https://www.tala.ir/ajax/price')->json()['gold']['gold_18k']['v']) * 10; // } catch (\Exception $e) {$tala_ir = 0;} $main_product_id = Cnt::where('key', 'main_product')->first()['value']; $pr_product = Product::find($main_product_id); $ref = Http::timeout(40)->get('https://garoosigholaktala.ir/server/refPricer', [])->json(); try { $taban_gohar = Http::timeout(2)->get('https://tabangohar.com/GheymatKhan/prices_in_table.html')->json(); $tgn = (int)$taban_gohar['c']; }catch (\Exception $e){$tgn = 0;} $priceValue = $tgn ==0 ? $pr_product['price'] + $pr_product['price_profit'] : $tgn;//$tala_ir;//4000 $lastPrice = Price::latest()->first(); if (!$lastPrice || $lastPrice->price != $priceValue and $priceValue > 30000000) { $price = new Price(); $price->price = $priceValue; // Assign the cleaned price value $price->time_at = Carbon::now()->toTimeString(); $price->date_at = Carbon::now()->toDateString(); $price->save(); $this->updatePrise(); $candle = PriceCandle::whereDate('date_at',date("Y-m-d"))->first(); if (!is_null($candle)){ $candle->end = $priceValue; if ($priceValue < $candle->low){ $candle->low = $priceValue;} elseif ($priceValue > $candle->high){ $candle->high = $priceValue;}$candle->save(); }else{ PriceCandle::create([ "start"=>$priceValue, "end"=>$priceValue, "high"=>$priceValue, "low"=>$priceValue, "date_at"=>date("Y-m-d") ]); } } $price = Price::orderBy('id', 'desc')->first(); if ($price) { return [ 'sell' => $price->price - $difference, 'buy' => $price->price + $difference, 'price_last' => $price->price + $difference, 'price' => $priceValue, // 'tala_ir' => $tala_ir, // 'henzagold' => $henzagold_18, // 'Ounce' => $henzagold_ons_gold, // 'milli' => $milli, 'main_product' => $pr_product['price'] + $pr_product['price_profit'], 'taban_gohar' => $tgn, 'refpricer' => $ref ]; } else { return []; } } public function check() { $service = Http:: withHeaders([ 'accept' => 'application/json', 'Authorization' => 'Bearer ohxsrbjagqvbt0glaygt' ])->get('https://studio.persianapi.com/index.php/web-service/common/gold-currency-coin?format=json&limit=30&page=1') ->json(); $list = []; if (isset($service['result'])) { foreach ($service['result'] as $item) { if ($item['key'] == 137120 || $item['key'] == 137119) { $list[] = $item; if ($item['key'] == 137120) { (new PriceController())->store(new Request(["price" => $item['price']])); } } } Cnt::where('key', 'price')->update(['value_json' => $list]); } } public function test() { $a = '{{12, 23, {4, 0, {1}, {1}}}, 0, {1}}'; $b = str_split($a); $c = []; $str = ""; foreach ($b as $item) { if ($item != " ") { print_r($item); print_r('++'); if ($item == ',' || $item == '}') { if (!in_array($c[count($c) - 1], ['{', '}'])) { $c[count($c) - 1] += (int)$str; print_r((int)$str); print_r('^^'); } else { $c[] = $str; print_r($c); print_r('&&'); } $str = ""; } elseif (in_array($item, ['{', '}'])) { $c[] = $item; print_r($c); print_r('**'); } else { $str .= $item; print_r($str); print_r('@@'); } } } dd($c); $d = []; $e = []; foreach ($c as $item) { if ($item == '}') { print_r($d[count($d) - 1]); print_r('***'); $e[] = $d[count($d) - 1]; } else { $d[] = $item; print_r($d); print_r('-----'); } } dd($e); } }