| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365 |
- <?php
- namespace app\api\controller;
- use app\admin\model\dynamic\Comment;
- use app\admin\model\dynamic\Dynamic;
- use app\admin\model\dynamic\Like;
- use app\api\service\UserService;
- use app\api\service\WalletService;
- use app\api\service\WxService;
- use think\Request;
- use app\common\controller\Api;
- use app\api\validate\BaseApiValidate;
- class User extends Api
- {
- private $service;
- private $walletService;
- protected $noNeedLogin = [
- "register",
- "findUser"
- ];
- public function __construct(Request $request = null)
- {
- parent::__construct($request);
- $this->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 = 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();
- }
- }
|