123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- <?php namespace Place_interface\Api;
- use Dever;
- use Place;
- use Place_interface\Lib\Core;
- use Place_act\Lib\Core as Act;
- class Source extends Core
- {
- # 首页
- public function home()
- {
- $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'],
- ];
- # 分类信息
- $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;
- }
- }
|