getInfo($channel_id); $data['channel'] = [ 'id' => $channel['id'], 'name' => $channel['name'], 'desc' => $channel['desc'], ]; # 分类信息 $top_id = 0; $data['top'] = []; if ($channel['type'] == 1) { # 显示子分类 # 根据频道获取主分类 $data['top'] = Dever::load('cate', 'place_source')->getTop($channel_id, 0); $top_id = Dever::input('top_id'); if (!$top_id && $data['top']) { $top_id = $data['top'][0]['id']; } } $data['cate'] = Dever::load('cate', 'place_source')->getData($channel, $top_id); # 主页轮播、主页小导航、主页信息流 $data['ad'] = Dever::load('ad', 'place_page')->gets([1,2,3,4,5], $channel_id, $top_id); return $data; } # 搜索页 public function search() { $channel_id = Dever::input('channel_id', 'is_numeric', '频道ID'); $source = Dever::input('source', 'is_numeric', '页面来源'); # 搜索历史 $data['history'] = []; if (Place::$uid) { $data['history'] = Dever::db('search', 'place_user')->select(['uid' => Place::$uid, 'channel_id' => $channel_id], ['limit' => 10]); } # 热门搜索 $data['hot'] = Dever::db('search', 'place_source')->select(['channel_id' => $channel_id, 'status' => 1], ['limit' => 10]); return $data; } # 搜索页搜索 public function searchData() { $search = Dever::input('search', 'is_string', '搜索词'); $channel_id = Dever::input('channel_id', 'is_numeric', '频道ID'); $source = Dever::input('source', 'is_numeric', '页面来源'); $channel = Dever::load('channel', 'place_source')->getInfo($channel_id); $channel['score'] = Dever::load('info', 'place_score')->get($channel['score_id']); $channel['scope'] = '1,' . $channel['id']; $data['list'] = Dever::load('info', 'place_source')->getList($channel, false, 10); if (Place::$uid) { # 记录历史 $history = ['uid' => Place::$uid, 'channel_id' => $channel_id, 'source' => $source, 'search' => $search]; $info = Dever::db('search', 'place_user')->find($history); if (!$info) { $history['num'] = 1; Dever::db('search', 'place_user')->insert($history); } else { Dever::db('search', 'place_user')->update($info['id'], ['num' => ['+', 1]]); } Dever::db('search', 'place_source')->update(['channel_id' => $channel_id, 'value' => $search], ['num' => ['+', 1]]); Dever::load('log', 'place_score')->action('搜索')->add(Place::$uid); } # 搜索页轮播图、搜索页信息流 $data['ad'] = Dever::load('ad', 'place_page')->gets([41,42], $channel_id, false); return $data; } # 频道分类页 public function channel() { $channel_id = Dever::input('channel_id', 'is_numeric', '频道ID'); # 获取频道信息 $channel = Dever::load('channel', 'place_source')->getInfo($channel_id); $data['channel'] = [ 'id' => $channel['id'], 'name' => $channel['name'], 'desc' => $channel['desc'], ]; # 获取主分类 $data['top'] = Dever::load('cate', 'place_source')->getTop($channel_id, 0); if ($data['top']) { foreach ($data['top'] as &$v) { $v['cate'][] = ['id' => $v['id'], 'name' => '全部']; $v['cate'] = array_merge($v['cate'], Dever::load('cate', 'place_source')->getList($channel_id, $v['id'])); } } return $data; } # 分类列表页 public function cate() { $show = Dever::input('show'); $cate_id = Dever::input('id', 'is_numeric', '分类ID'); $cate = Dever::load('cate', 'place_source')->getInfo($cate_id); $data['list'] = Dever::load('info', 'place_source')->getList($cate, false, 10); if ($show == 2) { # 仅展示分类列表 return $data; } $data['cate'] = [ 'id' => $cate['id'], 'name' => $cate['name'], 'desc' => $cate['desc'], ]; $channel = Dever::load('channel', 'place_source')->getInfo($cate['channel_id']); $data['channel'] = [ 'id' => $channel['id'], 'name' => $channel['name'], 'desc' => $channel['desc'], ]; $data['child'] = []; if ($cate['parent_id'] == 0) { $cate_id = $cate['id']; $data['child'][] = ['id' => $cate['id'], 'name' => '全部']; $data['child'] = array_merge($data['child'], Dever::load('cate', 'place_source')->getList($cate['channel_id'], $cate['id'])); } else { $cate_id = $cate['parent_id']; } # 列表页轮播图、列表页信息流 $data['ad'] = Dever::load('ad', 'place_page')->gets([11,12], $cate['channel_id'], $cate_id); if (isset($data['ad']['info']) && $data['ad']['info']) { foreach ($data['list'] as $k => $v) { } } return $data; } # 资源介绍页 public function info() { $source_id = Dever::input('id', 'is_numeric', '资源ID'); $info = Dever::load('info', 'place_source')->getInfo($source_id); $data['user'] = Place::$user; $data['info'] = [ 'id' => $info['id'], 'cate_id' => $info['cate_id'], 'channel_id' => $info['channel_id'], 'name' => $info['name'], 'info' => $info['info'], 'sku_name' => $info['sku_name'], 'price' => $info['price'], 'price_text' => $info['price_text'], 'm_price' => $info['m_price'], 'm_price_text' => $info['m_price_text'], 'rebate' => $info['rebate'], 'num_sell' => $info['num_sell'], 'stock' => $info['stock'], 'pic' => $info['pic'], 'content' => $info['content'], 'promotion_text' => $info['promotion_text'], 'promotion_tag' => $info['promotion_tag'], ]; $data['have_vip'] = $info['have_vip']; $data['help'] = $info['help']; # 是否收藏 $data['collect'] = $info['collect']; # 是否展示内容 $content = Dever::db('content', 'place_source')->find(['info_id' => $source_id]); $data['content'] = false; if ($content) { $data['content'] = true; } # 获取评价 $data['review'] = Act::load('review', 1, $source_id)->getList(['limit' => 3], 'content,pic,rate,open'); # 评价总数 $data['review_total'] = Act::load('review', 1, $source_id)->getTotal(); # 详情页轮播、详情页信息流 $data['ad'] = Dever::load('ad', 'place_page')->gets([21,22], $info['channel_id'], $info['cate_parent_id']); return $data; } # 资源sku public function sku() { $source_id = Dever::input('id', 'is_numeric', '资源ID'); $data['sku'] = Dever::load('info', 'place_source')->getSku($source_id); return $data; } # 资源内容列表页 public function content() { $source_id = Dever::input('id', 'is_numeric', '资源ID'); $source = Dever::load('info', 'place_source')->getBaseInfo($source_id); list($data['cate'], $data['cate_id']) = Dever::load('content', 'place_source')->getCate($source_id); $data['content'] = Dever::load('content', 'place_source')->getList($source_id, $data['cate_id']); # 内容页轮播、内容页信息流 $data['ad'] = Dever::load('ad', 'place_page')->gets([31,32], $source['channel_id'], $source['cate_parent_id']); return $data; } # 资源内容列表详情页 public function contentInfo() { $content_id = Dever::input('id', 'is_numeric', '内容ID'); $data['content'] = Dever::load('content', 'place_source')->getInfo($content_id); $data['source'] = Dever::load('info', 'place_source')->getBaseInfo($data['content']['info_id']); return $data; } # 确认支付 public function payConfirm() { if (!Place::$uid) { $this->showLogin(); } $this->showBindMobile(); $cate_id = Dever::input('type_id', 'is_numeric', '分类ID'); $cate = Dever::load('cate', 'place_source')->getInfo($cate_id); //[{"id":6,"sku_id":10,"num":2}] $source = Dever::input('detail', 'is_string', '资源'); $source = Dever::json_decode($source); if (!$source) { Dever::error('资源不存在'); } if (!isset($source[0])) { Dever::error('资源不存在'); } $data = Dever::load('source/pay', 'place_order')->get($source, $cate); return $data; } # 拉起支付 public function pay() { $this->payConfirm(); return Dever::load('source/pay', 'place_order')->act(); } # 资源评论列表 public function getReviewList() { $source_id = Dever::input('source_id', 'is_numeric', '资源ID'); $num = Dever::input('num', 'is_numeric', '分页条数', 10); $data = Act::load('review', 1, $source_id)->getList(['num' => $num], 'content,pic,rate,open'); $result['list'] = $data; $result['total'] = Dever::page('total'); return $result; } # 资源订单列表 public function getOrderList() { $where['uid'] = Place::$uid; $set['num'] = 10; $set['col'] = 'id,order_num,source_id,name,cash,num,cdate,status'; $status = Dever::input('status'); if ($status) { if ($status == 10) { $where['or'] = [ 'refund_status' => '1', 'status' => '8', ]; $where = ' uid = ' . $where['uid'] . ' and (refund_status = 1 or status = 8)'; } else { $where['status'] = ['in', $status]; } } $data = Dever::db('source', 'place_order')->select($where, $set); $result = []; if ($data) { foreach ($data as $k => $v) { $order = $this->getOrderInfo($v); if ($order) { $result[] = $order; } } } return $result; } }