|
|
<?php
|
|
|
|
|
|
namespace app\base\logic\user;
|
|
|
|
|
|
use app\base\model\app\AppAppleUser;
|
|
|
use app\base\model\app\AppQqUser;
|
|
|
use app\base\model\app\AppSinaweiboUser;
|
|
|
use app\base\model\app\AppWeixinUser;
|
|
|
use app\base\model\user\UserAccountConfig;
|
|
|
use app\base\model\user\UserAlipay;
|
|
|
use app\base\model\user\UserInfo;
|
|
|
use think\facade\Db;
|
|
|
|
|
|
class User extends Base
|
|
|
{
|
|
|
|
|
|
/**
|
|
|
* 获取用户个人信息
|
|
|
* @date 2022-12-27
|
|
|
*/
|
|
|
public function getUserInfo()
|
|
|
{
|
|
|
$info_model = new UserInfo();
|
|
|
|
|
|
//获取用户信息
|
|
|
$info = $info_model->getOneData([
|
|
|
['user_id', '=', $this->userId]
|
|
|
], 'id,user_id,head_img,nick_name,gender,birth_day,sign');
|
|
|
|
|
|
// 解决:sign字段为null时,前端显示长度为undefined
|
|
|
$info['sign'] = empty($info['sign']) ? '' : $info['sign'];
|
|
|
|
|
|
//为空时重新组合数组
|
|
|
if (empty($info)) {
|
|
|
$info = [
|
|
|
'id' => '',
|
|
|
'head_img' => '',
|
|
|
'nick_name' => '',
|
|
|
'gender' => '',
|
|
|
'birth_day' => '',
|
|
|
'sign' => '',
|
|
|
];
|
|
|
}
|
|
|
|
|
|
return sendSuccessArray([
|
|
|
// 用户信息
|
|
|
'info' => $info
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 更新用户个人信息
|
|
|
* @param array $data 需要更新的信息
|
|
|
* @date 2022-12-27
|
|
|
*/
|
|
|
public function updateUserInfo($data)
|
|
|
{
|
|
|
$info_model = new UserInfo();
|
|
|
|
|
|
// 获取用户信息
|
|
|
$update_data = [
|
|
|
'uid' => $this->mid,
|
|
|
'user_agent' => $this->userAgent,
|
|
|
'user_id' => $this->userId,
|
|
|
'head_img' => $data['head_img'],
|
|
|
'nick_name' => $data['nick_name'],
|
|
|
];
|
|
|
$res = $info_model->updateUser($update_data);
|
|
|
if (!$res) {
|
|
|
return sendErrorArray(3001, '更新用户信息失败');
|
|
|
}
|
|
|
|
|
|
return sendSuccessArray([], '信息保存成功');
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取用户账户信息
|
|
|
* @date 2022-08-29
|
|
|
*/
|
|
|
public function getAccountInfo()
|
|
|
{
|
|
|
$user_model = new \app\base\model\user\User();
|
|
|
$app_weixin_user_model = new AppWeixinUser();
|
|
|
$app_qq_user_model = new AppQqUser();
|
|
|
$app_sinaweibo_user_model = new AppSinaweiboUser();
|
|
|
$app_apple_user_model = new AppAppleUser();
|
|
|
$alipay_model = new UserAlipay();
|
|
|
|
|
|
// 获取用户信息
|
|
|
$user_info = $user_model->getOneData([
|
|
|
['id', '=', $this->userId],
|
|
|
// 没有注销
|
|
|
['status', '<>', 3]
|
|
|
], 'id,mobile_phone');
|
|
|
|
|
|
// 获取微信授权信息
|
|
|
$app_weixin_info = $app_weixin_user_model->getOneData([
|
|
|
['user_id', '=', $this->userId]
|
|
|
], 'id,nickname');
|
|
|
$app_weixin_info['is_auth'] = empty($app_weixin_info) ? 0 : 1;
|
|
|
|
|
|
// 获取QQ授权信息
|
|
|
$app_qq_info = $app_qq_user_model->getOneData([
|
|
|
['user_id', '=', $this->userId]
|
|
|
], 'id,nickname');
|
|
|
$app_qq_info['is_auth'] = empty($app_qq_info) ? 0 : 1;
|
|
|
|
|
|
// 获取新浪微博授权信息
|
|
|
$app_sinaweibo_info = $app_sinaweibo_user_model->getOneData([
|
|
|
['user_id', '=', $this->userId]
|
|
|
], 'id,nickname');
|
|
|
$app_sinaweibo_info['is_auth'] = empty($app_sinaweibo_info) ? 0 : 1;
|
|
|
|
|
|
// 获取苹果授权信息
|
|
|
$app_apple_info = $app_apple_user_model->getOneData([
|
|
|
['user_id', '=', $this->userId]
|
|
|
], 'id,email');
|
|
|
$app_apple_info['is_auth'] = empty($app_apple_info) ? 0 : 1;
|
|
|
|
|
|
// 获取支付宝账户信息
|
|
|
$alipay_info = $alipay_model->getOneData([
|
|
|
['user_id', '=', $this->userId]
|
|
|
], 'id,account');
|
|
|
$alipay_info['is_auth'] = empty($alipay_info) ? 0 : 1;
|
|
|
|
|
|
$return_data = [
|
|
|
// 用户信息
|
|
|
'user_info' => $user_info,
|
|
|
// APP绑定微信用户信息
|
|
|
'app_weixin_info' => $app_weixin_info,
|
|
|
// APP绑定QQ用户信息
|
|
|
'app_qq_info' => $app_qq_info,
|
|
|
// APP绑定新浪微博用户信息
|
|
|
'app_sinaweibo_info' => $app_sinaweibo_info,
|
|
|
// APP绑定苹果用户信息
|
|
|
'app_apple_info' => $app_apple_info,
|
|
|
// 绑定支付宝用户信息
|
|
|
'alipay_info' => $alipay_info
|
|
|
];
|
|
|
|
|
|
return sendSuccessArray($return_data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取用户手机号
|
|
|
* @date 2022-10-09
|
|
|
*/
|
|
|
public function getMobilePhone()
|
|
|
{
|
|
|
$user_model = new \app\base\model\user\User();
|
|
|
|
|
|
// 获取用户信息
|
|
|
$user_info = $user_model->getOneData([
|
|
|
['id', '=', $this->userId],
|
|
|
// 没有注销
|
|
|
['status', '<>', 3]
|
|
|
], 'id,mobile_phone');
|
|
|
|
|
|
$return_data = [
|
|
|
// 用户信息
|
|
|
'user_info' => $user_info
|
|
|
];
|
|
|
|
|
|
return sendSuccessArray($return_data);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 注销账户
|
|
|
* @date 2022-12-27
|
|
|
*/
|
|
|
public function deleteUser()
|
|
|
{
|
|
|
$user_service = new \app\base\service\user\User();
|
|
|
$jwt_class = new \jwt\Jwt();
|
|
|
|
|
|
Db::startTrans();
|
|
|
|
|
|
// 注销账户
|
|
|
$res = $user_service->destory($this->userId);
|
|
|
if ($res['code'] != 0) {
|
|
|
Db::rollback();
|
|
|
return $res;
|
|
|
}
|
|
|
Db::commit();
|
|
|
|
|
|
// 签发token
|
|
|
$arr = TOKEN_DATA;
|
|
|
$arr['user_id'] = '';
|
|
|
|
|
|
$res_token = $jwt_class->signToken($arr);
|
|
|
|
|
|
return sendSuccessArray([
|
|
|
'access_token' => $res_token['token'],
|
|
|
'access_token_expire_time' => $res_token['exp'],
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取用户账号设置
|
|
|
* @date 2022-12-27
|
|
|
*/
|
|
|
public function getAccountConfig()
|
|
|
{
|
|
|
$account_config_model = new UserAccountConfig();
|
|
|
|
|
|
// 获取用户账号设置
|
|
|
$account_config = $account_config_model->getOneData([
|
|
|
['user_id', '=', $this->userId]
|
|
|
], 'id,is_personal_recommend');
|
|
|
|
|
|
return sendSuccessArray([
|
|
|
// 个性化推荐是否打开
|
|
|
'is_personal_recommend' => empty($account_config) ? 0 : $account_config['is_personal_recommend'],
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 更新用户账号设置
|
|
|
* @param int $is_personal_recommend 个性化开关是否打开
|
|
|
* @date 2022-12-27
|
|
|
*/
|
|
|
public function updateAccountConfig($is_personal_recommend)
|
|
|
{
|
|
|
$account_config_model = new UserAccountConfig();
|
|
|
|
|
|
// 更新信息
|
|
|
$data = [
|
|
|
'uid' => $this->mid,
|
|
|
'user_agent' => $this->userAgent,
|
|
|
'user_id' => $this->userId,
|
|
|
'is_personal_recommend' => $is_personal_recommend
|
|
|
];
|
|
|
$res = $account_config_model->updateAccountConfig($data);
|
|
|
|
|
|
if (!$res) {
|
|
|
return sendErrorArray(3001, '更新失败');
|
|
|
}
|
|
|
|
|
|
return sendSuccessArray();
|
|
|
}
|
|
|
}
|