AppendFieldsGoodsData.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace common\globals\goods;
  3. use common\logic\common\AddonsLimit;
  4. use common\globals\BaseGlobal;
  5. /**
  6. *
  7. */
  8. class AppendFieldsGoodsData extends BaseGlobal
  9. {
  10. /**
  11. * @Description: 向商品数据中添加额外的字段
  12. * @Author: zsan
  13. * @DateTime 2023-02-14 20:55:53
  14. * @param array $invokes
  15. * @param array $params
  16. * @return array
  17. */
  18. public function appendFields2GoodsData($invokes, $params = [])
  19. {
  20. if (!isset($params['data'])) return [];
  21. if (!isset($params['source'])) return $params['data'];
  22. foreach ($invokes as $invoke) {
  23. // 检查是否安装插件
  24. if (AddonsLimit::goodsModel($invoke['addons_name'], $params['mall_id']) == false) continue;
  25. if(class_exists($invoke['class']) && method_exists($invoke['class'],$invoke['method'])){
  26. $list = $this->invoke($invoke['class'], $invoke['method'], $params);
  27. if (!empty($list) && is_array($list)) {
  28. switch ($params['source']) {
  29. case 'list':
  30. $params['data'] = $list;
  31. break;
  32. case 'detail':
  33. $params['data'] = array_merge($params['data'], $list);
  34. break;
  35. default:
  36. break;
  37. }
  38. }
  39. }
  40. }
  41. return $params['data'];
  42. }
  43. /**
  44. * 验证调用结果
  45. * @param mixed $return
  46. * @return boolean
  47. */
  48. protected function validateFieldsResult($return = null): bool
  49. {
  50. return true;
  51. }
  52. }