更新:获取用户个人资料接口
							parent
							
								
									a47ef3b410
								
							
						
					
					
						commit
						29e4c9629b
					
				|  | @ -4,12 +4,14 @@ namespace app\controller\api; | |||
| use app\exception\RepositoryException; | ||||
| use app\model\Account; | ||||
| use app\repository\AccountRepository; | ||||
| use app\repository\CouponRepository; | ||||
| use app\service\File; | ||||
| use app\service\Jwt; | ||||
| use app\service\wx\WechatApplets; | ||||
| use app\validate\User as UserValidate; | ||||
| use EasyWeChat\Kernel\Exceptions\InvalidConfigException; | ||||
| use Exception; | ||||
| use think\exception\ValidateException; | ||||
| use think\response\Json; | ||||
| 
 | ||||
| /** | ||||
|  | @ -22,7 +24,6 @@ class User extends Base | |||
| { | ||||
|     protected $noNeedLogin = [ | ||||
|         'login', | ||||
|         'test', | ||||
|     ]; | ||||
| 
 | ||||
|     /** | ||||
|  | @ -121,10 +122,86 @@ class User extends Base | |||
|         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 think\exception\ValidateException; | ||||
| use think\model\relation\HasOne; | ||||
| 
 | ||||
| class Account extends Base | ||||
| { | ||||
|  | @ -34,4 +35,20 @@ class Account extends Base | |||
|         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 []; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     /** | ||||
|      * 数量统计 | ||||
|      * | ||||
|      * @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