params['page']) ? $this->params['page'] : 1; $page_size = isset($this->params['page_size']) ? $this->params['page_size'] : PAGE_LIST_ROWS; $condition = [ ['status', '=', 2], ['site_id', '=', $this->site_id] ]; $order = 'create_time desc'; $field = 'topic_id,topic_name,topic_adv,status,remark,start_time,end_time'; $topic_model = new TopicModel(); $list = $topic_model->getTopicPageList($condition, $page, $page_size, $order, $field); $topic_ids = array_column($list['data']['list'], 'topic_id'); if ($topic_ids) { $topic_goods_list = model('promotion_topic_goods') ->getColumn([['site_id', '=', $this->site_id], ['topic_id', 'in', $topic_ids]], 'id,sku_id,topic_id', 'id'); $itme_arr = []; foreach ($topic_goods_list as $k => &$v) { $itme_arr[$v['topic_id']][] = $v; } foreach ($list['data']['list'] as $k => &$v) { $v['id'] = $itme_arr[$v['topic_id']][0]['id']; $v['goods_count'] = count($itme_arr[$v['topic_id']]); } } return $this->response($list); } }