merchant_id; $keyword = $request->keyword; $shops = MerchantShop::where('merchant_id', $merchant_id)->where('is_show', 1); if ($keyword) { $keyword = trim($keyword); $shops = $shops->where(function ($sql) use ($keyword) { $sql->where('title', 'like', '%' . $keyword . '%'); }); } $shops = $shops->orderBy('is_top', 'desc')->orderBy('top_time', 'desc')->orderBy('id', 'desc')->paginate(); $time = date('Y-m-d H:i:s'); foreach ($shops as $key => $shop) { $shop->banners = json_decode($shop->banners, true) ?? []; $shop->sku = json_decode($shop->sku, true) ?? []; $group = CollageGroup::where('type', 'shop')->where('type_id', $shop->id)->where('start_time', '<', $time) ->where('end_time', '>', $time)->first(); if($group){ $shop->is_group = 1; }else{ $shop->is_group = 0; } } return $this->success('ok', $shops); } catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } /** * 商品详情 * @param Request $request * @param $id * @return JsonResponse|string */ public function shop_detail(Request $request, $id) { try { $wechatUser = session('wechat.oauth_user.new'); if ($wechatUser) { $openid = $wechatUser->getId(); $merchant_user = MerchantUser::where('openid', $openid)->first(); } else { $merchant_user = MerchantUser::where('id', $request->merchant_user_id)->first(); $openid = $merchant_user->openid; } $shop = MerchantShop::withTrashed()->where('id', $id)->first(); $shop->banners = json_decode($shop->banners, true) ?? []; $shop->sku = json_decode($shop->sku, true) ?? []; $shop->pic = $shop->icon; unset($shop->icon); Redis::zincrby('shop', 1, $id); $merchant_user->preview($shop); if (config('app.env') == 'production') { $merchant_user->addlog($shop); } //下架或删除状态 0下架 1正常上架 2已删除 $publish_state = 0; if ($shop->deleted_at) { $publish_state = 2; } elseif ($shop->is_show) { $publish_state = 1; } else { $publish_state = 0; } $shop->publish_state = $publish_state; $jump_url = urlencode(env('APP_URL') . '/pu/#/mallDetail/' . $shop->id); $url = env('APP_URL') . '/api/official/live/wechat/FamilyAuth?merchant_id=' . $shop->merchant_id . '&url=' . $jump_url . '&from_openid=' . $openid; $share_qrcode = $this->getPreviewQrcode($url); $shop->share_qr_code = $share_qrcode; unset($shop->share_qrcode); $merchant_user_id = $request->merchant_user_id; $merchant_user = MerchantUser::where('id', $merchant_user_id)->first(); $linkmen['name'] = ''; $linkmen['mobile'] = ''; if ($merchant_user) { $shop['share_nickname'] = $merchant_user->nickname ?? '匿名用户'; $shop['share_avatar'] = $merchant_user->pic ?? User::DefaultAvatar; $linkmen['name'] = $merchant_user->nickname; $linkmen['mobile'] = $merchant_user->mobile; } $shop->linkmen = $linkmen; if($request->from_openid && $request->from_openid != 'null'){ $user_service = new UserService(); $user_service->generateClientComment(0,$openid,$request->from_openid,'商品',$shop->id,$shop->title); } $merchant = MerchantAccount::find($shop->merchant_id); $shop->has_group = $merchant->hasGroup($shop) ? 1 : 0; $shop->group = $merchant->groupInformation($shop); if ($request->from_openid && $request->from_openid != $merchant_user->openid) { MEarningShare::create(["user_id"=>$merchant_user->id, "type"=>MerchantShop::class, 'type_id'=>$id, 'from_openid'=>$request->from_openid]); } return $this->success('ok', $shop); } catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } /** * 我的购买 --商城商品 * @param Request $request * @return JsonResponse|string */ public function myShopOrder(Request $request) { try { $merchant_user_id = $request->merchant_user_id; $result = TouristOrder::where('account_id', $merchant_user_id)->where('merchant_id', $request->merchant_id)->where('type', 'shop')->whereIn('pay_status', [1, 4])->orderBy('id', 'desc')->paginate(); $state = 0; foreach ($result as $key => $value) { $shop = MerchantShop::withTrashed()->where('id', $value->type_id)->first(); $recive = ShopRecive::where('order_id', $value->id)->first(); if ($recive->is_recived == 0) { $state = 1; //确认收货 } elseif (!$value->comment && !$value->Praise) { $state = 2;//去评价 } else { $state = 3;//查看评价 } $value->title = $shop->title; $value->pic = $shop->icon; $value->Subtitle = $shop->sub_title; $value->address = $recive->address; $value->state = $state; $value->order_status = $recive->order_status; } return $this->success('ok', $result); } catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } /** * 确认收货 * @param Request $request * @param $id * @return JsonResponse|string */ public function reciveShop(Request $request, $id) { try { $recive = ShopRecive::where('order_id', $id)->first(); if (!$recive) return $this->failure('订单信息有误'); $recive->is_recived = 1; $recive->save(); return $this->success('ok'); } catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } }