573 lines
22 KiB
PHP
573 lines
22 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Order;
|
|
use App\Models\ProductStock;
|
|
use Illuminate\Http\Request;
|
|
use DB;
|
|
use Schema;
|
|
use ZipArchive;
|
|
use File;
|
|
use Artisan;
|
|
use App\Models\Upload;
|
|
use App\Models\Banner;
|
|
use App\Models\Brand;
|
|
use App\Models\User;
|
|
use App\Models\Category;
|
|
use App\Models\CategoryTranslation;
|
|
use App\Models\SubCategory;
|
|
use App\Models\SubCategoryTranslation;
|
|
use App\Models\SubSubCategory;
|
|
use App\Models\SubSubCategoryTranslation;
|
|
use App\Models\CustomerPackage;
|
|
use App\Models\CustomerProduct;
|
|
use App\Models\FlashDeal;
|
|
use App\Models\Product;
|
|
use App\Models\ProductTax;
|
|
use App\Models\Tax;
|
|
use App\Models\Shop;
|
|
use App\Models\Slider;
|
|
use App\HomeCategory;
|
|
use App\Models\BusinessSetting;
|
|
use App\Models\Translation;
|
|
use App\Models\AttributeValue;
|
|
|
|
class DemoController extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
ini_set('memory_limit', '2048M');
|
|
ini_set('max_execution_time', 600);
|
|
|
|
}
|
|
|
|
public function cron_1()
|
|
{
|
|
if (env('DEMO_MODE') != 'On') {
|
|
return back();
|
|
}
|
|
$this->drop_all_tables();
|
|
$this->import_demo_sql();
|
|
}
|
|
|
|
public function cron_2()
|
|
{
|
|
if (env('DEMO_MODE') != 'On') {
|
|
return back();
|
|
}
|
|
$this->remove_folder();
|
|
$this->extract_uploads();
|
|
}
|
|
|
|
|
|
public function drop_all_tables()
|
|
{
|
|
Schema::disableForeignKeyConstraints();
|
|
foreach (DB::select('SHOW TABLES') as $table) {
|
|
$table_array = get_object_vars($table);
|
|
Schema::drop($table_array[key($table_array)]);
|
|
}
|
|
}
|
|
|
|
public function import_demo_sql()
|
|
{
|
|
Artisan::call('cache:clear');
|
|
$sql_path = base_path('demo.sql');
|
|
DB::unprepared(file_get_contents($sql_path));
|
|
}
|
|
|
|
public function extract_uploads()
|
|
{
|
|
$zip = new ZipArchive;
|
|
$zip->open(base_path('public/uploads.zip'));
|
|
$zip->extractTo('public/uploads');
|
|
|
|
}
|
|
|
|
public function remove_folder()
|
|
{
|
|
File::deleteDirectory(base_path('public/uploads'));
|
|
}
|
|
|
|
public function migrate_attribute_values(Request $request){
|
|
foreach (Product::all() as $product) {
|
|
if ($product->variant_product) {
|
|
try {
|
|
$choice_options = json_decode($product->choice_options);
|
|
foreach ($choice_options as $choice_option) {
|
|
foreach ($choice_option->values as $value) {
|
|
$attribute_value = AttributeValue::where('value', $value)->first();
|
|
if ($attribute_value == null) {
|
|
$attribute_value = new AttributeValue;
|
|
$attribute_value->attribute_id = $choice_option->attribute_id;
|
|
$attribute_value->value = $value;
|
|
$attribute_value->save();
|
|
}
|
|
}
|
|
}
|
|
} catch (\Exception $e) {
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
public function convertTaxes()
|
|
{
|
|
$tax = Tax::first();
|
|
|
|
foreach (Product::all() as $product) {
|
|
$product_tax = new ProductTax;
|
|
$product_tax->product_id = $product->id;
|
|
$product_tax->tax_id = $tax->id;
|
|
$product_tax->tax = $product->tax;
|
|
$product_tax->tax_type = $product->tax_type;
|
|
$product_tax->save();
|
|
}
|
|
}
|
|
|
|
public function convert_assets(Request $request)
|
|
{
|
|
$type = array(
|
|
"jpg" => "image",
|
|
"jpeg" => "image",
|
|
"png" => "image",
|
|
"svg" => "image",
|
|
"webp" => "image",
|
|
"gif" => "image",
|
|
"mp4" => "video",
|
|
"mpg" => "video",
|
|
"mpeg" => "video",
|
|
"webm" => "video",
|
|
"ogg" => "video",
|
|
"avi" => "video",
|
|
"mov" => "video",
|
|
"flv" => "video",
|
|
"swf" => "video",
|
|
"mkv" => "video",
|
|
"wmv" => "video",
|
|
"wma" => "audio",
|
|
"aac" => "audio",
|
|
"wav" => "audio",
|
|
"mp3" => "audio",
|
|
"zip" => "archive",
|
|
"rar" => "archive",
|
|
"7z" => "archive",
|
|
"doc" => "document",
|
|
"txt" => "document",
|
|
"docx" => "document",
|
|
"pdf" => "document",
|
|
"csv" => "document",
|
|
"xml" => "document",
|
|
"ods" => "document",
|
|
"xlr" => "document",
|
|
"xls" => "document",
|
|
"xlsx" => "document"
|
|
);
|
|
foreach (Banner::all() as $key => $banner) {
|
|
if ($banner->photo != null) {
|
|
$arr = explode('.', $banner->photo);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $banner->photo, 'user_id' => User::where('user_type', 'admin')->first()->id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$banner->photo = $upload->id;
|
|
$banner->save();
|
|
}
|
|
}
|
|
|
|
foreach (Brand::all() as $key => $brand) {
|
|
if ($brand->logo != null) {
|
|
$arr = explode('.', $brand->logo);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $brand->logo, 'user_id' => User::where('user_type', 'admin')->first()->id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$brand->logo = $upload->id;
|
|
$brand->save();
|
|
}
|
|
}
|
|
|
|
foreach (Category::all() as $key => $category) {
|
|
if ($category->banner != null) {
|
|
$arr = explode('.', $category->banner);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $category->banner, 'user_id' => User::where('user_type', 'admin')->first()->id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$category->banner = $upload->id;
|
|
$category->save();
|
|
}
|
|
if ($category->icon != null) {
|
|
$arr = explode('.', $category->icon);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $category->icon, 'user_id' => User::where('user_type', 'admin')->first()->id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$category->icon = $upload->id;
|
|
$category->save();
|
|
}
|
|
}
|
|
|
|
foreach (CustomerPackage::all() as $key => $package) {
|
|
if ($package->logo != null) {
|
|
$arr = explode('.', $package->logo);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $package->logo, 'user_id' => User::where('user_type', 'admin')->first()->id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$package->logo = $upload->id;
|
|
$package->save();
|
|
}
|
|
}
|
|
|
|
foreach (CustomerProduct::all() as $key => $product) {
|
|
if ($product->photos != null) {
|
|
$files = array();
|
|
foreach (json_decode($product->photos) as $key => $photo) {
|
|
$arr = explode('.', $photo);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $photo, 'user_id' => $product->user_id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
array_push($files, $upload->id);
|
|
}
|
|
|
|
$product->photos = implode(',', $files);
|
|
$product->save();
|
|
}
|
|
if ($product->thumbnail_img != null) {
|
|
$arr = explode('.', $product->thumbnail_img);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $product->thumbnail_img, 'user_id' => $product->user_id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$product->thumbnail_img = $upload->id;
|
|
$product->save();
|
|
}
|
|
if ($product->meta_img != null) {
|
|
$arr = explode('.', $product->meta_img);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $product->meta_img, 'user_id' => $product->user_id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$product->meta_img = $upload->id;
|
|
$product->save();
|
|
}
|
|
}
|
|
|
|
foreach (FlashDeal::all() as $key => $flash_deal) {
|
|
if ($flash_deal->banner != null) {
|
|
$arr = explode('.', $flash_deal->banner);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $flash_deal->banner, 'user_id' => User::where('user_type', 'admin')->first()->id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$flash_deal->banner = $upload->id;
|
|
$flash_deal->save();
|
|
}
|
|
}
|
|
|
|
foreach (Product::all() as $key => $product) {
|
|
if ($product->photos != null) {
|
|
$files = array();
|
|
foreach (json_decode($product->photos) as $key => $photo) {
|
|
$arr = explode('.', $photo);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $photo, 'user_id' => $product->user_id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
array_push($files, $upload->id);
|
|
}
|
|
|
|
$product->photos = implode(',', $files);
|
|
$product->save();
|
|
}
|
|
if ($product->thumbnail_img != null) {
|
|
$arr = explode('.', $product->thumbnail_img);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $product->thumbnail_img, 'user_id' => $product->user_id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$product->thumbnail_img = $upload->id;
|
|
$product->save();
|
|
}
|
|
if ($product->featured_img != null) {
|
|
$arr = explode('.', $product->featured_img);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $product->featured_img, 'user_id' => $product->user_id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$product->featured_img = $upload->id;
|
|
$product->save();
|
|
}
|
|
if ($product->flash_deal_img != null) {
|
|
$arr = explode('.', $product->flash_deal_img);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $product->flash_deal_img, 'user_id' => $product->user_id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$product->flash_deal_img = $upload->id;
|
|
$product->save();
|
|
}
|
|
if ($product->meta_img != null) {
|
|
$arr = explode('.', $product->meta_img);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $product->meta_img, 'user_id' => $product->user_id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$product->meta_img = $upload->id;
|
|
$product->save();
|
|
}
|
|
}
|
|
|
|
foreach (Shop::all() as $key => $shop) {
|
|
if ($shop->sliders != null) {
|
|
$files = array();
|
|
foreach (json_decode($shop->sliders) as $key => $photo) {
|
|
$arr = explode('.', $photo);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $photo, 'user_id' => $shop->user_id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
array_push($files, $upload->id);
|
|
}
|
|
|
|
$shop->sliders = implode(',', $files);
|
|
$shop->save();
|
|
}
|
|
if ($shop->logo != null) {
|
|
$arr = explode('.', $shop->logo);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $shop->logo, 'user_id' => $shop->user_id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$shop->logo = $upload->id;
|
|
$shop->save();
|
|
}
|
|
}
|
|
|
|
foreach (Slider::all() as $key => $slider) {
|
|
if ($slider->photo != null) {
|
|
$arr = explode('.', $slider->photo);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $slider->photo, 'user_id' => User::where('user_type', 'admin')->first()->id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$slider->photo = $upload->id;
|
|
$slider->save();
|
|
}
|
|
}
|
|
|
|
foreach (User::all() as $key => $user) {
|
|
if ($user->avatar_original != null) {
|
|
$arr = explode('.', $user->avatar_original);
|
|
$upload = Upload::create([
|
|
'file_original_name' => null, 'file_name' => $user->avatar_original, 'user_id' => $user->id, 'extension' => $arr[1],
|
|
'type' => isset($type[$arr[1]]) ? $type[$arr[1]] : "others", 'file_size' => 0
|
|
]);
|
|
|
|
$user->avatar_original = $upload->id;
|
|
$user->save();
|
|
}
|
|
}
|
|
|
|
$business_setting = BusinessSetting::where('type', 'home_slider_images')->first();
|
|
$business_setting->value = json_encode(Slider::pluck('photo')->toArray());
|
|
$business_setting->save();
|
|
|
|
$business_setting = BusinessSetting::where('type', 'home_slider_links')->first();
|
|
$business_setting->value = json_encode(Slider::pluck('link')->toArray());
|
|
$business_setting->save();
|
|
|
|
$business_setting = BusinessSetting::where('type', 'home_banner1_images')->first();
|
|
$business_setting->value = json_encode(Banner::where('position', 1)->pluck('photo')->toArray());
|
|
$business_setting->save();
|
|
|
|
$business_setting = BusinessSetting::where('type', 'home_banner1_links')->first();
|
|
$business_setting->value = json_encode(Banner::where('position', 1)->pluck('url')->toArray());
|
|
$business_setting->save();
|
|
|
|
$business_setting = BusinessSetting::where('type', 'home_banner2_images')->first();
|
|
$business_setting->value = json_encode(Banner::where('position', 2)->pluck('photo')->toArray());
|
|
$business_setting->save();
|
|
|
|
$business_setting = BusinessSetting::where('type', 'home_banner2_links')->first();
|
|
$business_setting->value = json_encode(Banner::where('position', 2)->pluck('url')->toArray());
|
|
$business_setting->save();
|
|
|
|
$business_setting = BusinessSetting::where('type', 'home_categories')->first();
|
|
$business_setting->value = json_encode(HomeCategory::pluck('category_id')->toArray());
|
|
$business_setting->save();
|
|
|
|
$business_setting = BusinessSetting::where('type', 'top10_categories')->first();
|
|
$business_setting->value = json_encode(Category::where('top', 1)->pluck('id')->toArray());
|
|
$business_setting->save();
|
|
|
|
$business_setting = BusinessSetting::where('type', 'top10_brands')->first();
|
|
$business_setting->value = json_encode(Brand::where('top', 1)->pluck('id')->toArray());
|
|
$business_setting->save();
|
|
|
|
$code = 'en';
|
|
$jsonString = [];
|
|
if(File::exists(base_path('resources/lang/'.$code.'.json'))){
|
|
$jsonString = file_get_contents(base_path('resources/lang/'.$code.'.json'));
|
|
$jsonString = json_decode($jsonString, true);
|
|
}
|
|
|
|
foreach($jsonString as $key => $string){
|
|
$translation_def = new Translation;
|
|
$translation_def->lang = $code;
|
|
$translation_def->lang_key = $key;
|
|
$translation_def->lang_value = $string;
|
|
$translation_def->save();
|
|
}
|
|
}
|
|
|
|
public function convert_category()
|
|
{
|
|
foreach (SubCategory::all() as $key => $value) {
|
|
$category = new Category;
|
|
$parent = Category::find($value->category_id);
|
|
|
|
$category->name = $value->name;
|
|
$category->digital = $parent->digital;
|
|
$category->banner = null;
|
|
$category->icon = null;
|
|
$category->meta_title = $value->meta_title;
|
|
$category->meta_description = $value->meta_description;
|
|
|
|
$category->parent_id = $parent->id;
|
|
$category->level = $parent->level + 1;
|
|
$category->slug = $value->slug;
|
|
$category->commision_rate = $parent->commision_rate;
|
|
|
|
$category->save();
|
|
|
|
foreach (SubCategoryTranslation::where('sub_category_id', $value->id)->get() as $translation) {
|
|
$category_translation = new CategoryTranslation;
|
|
$category_translation->category_id = $category->id;
|
|
$category_translation->lang = $translation->lang;
|
|
$category_translation->name = $translation->name;
|
|
$category_translation->save();
|
|
}
|
|
}
|
|
|
|
foreach (SubSubCategory::all() as $key => $value) {
|
|
$category = new Category;
|
|
$parent = Category::find(Category::where('name', SubCategory::find($value->sub_category_id)->name)->first()->id);
|
|
|
|
$category->name = $value->name;
|
|
$category->digital = $parent->digital;
|
|
$category->banner = null;
|
|
$category->icon = null;
|
|
$category->meta_title = $value->meta_title;
|
|
$category->meta_description = $value->meta_description;
|
|
|
|
$category->parent_id = $parent->id;
|
|
$category->level = $parent->level + 1;
|
|
$category->slug = $value->slug;
|
|
$category->commision_rate = $parent->commision_rate;
|
|
|
|
$category->save();
|
|
|
|
foreach (SubSubCategoryTranslation::where('sub_sub_category_id', $value->id)->get() as $translation) {
|
|
$category_translation = new CategoryTranslation;
|
|
$category_translation->category_id = $category->id;
|
|
$category_translation->lang = $translation->lang;
|
|
$category_translation->name = $translation->name;
|
|
$category_translation->save();
|
|
}
|
|
}
|
|
|
|
foreach (Product::all() as $key => $value) {
|
|
try {
|
|
if ($value->subsubcategory_id == null) {
|
|
$value->category_id = Category::where('name', SubCategory::find($value->subcategory_id)->name)->first()->id;
|
|
$value->save();
|
|
} else {
|
|
$value->category_id = Category::where('name', SubSubCategory::find($value->subsubcategory_id)->name)->first()->id;
|
|
$value->save();
|
|
}
|
|
} catch (\Exception $e) {
|
|
|
|
}
|
|
}
|
|
|
|
foreach (CustomerProduct::all() as $key => $value) {
|
|
try {
|
|
if ($value->subsubcategory_id == null) {
|
|
$value->category_id = Category::where('name', SubCategory::find($value->subcategory_id)->name)->first()->id;
|
|
$value->save();
|
|
} else {
|
|
$value->category_id = Category::where('name', SubSubCategory::find($value->subsubcategory_id)->name)->first()->id;
|
|
$value->save();
|
|
}
|
|
} catch (\Exception $e) {
|
|
|
|
}
|
|
}
|
|
|
|
// foreach (Product::all() as $key => $product) {
|
|
// if (is_array(json_decode($product->tags))) {
|
|
// $tags = array();
|
|
// foreach (json_decode($product->tags) as $tag) {
|
|
// array_push($tags, $tag->value);
|
|
// }
|
|
// $product->tags = implode(',', $tags);
|
|
// $product->save();
|
|
// }
|
|
// }
|
|
}
|
|
|
|
public function insert_product_variant_forcefully(Request $request)
|
|
{
|
|
foreach (Product::all() as $product) {
|
|
if ($product->stocks->isEmpty()) {
|
|
$product_stock = new ProductStock;
|
|
$product_stock->product_id = $product->id;
|
|
$product_stock->variant = '';
|
|
$product_stock->price = $product->unit_price;
|
|
$product_stock->sku = $product->sku;
|
|
$product_stock->qty = $product->current_stock;
|
|
$product_stock->save();
|
|
}
|
|
}
|
|
}
|
|
|
|
public function update_seller_id_in_orders($id_min, $id_max)
|
|
{
|
|
$orders = Order::where('id', '>=', $id_min)->where('id', '<=', $id_max)->get();
|
|
|
|
foreach ($orders as $order) {
|
|
$this->update_seller_id_in_order($order);
|
|
}
|
|
|
|
}
|
|
|
|
public function update_seller_id_in_order($order)
|
|
{
|
|
if($order->seller_id == 0){
|
|
//dd($order->orderDetails[0]->seller_id);
|
|
$order->seller_id = $order->orderDetails[0]->seller_id;
|
|
$order->save();
|
|
}
|
|
}
|
|
}
|