DefaultController.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace addons\Mch\api\modules\v1\controllers;
  3. use addons\Mch\common\enums\MchEnum;
  4. use addons\Mch\common\models\Mch;
  5. use addons\Store\common\enums\StoreEnum;
  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\Mch\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. return 'Hello world';
  36. }
  37. /**
  38. * @name:
  39. * @msg: 商户首页装修数据
  40. * @return {*}
  41. */
  42. public function actionDiyInfo()
  43. {
  44. $data = AddonsMarketingSetting::getOne([['mall_id' => $this->mall_id], ['addons_name' => MchEnum::ADDONS_NAME], ['status' => StatusEnum::ENABLED]]);
  45. if ($data == false) return $this->error(AddonsMarketingSetting::getStaticError());
  46. $content = json_decode($data['content'], true);
  47. if (empty($content[3]['data']['goods'])) {
  48. return $this->success('success', []);
  49. }
  50. $mch_ids = [];
  51. foreach ($content[3]['data']['goods'] as $good) {
  52. $mch_ids[] = $good['params']['id'] ?? 0;
  53. }
  54. $mch_ids = array_unique($mch_ids);
  55. $mch_list = Mch::find()
  56. ->select('id,store_name,logo_img,praise')
  57. ->where( ['mall_id' => $this->mall_id,'status' => StatusEnum::ENABLED, 'check_status' => MchEnum::CHECK_ADOPT, 'id' => $mch_ids])
  58. ->andWhere(['or', ['>', 'expire_time', time()], ['expire_time' => 0]])
  59. ->indexBy('id')
  60. ->asArray()
  61. ->all();
  62. foreach ($content[3]['data']['goods'] as $k=>$good) {
  63. if(!empty($good['params']['id'])){
  64. $mch_id = $good['params']['id'];
  65. if(!isset($mch_list[$mch_id])) unset($content[3]['data']['goods'][$k]);
  66. }
  67. }
  68. $data['content'] = json_encode($content);
  69. return $this->success('', $data);
  70. }
  71. }