From e9b2c4e809b55db04d29657f2186f797201638b0 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 10 Aug 2023 10:25:14 +0500 Subject: [PATCH] from server --- .../api/BlogPostsApiController.php | 2 +- .../controllers/api/MessagesapiController.php | 8 ++--- .../controllers/api/ProductsApiController.php | 28 ++++++++++++--- plugins/rainlab/user/models/User.php | 1 + plugins/rainlab/user/models/user/fields.yaml | 4 +-- plugins/tps/birzha/models/OrderItems.php | 31 ++++++++++++++++ plugins/tps/birzha/models/Orders.php | 35 +++++++++++++++++++ .../tps/birzha/models/orderitems/columns.yaml | 16 +++++++++ .../tps/birzha/models/orderitems/fields.yaml | 19 ++++++++++ plugins/tps/birzha/models/orders/columns.yaml | 13 +++++++ plugins/tps/birzha/models/orders/fields.yaml | 11 ++++++ ...er_table_create_tps_birzha_order_items.php | 26 ++++++++++++++ ...builder_table_create_tps_birzha_orders.php | 26 ++++++++++++++ ...er_table_update_tps_birzha_order_items.php | 23 ++++++++++++ plugins/tps/birzha/updates/version.yaml | 9 +++++ plugins/vdomah/jwtauth/routes.php | 5 +-- 16 files changed, 244 insertions(+), 13 deletions(-) create mode 100644 plugins/tps/birzha/models/OrderItems.php create mode 100644 plugins/tps/birzha/models/Orders.php create mode 100644 plugins/tps/birzha/models/orderitems/columns.yaml create mode 100644 plugins/tps/birzha/models/orderitems/fields.yaml create mode 100644 plugins/tps/birzha/models/orders/columns.yaml create mode 100644 plugins/tps/birzha/models/orders/fields.yaml create mode 100644 plugins/tps/birzha/updates/builder_table_create_tps_birzha_order_items.php create mode 100644 plugins/tps/birzha/updates/builder_table_create_tps_birzha_orders.php create mode 100644 plugins/tps/birzha/updates/builder_table_update_tps_birzha_order_items.php diff --git a/plugins/ahmadfatoni/apigenerator/controllers/api/BlogPostsApiController.php b/plugins/ahmadfatoni/apigenerator/controllers/api/BlogPostsApiController.php index 47d7c06..ffbd4f4 100644 --- a/plugins/ahmadfatoni/apigenerator/controllers/api/BlogPostsApiController.php +++ b/plugins/ahmadfatoni/apigenerator/controllers/api/BlogPostsApiController.php @@ -138,7 +138,7 @@ class BlogPostsApiController extends Controller return $this->helpers->apiArrayResponseBuilder(400, 'fail', $validator->errors() ); } - $comment = $this->Comment::where('product_id', $data["product_id"])->where('is_approve', 1)->paginate(15); + $comment = $this->Comment::where('product_id', $data["product_id"])->where('is_approve', 1)->with('user')->paginate(15); //dd($favourite); return response()->json($comment, 200); diff --git a/plugins/ahmadfatoni/apigenerator/controllers/api/MessagesapiController.php b/plugins/ahmadfatoni/apigenerator/controllers/api/MessagesapiController.php index 367458e..a8240d4 100644 --- a/plugins/ahmadfatoni/apigenerator/controllers/api/MessagesapiController.php +++ b/plugins/ahmadfatoni/apigenerator/controllers/api/MessagesapiController.php @@ -161,7 +161,7 @@ class MessagesapiController extends Controller return $this->helpers->apiArrayResponseBuilder(404, 'not found', ['error' => 'Resource id=' . $id . ' could not be found']); } - $messages = $chatroom::find($id)->messages()->latest('send_at')->skip($skipParam)->limit(5)->get()->reverse(); + $messages = $chatroom::find($id)->messages()->latest('send_at')->skip($skipParam)->limit(10)->get(); return $this->helpers->apiArrayResponseBuilder(200, 'success', ['messages' => $messages]); } @@ -206,7 +206,7 @@ class MessagesapiController extends Controller \Event::fire('tps.message.received', [User::find($newMsg->reciver_id), $currentUser]); - return $this->helpers->apiArrayResponseBuilder(200, 'ok', ['message' => 'message sent successfully']); + return $this->helpers->apiArrayResponseBuilder(200, 'ok', ['message' => $newMsg]); } /** @@ -288,8 +288,8 @@ class MessagesapiController extends Controller ->readAtNull() ->update(['read_at'=>\Carbon\Carbon::now()]); - $messages = $chatroom->messages()->latest('send_at')->limit(5)->get()->reverse(); - + $messages = $chatroom->messages()->latest('send_at')->limit(10)->get(); + return $messages; } diff --git a/plugins/ahmadfatoni/apigenerator/controllers/api/ProductsApiController.php b/plugins/ahmadfatoni/apigenerator/controllers/api/ProductsApiController.php index 0ad97f5..4fb2da8 100644 --- a/plugins/ahmadfatoni/apigenerator/controllers/api/ProductsApiController.php +++ b/plugins/ahmadfatoni/apigenerator/controllers/api/ProductsApiController.php @@ -14,6 +14,7 @@ use October\Rain\Support\Facades\Event; use TPS\Birzha\Classes\ErrorResponseApi; use TPS\Birzha\Classes\MeasureResource; use TPS\Birzha\Classes\ProductResource; +use DB; class ProductsAPIController extends Controller { @@ -45,6 +46,9 @@ class ProductsAPIController extends Controller $is_home = intval(input('is_home')); $queryString = input('q'); $locale = input('locale'); + + $seller = input('seller_id'); + $categorySeller = input('seller_category_id'); // $query = $this->Product::with('categories:id,name') $query = Product::with([ @@ -53,6 +57,9 @@ class ProductsAPIController extends Controller 'vendor:id,name,email,type,logo,banner,shop_title,slogan,is_instagram', 'place', ]) + ->withCount(['comments as rating_avg' => function($query) { + $query->select(DB::raw('avg(rating)')); + }]) ->approved() ->orderBy('ends_at', $sortOrder); @@ -65,6 +72,9 @@ class ProductsAPIController extends Controller 'translations:locale,model_id,attribute_data', 'images:attachment_id,attachment_type,disk_name,file_name', ]) + ->withCount(['comments as rating_avg' => function($query) { + $query->select(DB::raw('avg(rating)')); + }]) ->approved() ->orderBy('ends_at', $sortOrder); } else { @@ -80,6 +90,9 @@ class ProductsAPIController extends Controller 'place', 'vendor:id,name,email,type,logo,banner,shop_title,slogan,is_instagram' ]) + ->withCount(['comments as rating_avg' => function($query) { + $query->select(DB::raw('avg(rating)')); + }]) ->where('is_home', 1) ->approved() ->orderBy('ends_at', $sortOrder); @@ -99,6 +112,9 @@ class ProductsAPIController extends Controller 'translations:locale,model_id,attribute_data', 'images:attachment_id,attachment_type,disk_name,file_name', ]) + ->withCount(['comments as rating_avg' => function($query) { + $query->select(DB::raw('avg(rating)')); + }]) // ->approvedAndFreshEndDate() ->approved() ->orderBy('ends_at', $sortOrder); @@ -113,6 +129,9 @@ class ProductsAPIController extends Controller 'translations:locale,model_id,attribute_data', 'images:attachment_id,attachment_type,disk_name,file_name', ]) + ->withCount(['comments as rating_avg' => function($query) { + $query->select(DB::raw('avg(rating)')); + }]) ->orderBy('ends_at', $sortOrder); } @@ -136,13 +155,14 @@ class ProductsAPIController extends Controller 'vendor:id,name,surname,email,username,logo,banner', 'files', 'place', ]) - ->withCount('comments')->withAvg('comments', 'rating') - // ->withCount(['comments as comments_avg_votes' => function($query) { - // $query->select(DB::raw('avg(rating)')); - // }]) + //->withCount('comments')->withAvg('comments', 'rating') + ->withCount(['comments as rating_avg' => function($query) { + $query->select(DB::raw('avg(rating)')); + }]) ->find($id); $data->main_path = 'http://78.111.88.8:9086' . \Config::get('cms.storage.media.path'); + //$data->rating_avg = number_format((float)$data->rating_avg, 1, '.', '');; if ($data && $data->status == 'approved' /*&& $data->ends_at >= \Carbon\Carbon::now()*/){ return response()->json($data, 200); diff --git a/plugins/rainlab/user/models/User.php b/plugins/rainlab/user/models/User.php index 338cfbe..f0cab32 100644 --- a/plugins/rainlab/user/models/User.php +++ b/plugins/rainlab/user/models/User.php @@ -63,6 +63,7 @@ class User extends UserBase 'sliders' => ['TPS\Birzha\Models\UserSliders', 'softDelete' => true], 'favourites' => ['TPS\Birzha\Models\Favourites', 'softDelete' => true, 'table' => 'tps_birzha_favourites'], 'comments' => ['TPS\Birzha\Models\Comment','table' => 'tps_birzha_comments'], + 'orders' => ['TPS\Birzha\Models\Orders','table' => 'tps_birzha_orders'], ]; diff --git a/plugins/rainlab/user/models/user/fields.yaml b/plugins/rainlab/user/models/user/fields.yaml index 8d67667..1b7a81f 100644 --- a/plugins/rainlab/user/models/user/fields.yaml +++ b/plugins/rainlab/user/models/user/fields.yaml @@ -109,9 +109,9 @@ tabs: tab: Gurlushyk description: label: Maglumat - size: '' span: auto - type: textarea + size: huge + type: richeditor tab: Gurlushyk categories: label: Relation diff --git a/plugins/tps/birzha/models/OrderItems.php b/plugins/tps/birzha/models/OrderItems.php new file mode 100644 index 0000000..91f511d --- /dev/null +++ b/plugins/tps/birzha/models/OrderItems.php @@ -0,0 +1,31 @@ + ['TPS\Birzha\Models\Orders', 'table' => 'tps_birzha_orders'], + ]; + + /** + * @var array Validation rules + */ + public $rules = [ + ]; +} diff --git a/plugins/tps/birzha/models/Orders.php b/plugins/tps/birzha/models/Orders.php new file mode 100644 index 0000000..19aac34 --- /dev/null +++ b/plugins/tps/birzha/models/Orders.php @@ -0,0 +1,35 @@ + ['RainLab\User\Models\User', 'table' => 'users'], + ]; + + public $hasMany = [ + 'order_items' => ['TPS\Birzha\Models\OrderItems', 'key' => 'order_id', 'softDelete' => true], + ]; + + /** + * @var array Validation rules + */ + public $rules = [ + ]; +} diff --git a/plugins/tps/birzha/models/orderitems/columns.yaml b/plugins/tps/birzha/models/orderitems/columns.yaml new file mode 100644 index 0000000..9c01924 --- /dev/null +++ b/plugins/tps/birzha/models/orderitems/columns.yaml @@ -0,0 +1,16 @@ +columns: + id: + label: id + type: number + items: + label: items + type: text + note: + label: note + type: text + created_at: + label: created_at + type: datetime + order_id: + label: order_id + type: number diff --git a/plugins/tps/birzha/models/orderitems/fields.yaml b/plugins/tps/birzha/models/orderitems/fields.yaml new file mode 100644 index 0000000..7b318dc --- /dev/null +++ b/plugins/tps/birzha/models/orderitems/fields.yaml @@ -0,0 +1,19 @@ +fields: + note: + label: Note + span: auto + type: textarea + items: + label: Items + span: auto + type: repeater + form: + fields: + product_id: + label: Product + span: auto + type: number + qty: + label: Quantity + span: auto + type: number diff --git a/plugins/tps/birzha/models/orders/columns.yaml b/plugins/tps/birzha/models/orders/columns.yaml new file mode 100644 index 0000000..6eeb8a7 --- /dev/null +++ b/plugins/tps/birzha/models/orders/columns.yaml @@ -0,0 +1,13 @@ +columns: + id: + label: id + type: number + created_at: + label: created_at + type: datetime + user_id: + label: user_id + type: number + note: + label: note + type: text diff --git a/plugins/tps/birzha/models/orders/fields.yaml b/plugins/tps/birzha/models/orders/fields.yaml new file mode 100644 index 0000000..eb7983f --- /dev/null +++ b/plugins/tps/birzha/models/orders/fields.yaml @@ -0,0 +1,11 @@ +fields: + user: + label: 'User id' + span: auto + nameFrom: name + descriptionFrom: description + type: relation + note: + label: Note + span: auto + type: textarea diff --git a/plugins/tps/birzha/updates/builder_table_create_tps_birzha_order_items.php b/plugins/tps/birzha/updates/builder_table_create_tps_birzha_order_items.php new file mode 100644 index 0000000..c51d0cf --- /dev/null +++ b/plugins/tps/birzha/updates/builder_table_create_tps_birzha_order_items.php @@ -0,0 +1,26 @@ +engine = 'InnoDB'; + $table->increments('id')->unsigned(); + $table->timestamp('created_at')->nullable(); + $table->timestamp('updated_at')->nullable(); + $table->timestamp('deleted_at')->nullable(); + $table->text('items'); + $table->text('note'); + }); + } + + public function down() + { + Schema::dropIfExists('tps_birzha_order_items'); + } +} diff --git a/plugins/tps/birzha/updates/builder_table_create_tps_birzha_orders.php b/plugins/tps/birzha/updates/builder_table_create_tps_birzha_orders.php new file mode 100644 index 0000000..b769ddd --- /dev/null +++ b/plugins/tps/birzha/updates/builder_table_create_tps_birzha_orders.php @@ -0,0 +1,26 @@ +engine = 'InnoDB'; + $table->increments('id')->unsigned(); + $table->timestamp('created_at')->nullable(); + $table->timestamp('updated_at')->nullable(); + $table->timestamp('deleted_at')->nullable(); + $table->integer('user_id'); + $table->text('note'); + }); + } + + public function down() + { + Schema::dropIfExists('tps_birzha_orders'); + } +} diff --git a/plugins/tps/birzha/updates/builder_table_update_tps_birzha_order_items.php b/plugins/tps/birzha/updates/builder_table_update_tps_birzha_order_items.php new file mode 100644 index 0000000..5ccea99 --- /dev/null +++ b/plugins/tps/birzha/updates/builder_table_update_tps_birzha_order_items.php @@ -0,0 +1,23 @@ +integer('order_id'); + }); + } + + public function down() + { + Schema::table('tps_birzha_order_items', function($table) + { + $table->dropColumn('order_id'); + }); + } +} diff --git a/plugins/tps/birzha/updates/version.yaml b/plugins/tps/birzha/updates/version.yaml index 71e3169..ebaed2a 100644 --- a/plugins/tps/birzha/updates/version.yaml +++ b/plugins/tps/birzha/updates/version.yaml @@ -395,3 +395,12 @@ 1.0.138: - 'Created table tps_birzha_notifications' - builder_table_create_tps_birzha_notifications.php +1.0.139: + - 'Created table tps_birzha_orders' + - builder_table_create_tps_birzha_orders.php +1.0.140: + - 'Created table tps_birzha_order_items' + - builder_table_create_tps_birzha_order_items.php +1.0.141: + - 'Updated table tps_birzha_order_items' + - builder_table_update_tps_birzha_order_items.php diff --git a/plugins/vdomah/jwtauth/routes.php b/plugins/vdomah/jwtauth/routes.php index c1e09c4..3be16f8 100644 --- a/plugins/vdomah/jwtauth/routes.php +++ b/plugins/vdomah/jwtauth/routes.php @@ -8,8 +8,9 @@ Route::group(['prefix' => 'api'], function() { Route::get('me', function() { $me = \JWTAuth::parseToken()->authenticate() - ->only(['name','surname','email','username','type', 'logo', 'banner', 'shop_title', 'slogan', 'is_instagram']); - + ->only(['id','name','surname','email','username','type', 'logo', 'banner', 'shop_title', 'slogan', 'is_instagram']); + $user["path"] = 'http://78.111.88.8:9086' . \Config::get('cms.storage.media.path'); + return Response::json(compact('me')); })->middleware('\Tymon\JWTAuth\Middleware\GetUserFromToken');