MemberOpenServer.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. namespace App\Servers;
  3. use App\Models\MemberOpenId;
  4. /**
  5. * 用户openid管理
  6. * Class MemberOpenServer
  7. */
  8. class MemberOpenServer
  9. {
  10. static private $server = null;
  11. private $typeArr=[
  12. 1=>'公众号H5',
  13. 2=>'小程序',
  14. ];
  15. private function __construct()
  16. {
  17. }
  18. /**
  19. * 创建对象
  20. * @return MemberOpenServer
  21. */
  22. static function creatServer()
  23. {
  24. if (empty(self::$server)) self::$server = new MemberOpenServer();
  25. return self::$server;
  26. }
  27. /**
  28. * 获取用户登录ID
  29. * @param $openid
  30. * @param $unionid
  31. * @param $type
  32. * @return mixed|string
  33. */
  34. function getUserId($type,$openid,$unionid=null){
  35. $row = MemberOpenId::where('openid',$openid)->where('type',$type)->where('is_del',0)->first();
  36. if(empty($row) && !empty($unionid)){
  37. $row=MemberOpenId::where('unionid',$unionid)->where('type',$type)->where('openid','<>','')->where('is_del',0)->first();
  38. if($row){
  39. $row->update(['openid' => $openid]);
  40. }
  41. }
  42. return empty($row['m_id'])?'':$row['m_id'];
  43. }
  44. /**
  45. * 用户注册openid
  46. * @param $userId
  47. * @param $openid
  48. * @param $unionid
  49. * @param $type
  50. * @return bool
  51. */
  52. function setUserOpenid($userId,$type,$openid,$unionid=null){
  53. $row = MemberOpenId::where('m_id',$userId)->where('type',$type)->where('is_del',0)->first();
  54. if($row){
  55. $row->update(['openid' =>$openid,'unionid' => $unionid ]);
  56. }else{
  57. MemberOpenId::create([
  58. 'is_del' => 0,
  59. 'm_id' => $userId,
  60. 'openid' => $openid,
  61. 'unionid' => $unionid,
  62. 'type' => $type
  63. ]);
  64. }
  65. return true;
  66. }
  67. }