IndexController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. namespace addons\TinyShop\api\modules\v1\controllers;
  3. use Yii;
  4. use common\enums\StatusEnum;
  5. use api\controllers\OnAuthController;
  6. use addons\TinyShop\common\forms\ProductSearchForm;
  7. use addons\TinyShop\common\enums\AdvLocalEnum;
  8. /**
  9. * Class IndexController
  10. * @package addons\TinyShop\api\modules\v1\controllers
  11. * @author jianyan74 <751393839@qq.com>
  12. */
  13. class IndexController extends OnAuthController
  14. {
  15. /**
  16. * @var string
  17. */
  18. public $modelClass = '';
  19. /**
  20. * 不用进行登录验证的方法
  21. *
  22. * 例如: ['index', 'update', 'create', 'view', 'delete']
  23. * 默认全部需要验证
  24. *
  25. * @var array
  26. */
  27. protected $authOptional = ['index', 'custom', 'preview', 'integral', 'address-to-location', 'location-to-address'];
  28. /**
  29. * @return array
  30. */
  31. public function actionIndex()
  32. {
  33. $setting = Yii::$app->tinyShopService->config->setting();
  34. $member_id = !Yii::$app->user->isGuest ? Yii::$app->user->identity->member_id : '';
  35. // 热门
  36. $productHot = new ProductSearchForm();
  37. $productHot->is_hot = StatusEnum::ENABLED;
  38. // 推荐
  39. $productRecommend = new ProductSearchForm();
  40. $productRecommend->is_recommend = StatusEnum::ENABLED;
  41. // 新品
  42. $productNew = new ProductSearchForm();
  43. $productNew->is_new = StatusEnum::ENABLED;
  44. $coupons = empty($member_id) ? [] : Yii::$app->tinyShopService->marketingCoupon->getReadByMemberId($member_id);
  45. // 猜你喜欢
  46. $cateIds = Yii::$app->tinyShopService->memberFootprint->findCateIdsByMemberId($member_id);
  47. $guessYouLike = new ProductSearchForm();
  48. $guessYouLike->current_level = Yii::$app->tinyShopService->member->getCurrentLevel($member_id);
  49. $guessYouLike->cate_id = implode(',', $cateIds);
  50. $productHot->member_id = $member_id;
  51. return [
  52. 'search' => [
  53. 'hot_search_default' => $setting['hot_search_default'] ?? '', // 默认搜索框内容
  54. 'hot_search_list' => !empty($setting['hot_search_list']) ? explode(',', $setting['hot_search_list']) : [] // 热门搜索
  55. ],
  56. 'adv' => Yii::$app->tinyShopService->adv->getListByLocals([
  57. AdvLocalEnum::INDEX_TOP,
  58. AdvLocalEnum::INDEX_HOT,
  59. AdvLocalEnum::INDEX_NEW,
  60. AdvLocalEnum::INDEX_RECOMMEND,
  61. ]), // 广告
  62. 'popup_adv' => [], // 弹出广告
  63. 'cate' => Yii::$app->tinyShopService->productCate->findByRecommend(), // 首页推荐分类
  64. 'announce' => Yii::$app->tinyShopService->notifyAnnounce->findByCustom(), // 公告
  65. 'product_hot' => Yii::$app->tinyShopService->product->getListBySearch($productHot), // 热门
  66. 'product_recommend' => Yii::$app->tinyShopService->product->getListBySearch($productRecommend), // 推荐
  67. 'product_new' => Yii::$app->tinyShopService->product->getListBySearch($productNew), // 新品
  68. 'guess_you_like' => Yii::$app->tinyShopService->product->getListBySearch($guessYouLike), // 猜你喜欢
  69. 'coupons' => $coupons,
  70. 'copyright' => [
  71. 'web_site_icp' => $setting['web_site_icp'] ?? '',
  72. 'copyright_company_name' => $setting['copyright_company_name'] ?? '',
  73. 'copyright_url' => $setting['copyright_url'] ?? '',
  74. 'copyright_desc' => $setting['copyright_desc'] ?? '',
  75. ],
  76. 'share' => [
  77. 'share_title' => $setting['share_title'],
  78. 'share_cover' => $setting['share_cover'],
  79. 'share_desc' => $setting['share_desc'],
  80. 'share_link' => $setting['share_link'],
  81. ],
  82. ];
  83. }
  84. /**
  85. * 地址转经纬度
  86. *
  87. * @param $address
  88. * @return bool|false|string[]
  89. * @throws \Exception
  90. */
  91. public function actionAddressToLocation($address)
  92. {
  93. return Yii::$app->services->extendMap->aMapAddressToLocation($address);
  94. }
  95. /**
  96. * 经纬度转地址
  97. *
  98. * @param $location
  99. * @return array|bool|mixed
  100. * @throws \Exception
  101. */
  102. public function actionLocationToAddress($location)
  103. {
  104. return Yii::$app->services->extendMap->aMapLocationToAddress($location);
  105. }
  106. }
粤ICP备19079148号