DefaultController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace addons\Store\api\modules\v1\controllers;
  3. use addons\Store\common\enums\StoreEnum;
  4. use addons\Store\common\models\Store;
  5. use addons\Store\common\models\StoreGoods;
  6. use Yii;
  7. use api\controllers\OnAuthController;
  8. use common\enums\StatusEnum;
  9. use common\models\common\AddonsMarketingSetting;
  10. /**
  11. * 默认控制器
  12. *
  13. * Class DefaultController
  14. * @package addons\Store\api\modules\v1\controllers
  15. */
  16. class DefaultController extends OnAuthController
  17. {
  18. public $modelClass = '';
  19. /**
  20. * 不用进行登录验证的方法
  21. *
  22. * 例如: ['index', 'update', 'create', 'view', 'delete']
  23. * 默认全部需要验证
  24. *
  25. * @var array
  26. */
  27. protected $authOptional = ['index'];
  28. /**
  29. * 首页
  30. *
  31. * @return string
  32. */
  33. public function actionIndex()
  34. {
  35. echo 'this is home index page 。。。。';
  36. }
  37. public function actionDiyInfo()
  38. {
  39. $data = AddonsMarketingSetting::getOne([['mall_id' => $this->mall_id], ['addons_name' => StoreEnum::ADDONS_NAME], ['status' => StatusEnum::ENABLED]]);
  40. $content = json_decode($data['content'],true);
  41. $store_ids = [];
  42. if(isset($content[3]['data']['goods'])){
  43. foreach ($content[3]['data']['goods'] as $item){
  44. $store_ids[]=$item['params']['id'];
  45. }
  46. $store_list = Store::lists([
  47. 'where'=>[
  48. ['id'=>$store_ids],
  49. ['status' => StatusEnum::ENABLED],
  50. ['check_status' => StoreEnum::CHECK_ADOPT],
  51. ['or', ['>', 'expire_time', time()], ['expire_time' => 0]]
  52. ],
  53. 'index'=>'id'
  54. ]);
  55. $store_arr = [];
  56. foreach ($content[3]['data']['goods'] as $item){
  57. if(isset($store_list[$item['params']['id']])){
  58. $item['params']['store_name'] = $store_list[$item['params']['id']]['store_name'];
  59. $store_arr[]=$item;
  60. }
  61. }
  62. $content[3]['data']['goods'] = $store_arr;
  63. }
  64. if(isset($content[4]['data']['goods'])){
  65. $store_ids = $goods_ids = [];
  66. foreach ($content[4]['data']['goods'] as $item){
  67. $goods_ids[]=$item['params']['id'];
  68. $store_ids[]=$item['params']['store_id'];
  69. }
  70. $store_list = Store::lists([
  71. 'where'=>[
  72. ['id'=>$store_ids],
  73. ['status' => StatusEnum::ENABLED],
  74. ['check_status' => StoreEnum::CHECK_ADOPT],
  75. ['or', ['>', 'expire_time', time()], ['expire_time' => 0]]
  76. ],
  77. ]);
  78. $store_goods_list = StoreGoods::lists([
  79. 'where'=>[
  80. ['id'=>$goods_ids],
  81. ['status' => StatusEnum::ENABLED],
  82. ['check_status' => StoreEnum::CHECK_ADOPT],
  83. ['is_on_sale' =>1],
  84. ],
  85. 'index'=>'id'
  86. ]);
  87. $store_id_arr =array_column($store_list,'id');
  88. $goods_arr = [];
  89. foreach ($content[4]['data']['goods'] as $item){
  90. if(in_array($item['params']['store_id'],$store_id_arr)){
  91. if(isset($store_goods_list[$item['params']['id']])){
  92. $goods_arr[]=$item;
  93. }
  94. }
  95. }
  96. $content[4]['data']['goods'] = $goods_arr;
  97. }
  98. $data['content'] = json_encode($content);
  99. if ($data == false) return $this->error(AddonsMarketingSetting::getStaticError());
  100. return $this->success('', $data);
  101. }
  102. public function actionConf()
  103. {
  104. $decoration = \Yii::$app->services->setting->addons->get($this->mall_id, StoreEnum::ADDONS_NAME, 'decoration');
  105. $return['near_shop_title'] = $decoration['near_shop_title'] ?? '附近商家';
  106. return $this->success('', $return);
  107. }
  108. }