member_info.php 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. <?php
  2. /**
  3. * 获取用户信息
  4. ***/
  5. defined('InShopNC') or exit('Access Invalid!');
  6. require_once(BASE_HELPER_PATH . '/text_filter.php');
  7. require_once(BASE_HELPER_PATH . '/FileUploader.php');
  8. require_once(BASE_HELPER_PATH . '/relation_helper.php');
  9. require_once(BASE_HELPER_PATH . '/util_helper.php');
  10. require_once(BASE_HELPER_PATH . '/url_helper.php');
  11. require_once(BASE_HELPER_PATH . '/mcard/mcard.php');
  12. require_once(BASE_RESOURCE_PATH . '/phpqrcode/index.php');
  13. class member_infoControl extends mbMemberControl
  14. {
  15. public function __construct()
  16. {
  17. parent::__construct();
  18. }
  19. //个人中心页面的首页
  20. public function indexOp()
  21. {
  22. $ret = $this->person_info();
  23. self::outsuccess($ret);
  24. }
  25. public function getinfoOp()
  26. {
  27. $ret = $this->person_info();
  28. self::outsuccess($ret);
  29. }
  30. public function getOp()
  31. {
  32. $ret = $this->person_info();
  33. self::outsuccess($ret);
  34. }
  35. private function sub_titles()
  36. {
  37. $ret['qrcode'] = '扫上面的二维码图案,加我好友';
  38. $addr_num = session_helper::address_num();
  39. if($addr_num > 0) {
  40. $ret['addr_num'] = "{$addr_num}个";
  41. } else {
  42. $ret['addr_num'] = "尚未设置";
  43. }
  44. $favorate_num = session_helper::favorate_num();
  45. if($favorate_num > 0) {
  46. $ret['favorate_num'] = "{$favorate_num}个";
  47. } else {
  48. $ret['favorate_num'] = "尚未收藏";
  49. }
  50. $fcode_num = session_helper::fcode_num();
  51. if($fcode_num > 0) {
  52. $ret['fcode_num'] = "{$fcode_num}个可用";
  53. } else {
  54. $ret['fcode_num'] = "没有F码";
  55. }
  56. $mod_bargain = Model('room_bargain');
  57. $bargain_num = $mod_bargain->getBargainNumByUser(session_helper::memberid());
  58. if($bargain_num > 0) {
  59. $ret['bargain_num'] = "{$bargain_num}个砍价正在进行中";
  60. } else {
  61. $ret['bargain_num'] = "";
  62. }
  63. return $ret;
  64. }
  65. private function upfile($img,&$err)
  66. {
  67. $member_id = $_SESSION['member_id'];
  68. $upload = new FileUploader();
  69. if($upload->init_files($img,$member_id,$err) == false) {
  70. return false;
  71. }
  72. $upload_dir = ATTACH_AVATAR.DS.$member_id.DS;
  73. $upload->set('default_dir',$upload_dir.$upload->getSysSetPath());
  74. $thumb_width = '480,1024';
  75. $thumb_height = '480,1024';
  76. $upload->set('max_size',C('image_max_filesize'));
  77. $upload->set('thumb_width', $thumb_width);
  78. $upload->set('thumb_height',$thumb_height);
  79. $upload->set('fprefix',$member_id);
  80. $upload->set('thumb_ext', '_240,_1024');
  81. $result = $upload->upfile('file');
  82. if($result == true) {
  83. return $upload->file_name;
  84. } else {
  85. $err = ['code' => errcode::ErrUpfile, 'msg' => $upload->error];
  86. return false;
  87. }
  88. }
  89. private function file_path()
  90. {
  91. $file_path = $_POST["file_path"];
  92. if(file_exists($file_path) == false) {
  93. $file_path = BASE_ROOT_PATH . '/data/upload/upfile' . $file_path;
  94. }
  95. return $file_path;
  96. }
  97. public function upavatarOp()
  98. {
  99. $file_path = $this->file_path();
  100. $member_id = $_SESSION['member_id'];
  101. $file_name = $this->upfile($file_path,$err);
  102. if($file_name == false) {
  103. return self::outerr(errcode::ErrUploadFileFailed);
  104. }
  105. $file_path = DS.$member_id.DS.$file_name;
  106. $ret = Model("member")->editMember(['member_id' => $member_id], ['member_avatar' => $file_path]);
  107. if ($ret) {
  108. $_SESSION['member_avatar'] = $file_path;
  109. $url = UPLOAD_SITE_URL . "/shop/avatar{$file_path}";
  110. return self::outsuccess(['member_avatar' => $url]);
  111. } else {
  112. return self::outerr(errcode::ErrDB);
  113. }
  114. }
  115. public function upcontactsOp()
  116. {
  117. $contacts = session_helper::parse_contacts($_POST["contact_list"]);
  118. if ($contacts == false) {
  119. return self::outerr(errcode::ErrParamter);
  120. }
  121. relation_helper::onUpContacts($_SESSION['member_id'],$contacts);
  122. return self::outsuccess(NULL);
  123. }
  124. public function updateinfoOp()
  125. {
  126. $this->editOp();
  127. }
  128. public function editOp()
  129. {
  130. $member_nickname = urldecode($_GET['nickname']);
  131. $member_truename = urldecode($_GET['truename']);
  132. $member_signname = urldecode($_GET['signname']);
  133. $member_sex = trim(urldecode($_GET['sex']));
  134. $member_birthday = trim(urldecode(($_GET['birthday'])));
  135. $update = [];
  136. if (is_numeric($member_sex))
  137. {
  138. $iSex = intval($member_sex);
  139. if($iSex == 0 || $iSex == 1) {
  140. $update['member_sex'] = $member_sex;
  141. }
  142. }
  143. if(isset($member_nickname) && !empty($member_nickname)) {
  144. $member_nickname = text_filter::filter_input($member_nickname);
  145. $update['member_nickname'] = $member_nickname;
  146. }
  147. if(isset($member_truename) && !empty($member_truename)) {
  148. $member_truename = text_filter::filter_input($member_truename);
  149. $update['member_truename'] = $member_truename;
  150. }
  151. if(isset($member_signname) && !empty($member_signname)) {
  152. $member_signname = text_filter::filter_input($member_signname);
  153. $update['member_signname'] = $member_signname;
  154. }
  155. if(isset($member_birthday))
  156. {
  157. $itm = intval($member_birthday);
  158. if($itm > 0 && $member_birthday = strftime("%Y-%m-%d",$member_birthday)) {
  159. $update['member_birthday'] = $member_birthday;
  160. }
  161. }
  162. if(empty($update)) {
  163. return self::outerr(errcode::ErrInputParam);
  164. }
  165. $mod = Model('member');
  166. $ret = $mod->editMember(['member_id' => $_SESSION['member_id']],$update);
  167. if($ret && $mod->affected_rows() > 0)
  168. {
  169. foreach($update as $key => $val) {
  170. $_SESSION[$key] = $val;
  171. }
  172. self::outsuccess(['ret' => 1]);
  173. }
  174. else {
  175. self::outsuccess(['ret' => 1]);
  176. }
  177. }
  178. public function modifypassOp()
  179. {
  180. $oldpasswd = trim($_GET['oldpasswd']);
  181. $newpasswd = trim($_GET['newpasswd']);
  182. // 校验原有用户内容
  183. $model = Model('member');
  184. $oldpasswd = empty($oldpasswd) ? '' : md5($oldpasswd);
  185. $newpasswd = empty($newpasswd) ? '' : md5($newpasswd);
  186. $ret = $model->editMember(['member_id' => $_SESSION['member_id'],'member_passwd' => $oldpasswd],['member_passwd' => $newpasswd]);
  187. if ($ret === false) {
  188. return self::outerr(errcode::ErrPasswd);
  189. } else {
  190. return self::outsuccess(NULL);
  191. }
  192. }
  193. public function qrcodeOp()
  194. {
  195. return self::outsuccess(['url' => session_helper::qrcode()]);
  196. }
  197. /**
  198. * @return array
  199. */
  200. private function person_info(): array
  201. {
  202. $fields = ['member_sex', 'member_nickname', 'member_truename', 'member_signname', 'member_birthday', 'member_mobile', 'member_avatar'];
  203. $ret = [];
  204. foreach ($fields as $key)
  205. {
  206. if (array_key_exists($key, $_SESSION))
  207. {
  208. if ($key == 'member_birthday')
  209. {
  210. $time = $_SESSION[$key];
  211. $birthday = strtotime($time);
  212. $ret[$key] = ($birthday == false) ? '0' : $birthday;
  213. }
  214. elseif ($key == 'member_avatar')
  215. {
  216. $path = $_SESSION[$key];
  217. if (empty($path))
  218. {
  219. $ret['member_avatar'] = "";
  220. }
  221. elseif (util::ishttp($path))
  222. {
  223. $ret['member_avatar'] = $path;
  224. }
  225. else
  226. {
  227. $url = UPLOAD_SITE_URL . "/shop/avatar{$path}";
  228. $ret['member_avatar'] = $url;
  229. }
  230. }
  231. else
  232. {
  233. $ret[$key] = $_SESSION[$key];
  234. }
  235. }
  236. }
  237. $ret['qrcode'] = session_helper::qrcode();
  238. $ret['sub_titles'] = $this->sub_titles();
  239. $ret['is_vip'] = session_helper::isVip();
  240. $card_list = mtopcard\priority_cards(session_helper::memberid());
  241. $ret['cards'] = mtopcard\topcard_format($card_list);
  242. $ret['mini_code'] = $this->mini_code();
  243. $usercards = new mcard\user_mcards(session_helper::memberid());
  244. $ret['vip_left_amount'] = $usercards->left_amount();
  245. if ($ret['member_sex'] == 2) {
  246. $ret['member_sex'] = 0;
  247. }
  248. return $ret;
  249. }
  250. private function mini_code()
  251. {
  252. $uid = session_helper::memberid();
  253. $passwd = util::passwd;
  254. $name = md5("{$uid}.{$passwd}") . ".png";
  255. $save_path = BASE_UPLOAD_PATH . DS . ATTACH_MINI_QRCODE . DS . $name;
  256. $url = UPLOAD_SITE_URL . DS . ATTACH_MINI_QRCODE . DS . $name;
  257. if(!file_exists($save_path)) {
  258. QueueClient::push('makeMemberMiniQrCode',['member_id' => $uid]);
  259. }
  260. return $url;
  261. }
  262. }