ShareVengeance.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace addons\Certificate\common\global_func\share;
  3. use addons\Certificate\common\enums\CertificateEnum;
  4. use addons\Certificate\common\models\Certificate;
  5. use common\enums\StatusEnum;
  6. class ShareVengeance
  7. {
  8. public function share($params)
  9. {
  10. if (empty($params['mall_id'])) return [];
  11. if (empty($params['source'])) return [];
  12. if (empty($params['data'])) return [];
  13. $data = $params['data'];
  14. if ($params['source'] == CertificateEnum::SHARE_TYPE) {
  15. if (empty($params['active_id'])) return [];
  16. if (!isset($params['level'])) return [];
  17. // 判断这条数据这个用户是否可见
  18. $memberLevelStr = Certificate::find()
  19. ->where(['id' => $params['active_id'], 'status' => StatusEnum::ENABLED])
  20. ->select('member_level')
  21. ->scalar();
  22. $memberLevel = explode(',', $memberLevelStr);
  23. $memberLevel = array_filter($memberLevel, function ($item) {
  24. return $item !== '';
  25. });
  26. if(!in_array($params['level'], $memberLevel)) return [];
  27. $page = CertificateEnum::SHARE_ULR;
  28. $save_content['item_id'] = $params['active_id'];
  29. return ['page' => $page, 'data' => $data,'save_content'=>$save_content];
  30. }
  31. }
  32. }