Member.php 8.0 KB

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