1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- namespace app\api\controller\mall;
- use app\common\controller\Api;
- use app\common\model\Category;
- use app\common\model\GoodsInstallLink;
- use app\common\model\LogisticsCompany;
- use app\common\validate\KillService;
- use think\db\Query;
- use app\common\model\Goods;
- /**
- * 商城首页接口
- * @inheritdoc
- */
- class Index extends Api
- {
- protected $noNeedLogin = '*';
- protected $noNeedRight = '*';
- /**
- * 首页分类和商品
- * @ApiParams (name=num_install,description=安装量)
- * @ApiParams (name=skuid,description=规格ID)
- * @ApiReturnParams (name=img_left,description=上方图片)
- * @ApiReturnParams (name=img_top,description=左方图片)
- */
- public function category(){
- $category=Category::mall(['goods'=>function(Query $query){
- $query->filterNormal()->with(['size','sku']);
- }]);
- $num_install=input('num_install',0);
- $skuid=input('skuid',0);
- foreach ($category as &$item){
- foreach ($item['goods'] as &$good){
- $skuIds=array_column($good['sku'],'id');
- $good['amount_install_single']=0;
- if($skuid && $num_install && in_array($skuid,$skuIds)){
- $good['amount_install_single']=GoodsInstallLink::getFee($skuid,$num_install,true);
- }
- }
- }
- $this->success('',$category);
- }
- /**
- * 首页秒杀
- * @ApiReturnParams (name=open,description=是否开启)
- * @ApiReturnParams (name=endtime,description=截止时间)
- * @ApiReturnParams (name=goods,description=秒杀商品列表)
- */
- public function kill_goods(){
- $config=KillService::getConfig();
- if($config['open']){
- $goods= Goods::filterKill()->order('kill_at','desc')->limit(3)->select();
- $config['goods']=$goods;
- }
- $this->success('',$config);
- }
- /**
- * 热销爆款
- */
- public function hot_goods(){
- $info['goods']= Goods::filterHot()->order('hot_at','desc')->limit(3)->select();
- $this->success('',$info);
- }
- /**
- * 快递公司
- * @ApiReturnParams (name=id,description=id)
- * @ApiReturnParams (name=name,description=公司名称)
- */
- public function logistics_company(){
- $list=LogisticsCompany::all();
- $this->success('',$list);
- }
- }
|