WchatShare.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\jielong\model\share;
  11. use addon\jielong\model\Jielong as JielongModel;
  12. use app\model\share\WchatShareBase as BaseModel;
  13. /**
  14. * 分享
  15. */
  16. class WchatShare extends BaseModel
  17. {
  18. protected $config = [
  19. [
  20. 'title' => '接龙分享',
  21. 'config_key' => 'WCHAT_SHARE_CONFIG_JIELONG_PROMOTE',
  22. 'path' => [ '/pages_promotion/jielong/jielong' ],
  23. 'method_prefix' => 'goodsDetail',
  24. ],
  25. ];
  26. protected $sort = 4;
  27. /**
  28. * 接龙分享
  29. * @param $param
  30. * @return array
  31. */
  32. protected function goodsDetailShareData($param)
  33. {
  34. $site_id = $param[ 'site_id' ] ?? 0;
  35. $member_id = $param[ 'member_id' ] ?? 0;
  36. $url = $param[ 'url' ];
  37. $parse_res = parse_url($url);
  38. parse_str($parse_res[ 'query' ] ?? '', $query);
  39. if (isset($query[ 'jielong_id' ]) || isset($query[ 'id' ])) {
  40. $jielong_id = isset($query[ 'id' ]) ? $query[ 'id' ] : $query[ 'jielong_id' ];
  41. $condition = [
  42. [ 'pjg.jielong_id', '=', $jielong_id ],
  43. [ 'g.goods_state', '=', 1 ],
  44. [ 'g.is_delete', '=', 0 ],
  45. [ 'g.site_id', '=', $site_id ]
  46. ];
  47. $jielong_model = new JielongModel();
  48. $sku_info = $jielong_model->getJielongActivityDetail($condition, 1, PAGE_LIST_ROWS, '', '', $jielong_id)[ 'data' ];
  49. if (!empty($sku_info)) {
  50. $config_method = preg_replace('/Data$/', 'Config', __FUNCTION__);
  51. $config_model = new \app\model\share\WchatShare();
  52. $config_data = $config_model->$config_method($param);
  53. $title = str_replace('{goods_name}', $sku_info[ 'info' ][ 'jielong_name' ], $config_data[ 'value' ][ 'title' ]);
  54. $desc = str_replace('{price}', $sku_info[ 'list' ][ 0 ][ 'price' ], $config_data[ 'value' ][ 'desc' ]);
  55. $desc = str_replace('\n', '\r\n', $desc);
  56. $link = $parse_res[ 'scheme' ] . '://' . $parse_res[ 'host' ] . $parse_res[ 'path' ] . '?jielong_id=' . $jielong_id;
  57. if (!empty($member_id)) $link .= '&source_member=' . $member_id;
  58. $image_url = $sku_info[ 'list' ][ 0 ][ 'goods_image' ];
  59. $data = [
  60. 'title' => $title,
  61. 'desc' => $desc,
  62. 'link' => $link,
  63. 'imgUrl' => $image_url,
  64. ];
  65. return [
  66. 'permission' => [
  67. 'hideOptionMenu' => false,
  68. 'hideMenuItems' => [],
  69. ],
  70. 'data' => $data,//分享内容
  71. ];
  72. }
  73. }
  74. }
  75. }