更新:获取用户个人资料接口
parent
a47ef3b410
commit
29e4c9629b
|
@ -4,12 +4,14 @@ namespace app\controller\api;
|
||||||
use app\exception\RepositoryException;
|
use app\exception\RepositoryException;
|
||||||
use app\model\Account;
|
use app\model\Account;
|
||||||
use app\repository\AccountRepository;
|
use app\repository\AccountRepository;
|
||||||
|
use app\repository\CouponRepository;
|
||||||
use app\service\File;
|
use app\service\File;
|
||||||
use app\service\Jwt;
|
use app\service\Jwt;
|
||||||
use app\service\wx\WechatApplets;
|
use app\service\wx\WechatApplets;
|
||||||
use app\validate\User as UserValidate;
|
use app\validate\User as UserValidate;
|
||||||
use EasyWeChat\Kernel\Exceptions\InvalidConfigException;
|
use EasyWeChat\Kernel\Exceptions\InvalidConfigException;
|
||||||
use Exception;
|
use Exception;
|
||||||
|
use think\exception\ValidateException;
|
||||||
use think\response\Json;
|
use think\response\Json;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,7 +24,6 @@ class User extends Base
|
||||||
{
|
{
|
||||||
protected $noNeedLogin = [
|
protected $noNeedLogin = [
|
||||||
'login',
|
'login',
|
||||||
'test',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -121,10 +122,86 @@ class User extends Base
|
||||||
return $this->json(0, 'success', $data);
|
return $this->json(0, 'success', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
public function test()
|
* 获取个人中心资料
|
||||||
|
*/
|
||||||
|
public function getUserCenterInfo()
|
||||||
{
|
{
|
||||||
|
$accountId = $this->request->user['user_id'] ?? 0;
|
||||||
|
|
||||||
|
try {
|
||||||
|
$accountRepo = AccountRepository::getInstance();
|
||||||
|
$couponRepo = CouponRepository::getInstance();
|
||||||
|
|
||||||
|
$account = $accountRepo->findById($accountId, [], function ($q) {
|
||||||
|
return $q->with(['business', 'parent']);
|
||||||
|
});
|
||||||
|
if (empty($account)) {
|
||||||
|
throw new ValidateException('用户无效!');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($account['type'] == Account::type_business) {
|
||||||
|
// 商家用户
|
||||||
|
if (empty($account['business'])) {
|
||||||
|
throw new ValidateException('用户无效!没有相关的商户信息记录');
|
||||||
|
}
|
||||||
|
|
||||||
|
$businessRes = [
|
||||||
|
'avatar' => File::convertCompleteFileUrl($account['avatar_url']),
|
||||||
|
'nickName' => $account['nick_name'],
|
||||||
|
'userType' => $account['type'],
|
||||||
|
'userTypeDes' => Account::accountTypeDescList()[$account['type']] ?? '游客',
|
||||||
|
'couponCount' => 0,
|
||||||
|
'business' => [
|
||||||
|
'code' => $account['business']['code'],
|
||||||
|
'businessName' => $account['business']['business_name'],
|
||||||
|
'state' => $account['business']['state'],
|
||||||
|
'reason' => $account['business']['reason'],
|
||||||
|
'balance' => $account['business']['balance'],
|
||||||
|
'enable' => $account['business']['enable'],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
|
return $this->json(0, 'success', $businessRes);
|
||||||
|
} else {
|
||||||
|
// 用户领取的优惠卷总数量
|
||||||
|
$couponCount = $couponRepo->getModel()::getCountByWhere(['consumer_code' => $account['user_code']]);
|
||||||
|
$personalRes = [
|
||||||
|
'avatar' => File::convertCompleteFileUrl($account['avatar_url']),
|
||||||
|
'nickName' => $account['nick_name'],
|
||||||
|
'userType' => $account['type'],
|
||||||
|
'userTypeDes' => Account::accountTypeDescList()[$account['type']] ?? '游客',
|
||||||
|
'couponCount' => $couponCount,
|
||||||
|
];
|
||||||
|
|
||||||
|
// 商户认证记录
|
||||||
|
if (!empty($account['business'])) {
|
||||||
|
$personalRes['business'] = [
|
||||||
|
'state' => $account['business']['state'],
|
||||||
|
'reason' => $account['business']['reason'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 员工
|
||||||
|
if ($account['type'] == Account::type_staff && !empty($account['parent'])) {
|
||||||
|
$personalRes['parent'] = [
|
||||||
|
'avatar' => File::convertCompleteFileUrl($account['parent']['avatar_url']),
|
||||||
|
'nickName' => $account['parent']['nick_name'],
|
||||||
|
'userType' => $account['parent']['type'],
|
||||||
|
'userTypeDes' => Account::accountTypeDescList()[$account['parent']['type']] ?? '',
|
||||||
|
'couponCount' => 0,
|
||||||
|
'businessCode' => $account['parent']['business_code'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->json(0, 'success', $personalRes);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (ValidateException $e) {
|
||||||
|
return $this->json(4001, $e->getError());
|
||||||
|
} catch (Exception $e) {
|
||||||
|
return $this->json(5001, '服务器繁忙!获取用户个人信息失败');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -4,6 +4,7 @@ namespace app\model;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use think\exception\ValidateException;
|
use think\exception\ValidateException;
|
||||||
|
use think\model\relation\HasOne;
|
||||||
|
|
||||||
class Account extends Base
|
class Account extends Base
|
||||||
{
|
{
|
||||||
|
@ -34,4 +35,20 @@ class Account extends Base
|
||||||
return $this->hasOne(Tag::class,"id","tag_id");
|
return $this->hasOne(Tag::class,"id","tag_id");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联的商户信息
|
||||||
|
* @return HasOne
|
||||||
|
*/
|
||||||
|
public function business()
|
||||||
|
{
|
||||||
|
return $this->hasOne(Business::class, 'code', 'business_code');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联的上级用户
|
||||||
|
*/
|
||||||
|
public function parent()
|
||||||
|
{
|
||||||
|
return $this->hasOne(self::class, 'user_code', 'main_code');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -370,4 +370,28 @@ class Base extends Model
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数量统计
|
||||||
|
*
|
||||||
|
* @param array $where
|
||||||
|
* @param callable|null $call
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public static function getCountByWhere(array $where = [], callable $call = null): int
|
||||||
|
{
|
||||||
|
$q = new static();
|
||||||
|
|
||||||
|
if (count($where)) {
|
||||||
|
$q = $q->where($where);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($call) {
|
||||||
|
$q = $call($q);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $q->count();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue