Index.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace app\api\controller\mall;
  3. use app\common\controller\Api;
  4. use app\common\model\Category;
  5. use app\common\model\GoodsInstallLink;
  6. use app\common\model\LogisticsCompany;
  7. use app\common\validate\KillService;
  8. use think\db\Query;
  9. use app\common\model\Goods;
  10. /**
  11. * 商城首页接口
  12. * @inheritdoc
  13. */
  14. class Index extends Api
  15. {
  16. protected $noNeedLogin = '*';
  17. protected $noNeedRight = '*';
  18. /**
  19. * 首页分类和商品
  20. * @ApiParams (name=num_install,description=安装量)
  21. * @ApiParams (name=skuid,description=规格ID)
  22. * @ApiReturnParams (name=img_left,description=上方图片)
  23. * @ApiReturnParams (name=img_top,description=左方图片)
  24. */
  25. public function category(){
  26. $category=Category::mall(['goods'=>function(Query $query){
  27. $query->filterNormal()->with(['size','sku']);
  28. }]);
  29. $num_install=input('num_install',0);
  30. $skuid=input('skuid',0);
  31. foreach ($category as &$item){
  32. foreach ($item['goods'] as &$good){
  33. $skuIds=array_column($good['sku'],'id');
  34. $good['amount_install_single']=0;
  35. if($skuid && $num_install && in_array($skuid,$skuIds)){
  36. $good['amount_install_single']=GoodsInstallLink::getFee($skuid,$num_install,true);
  37. }
  38. }
  39. }
  40. $this->success('',$category);
  41. }
  42. /**
  43. * 首页秒杀
  44. * @ApiReturnParams (name=open,description=是否开启)
  45. * @ApiReturnParams (name=endtime,description=截止时间)
  46. * @ApiReturnParams (name=goods,description=秒杀商品列表)
  47. */
  48. public function kill_goods(){
  49. $config=KillService::getConfig();
  50. if($config['open']){
  51. $goods= Goods::filterKill()->order('kill_at','desc')->limit(3)->select();
  52. $config['goods']=$goods;
  53. }
  54. $this->success('',$config);
  55. }
  56. /**
  57. * 热销爆款
  58. */
  59. public function hot_goods(){
  60. $info['goods']= Goods::filterHot()->order('hot_at','desc')->limit(3)->select();
  61. $this->success('',$info);
  62. }
  63. /**
  64. * 快递公司
  65. * @ApiReturnParams (name=id,description=id)
  66. * @ApiReturnParams (name=name,description=公司名称)
  67. */
  68. public function logistics_company(){
  69. $list=LogisticsCompany::all();
  70. $this->success('',$list);
  71. }
  72. }