NASER add setting controller & dynamic fee in settings & add send transactions to tahesab in settings

This commit is contained in:
2026-02-09 14:09:19 +03:30
parent cfb5b17ab7
commit 875c1b09b2
7 changed files with 88 additions and 20 deletions
@@ -0,0 +1,41 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Setting;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;
class SettingsController extends Controller
{
public function index(){
$Setting = Setting::where('can_edit',1)->select('id','title_fa', 'key','value','description','is_active')->get();
return response()->json($Setting);
}
public function edit(Request $request)
{
// Check if the setting exists
$setting = Setting::where('key', $request->key)->first();
if ($setting) {
// Update the existing setting
$setting->value = $request->value;
$setting->description = $request->description;
$setting->is_active = $request->is_active;
$setting->save();
} else {
// Create a new setting
$setting = new Setting();
$setting->key = $request->key;
$setting->value = $request->value;
$setting->description = $request->description;
$setting->is_active = $request->is_active;
$setting->save();
}
// Return the setting as a JSON response
return response()->json($setting);
}
}
@@ -18,6 +18,7 @@ use Rooyesh\Wallet\models\Transaction;
use Rooyesh\Wallet\models\Wallet; use Rooyesh\Wallet\models\Wallet;
use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException; use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
use App\Http\Controllers\Admin\TahesabController; use App\Http\Controllers\Admin\TahesabController;
use App\Models\Setting;
class WalletController extends Controller class WalletController extends Controller
@@ -117,9 +118,16 @@ class WalletController extends Controller
'active' => true 'active' => true
], 7, true, $deposit, $gold_block); ], 7, true, $deposit, $gold_block);
$data['direction'] = 0; if(Setting::where('key', 'send_to_tahesab')->first()->value == "true"){
// $tahesab = new TahesabController(); try {
// $tahesab->wallet($data); $data['direction'] = 0;
$tahesab = new TahesabController();
$tahesab->wallet($data);
}catch (\Exception $e){
return response($e->getMessage(), 500);
}
}
$status = $data['value'] > 0 ?" شارژ شد ": " کسر شد "; $status = $data['value'] > 0 ?" شارژ شد ": " کسر شد ";
$message = 'کیف پول شما به اندازه ' . number_format(abs($data['value'])) . " ریال در تاریخ " . verta()->format('Y/n/j H:i:s') .$status . "بابت" . "\n" $message = 'کیف پول شما به اندازه ' . number_format(abs($data['value'])) . " ریال در تاریخ " . verta()->format('Y/n/j H:i:s') .$status . "بابت" . "\n"
. $data['note'] . $data['note']
@@ -21,6 +21,7 @@ use Rooyesh\Wallet\models\Wallet;
use App\Models\TransactionsAdmin; use App\Models\TransactionsAdmin;
use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException; use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use App\Models\Setting;
class SingleOrderController extends Controller class SingleOrderController extends Controller
@@ -36,8 +37,10 @@ class SingleOrderController extends Controller
$data['all_price'] = $latestPrice; $data['all_price'] = $latestPrice;
$data['price'] = $latestPrice->price; $data['price'] = $latestPrice->price;
$data['price_id'] = $latestPrice->id; $data['price_id'] = $latestPrice->id;
$data['difference'] = config('fee.cash'); // $data['difference'] = config('fee.cash');
$data['service_charge_percentage'] = config('fee.service_charge_percentage'); $data['difference'] = Setting::where('key', 'fee_cash')->first()->value;
// $data['service_charge_percentage'] = config('fee.service_charge_percentage');
$data['service_charge_percentage'] = Setting::where('key', 'fee_service_charge_percentage')->first()->value;
$data['pay_at'] = (new \DateTime())->format('Y-m-d H:i:s'); $data['pay_at'] = (new \DateTime())->format('Y-m-d H:i:s');
} else if (auth('user')->id()) {//admin } else if (auth('user')->id()) {//admin
$data['service_charge_percentage'] = 0; $data['service_charge_percentage'] = 0;
@@ -103,13 +106,14 @@ class SingleOrderController extends Controller
$response['sell'] = $this->processSellTransaction($data, $wallet, $wallet_interface); $response['sell'] = $this->processSellTransaction($data, $wallet, $wallet_interface);
} }
} }
try { if(Setting::where('key', 'send_to_tahesab')->first()->value == "true"){
$tahesab = new TahesabController(); try {
$data['tahesab'] = $tahesab->storeTrade($data); $tahesab = new TahesabController();
}catch (\Exception $e){ $data['tahesab'] = $tahesab->storeTrade($data);
return response($e->getMessage(), 500); }catch (\Exception $e){
return response($e->getMessage(), 500);
}
} }
// $response['reward'] = $this->give_order_reward($data, $wallet, $wallet_interface); // $response['reward'] = $this->give_order_reward($data, $wallet, $wallet_interface);
$response['Notifications'] = $this->sendTransactionNotifications($data, $transactionType); $response['Notifications'] = $this->sendTransactionNotifications($data, $transactionType);
return response()->json([$response, $data]); return response()->json([$response, $data]);
@@ -6,6 +6,7 @@ use App\Http\Controllers\Admin\PriceController;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Mail\YourMailableClass; use App\Mail\YourMailableClass;
use App\Models\Cnt; use App\Models\Cnt;
use App\Models\Setting;
use App\Models\ConfigStatic; use App\Models\ConfigStatic;
use App\Models\Customer; use App\Models\Customer;
use App\Models\Price; use App\Models\Price;
@@ -43,7 +44,8 @@ class ReportController extends Controller
public function updatePrise() public function updatePrise()
{ {
$difference = config('fee.single'); // $difference = config('fee.single');
$difference = Setting::where('key', 'fee_single')->first()->value;
$lastPrice = Price::latest()->first(); $lastPrice = Price::latest()->first();
$PriceTriggers = PriceTrigger::where("is_active", true)->get(); $PriceTriggers = PriceTrigger::where("is_active", true)->get();
foreach ($PriceTriggers as $PriceTrigger) { foreach ($PriceTriggers as $PriceTrigger) {
@@ -71,7 +73,8 @@ class ReportController extends Controller
public function upDownPrice() public function upDownPrice()
{ {
$difference = config('fee.single'); // $difference = config('fee.single');
$difference = Setting::where('key', 'fee_single')->first()->value;
$today = Carbon::now()->format("Y-m-d"); $today = Carbon::now()->format("Y-m-d");
$prises = Price::where('date_at', $today)->get("price"); $prises = Price::where('date_at', $today)->get("price");
@@ -119,7 +122,8 @@ class ReportController extends Controller
public function lastPrice() public function lastPrice()
{ {
$difference = config('fee.single'); // $difference = config('fee.single');
$difference = Setting::where('key', 'fee_single')->first()->value;
// try { // try {
+9 -3
View File
@@ -4,18 +4,24 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\Hash;
use Rooyesh\Wallet\models\Transaction;
use Tymon\JWTAuth\Contracts\JWTSubject;
class Setting extends Model class Setting extends Model
{ {
use HasFactory; use HasFactory,Selector;
protected $table = 'settings';
protected $fillable = [ protected $fillable = [
'key', 'key',
'title_fa', 'title_fa',
'is_active',
'description',
'value', 'value',
'value_json' 'value_json'
]; ];
protected $casts = [ protected $casts = [
'value_json'=>'array' 'value_json'=>'array',
'is_active'=>'boolean',
]; ];
} }
+1 -3
View File
@@ -12,9 +12,7 @@
"laravel/framework": "^8.75", "laravel/framework": "^8.75",
"laravel/sanctum": "^2.11", "laravel/sanctum": "^2.11",
"laravel/tinker": "^2.5", "laravel/tinker": "^2.5",
"tymon/jwt-auth": "^1.0", "tymon/jwt-auth": "^1.0"},
"morilog/jalali": "^3.4"
},
"require-dev": { "require-dev": {
"facade/ignition": "^2.5", "facade/ignition": "^2.5",
"fakerphp/faker": "^1.9.1", "fakerphp/faker": "^1.9.1",
+7
View File
@@ -15,12 +15,19 @@ use App\Http\Controllers\Customer\PriceTriggerController;
use App\Http\Controllers\Finance\FinanceController; use App\Http\Controllers\Finance\FinanceController;
use App\Http\Controllers\Admin\ProductController; use App\Http\Controllers\Admin\ProductController;
use App\Http\Controllers\Admin\TahesabController; use App\Http\Controllers\Admin\TahesabController;
use App\Http\Controllers\Admin\SettingsController;
Route::middleware('auth:user')->group(function (){ Route::middleware('auth:user')->group(function (){
Route::middleware('validation')->group(function (){ Route::middleware('validation')->group(function (){
Route::get('/p', function () { Route::get('/p', function () {
return Http::get('https://pricing.liman.gold/pricingApi', [])->json(); return Http::get('https://pricing.liman.gold/pricingApi', [])->json();
}); });
//settigs
Route::get('get_settings',[SettingsController::class, 'index']);
Route::post('get_settings',[SettingsController::class, 'edit']);
//------------balence //------------balence
Route::post('getBalance', [DashboardController::class, 'getBalance']); Route::post('getBalance', [DashboardController::class, 'getBalance']);
//------------PriceTrigger //------------PriceTrigger