site_id], ['status', '=', 1], ]; $category_model = new BlindboxCategoryModel(); $data = $category_model->getBlindboxCategoryList($condition); return $this->response($data); } /** * 获取盲盒活动列表 */ public function page() { $page = $this->params['page'] ?? 1; $page_size = $this->params['page_size'] ?? PAGE_LIST_ROWS; $category_id = $this->params['category_id'] ?? 0; $condition = [ ['site_id', '=', $this->site_id], ['blindbox_status', '=', 1], ]; if ($category_id) { $condition[] = ['category_id', '=', $category_id]; } $blindbox_model = new BlindboxModel(); $data = $blindbox_model->getBlindboxPageList($condition, $page, $page_size,'sort asc,create_time desc'); return $this->response($data); } /** * 盲盒(系列)详情 */ public function info() { $token = $this->checkToken(); $blindbox_id = $this->params['blindbox_id'] ?? 0; if (empty($blindbox_id)) return $this->response($this->error('', '缺少参数')); $condition = [ ['site_id', '=', $this->site_id], ['blindbox_status', '=', 1], ['blindbox_id', '=', $blindbox_id] ]; $blindbox_model = new BlindboxModel(); $data = $blindbox_model->getBlindboxInfo($condition); if ($data['data']) { $goods_model = new BlindboxGoodsModel(); $goods_list = $goods_model->getBlindboxGoodsList([['a.site_id', '=', $this->site_id], ['a.blindbox_id', '=', $blindbox_id]])['data'] ?? []; $checked_goods = []; #是否新人 $is_new = 0; if ($goods_list) { foreach ($goods_list as $k => $v) { if (!isset($checked_goods[$v['goods_id']])) { $checked_goods[$v['goods_id']] = $v; } } $goods_ids = array_column($checked_goods,'goods_id'); $goods_model = new GoodsModel(); $goods_data = $goods_model->getGoodsList([['goods_id','in',$goods_ids],['site_id','=',$this->site_id]],'goods_id,goods_name,goods_image,price,market_price,sku_id')['data']??[]; $member_arr = array_column($goods_list,'member_id'); if($this->member_id){ if(in_array($this->member_id,$member_arr)){ #不是新人 $is_new = 1; } $member_model = new Member(); $member_info_result = $member_model->getMemberDetail($this->member_id, $this->site_id)['data'] ?? []; $data['data']['member_info'] = $member_info_result; } } #盒子内的商品 $data['data']['goods_list'] = $goods_data; $data['data']['is_new'] = $is_new; } return $this->response($data); } /** * 盲盒下的盒子 * @return false|string */ public function boxPage() { $page = $this->params['page'] ?? 1; $page_size = $this->params['page_size'] ?? 6; $blindbox_id = $this->params['blindbox_id'] ?? 0; if (empty($blindbox_id)) return $this->response($this->error('', '缺少参数')); #获取盲盒下所有盒子 $condition = [ ['site_id', '=', $this->site_id], ['blindbox_status', '=', 1], ['blindbox_id', '=', $blindbox_id] ]; $blindbox_model = new BlindboxModel(); $data = $blindbox_model->getBlindboxInfo($condition)['data'] ?? []; if (empty($data)) return $this->response($this->error('', '暂无数据')); $box_condition = [ ['site_id', '=', $this->site_id], ['blindbox_id', '=', $blindbox_id], ]; if ($data['is_emptybox'] == 2) { $box_condition[] = ['a.status', '=', 0]; } $goods_model = new BlindboxGoodsModel(); $box_list = $goods_model->getBlindboxGoodsPageList($box_condition,$page,$page_size,'sort desc','id,blindbox_id,status,create_time'); $box_list['data']['page'] = $page; return $this->response($box_list); } }