mid] ]; $category_list = $category_model->getAllData($where, 'id,name,cover_img', 'sort desc'); $category_list = empty($category_list) ? [] : $category_list->toArray(); // 领取优惠券图标 $coupon_category_cover_img = $config_model->getOneData([ ['uid', '=', $this->mid] ], 'coupon_category_img'); // 拼接领取优惠券页面 $coupon_category = [ 'id' => '', 'name' => '兑换优惠券', 'cover_img' => $coupon_category_cover_img ]; // 在数组前插入一个元素 array_unshift($category_list, $coupon_category); return sendSuccessArray([ // 分类列表 'category_list' => $category_list ]); } /** * 获取商品列表 * @param int $category_id 分类ID * @param string $keyword 关键字 * @param int $is_recommend 是否推荐 0--不限制 1--已推荐 * @param int $order 排序 1--综合排序(发布时间倒序) 2--价格升序 3--价格降序 4--积分升序 5--积分降序 6--销量降序(不排序不传该字段,默认1排序) * @param int $page 第X页 * @date 2022-11-09 */ public function listProduct($category_id, $keyword, $is_recommend, $order, $page) { $product_model = new IntegralProduct(); //获取产品 $where = [ ['uid', '=', $this->mid], // 已发布 ['is_publish', '=', 1], ]; // 是否推荐 0--全部 1--推荐 if (!empty($is_recommend)) { $where[] = ['is_recommend', '=', $is_recommend]; } // 关键字 if (!empty($keyword)) { $where[] = ['name', 'like', '%' . $keyword . '%']; } $where_product_category = []; // 分类ID if (!empty($category_id)) { $where_product_category[] = ['category_id', '=', $category_id]; } // 顺序 if (empty($order)) { $order = 'publish_time desc'; } else if ($order == 1) { $order = 'publish_time desc'; } else if ($order == 2) { $order = 'price asc'; } else if ($order == 3) { $order = 'price desc'; } else if ($order == 4) { $order = 'integral asc'; } else if ($order == 5) { $order = 'integral desc'; } else if ($order == 6) { $order = 'sales_number desc'; } $field = 'id,name,integral,price,cover_img,sales_origial_number + sales_actual_number as sales_number'; $list = $product_model->listProductWithPage($where, $where_product_category, $page, $field, $order); return sendSuccessArray([ // 产品列表 'list' => $list ]); } /** * 获取商品详情 * @param int $product_id 产品ID * @date 2022-11-09 */ public function getProduct($product_id) { $product_model = new IntegralProduct(); $spec_model = new IntegralProductSpec(); // 获取详情 $field = 'id,name,description,img_path,cover_img,video_url,video_cover_img,stock,integral,price,sales_origial_number + sales_actual_number as sales_number,is_spec_open'; $product = $product_model->getProduct([ ['id', '=', $product_id], ['is_publish', '=', 1] ], $field); $product = empty($product) ? [] : $product->toArray(); if(!empty($product)){ // 商品轮播图 $carousel = []; if ($product['video_url']) { $carousel[] = [ 'type' => 2, 'image_url' => $product['video_cover_img'], 'video_url' => $product['video_url'] ]; } foreach ($product['img_path'] as $v) { $carousel[] = [ 'type' => 1, 'image_url' => $v, 'video_url' => '' ]; } $product['carousel'] = $carousel; unset($product['video_cover_img']); unset($product['video_url']); unset($product['img_path']); // 规格浮层统一变量 $product['productSku'] = $product['integralProductSku']; unset($product['integralProductSku']); // 获取商品SPEC $spec = $spec_model->listSpec([ ['product_id', '=', $product_id] ], 'id,spec_id,spec_title'); $spec = empty($spec) ? [] : $spec->toArray(); // 规格浮层统一变量 foreach ($spec as $k => $v) { $spec[$k]['productSpecItem'] = $v['integralProductSpecItem']; unset($spec[$k]['integralProductSpecItem']); } $product['spec'] = $spec; } // 分享连接 $product['h5_href'] = Request::domain() . '/h5/#/pages/common/download'; return sendSuccessArray([ // 产品 'product' => $product ]); } }