Member.php 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. <?php
  2. namespace app\model;
  3. use think\Model;
  4. class Member extends Model
  5. {
  6. protected $connection = 'mysql';
  7. protected $pk = 'id';
  8. protected $name = 'member';
  9. function setmemberinfo($member)
  10. {
  11. if (!empty($member)) {
  12. $member['gname'] = MemberAuthGroup::getGroupinfo($member['gid'])['title'];
  13. $member['pname'] = Member::getpidname($member['id']);
  14. }
  15. return $member;
  16. }
  17. public static function conversion($vo)
  18. {
  19. $vo['gid'] = MemberAuthGroup::getgroupName($vo['gid']);
  20. $vo['pid'] = Member::get_name($vo['pid']) ?? '平台';
  21. $vo['regdate'] = time_format($vo['regdate']);
  22. $vo['lastdate'] = time_format($vo['lastdate']);
  23. if (!empty($vo['uuid'])) {
  24. $vo['username'] = Users::getusername($vo['uuid']);
  25. }
  26. $vo['region_name'] = $vo['province_name'] . $vo['city_name'] . $vo['district_name'];
  27. return $vo;
  28. }
  29. function getUserbyopenid()
  30. {
  31. if (!empty(getFans()['openid'])) {
  32. if (empty($userinfo)) {
  33. $user = Openid::getuserbyopenid();
  34. $uid = $user['uid'];
  35. if (!empty($uid)) {
  36. $userinfo = $this::where(['id' => $uid, 'weid' => weid()])
  37. ->order('id desc')
  38. ->find();
  39. }
  40. }
  41. if (!empty($userinfo)) {
  42. $userinfo = $userinfo->toArray();
  43. }
  44. }
  45. unset($userinfo["password"]);
  46. return $userinfo;
  47. }
  48. function getUserByWechat()
  49. {
  50. $userinfo = $this->getUserbyopenid();
  51. if (empty($userinfo["id"])) {
  52. $this->wechatReg();
  53. $userinfo = $this->getUserbyopenid();
  54. }
  55. return $this->setmemberinfo($userinfo);
  56. }
  57. function wechatReg()
  58. {
  59. if (!empty(getFans()['openid'])) {
  60. $userinfo = $this->getUserbyopenid();
  61. if (empty($userinfo)) {
  62. $member = $this->getmemberdata();
  63. $member['category_id'] = 0;
  64. $Configmember = Config::getconfig('member');
  65. if ($Configmember['reg_check'] == 1) {
  66. $member['status'] = 0;
  67. } else {
  68. $member['status'] = 1;
  69. }
  70. $agent = Config::getconfig('agent');
  71. if ($agent['share_condition'] == 1) {
  72. Agent::register($member);
  73. }
  74. $res = $this::create($member);
  75. if ($res->id && $res->nickname == '用户') {
  76. self::update(['nickname' => $res->nickname . '_' . $res->id, 'id' => $res->id]);
  77. }
  78. if (!empty($res)) {
  79. $odate['weid'] = weid();
  80. $odate['uid'] = $res->id;
  81. $odate['openid'] = getFans()['openid'];
  82. $odate['ptype'] = getFans()['ptype'];
  83. Openid::addupdate($odate);
  84. }
  85. }
  86. }
  87. }
  88. public static function phoneReg($phone)
  89. {
  90. $member = (new self());
  91. $member = $member->getmemberdata();
  92. $member['telephone'] = $phone;
  93. $member['category_id'] = 0;
  94. $Configmember = Config::getconfig('member');
  95. if ($Configmember['reg_check'] == 1) {
  96. $member['status'] = 0;
  97. } else {
  98. $member['status'] = 1;
  99. }
  100. $agent = Config::getconfig('agent');
  101. if ($agent['share_condition'] == 1) {
  102. Agent::register($member);
  103. }
  104. $res = self::create($member);
  105. if ($res->id && $res->nickname == '用户') {
  106. self::update(['nickname' => $res->nickname . '_' . $res->id, 'id' => $res->id]);
  107. }
  108. if (!empty(getFans()['openid']) && !empty($res)) {
  109. $odate['weid'] = weid();
  110. $odate['uid'] = $res->id;
  111. $odate['openid'] = getFans()['openid'];
  112. $odate['ptype'] = getFans()['ptype'];
  113. Openid::addupdate($odate);
  114. }
  115. if (!empty($res)) {
  116. $res = $res->toArray();
  117. }
  118. return $res;
  119. }
  120. function getmemberdata()
  121. {
  122. getFans()['tag']['nickname'] = removeEmoji(getFans()['tag']['nickname']);
  123. $membergroup = MemberAuthGroup::getdefaultGroup();;
  124. $gid = $membergroup['id'];
  125. if (empty(getFans()['tag']['sex'])) {
  126. $member['sex'] = 0;
  127. } else {
  128. $member['sex'] = getFans()['tag']['sex'];
  129. }
  130. $member['weid'] = weid();
  131. $member['userpic'] = getFans()['tag']['avatar'];
  132. $member['reg_type'] = 'mobile';
  133. $member['gid'] = $gid;
  134. $member['regdate'] = time();
  135. $member['lastdate'] = time();
  136. //var_dump(getFans()['tag']['nickname']);
  137. if (empty(getFans()['tag']['nickname'])) {
  138. $member['nickname'] = '用户';
  139. } else {
  140. $member['nickname'] = getFans()['tag']['nickname'];
  141. }
  142. if (!empty(getFans()['tag']['country'])) {
  143. $member['country'] = getFans()['tag']['country'];
  144. }
  145. if (!empty(getFans()['tag']['province'])) {
  146. $member['province'] = getFans()['tag']['province'];
  147. }
  148. if (!empty(getFans()['tag']['city'])) {
  149. $member['city'] = getFans()['tag']['city'];
  150. }
  151. //$member['resume'] = iserializer($_W);
  152. return $member;
  153. }
  154. public static function bindphonenumber($phone)
  155. {
  156. if (empty($phone)) {
  157. return;
  158. }
  159. $member = self::where(['telephone' => $phone, 'weid' => weid()])->find();
  160. if (!empty($member)) {
  161. $member = $member->toArray();
  162. Openid::addupdate(['uid' => $member['id'], 'openid' => $phone, 'ptype' => getFans()['ptype']]);
  163. if (!empty(getFans()['openid'])) {
  164. Openid::addupdate(['uid' => $member['id'], 'openid' => getFans()['openid'], 'ptype' => getFans()['ptype']]);
  165. }
  166. } else {
  167. $member = (new self())->getUserbyopenid();
  168. if (!empty($member["id"])) {
  169. self::where('id', $member["id"])->update(['telephone' => $phone]);
  170. $member["telephone"] = $phone;
  171. } else {
  172. $member = self::phoneReg($phone);
  173. }
  174. }
  175. return $member;
  176. }
  177. public static function get_name($uid)
  178. {
  179. $ret = self::find($uid);
  180. return $ret->nickname;
  181. }
  182. public static function getpidname($uid)
  183. {
  184. $member = self::find($uid);
  185. if ($member->pid) {
  186. $memberpid = self::find($member->pid);
  187. return $memberpid->nickname;
  188. } else {
  189. return '平台';
  190. }
  191. }
  192. public static function getDepart($pid)
  193. {
  194. $uidlist = self::where(['pid' => $pid])->select()->toArray();
  195. foreach ($uidlist as $vo) {
  196. if (empty($uidliststr)) {
  197. $uidliststr = $vo['id'];
  198. } else {
  199. $uidliststr .= ',' . $vo['id'];
  200. }
  201. }
  202. if (!empty($uidliststr)) {
  203. return explode(',', $uidliststr);
  204. }
  205. }
  206. public static function getonelevel($uid, $isdata = false)
  207. {
  208. if ($isdata) {
  209. return self::field('id,nickname,regdate,userpic')->where(['weid' => weid(), 'pid' => $uid])->select()->toArray();
  210. } else {
  211. return self::where(['weid' => weid(), 'pid' => $uid])->count();
  212. }
  213. return self::where(['weid' => weid(), 'pid' => $uid])->count();
  214. }
  215. public static function gettwolevel($uid, $isdata = false)
  216. {
  217. $data['first'] = self::field('id,nickname')->where(['weid' => weid(), 'pid' => $uid])->select()->toArray();
  218. if (!empty($data['first'])) {
  219. foreach ($data['first'] as $vo) {
  220. if (empty($pid)) {
  221. $pid = $vo['id'];
  222. } else {
  223. $pid = $pid . ',' . $vo['id'];
  224. }
  225. }
  226. if (!empty($pid)) {
  227. $pidin = explode(',', $pid);
  228. }
  229. if ($isdata) {
  230. return self::field('id,nickname,regdate,userpic')->where(['weid' => weid(), 'pid' => $pidin])->select()->toArray();
  231. } else {
  232. return self::where(['weid' => weid(), 'pid' => $pidin])->count();
  233. }
  234. } else {
  235. return 0;
  236. }
  237. }
  238. public static function getthreelevel($uid, $isdata = false)
  239. {
  240. $data['first'] = self::field('id,nickname')->where(['weid' => weid(), 'pid' => $uid])->select()->toArray();
  241. if (!empty($data['first'])) {
  242. foreach ($data['first'] as $vo) {
  243. if (empty($pid)) {
  244. $pid = $vo['id'];
  245. } else {
  246. $pid = $pid . ',' . $vo['id'];
  247. }
  248. }
  249. if (!empty($pid)) {
  250. $pidin = explode(',', $pid);
  251. }
  252. $data['first'] = self::field('id,nickname')->where(['weid' => weid(), 'pid' => $pidin])->select()->toArray();
  253. if (!empty($data['second'])) {
  254. foreach ($data['second'] as $so) {
  255. if (empty($tpid)) {
  256. $tpid = $so['id'];
  257. } else {
  258. $tpid = $tpid . ',' . $so['id'];
  259. }
  260. }
  261. if (!empty($tpid)) {
  262. $tpidin = explode(',', $tpid);
  263. }
  264. if ($isdata) {
  265. return self::field('id,nickname,regdate,userpic')->where(['weid' => weid(), 'pid' => $tpidin])->select()->toArray();
  266. } else {
  267. return self::where(['weid' => weid(), 'pid' => $tpidin])->count();
  268. }
  269. } else {
  270. return 0;
  271. }
  272. } else {
  273. return 0;
  274. }
  275. }
  276. //判断手机号是否已注册
  277. public function is_register($telephone)
  278. {
  279. $is_register = self::where(['telephone' => $telephone])->find();
  280. if (!empty($is_register)) {
  281. $is_register = $is_register->toArray();
  282. }
  283. if (empty($is_register)) {
  284. return true;
  285. } else
  286. return false;
  287. }
  288. //检查是否审核通过!
  289. public function is_check($uid)
  290. {
  291. $result = self::where(['status' => 1, 'id' => $uid])->find();
  292. if (!empty($result)) {
  293. return true;
  294. } else
  295. return false;
  296. }
  297. public function checked($telphone)
  298. {
  299. $result = self::where(['telephone' => $telphone])->find();
  300. if (!empty($result)) {
  301. return true;
  302. } else
  303. return false;
  304. }
  305. public function checkAgent($uid)
  306. {
  307. $result = Agent::is_agent($uid);
  308. if (empty($result)) {
  309. exit(\json_encode('错误,请先成为分销商!'));
  310. }
  311. }
  312. }