Official.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2018 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. * 公众号开发默认继承基类
  7. */
  8. namespace app\common\controller;
  9. use think\facade\Request;
  10. use app\common\event\User;
  11. use app\common\model\SystemMemberMiniapp;
  12. use encrypter\Encrypter;
  13. class Official extends Base{
  14. protected $miniapp = []; //应用信息
  15. protected $member_miniapp = []; //应用信息(兼容处理)
  16. protected $member_miniapp_id = 0; //应用信息ID
  17. protected $service_id; //应用信息服务ID
  18. protected $user; //登录后用户
  19. /**
  20. * 初始化类
  21. */
  22. protected function initialize(){
  23. parent::initialize();
  24. //读取应用
  25. $this->miniapp = self::apiAccess();
  26. if(!$this->miniapp){
  27. $this->error('应用停止服务');
  28. }
  29. //判断是否授权登录
  30. $this->user = User::getUser();
  31. if(!$this->user){
  32. $this->redirect('system/event.wechatMp/putWechat',['app' => $this->miniapp->id,'url' => Encrypter::cpEncode(Request::url())]);
  33. }
  34. User::setUcode(); //服务端缓冲邀请码
  35. //设置常用参数
  36. $this->member_miniapp = $this->miniapp;
  37. $this->member_miniapp_id = $this->miniapp->id;
  38. $this->member = $this->miniapp->member;
  39. $this->service_id = $this->miniapp->service_id;
  40. $this->ucode = User::getUcode(); //邀请码
  41. //传参数到模板调用
  42. $assign['miniapp'] = $this->miniapp;
  43. $assign['member_miniapp_id'] = $this->member_miniapp_id;
  44. $assign['member'] = $this->member;
  45. $assign['user'] = $this->user;
  46. $assign['invite_code'] = $this->user ? $this->user['invite_code'] : '';
  47. $assign['ucode'] = $this->ucode;
  48. $this->assign($assign);
  49. $this->isAppTyes($this->member_miniapp->miniapp->types);
  50. }
  51. /**
  52. * 判断当前页面的后退网址
  53. * @access protected
  54. * @return boolean
  55. */
  56. protected function backUrl(){
  57. $url = $this->request->param('backurl','','strip_tags');
  58. $referer = Request::header('referer');
  59. if (empty($url) && isset($referer)) {
  60. return $referer;
  61. }else{
  62. return empty($url) ? Request::root(true) : $url;
  63. }
  64. }
  65. /**
  66. * 接口认证
  67. * @return void
  68. */
  69. protected function apiAccess() {
  70. $appid = $this->request->param('app/d',0);
  71. return SystemMemberMiniapp::where(['id' => $appid,'is_lock' => 0])->field('id,appname,service_id,member_id,miniapp_id,create_time,update_time,mp_appid,miniapp_appid')->find();
  72. }
  73. }