Info.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php namespace Place\Lib;
  2. use Dever;
  3. use Dever\Helper\Secure;
  4. class Info
  5. {
  6. public function money()
  7. {
  8. if ($money = Dever::getData('money')) {
  9. return $money;
  10. }
  11. if ($muser = Dever::getData('muser')) {
  12. $place_id = $muser['select']['data_id'];
  13. $place = Dever::db('place/info')->find($place_id);
  14. $money = Dever::db('sector/money')->find($place['money_id']);
  15. } elseif (class_exists('\\Place', false)) {
  16. $money = Dever::get('Place')->money();
  17. }
  18. Dever::setData('money', $money);
  19. return $money;
  20. }
  21. # 生成分享需要的东西
  22. public function share($place_id = 0, $sales_type = 0, $sales_id = 0, $uid = 0, $manage = false, $type = 0)
  23. {
  24. $result = [];
  25. $info = Dever::db('place/info')->find($place_id);
  26. if ($info) {
  27. $codeInfo = Dever::db('place/code')->find(['code' => $info['code']]);
  28. # code 第一个是领域id,第二个账户id,第三个是品牌id
  29. if ($manage) {
  30. # 后台生成
  31. $extend = Dever::load(\Manage\Lib\Util::class)->extend();
  32. $code = [$extend['info_id'], $info['uid'], $info['id'], $sales_type, $sales_id, $uid];
  33. } else {
  34. # 前台生成
  35. $code = $this->decode(Dever::input('p'));
  36. $code[3] = $sales_type;
  37. $code[4] = $sales_id;
  38. $code[5] = $uid;
  39. }
  40. $code = $this->encode(...$code);
  41. $host = 'http://localhost:8080/#';
  42. $path = '/pages/main?p=' . $code;
  43. # 生成各个端口的品牌入口:
  44. $result['code'] = $code;
  45. # 网页版
  46. $result['web'] = '';
  47. # h5页面
  48. $result['h5'] = $host . $path;
  49. # h5二维码码
  50. $result['h5_ercode'] = '';
  51. # 0是频道首页,大于0是资源详情页
  52. $scene[0] = $info['code'];
  53. $scene[1] = $sales_type;
  54. $scene[2] = $sales_id;
  55. $scene[3] = $uid;
  56. $scene[4] = $type;
  57. $scene = implode('!', $scene);
  58. $result['h5'] = $host . '/pages/main?scene=' . $scene;
  59. $check = Dever::db('place/qrcode')->find(['code' => $scene]);
  60. if ($check) {
  61. $wechat = $check['value'];
  62. } else {
  63. $wechat = Dever::load(\Place\Lib\Account::class)->getAppletCode('weixin', 5, $scene, 'pages/main', 'develop');
  64. if ($wechat) {
  65. $wechat = Dever::load(\Upload\Lib\Save::class)->init(1)->act($wechat, 'png', false, $scene, true);
  66. $wechat = $wechat['url'];
  67. Dever::db('place/qrcode')->insert(['code' => $scene, 'value' => $wechat]);
  68. }
  69. }
  70. # 小程序码
  71. $result['applet'] = [
  72. # 微信小程序
  73. 'wechat' => $wechat,
  74. # 抖音小程序
  75. # 快手小程序
  76. # 支付宝小程序
  77. # 美团小程序 等等
  78. ];
  79. # app
  80. $result['app'] = [
  81. 'android' => '',
  82. 'ios' => '',
  83. ];
  84. # 桌面
  85. $result['desktop'] = [
  86. 'win' => '',
  87. ];
  88. }
  89. return $result;
  90. }
  91. public function encode($sector_id, $account_id, $place_id, $sales_type = 0, $sales_id = 0, $uid = 0)
  92. {
  93. $place = $sector_id . '-' . $account_id . '-' . $place_id. '-' . $sales_type . '-' . $sales_id . '-' . $uid;
  94. $code = Secure::encode($place);
  95. return $code;
  96. }
  97. public function decode($code)
  98. {
  99. $code = Secure::decode($code);
  100. if (!$code) {
  101. Dever::error('访问码错误');
  102. }
  103. return explode('-', $code);
  104. }
  105. # 更新个人品牌的版本号
  106. public function update($id)
  107. {
  108. return Dever::db('place/info')->update($id, ['update' => time()]);
  109. }
  110. }