<?php /** * MemberController.php UTF-8 * h5 wap 用户 * * @date : 2018/4/27 18:03 * * @license 这不是一个自由软件,未经授权不许任何使用和传播。 * @author : liuhongliang <lhl@huosdk.com> * @version : HUOSDK 8.0 */ namespace h5wap\wap\controller; use cmf\lib\Upload; use h5wap\common\controller\V2BaseController; use huo\controller\address\Address; use huo\controller\member\Member; use huo\controller\member\MemCache; use huo\controller\sign\Sign; use huolib\sms\Sms; use huolib\sms\SmsType; use huolib\status\CommonStatus; use huolib\status\IdentifyStatus; use huolib\status\MemberStatus; use huolib\tool\StrUtils; use huoIdentify\controller\Identify; class MemberController extends V2BaseController { /** * h5wap个人中心 * http://doc.1tsdk.com/138?page_id=3124 * * 【域名】/wap/user/index * * @return mixed */ public function index() { $_data = (new Member())->getMemInfo($this->mem_id); $_data['encrypt_real_name'] = StrUtils::encryptName($_data['real_name']); $_data['encrypt_id_card'] = StrUtils::encryptIdCard($_data['id_card']); $_data['encrypt_mobile'] = StrUtils::encryptPhone($_data['mobile']); $_data['encrypt_alipay_account'] = StrUtils::encryptName($_data['alipay_account']); $_rdata['userinfo'] = $_data; $this->assign('userinfo', $_rdata['userinfo']); $_sign_conf = (new Sign())->getSignConf(); $_sign_list['count'] = count($_sign_conf); $_sign_list['list'] = $_sign_conf; $this->assign('sign_list', $_sign_list); return $this->fetch('user/index'); } /** * H5WAP登陆页 * http://doc.1tsdk.com/138?page_id=3268 * * 【域名】/wap/user/login * */ public function login() { $_back_url = $this->request->server('HTTP_REFERER'); $this->assign('back_url', $_back_url); return $this->fetch('user/login'); } public function address() { $_list = (new Address())->getMemAddress($this->mem_id); $this->assign('list', $_list); return $this->fetch('user/address'); } public function addAddress() { return $this->fetch('user/add_address'); } public function addAddressPost() { $address['mem_id'] = $this->mem_id; $address['consignee'] = $this->request->param('consignee/s', ''); $address['mobile'] = $this->request->param('mobile/s', ''); $address['country'] = $this->request->param('country/d', 0); $address['province'] = $this->request->param('province/d', 0); $address['city'] = $this->request->param('city/d', 0); $address['district'] = $this->request->param('district/d', 0); $address['town'] = $this->request->param('town/d', 0); $address['address'] = $this->request->param('address/s', ''); $address['zipcode'] = $this->request->param('zipcode/s', ''); $address['is_default'] = $this->request->param('is_default/s', ''); $_res = (new Address())->addAddress($address); if (!$_res) { $_rdata = [ 'code' => CommonStatus::INNER_ERROR, 'msg' => CommonStatus::getMsg(CommonStatus::INNER_ERROR), 'data' => [], ]; } else { $_rdata = [ 'code' => CommonStatus::NO_ERROR, 'msg' => CommonStatus::getMsg(CommonStatus::NO_ERROR), 'data' => [], ]; } $this->returnData($_rdata); } public function editAddressPost() { $address['mem_id'] = $this->mem_id; $id = $this->request->param('id/s', ''); $address['consignee'] = $this->request->param('consignee/s', ''); $address['mobile'] = $this->request->param('mobile/s', ''); $address['country'] = $this->request->param('country/d', 0); $address['province'] = $this->request->param('province/d', 0); $address['city'] = $this->request->param('city/d', 0); $address['district'] = $this->request->param('district/d', 0); $address['town'] = $this->request->param('town/d', 0); $address['address'] = $this->request->param('address/s', ''); $address['zipcode'] = $this->request->param('zipcode/s', ''); $address['is_default'] = $this->request->param('is_default/s', ''); $_res = (new Address())->editMemAddress($id, $address); if (!$_res) { $_rdata = [ 'code' => CommonStatus::INNER_ERROR, 'msg' => CommonStatus::getMsg(CommonStatus::INNER_ERROR), 'data' => [], ]; } else { $_rdata = [ 'code' => CommonStatus::NO_ERROR, 'msg' => CommonStatus::getMsg(CommonStatus::NO_ERROR), 'data' => [], ]; } $this->returnData($_rdata); } public function getAddressDetail() { $id = $this->request->param('id/s', ''); $_detail = (new Address())->getAddressDetail($id); $_rdata = [ 'code' => CommonStatus::NO_ERROR, 'msg' => CommonStatus::getMsg(CommonStatus::NO_ERROR), 'data' => $_detail, ]; $this->returnData($_rdata); } public function deleteAddress() { $id = $this->request->param('id/s', ''); $_res = (new Address())->deleteAddress($id); if (!$_res) { $_rdata = [ 'code' => CommonStatus::INNER_ERROR, 'msg' => CommonStatus::getMsg(CommonStatus::INNER_ERROR), 'data' => [], ]; } else { $_rdata = [ 'code' => CommonStatus::NO_ERROR, 'msg' => CommonStatus::getMsg(CommonStatus::NO_ERROR), 'data' => [], ]; } $this->returnData($_rdata); } /*** * 绑定支付宝页面 */ public function bindAlipay() { $_mem_data = MemCache::ins()->getInfoById($this->mem_id); $_real_name = get_val($_mem_data, 'real_name', ''); $_id_card = get_val($_mem_data, 'id_card', ''); $_mobile = get_val($_mem_data, 'mobile', ''); $_alipay_account = get_val($_mem_data, 'alipay_account', ''); $_data = [ 'real_name' => StrUtils::encryptName($_real_name), 'id_card' => StrUtils::encryptIdCard($_id_card), 'mobile' => StrUtils::encryptPhone($_mobile), 'real_mobile' => $_mobile, 'alipay_account' => StrUtils::encryptIdCard($_alipay_account), ]; $this->assign('data', $_data); return $this->fetch('user/bind_alipay'); } /** * 绑定支付宝提交页面 */ public function bindAlipayPost() { $_param = $this->request->post(); $_alipay_account = get_val($_param, 'alipay_account', ''); if (empty($_alipay_account)) { $_code = MemberStatus::INVALID_PARAMS; $this->error(IdentifyStatus::getMsg($_code), [], $_code); } /* 检查支付宝是否绑定别的玩家 */ $_id = (new Member())->getMemIdByAlipayAccount($_alipay_account); if (!empty($_id) && $_id != $this->mem_id) { $_code = MemberStatus::ALIPAY_IS_BIND; $this->error(IdentifyStatus::getMsg($_code), [], $_code); } // $_mobile = get_val($_param, 'mobile', ''); // $_sms_code = get_val($_param, 'sms_code', ''); // $_mem_data = MemCache::ins()->getInfoById($this->mem_id); // /* 校验手机验证码 */ // if (empty($_mem_data['mobile']) && empty($_mobile)) { // $_code = MemberStatus::PHONE_EMPTY; // $this->error(IdentifyStatus::getMsg($_code), [], $_code); // } // /* 校验短信是否正确 */ // $_sms_rs = (new Sms())->check($_mobile, $_sms_code, SmsType::SMS_ID_VERIFY); // if (MemberStatus::NO_ERROR != $_sms_rs['code']) { // $this->error($_sms_rs['code'], [], $_sms_rs['msg']); // } // $_real_name = get_val($_param, 'real_name', ''); // $_id_card = get_val($_param, 'id_card', ''); // /* 未实名则需要校验 校验证件号是否输入 */ // if (empty($_mem_data['real_name'])) { // if (empty($_real_name) || empty($_id_card)) { // $_code = IdentifyStatus::IDENTIFY_INFO_ERROR; // $this->error(IdentifyStatus::getMsg($_code), [], $_code); // } // $_rs = (new \huoIdentify\controller\Identify())->updateIdentify($this->mem_id, 1, $_real_name, $_id_card); // if (IdentifyStatus::NO_ERROR != $_rs['code']) { // $this->returnData($_rs); // } // } $_mem_data['alipay_account'] = $_alipay_account; // if (empty($_mem_data['mobile'])) { // $_mem_data['mobile'] = $_mobile; // } $_rs = MemCache::ins()->updateMem($this->mem_id, $_mem_data); if (false === $_rs) { $_code = IdentifyStatus::INNER_ERROR; $this->error(IdentifyStatus::getMsg($_code), [], $_code); } $_code = IdentifyStatus::NO_ERROR; $this->success(IdentifyStatus::getMsg($_code), [], $_code); } /** * 修改用户头像 * http://doc.1tsdk.com/138?page_id=3541 * 【域名】/user/avatar/update */ public function updateAvatar() { $_avatar = $this->request->param('avatar/s', ''); if (empty($_avatar)) { $_code = CommonStatus::INVALID_PARAMS; $this->error(CommonStatus::getMsg($_code), [], $_code); } $_rdata = (new Member())->updateAvatar($this->mem_id, $_avatar); return $this->returnData($_rdata); } /** * 修改昵称 * http://doc.1tsdk.com/138?page_id=3274 * 【域名】/cfloat/user/nickname/update */ public function updateNickname() { $_data = $this->request->param(); $result = $this->validate( $_data, [ 'nickname' => 'require|chsDash|max:32', ], [ 'nickname.require' => lang('nickname is null'), 'nickname.chsDash' => '昵称只能是汉字、字母、数字和下划线_及破折号-', 'nickname.max' => lang('nickname Up to 32 characters'), ] ); if (true !== $result) { $this->error($result, [], CommonStatus::INVALID_PARAMS); } $_nickname = get_val($_data, 'nickname'); $_rs = (new Member())->updateNickname($this->mem_id, $_nickname); if (MemberStatus::NO_ERROR != $_rs['code']) { $this->error($_rs['msg'], [], $_rs['code']); } $this->success($_rs['msg'], [], $_rs['code']); } /** * 修改密码 * http://doc.1tsdk.com/138?page_id=3373 * 【域名】/cfloat/user/passwd/update */ public function updatePwd() { $_data = $this->request->param(); $_status = get_val($_data, 'status', 2); if (1 == $_status) { $result = $this->validate( $_data, [ 'newpwd' => 'require|length:6,32', ], [ 'newpwd.require' => lang('newpwd is null'), 'newpwd.length' => lang('newpwd length is 6~32 characters'), ] ); if (true !== $result) { $this->error($result, [], CommonStatus::INVALID_PARAMS); } $_newpwd = get_val($_data, 'newpwd'); $_mem_class = new Member(); $_rs = $_mem_class->updatePassword($this->mem_id, $_newpwd); if (is_numeric($_rs)) { $_code = $_rs; } elseif (false !== $_rs) { $_code = MemberStatus::NO_ERROR; } else { $_code = MemberStatus::UNKNOWN_ERROR; } $this->success(MemberStatus::getMsg($_code), [], $_code); } $result = $this->validate( $_data, [ 'oldpwd' => 'require', 'newpwd' => 'require|length:6,32', ], [ 'oldpwd.require' => lang('oldpwd is null'), 'newpwd.require' => lang('newpwd is null'), 'newpwd.length' => lang('newpwd length is 6~32 characters'), ] ); if (true !== $result) { $this->error($result, [], CommonStatus::INVALID_PARAMS); } $_oldpwd = get_val($_data, 'oldpwd'); $_newpwd = get_val($_data, 'newpwd'); $_mem_class = new Member(); $_rs = $_mem_class->updatePwd($this->mem_id, $_oldpwd, $_newpwd); if (MemberStatus::NO_ERROR != $_rs['code']) { $this->error($_rs['msg'], [], $_rs['code']); } $this->success($_rs['msg'], [], $_rs['code']); } /** * H5浮点获取用户信息 * http://doc.1tsdk.com/138?page_id=3207 * 【域名】/float/user/detail */ public function detail() { $_mem_id = $this->mem_id; $_rdata = (new Member())->getMemInfo($_mem_id); $_game_rq = $this->setGameData(); $_device_rq = $this->setDeviceData(); $_auth_info = (new Identify())->getMemIdentifyInfo( $_game_rq->getHAppId(), $this->mem_id, $_device_rq->getDeviceId() ); $_rdata['url'] = get_val($_auth_info, 'url', ''); $_rdata['auth_info'] = get_val($_auth_info, 'auth_info', null); $siteInfo = cmf_get_site_info(); $_rdata['wap_app_down_url'] = get_val($siteInfo, 'wap_app_down_url', ''); $_code = MemberStatus::NO_ERROR; $this->success(MemberStatus::getMsg($_code), $_rdata); } }