���Root Mod By V1rus_Alfa
User / IP
:
216.73.217.78
Host / Server
:
195.214.235.115 / npln.ir
System
:
Linux damavand.pws-dns.net 5.14.0-503.35.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 4 05:23:43 EDT 2025 x86_64
Command
|
Upload
|
Mass Deface
|
Create
:
/
home2
/
cutunixc
/
repositories
/
cutunix
/
app
/
Http
/
Controllers
/
api
/
v1
/
Viewing: AnalyzeController.php
<?php namespace App\Http\Controllers\api\v1; use Carbon\Carbon; use App\Models\User; use App\Models\Order; use App\Models\Unit; use App\Models\Project; use App\Models\UnitList; use App\Models\Config; use App\Models\OrderGroup; use App\Models\OrderSlice; use Illuminate\Http\Request; use App\Models\UserMarketer; use App\Models\AnalyzeMaterial; use App\Models\AnalyzeSetting; use App\Models\UnitListAttach; use App\Models\UnitListSetting; use App\Models\AnalyzeUserSetting; use function App\Helpers\DateNow; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use function App\Helpers\toEnDigit; use Illuminate\Filesystem\Filesystem; use function App\Helpers\error_response; use Illuminate\Support\Facades\Validator; use App\Helpers\HelperClass\GeneralUse; use App\Helpers\HelperClass\GeneralUseV2; use function App\Helpers\success_response; use App\Http\Resources\Analyze\SettingCollection; class AnalyzeController extends Controller { public function support_link(Request $request) { $support_link = Config::where('type', 'analyze')->where('key', 'support_link')->first(); $data = ['support_link' => $support_link]; return success_response($data); } public function verify_marketer(Request $request) { $validation = Validator::make($request->all(), [ 'code' => 'required', ]); if ($validation->fails()) { return error_response($validation->messages()->first(), true, 422); } $check = User::where('code', $request->code)->first(); if ($check) { $check_marketer = UserMarketer::where('marketer_id', $check->id)->where('platform', 'analyze')->where('user_id', auth()->user()->id)->first(); if (!$check_marketer) { $exp = DateNow('when', null, 'year', 1); User::where('id', auth()->user()->id)->update([ 'payment' => 'true', 'analyze_expire_date' => $exp, ]); UserMarketer::create([ 'user_id' => auth()->user()->id, 'marketer_id' => $check->id ]); $data = ['status' => 'success']; return success_response($data); } else { return error_response(' شما قبلا توسط این بازاریاب معرفی شده اید '); } } else { return error_response(' کد معرف وارد شده وجود ندارد '); } } public function materials(Request $request) { $materials = AnalyzeMaterial::get(); $data = ['materials' => $materials]; return success_response($data); } public function setting(Request $request) { $data = AnalyzeSetting::get(); $setting = new SettingCollection($data); $data = ['setting' => $setting]; return success_response($data); } public function update_setting(Request $request) { $inserts = []; $setting = AnalyzeSetting::get(); foreach ($setting as $row) { $req_val = 'false'; foreach ($request->all() as $obj) { if ($obj['key'] == $row->key) { $set_val = $obj['value']; $req_val = 'true'; } } if ($req_val == 'false') { $set_val = $row->value; } $inserts[] = [ 'key' => $row->key, 'value' => $set_val, 'setting_id' => $row->id, 'user_id' => auth()->user()->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; } if (count($inserts) > 0) { $check = AnalyzeUserSetting::where('user_id', auth()->user()->id)->first(); if ($check) { AnalyzeUserSetting::where('user_id', auth()->user()->id)->delete(); } AnalyzeUserSetting::insert($inserts); } $data = ['setting' => $setting]; return success_response($data); } public function unit_setting(Request $request) { $validation = Validator::make($request->all(), [ 'list_id' => 'required', ]); if ($validation->fails()) { return error_response($validation->messages()->first(), true, 422); } $setting = UnitListSetting::where(['list_id' => $request->list_id, 'user_id' => auth()->user()->id])->with('setting')->get(); $data = ['setting' => $setting]; return success_response($data); } public function update_unit_setting(Request $request) { $validation = Validator::make($request->all(), [ 'list_id' => 'required', ]); if ($validation->fails()) { return error_response($validation->messages()->first(), true, 422); } $inserts = []; $setting = AnalyzeSetting::get(); $req = $request->all(); unset($req["list_id"]); foreach ($setting as $row) { $req_val = 'false'; foreach ($req as $obj) { if ($obj['key'] == $row->key) { $set_val = $obj['value']; $req_val = 'true'; } } if ($req_val == 'false') { $set_val = $row->value; } $inserts[] = [ 'key' => $row->key, 'value' => $set_val, 'list_id' => $request->list_id, 'setting_id' => $row->id, 'user_id' => auth()->user()->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; } if (count($inserts) > 0) { UnitListSetting::where(['list_id' => $request->list_id, 'user_id' => auth()->user()->id])->delete(); UnitListSetting::insert($inserts); $list = UnitList::where(['user_id' => auth()->user()->id, 'id' => $request->list_id])->first(); if ($list->unit_id) { $property = []; if (0 < count($list->input)) { foreach ($list->input as $row) { array_push($property, ['key' => $row->key, 'value' => $row->value]); } } $result = GeneralUseV2::computing_unit($request, $property, $list); } } $data = ['setting' => $setting]; return success_response($data); } public function all_config(Request $request) { $status_payment = 'false'; $payment_price = '10000'; $exp_payment = 'false'; $payment_link = ''; $search_status_payment = Config::where('type', 'analyze')->where('key', 'payment_analyze')->first(); if ($search_status_payment && $search_status_payment->value == 'true') { $status_payment = 'true'; //payment_price $search_payment = Config::where('type', 'analyze')->where('key', 'payment_price_analyze')->first(); if ($search_payment) { $payment_price = $search_payment->value; } //payment_link $payment_link = 'https://cutunix.com/payment/analyze_zarinpal?user_id=' . auth()->user()->id . '&mobile=' . auth()->user()->mobile; //check-exp-payment if (Carbon::today()->toDateString() <= auth()->user()->analyze_expire_date) { $exp_payment = 'true'; } } $data = ['status_payment' => $status_payment, 'payment_price' => $payment_price, 'exp_payment' => $exp_payment, 'payment_link' => $payment_link]; return success_response($data); } public function units(Request $request) { $units = Unit::with('image_3D') ->when($request->category, function ($q) use ($request) { $q->where('category', $request->category); }) ->where('status', 'true')->orderBy('sort','desc')->get(); $data = ['units' => $units]; return success_response($data); } public function unit(Request $request) { $validation = Validator::make($request->all(), [ 'unit_id' => 'required', ]); if ($validation->fails()) { return error_response($validation->messages()->first(), true, 422); } $unit = Unit::where('id', $request->unit_id)->where('status', 'true')->with('image_2D', 'variables', 'variables.options')->first(); $data = ['unit' => $unit]; return success_response($data); } public function computing(Request $request) { //VALIDATION $validation = Validator::make($request->all(), [ 'type' => 'required', 'count' => 'required|max:2', 'unit_id' => 'required', 'unit_title' => 'required', ], [ 'count.max' => 'حداکثر تعداد در هر بار ثبت یک یونیت 99 عدد می باشد', ]); if ($validation->fails()) { return error_response($validation->messages()->first(), true, 422); } $property = []; $unit = Unit::where('id', $request->unit_id)->where('status', 'true')->with('variables', 'variables.options')->first(); if ($unit) { if (0 < count($unit->variables)) { foreach ($unit->variables as $value) { if (!$request[$value->key]) { return error_response('متغیر ' . $value->label . ' اجباری می باشد', true, 422); } else { array_push($property, ['key' => $value->key, 'value' => toEnDigit($request[$value->key])]); } } } else { return error_response('یونیت دارای متغیر نمی باشد', true, 422); } } else { if ($validation->fails()) { return error_response('محاسبه برای یونیت انتخاب شده امکان پذیر نمی باشد', true, 422); } } $list = null; if ($request->list_id && $request->type == 'edit_unit') { $check = UnitList::where(['user_id' => auth()->user()->id, 'id' => $request->list_id])->first(); if ($check->unit_id) { $list = $check; } } $result = GeneralUseV2::computing_unit($request, $property, $list); $data = ['result' => $result]; return success_response($data); } public function addCustomList(Request $request) { if (!$request->all() || !$request->all()['material_id']) { return error_response('مقادیر ورودی را چک کرده و مجددا درخواست خود را ارسال نمایید', true, 422); } $material = AnalyzeMaterial::where('id', $request->material_id)->first(); $result = GeneralUseV2::CustomList($request->all(), $material); $data = ['result' => $result]; return success_response($data); } public function editCustomList(Request $request) { if (!$request->all() || !$request->all()['material_id']) { return error_response('مقادیر ورودی را چک کرده و مجددا درخواست خود را ارسال نمایید', true, 422); } $material = AnalyzeMaterial::where('id', $request->material_id)->first(); $result = GeneralUseV2::CustomList($request->all(), $material, $request->all()['list_id']); $data = ['result' => $result]; return success_response($data); } public function list_units(Request $request) { $list = UnitList::where('user_id', auth()->user()->id) ->when($request->search, function ($q) use ($request) { $q->where('name', 'like', '%' . $request->search . '%'); }) ->when($request->project_id, function ($q) use ($request) { $q->where('project_id', $request->project_id); }, function ($q) { $q->whereNull('project_id'); }) ->with(['unit', 'unit.image_3D', 'attach', 'attach.material']) ->orderBy('unit_lists.id', 'desc') ->get() ->groupBy(['uid']); $materials = AnalyzeMaterial::get(); $data = ['list' => $list, 'materials' => $materials]; return success_response($data); } public function single_list_units(Request $request) { $validation = Validator::make($request->all(), [ 'unit_id' => 'required', ]); if ($validation->fails()) { return error_response($validation->messages()->first(), true, 422); } $list = UnitList::where(['id' => $request->unit_id, 'user_id' => auth()->user()->id]) ->with(['unit', 'unit.image_2D', 'unit.variables', 'unit.variables.options', 'attach', 'input'])->first(); $data = ['list' => $list]; return success_response($data); } public function edit_attach(Request $request) { $validation = Validator::make($request->all(), [ 'attach_id' => 'required', 'label' => 'required', 'width' => 'required', 'length' => 'required', 'count' => 'required', 'length_one' => 'required', 'length_two' => 'required', 'width_one' => 'required', 'width_two' => 'required', 'material_id' => 'required', ]); if ($validation->fails()) { return error_response($validation->messages()->first(), true, 422); } $var_1 = null; if ($request->var_1) { $var_1 = $request->var_1; } $var_2 = null; if ($request->var_2) { $var_2 = $request->var_2; } UnitListAttach::where('id', $request->attach_id)->where('user_id', auth()->user()->id)->update([ 'label' => $request->label, 'width' => $request->width, 'length' => $request->length, 'var_1' => $request->var_1, 'var_2' => $request->var_2, 'count' => $request->count, 'length_one' => $request->length_one, 'length_two' => $request->length_two, 'width_one' => $request->width_one, 'width_two' => $request->width_two, 'material_id' => $request->material_id, ]); $data = ['result' => 'success']; return success_response($data); } public function delete(Request $request) { $validation = Validator::make($request->all(), [ 'ids' => 'required', 'type' => 'required', ]); if ($validation->fails()) { return error_response($validation->messages()->first(), true, 422); } if ($request->type == 'list') { UnitList:: where('user_id', auth()->user()->id)->when($request->ids != 0, function ($q) use ($request) { $q->where('id', $request->ids); })->whereNull('project_id')->delete(); } else if ($request->type == 'attach') { UnitListAttach::where('id', $request->ids)->where('user_id', auth()->user()->id)->delete(); } $data = ['result' => 'success']; return success_response($data); } public function validate_data($panel_width, $panel_height, $groups) { $error = null; foreach ($groups as $group) { if (0 < count($group)) { foreach ($group as $row) { $width = ''; if (isset($row->width)) { $width = $row->width; }; $height = ''; if (isset($row->length)) { $height = $row->length; }; $unit = $row->unit; if (!$height || !$width) { $error = 'true'; return error_response('فیلد های طول و عرض در قطعه ' . $row->label . ' یونیت ' . $unit->name . ' اجباری می باشد', true, 422); } if ($height < 0 || $width < 0) { $error = 'true'; return error_response('فیلد های طول و عرض در قطعه ' . $row->label . ' یونیت ' . $unit->name . ' نباید کوچکتر از صفر باشد', true, 422); } if ($width && $panel_width < $width) { $error = 'true'; return error_response('فیلد عرض ورق از عرض قطعه ' . $row->label . ' یونیت ' . $unit->name . ' کوچکتر است ', true, 422); } if ($height && $panel_height < $height) { $error = 'true'; return error_response('فیلد طول ورق از طول قطعه ' . $row->label . ' یونیت ' . $unit->name . ' کوچکتر است ', true, 422); } } } } return $error; } public function test(Request $request) { $list = UnitListAttach::where('user_id', auth()->user()->id)->whereHas('unit', function ($q) { $q->whereNull('project_id'); })->with(['material', 'unit'])->get()->groupBy('material_id'); $data = ['result' => $list]; return success_response($data); } function findObjectById($id, $array) { foreach ($array as $element) { if ($id == $element['value']) { return $element; } } return false; } public function set_project(Request $request, Filesystem $filesystem) { $validation = Validator::make($request->all(), [ 'json_sheets' => 'required', 'json_project' => 'required', 'lang' => 'required', ]); if ($validation->fails()) { return error_response($validation->messages()->first(), true, 422); } $sheets = json_decode($request->json_sheets, true); $project = json_decode($request->json_project, true); $lang = 'fa'; if ($request->lang) { $lang = $request->lang; } $all_groups = UnitListAttach::where('user_id', auth()->user()->id)->whereHas('unit', function ($q) { $q->whereNull('project_id'); })->get(); $groups = UnitListAttach::where('user_id', auth()->user()->id)->whereHas('unit', function ($q) { $q->whereNull('project_id'); })->whereNotIn('material_id', [2, 3])->get()->groupBy('material_id'); if (0 < count($all_groups)) { foreach ($all_groups as $val) { $sheet = $this->findObjectById($val->material_id, $sheets); $validate = $this->validate_data($sheet ? $sheet['width'] : 368, $sheet ? $sheet['length'] : 186, $groups); } } else { return error_response('یونیت برای ثبت وجود ندارد ', true, 422); } if ($validate) { return $validate; } if (0 < count($groups)) { $order = Order::create([ 'name' => $project['name'], 'description' => $project['description'], 'mode' => 'analyze', 'platform' => 'application', 'user_id' => auth()->user()->id, ]); foreach ($groups as $key => $group) { if (0 < count($group)) { $sheet = $this->findObjectById($key, $sheets); $color_strip = 'other'; if ($group[0]->material->color == 'color') { $color_strip = 'color'; } $order_group = OrderGroup::create([ 'panel_description' => $sheet ? $sheet['name_sheet'] : $group[0]->unit->unit->title, 'panel_height' => $sheet ? $sheet['length'] : 186, 'panel_width' => $sheet ? $sheet['width'] : 368, 'rotate_status' => $sheet ? $sheet['rotation'] : false, 'wood_thickness' => $group[0]->material->wood_thickness, 'wood_type' => $group[0]->material->title, 'color_strip' => $color_strip, 'width_strip' => $project ? $project['width_strip'] : 'single', 'height_strip' => $project ? $project['height_strip'] : '1', 'cut_master' => 'pending', 'opticut' => 'pending', 'win_cam' => 'pending', 'order_id' => $order->id, 'user_id' => auth()->user()->id, ]); $inserts = []; foreach ($group as $obj) { $inserts[] = [ 'count' => abs($obj->count), 'width' => abs($obj->width), 'height' => abs($obj->length), 'description' => $obj->label, 'length_one' => $obj->length_one, 'length_two' => $obj->length_two, 'width_one' => $obj->width_one, 'width_two' => $obj->width_two, 'rotate_status' => $obj->rotate_status, 'user_id' => auth()->user()->id, 'order_id' => $order->id, 'order_group_id' => $order_group->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; } if (count($inserts) > 0) { OrderSlice::insert($inserts); } GeneralUse::export_form($order_group->id, $filesystem); } } $this->make3milAndBadane($all_groups, $order, $sheets, $project, $filesystem); UnitList::where('user_id', auth()->user()->id)->whereNull('project_id')->update([ 'project_id' => $order->id ]); $data = ['result' => 'success']; return success_response($data); } else { return error_response('یونیتی برای ثبت وجود ندارد', true, 422); } } public function make3milAndBadane($all_groups, $order, $sheets, $project, $filesystem) { $ids = [2, 3]; if (0 < count($all_groups)) { foreach ($ids as $mat_id) { $sheet = $this->findObjectById($mat_id, $sheets); $material = AnalyzeMaterial::where('id', $mat_id)->first(); $color_strip = 'other'; if ($material && $material->color == 'color') { $color_strip = 'color'; } $order_group = OrderGroup::create([ 'panel_description' => $sheet ? $sheet['name_sheet'] : $material?->title, 'panel_height' => $sheet ? $sheet['length'] : 186, 'panel_width' => $sheet ? $sheet['width'] : 368, 'rotate_status' => $sheet ? $sheet['rotation'] : false, 'wood_thickness' => $material?->wood_thickness, 'wood_type' => $material?->title, 'color_strip' => $color_strip, 'width_strip' => $project ? $project['width_strip'] : 'single', 'height_strip' => $project ? $project['height_strip'] : '1', 'cut_master' => 'pending', 'opticut' => 'pending', 'win_cam' => 'pending', 'order_id' => $order->id, 'user_id' => auth()->user()->id, ]); $inserts = []; foreach ($all_groups as $row) { $inserts[] = [ 'count' => abs($row->count), 'width' => abs($row->width), 'height' => abs($row->length), 'description' => $row->label, 'length_one' => $row->length_one, 'length_two' => $row->length_two, 'width_one' => $row->width_one, 'width_two' => $row->width_two, 'rotate_status' => $row->rotate_status, 'user_id' => auth()->user()->id, 'order_id' => $order->id, 'order_group_id' => $order_group->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; } if (count($inserts) > 0) { OrderSlice::insert($inserts); } GeneralUse::export_form($order_group->id, $filesystem); } } } public function get_projects(Request $request) { $projects = Order::where('mode', 'analyze')->where('user_id', auth()->user()->id)->latest()->paginate(10); $data = ['projects' => $projects]; return success_response($data); } public function last_project(Request $request) { $project = Order::where('mode', 'analyze')->with('groups')->where('user_id', auth()->user()->id)->latest()->first(); $data = ['project' => $project]; return success_response($data); } public function single_project(Request $request) { $validation = Validator::make($request->all(), [ 'project_id' => 'required', ]); if ($validation->fails()) { return error_response($validation->messages()->first(), true, 422); } $project = Order::where('mode', 'analyze')->with('groups')->where('id', $request->project_id)->where('user_id', auth()->user()->id)->first(); $data = ['project' => $project]; return success_response($data); } public function edit_project(Request $request) { $validation = Validator::make($request->all(), [ 'project_id' => 'required', 'name' => 'required', 'name_employer' => 'required', ]); if ($validation->fails()) { return error_response($validation->messages()->first(), true, 422); } Order::where('id', $request->project_id)->where('user_id', auth()->user()->id)->update([ 'name' => $request->name, 'name_employer' => $request->name_employer ]); $data = ['result' => 'success']; return success_response($data); } public function delete_project(Request $request) { $validation = Validator::make($request->all(), [ 'project_id' => 'required', ]); if ($validation->fails()) { return error_response($validation->messages()->first(), true, 422); } Order::where('mode', 'analyze')->where('id', $request->project_id)->where('user_id', auth()->user()->id)->delete(); $data = ['result' => 'success']; return success_response($data); } }
Coded With 💗 by
0x6ick Mod By V1rus_Alfa