service = new UserService(); $this->walletService = new WalletService(); } /** * 注册 */ public function register() { // $params = (new BaseApiValidate([ // 'mobile' => 'require|length:11', // 'sms_code' => 'require', // 'parent_id' => 'number' // ]))->checkBody(); // $mobile = $params['mobile']; // $check = \app\common\library\Sms::check($mobile, $params["sms_code"], "register"); // if (!$check) // $this->error("短信验证码不正确!"); // if(!isset($params['password'])) { // $params['password'] = '123456'; // } //// $channel_id = null; //// if (isset($params["channel_key"])) { //// $channel = (new Channel())->where("key", $params["channel_key"])->find(); //// if ($channel) { //// $channel_id = $channel["id"]; //// } //// } // $result = $this->auth->register("U$mobile", $params['password'], null, $mobile, [ //// "channel_id" => $channel_id, // "parent_id" => isset($params["parent_id"]) ? $params["parent_id"] : null // ]); // if (!$result) // $this->error("手机号码数据库中已经存在!"); //// if ($channel_id > 0) { //// Channel::increase($channel_id, null, "register_count"); //// } // $login = $this->auth->login($mobile, $params['password']); // if (!$login) // $this->error("账号或者密码错误!"); // $u = $this->auth->getUser(); // GrantVoucher::grant_voucher("register", $u->id); // $user = \app\api\model\User::fmtUser($u); // $user['token'] = $this->auth->getToken(); // $this->success($user); } public function bindAppWx() { $params = (new BaseApiValidate([ "openId" => "require", "unionId" => "require", "nickName" => "require", "avatarUrl" => "require" ]))->checkBody(); $user = $this->auth->getUser(); $r = $this->service->bindAppWx($user->id, $params); $r->code() ? $this->success($r->data()) : $this->error($r->msg()); } public function bindWebWx() { $params = (new BaseApiValidate([ "code" => "require" ]))->checkBody(); $r = (new WxService())->wxLoginByWeb($params["code"]); if (0 === $r->code()) $this->error($r->msg()); $userinfo = $r->data(); if (!isset($userinfo["unionid"]) || !isset($userinfo["openid"])) $this->error("微信登录错误! unionid|openid 不能为空!"); $userModel = new \app\api\model\User(); $existUser = $userModel->findByUnionId($userinfo["unionid"]); if ($existUser && $this->auth->getUserinfo()["id"] != $existUser["id"]) $this->error("该微信已经绑定用户,请解绑后进行绑定!"); $user = $this->auth->getUser(); $userModel->update([ "web_openid" => $userinfo["openid"], "union_id" => $userinfo["unionid"], "avatar" => $userinfo["headimgurl"], "nickname" => $userinfo["nickname"] ], ["id" => $user["id"]]); $this->success(true); } public function bindAppletWx() { $params = (new BaseApiValidate([ "code" => "require" ]))->checkBody(); $userModel = new \app\api\model\User(); $r = (new WxService())->wxLoginByApplet($params["code"]); if (0 === $r->code()) $this->error($r->msg()); $userinfo = $r->data(); if (!isset($userinfo["unionid"]) || !isset($userinfo["openid"])) $this->error("微信登录错误! unionid|openid 不能为空!"); $user = $userModel->findById($this->auth->getUserinfo()["id"]); if (!$user) $this->error("用户不存在!"); if ($user["union_id"] === $userinfo["unionid"] && $user["applet_openid"] === $userinfo["openid"]) { $this->success(true); } $existUser = $userModel->findByUnionId($userinfo["unionid"]); if ($existUser && $this->auth->getUserinfo()["id"] != $existUser["id"]) $this->error("该微信已经绑定用户,请解绑后进行绑定!"); $user = $this->auth->getUser(); $userModel->update([ "applet_openid" => $userinfo["openid"], "union_id" => $userinfo["unionid"], ], ["id" => $user["id"]]); $this->success(); } public function unbindWx() { $user = $this->auth->getUser(); $r = $this->service->unbindWx($user->id); $r->code() ? $this->success($r->data()) : $this->error($r->msg()); } public function bindMobile() { $params = (new BaseApiValidate([ "mobile" => "require", "sms_code" => "require", ]))->checkBody(); $user = $this->auth->getUser(); $r = $this->service->bindMobile($user->id, $params["mobile"], $params["sms_code"]); $r->code() ? $this->success($r->data()) : $this->error($r->msg()); } public function resetPwd() { $params = (new BaseApiValidate([ "new_pwd" => "require", "sms_code" => "require", ]))->checkBody(); $user = $this->auth->getUser(); $r = $this->service->resetPwd($user->id, $params["sms_code"], $params["new_pwd"]); $r->code() ? $this->success($r->data()) : $this->error($r->msg()); } public function find() { $params = (new BaseApiValidate([ 'user_id' => 'require|number', ]))->checkBody(); $r = $this->service->findUser($params["user_id"]); $r->code() ? $this->success($r->data()) : $this->error($r->msg()); } public function findWallet() { $user = $this->auth->getUser(); $this->success($this->service->findWallet($user->id)); } public function summary() { $user = $this->auth->getUser(); $this->success($this->service->summary($user->id)); } public function fetchCollectMassager() { $user = $this->auth->getUser(); $params = (new BaseApiValidate([ 'page' => 'require|number', 'size' => 'require|number', ]))->checkBody(); $this->success($this->service->fetchCollectMassager($user->id, $params["page"], $params["size"])); } public function fetchMassagerComment() { $user = $this->auth->getUser(); $params = (new BaseApiValidate([ 'page' => 'require|number', 'size' => 'require|number', ]))->checkBody(); $this->success($this->service->fetchMassagerComment($user->id, $params["page"], $params["size"])); } public function fetchSystemMessage() { $user = $this->auth->getUser(); $params = (new BaseApiValidate([ 'page' => 'require|number', 'size' => 'require|number', ]))->checkBody(); $this->success($this->service->fetchSystemMessage($user->id, $params["page"], $params["size"])); } public function bindParentId() { $params = (new BaseApiValidate([ 'parent_id' => 'require|number', ]))->checkBody(); $user = $this->auth->getUser(); $user = (new \app\api\model\User())->get($user->id); if (!$user) { $this->error("用户不存在!"); } if ($user->parent_id > 0) { $this->error("已经绑定上级无法修改!"); } $parent = (new \app\api\model\User())->get($params["parent_id"]); if (is_null($parent)) { $this->error("上级不存在!"); } (new \app\api\model\User())->update([ "parent_id" => $parent->id ], ["id" => $user->id]); $this->success(null, "绑定成功!"); } public function fetchInviteQrCode() { $user = $this->auth->getUser(); $url = "https://pbh5.xunsoftware.com/pages/user/login?parent_id={$user->id}"; if (is_null($user->invite_qr_code)) { $qr_code = \qrcodeBase64("https://pbh5.xunsoftware.com/pages/user/login", ["parent_id" => $user->id]); (new \app\api\model\User())->update([ "invite_qr_code" => $qr_code ], ["id" => $user->id]); $this->success($qr_code); } $this->success([ "invite_qr_code" => $user->invite_qr_code, "link" => $url ]); } public function fetchInviteCount() { $this->success($this->service->fetchInviteCount($this->auth->getUser()["id"])); } public function fetchInviteDetails($page = 1, $size = 10) { $this->success($this->service->fetchInviteDetails($this->auth->getUser()["id"], $page, $size)); } public function fetchRanking() { $this->success($this->service->fetchRanking()); } public function dynamicLike($dynamic_id = null) { $user = $this->auth->getUser(); $dynamic = Dynamic::where("id", $dynamic_id)->find(); if (!$dynamic) $this->error("动态不存在!"); $res = Like::where([ "user_id" => $user["id"], "dynamic_id" => $dynamic_id ])->find(); if ($res) { $this->success(true); } Like::create([ "user_id" => $user["id"], "dynamic_id" => $dynamic_id, "massager_id" => $dynamic["massager_id"], "createtime" => time(), "updatetime" => time() ]); $this->success(true); } public function dynamicUnlike($dynamic_id = null) { $user = $this->auth->getUser(); Like::where([ "user_id" => $user["id"], "dynamic_id" => $dynamic_id ])->delete(); $this->success(true); } public function dynamicComment($dynamic_id = null, $text = null) { $user = $this->auth->getUser(); $dynamic = Dynamic::where("id", $dynamic_id)->find(); if (!$dynamic) $this->error("动态不存在!"); if (is_null($text)) $this->error("评论内容不能为空!"); $text = preg_replace('/(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?/', '***********', $text); // extract phonenumber $switch = false;//config("site.dynamic_publish_check_switch"); Comment::create([ "user_id" => $user["id"], "dynamic_id" => $dynamic["id"], "text" => $text, "status" => 1 == $switch ? \E_BASE_STATUS::Checking : \E_BASE_STATUS::Normal, "createtime" => time(), "updatetime" => time() ]); $this->success(); } }