member_info.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 16/6/29
  6. * Time: 下午11:01
  7. */
  8. require_once (BASE_ROOT_PATH . '/helper/util_helper.php');
  9. require_once (BASE_ROOT_PATH . '/helper/url_helper.php');
  10. require_once (BASE_CORE_PATH . '/framework/libraries/pinyin.php');
  11. class member_info
  12. {
  13. private $member_id;
  14. private $member_info;
  15. public function __construct($member_id)
  16. {
  17. if(is_array($member_id)) {
  18. $this->member_info = $member_id;
  19. $this->member_id = intval($this->member_info['member_id']);
  20. }
  21. else {
  22. $this->member_id = intval($member_id);
  23. $mod_member = Model('member');
  24. $this->member_info = $mod_member->getMemberInfoByID($this->member_id);
  25. if(empty($this->member_info)) {
  26. throw new Exception("该用户不存在~", errcode::ErrMemberNotExist);
  27. }
  28. }
  29. }
  30. public function member_id()
  31. {
  32. return $this->member_id;
  33. }
  34. public function enmember_id()
  35. {
  36. $mid = urlencode(util::encrypt_data($this->member_id));
  37. return $mid;
  38. }
  39. public function nickname()
  40. {
  41. if(isset($this->member_info['member_nickname']) && !empty($this->member_info['member_nickname'])) {
  42. return $this->member_info['member_nickname'];
  43. }
  44. if(isset($this->member_info['member_truename']) && !empty($this->member_info['member_truename'])) {
  45. return $this->member_info['member_truename'];
  46. }
  47. $userid = $this->member_id;
  48. $name = "用户{$userid}";
  49. // if(isset($this->member_info['member_mobile']) && !empty($this->member_info['member_mobile']))
  50. // {
  51. // $mobile = $this->member_info['member_mobile'];
  52. // if(strlen($mobile) == 11) {
  53. // return substr_replace($mobile, '****', 3, 4);
  54. // }
  55. // }
  56. return $name;
  57. }
  58. public function hasNickname()
  59. {
  60. return !empty($this->member_info['member_nickname']) || !empty($this->member_info['member_truename']);
  61. }
  62. public function mobile()
  63. {
  64. if($this->binded_mobile()) {
  65. return $this->member_info['member_mobile'];
  66. }
  67. else {
  68. return "";
  69. }
  70. }
  71. public function truename() {
  72. return $this->member_info['member_truename'];
  73. }
  74. public function sex()
  75. {
  76. $sex = intval($this->member_info['member_sex']);
  77. if ($sex == 1) {
  78. return $sex;
  79. } else {
  80. return 0;
  81. }
  82. }
  83. public function is_man() {
  84. return (intval($this->member_info['member_sex']) == 1);
  85. }
  86. public function avatar()
  87. {
  88. if(is_null($this->member_info['member_avatar']) || empty($this->member_info['member_avatar']))
  89. {
  90. if($this->is_man()) {
  91. $img = 'male.png';
  92. } else {
  93. $img = 'female.png';
  94. }
  95. return RESOURCE_SITE_URL . '/mobile/defimg/' . $img;
  96. }
  97. else
  98. {
  99. $path = $this->member_info['member_avatar'];
  100. if(util::ishttp($path)) {
  101. $url = $path;
  102. } else {
  103. $url = UPLOAD_SITE_URL . "/shop/avatar{$path}";
  104. }
  105. return $url;
  106. }
  107. }
  108. public function hasAvatar() {
  109. return !empty($this->member_info['member_avatar']);
  110. }
  111. public function available_bonus()
  112. {
  113. if(is_null($this->member_info['available_bonus']) || empty($this->member_info['available_bonus'])) {
  114. return 0.00;
  115. } else {
  116. return doubleval($this->member_info['available_bonus']);
  117. }
  118. }
  119. public function discount_self()
  120. {
  121. if(is_null($this->member_info['discount_self_amount']) || empty($this->member_info['discount_self_amount'])) {
  122. return 0.00;
  123. } else {
  124. return doubleval($this->member_info['discount_self_amount']);
  125. }
  126. }
  127. public function invitees() {
  128. return intval($this->member_info['invitees']);
  129. }
  130. public function reward_amount() {
  131. return intval($this->member_info['reward_amount'] * 100 + 0.5) / 100;
  132. }
  133. public function filter()
  134. {
  135. $info = [];
  136. $nickname = $this->nickname();
  137. $info['member_id'] = $this->member_id();
  138. $info['is_man'] = $this->is_man();
  139. $info['nickname'] = $nickname;
  140. $info['avatar'] = $this->avatar();
  141. $info['available_bonus'] = $this->available_bonus();
  142. $info['discount_self'] = $this->discount_self();
  143. $info['member_index'] = url_helper::member_index($info['member_id']);
  144. $info['enmember_id'] = $this->enmember_id();
  145. $info['alpha'] = Pinyin::getAlpha($nickname);
  146. return $info;
  147. }
  148. public function reg_time() {
  149. return intval($this->member_info['member_time']);
  150. }
  151. public function lastest_logtm() {
  152. return intval($this->member_info['member_login_time']);
  153. }
  154. public function order_num() {
  155. return intval($this->member_info['order_num']);
  156. }
  157. public function first_present() {
  158. return intval($this->member_info['first_present']);
  159. }
  160. public function client_type()
  161. {
  162. $client_type = intval($this->member_info['client_type']);
  163. return $client_type;
  164. }
  165. public function inviter_id() {
  166. return intval($this->member_info['inviter_id']);
  167. }
  168. public function can_sms() {
  169. $logtm = intval($this->member_info['member_login_time']);
  170. return ($logtm > (time() - 180 * 86400));
  171. }
  172. public function rewared_inviter() {
  173. return intval($this->member_info['rewared_inviter']) == 1;
  174. }
  175. public function is_app() {
  176. return intval($this->member_info['client_type']) > 0;
  177. }
  178. public function unionid() {
  179. return $this->member_info['member_wxunionid'];
  180. }
  181. public function binded_mobile() {
  182. return intval($this->member_info['member_mobile_bind']) == 1;
  183. }
  184. public function binded_wechat() {
  185. return intval($this->member_info['member_wechat_bind']) == 1;
  186. }
  187. public function invited_bonus() {
  188. return intval($this->member_info['invited_bonus']) == 1;
  189. }
  190. static function alpha_compare($left,$right)
  191. {
  192. $l = $left['alpha'] == '#'? 91:$left['alpha'];
  193. $r = $right['alpha'] == '#'? 91:$right['alpha'];
  194. if($l > $r) {
  195. return 1;
  196. }
  197. elseif($l == $r) {
  198. $l_name = $left['nickname'];
  199. $r_name = $right['nickname'];
  200. return strcmp($l_name,$r_name);
  201. }
  202. else {
  203. return -1;
  204. }
  205. }
  206. public static function get_members($uids)
  207. {
  208. $members = [];
  209. if (empty($uids)) return $members;
  210. $uids = array_unique($uids);
  211. $items = Model('member')->getMemberList(['member_id' => ['in', $uids]]);
  212. foreach ($items as $item)
  213. {
  214. try {
  215. $info = new member_info($item);
  216. $members[] = $info->filter();
  217. } catch (Exception $ex) {
  218. Log::record($ex->getMessage(), Log::ERR);
  219. }
  220. }
  221. return $members;
  222. }
  223. }