member_info.php 9.3 KB

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