MemberServer.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <?php
  2. namespace App\Servers;
  3. use App\Jobs\RelevanceJob;
  4. use App\Jobs\UploadingImgJob;
  5. use App\Models\CoinType;
  6. use App\Models\ErrorRecord;
  7. use App\Models\ImService;
  8. use App\Models\Member;
  9. use App\Models\MemberClan;
  10. use App\Models\MemberCoins;
  11. use App\Models\MemberOpenId;
  12. use App\Models\MoneyDetail;
  13. use App\Models\MoneyRecord;
  14. use App\Models\Order;
  15. use App\Models\Shop;
  16. use App\Models\ShopBean;
  17. use App\Models\ShopCommission;
  18. use App\Models\ShopFans;
  19. use App\Models\ShopMoney;
  20. use App\Models\ShopSet;
  21. use App\Models\ShopUser;
  22. use Intervention\Image\Facades\Image;
  23. /**
  24. * 会员
  25. */
  26. class MemberServer
  27. {
  28. /**
  29. * 错误信息
  30. * @var string
  31. */
  32. private $errorMsg = '';
  33. static private $server = '';
  34. private $level_arr = [
  35. 0 => '系统',
  36. 1 => '省级代理',
  37. 2 => '市级代理',
  38. 3 => '区级代理',
  39. 4 => '分销商',
  40. 5 => '实体店',
  41. 6 => '自营店',
  42. 7 => '厂家',
  43. 8 => '会员',
  44. ];
  45. private $sex_arr = [
  46. 1 => '男',
  47. 2 => '女',
  48. 3 => '保密',
  49. ];
  50. private function __construct()
  51. {
  52. }
  53. /**
  54. * 创建对象
  55. * @return MemberServer
  56. */
  57. static function creatServer()
  58. {
  59. if (empty(self::$server)) {
  60. self::$server = new MemberServer();
  61. }
  62. return self::$server;
  63. }
  64. /**
  65. * 获取对应类型名称
  66. * @param $level_id
  67. * @return string
  68. */
  69. public function getLevelName($level_id)
  70. {
  71. return empty($this->level_arr[$level_id]) ? '' : $this->level_arr[$level_id];
  72. }
  73. /**
  74. * 获取性别
  75. * @param $sex
  76. * @return string
  77. */
  78. public function getSexArr($sex)
  79. {
  80. return empty($this->sex_arr[$sex]) ? '' : $this->sex_arr[$sex];
  81. }
  82. /**
  83. * 注册会员
  84. * @param $address
  85. * @param $p_id
  86. * @param string $password
  87. * @param string $level_id
  88. * @return array|false
  89. */
  90. function register($address, $p_id, $password = '', $level_id = '0')
  91. {
  92. $member_info = [];
  93. $pass_server = PassServer::creatServer($password);
  94. if ($password) {
  95. $member_info = $pass_server->creatPassword();
  96. }
  97. $member_info['address'] = $address;
  98. $member_info['invite_code'] = $pass_server->getInviteCode();
  99. $member_info['recom_id'] = $p_id;
  100. $member_info['status'] = 1;
  101. $member_info['level_id'] = empty($level_id)?0:$level_id;
  102. $member_info = Member::create($member_info);
  103. if (empty($member_info)) {
  104. return false;
  105. }
  106. MemberClanServer::creatServer()->creatRelevance($member_info);
  107. $token_str = PassServer::creatServer()->getMemberToken($member_info->{'id'});
  108. Member::where('id', $member_info->{'id'})->update(['token_str' => $token_str]);
  109. $coins=CoinType::where('status',1)->select(['id','coin_name'])->get();
  110. $codeImg=ImgServer::creatServer()->setCoinImg($address);
  111. foreach ($coins as $coin){
  112. MemberCoins::create([
  113. 'm_id' => $member_info->{'id'},
  114. 'coin_id' => $coin->{'id'},
  115. 'coin_name' => $coin->{'coin_name'},
  116. 'num' => 0,
  117. 'lock_num' => 0,
  118. 'address' => $address,
  119. 'private' => '',
  120. 'code_img' => $codeImg,
  121. ]);
  122. }
  123. return [ 'token' => $token_str];
  124. }
  125. /**
  126. * 清除会员缓存
  127. * @param $m_id
  128. */
  129. function delMemberCache($m_id)
  130. {
  131. RedisDataServer::creatServer()->delData('member_' . $m_id);
  132. RedisDataServer::creatServer()->delData('login_' . $m_id);
  133. RedisDataServer::creatServer()->delData('my_shop_'.$m_id);
  134. }
  135. /**
  136. * 截取掉微信表情
  137. * @param $str
  138. * @return mixed|string
  139. */
  140. function emojiFilter($str)
  141. {
  142. if ($str) {
  143. $nickname = $str;
  144. $nickname = preg_replace('/[\x{1F600}-\x{1F64F}]/u', '', $nickname);
  145. $nickname = preg_replace('/[\x{1F300}-\x{1F5FF}]/u', '', $nickname);
  146. $nickname = preg_replace('/[\x{1F680}-\x{1F6FF}]/u', '', $nickname);
  147. $nickname = preg_replace('/[\x{2600}-\x{26FF}]/u', '', $nickname);
  148. $nickname = preg_replace('/[\x{2700}-\x{27BF}]/u', '', $nickname);
  149. $nickname = str_replace(array('"','\''), '', $nickname);
  150. return addslashes(trim($nickname));
  151. } else {
  152. $return = '';
  153. }
  154. return $return;
  155. }
  156. }