You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
248 lines
5.7 KiB
248 lines
5.7 KiB
<?php
|
|
// 2020年2月18日18:06:58
|
|
namespace app\api\controller\wanlshop;
|
|
|
|
use app\common\controller\Api;
|
|
use fast\Tree;
|
|
use think\Db;
|
|
|
|
/**
|
|
* WanlShop页面接口
|
|
*/
|
|
class Page extends Api
|
|
{
|
|
protected $noNeedLogin = ['*'];
|
|
protected $noNeedRight = ['*'];
|
|
|
|
/**
|
|
* 获取APP首页
|
|
*
|
|
* @ApiSummary (WanlShop 获取自定义页面数据)
|
|
* @ApiMethod (GET)
|
|
*
|
|
* @param string $id 页面ID
|
|
*/
|
|
public function index($id = null)
|
|
{
|
|
$error = __('页面不存在');
|
|
$row = !$id ? $this->error($error) : model('app\api\model\wanlshop\Page')
|
|
->where(['page_token' => $id])
|
|
->field('page, item')
|
|
->find();
|
|
!$row ? $this->error($error) : $this->success('返回成功', $row);
|
|
}
|
|
/**
|
|
* 获取指定文章
|
|
*
|
|
* @ApiSummary (WanlShop 产品接口获取文章)
|
|
* @ApiMethod (GET)
|
|
*
|
|
*/
|
|
public function article($ids = null)
|
|
{
|
|
$row = model('app\api\model\wanlshop\Article')
|
|
->where('id', 'in', $ids)
|
|
->field('id,title,image,views,createtime')
|
|
->select();
|
|
$this->success('ok', $row);
|
|
}
|
|
|
|
/**
|
|
* 获取头条文章
|
|
*
|
|
* @ApiSummary (WanlShop 产品接口获取文章)
|
|
* @ApiMethod (GET)
|
|
*
|
|
*/
|
|
public function headlines()
|
|
{
|
|
$config = get_addon_config('wanlshop');
|
|
$row = model('app\api\model\wanlshop\Article')
|
|
->where([
|
|
['EXP', Db::raw("FIND_IN_SET('index', `flag`)")],
|
|
'category_id' => $config['config']['new_category']
|
|
])
|
|
->field('id,title,image')
|
|
->limit(20)
|
|
->select();
|
|
$this->success('ok', $row);
|
|
}
|
|
|
|
/**
|
|
* 获取商品
|
|
*
|
|
* @ApiSummary (WanlShop 产品接口获取商品)
|
|
* @ApiMethod (GET)
|
|
*
|
|
*/
|
|
public function goods($ids = null)
|
|
{
|
|
$list = model('app\api\model\wanlshop\Goods')
|
|
->where('id', 'in' ,$ids)
|
|
->field('id,image,title,price,shop_id,comment,praise')
|
|
->select();
|
|
foreach($list as $row){
|
|
$row->shop->visible(['state','shopname']);
|
|
$row->isLive = model('app\api\model\wanlshop\Live')->where(['shop_id' => $row['shop_id'], 'state' => 1])->field('id')->find();
|
|
}
|
|
$this->success('ok', $list);
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 获取热门拼团
|
|
*
|
|
* @ApiSummary (WanlShop 页面接口获取热门拼团品)
|
|
* @ApiMethod (GET)
|
|
* 火线上线,后续通过算法查询
|
|
*
|
|
*/
|
|
public function groups($shop_id = NULL)
|
|
{
|
|
$where = [];
|
|
if($shop_id){
|
|
$where['shop_id'] = $shop_id;
|
|
}
|
|
$list = model('app\api\model\wanlshop\groups\Goods')
|
|
->orderRaw('rand()')
|
|
->where($where)
|
|
->field('id,image,title,description,price')
|
|
->limit(6)
|
|
->select();
|
|
$this->success('ok', $list);
|
|
}
|
|
|
|
/**
|
|
* 获取活动橱窗
|
|
*
|
|
* @ApiSummary (WanlShop 获取活动橱窗)
|
|
* @ApiMethod (GET)
|
|
*
|
|
*/
|
|
public function activity()
|
|
{
|
|
$param = $this->request->param();
|
|
// 数据样式
|
|
$col = [];
|
|
switch ($param['col'])
|
|
{
|
|
case "col-1-2-2":
|
|
$col = [4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
case "col-1-1_2":
|
|
$col = [4,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
case "col-2-1_2":
|
|
$col = [2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
case "col-2-2_1":
|
|
$col = [2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
case "col-2-2-1_2":
|
|
$col = [2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
case "col-2-4":
|
|
$col = [2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
case "col-2-2-4":
|
|
$col = [2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
}
|
|
$activity = [
|
|
'distribution' => '分销',
|
|
'group' => '团购拼团',
|
|
'bargain' => '砍价',
|
|
'rush' => '限时抢购',
|
|
'coupon' => '领券中心'
|
|
];
|
|
$list = [];
|
|
foreach(json_decode(html_entity_decode($param['data']),true) as $key => $data){
|
|
if($key < 9){
|
|
$row = [];
|
|
switch ($data['activity'])
|
|
{
|
|
case "group":
|
|
$row = model('app\api\model\wanlshop\groups\Goods')
|
|
->orderRaw('rand()')
|
|
->limit($col[$key])
|
|
->field('id,image')
|
|
->select();
|
|
break;
|
|
}
|
|
$list[] = [
|
|
'activity' => $data['activity'],
|
|
'activityText' => $activity[$data['activity']],
|
|
'color' => $data['textColor'],
|
|
'describe' => $data['describe'],
|
|
'tags' => $data['tags'],
|
|
'list' => $row
|
|
];
|
|
}
|
|
}
|
|
$this->success('ok', $list);
|
|
}
|
|
|
|
/**
|
|
* 获取类目商品
|
|
*
|
|
* @ApiSummary (WanlShop 页面接口获取类目商品)
|
|
* @ApiMethod (GET)
|
|
*
|
|
*/
|
|
public function category()
|
|
{
|
|
$param = $this->request->param();
|
|
// 数据样式
|
|
$col = [];
|
|
switch ($param['col'])
|
|
{
|
|
case "col-1-2-2":
|
|
$col = [4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
case "col-1-1_2":
|
|
$col = [4,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
case "col-2-1_2":
|
|
$col = [2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
case "col-2-2_1":
|
|
$col = [2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
case "col-2-2-1_2":
|
|
$col = [2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
case "col-2-4":
|
|
$col = [2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
case "col-2-2-4":
|
|
$col = [2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2];
|
|
break;
|
|
}
|
|
// 查询数据
|
|
$list = [];
|
|
foreach(json_decode(html_entity_decode($param['data']),true) as $key => $data){
|
|
if($key < 20){
|
|
$category = Tree::instance()->init(model('app\api\model\wanlshop\Category')->all())->getChildren($data['categoryId'], true);
|
|
$category_ids = array_column($category, 'id');
|
|
$row = model('app\api\model\wanlshop\Goods')
|
|
->where('category_id', 'in', $category_ids)
|
|
->orderRaw('rand()')
|
|
->limit($col[$key])
|
|
->field('id,image')
|
|
->select();
|
|
$list[] = [
|
|
'name' => $category[0]['name'],
|
|
'color' => $data['textColor'],
|
|
'describe' => $data['describe'],
|
|
'tags' => $data['tags'],
|
|
'list' => $row
|
|
];
|
|
}
|
|
}
|
|
$this->success('ok', $list);
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|