116 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			116 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace app\api\logic;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use app\common\basics\Logic;
							 | 
						||
| 
								 | 
							
								use app\common\model\community\CommunityArticle;
							 | 
						||
| 
								 | 
							
								use app\common\model\community\CommunityFollow;
							 | 
						||
| 
								 | 
							
								use app\common\model\community\CommunityUser;
							 | 
						||
| 
								 | 
							
								use app\common\model\user\User;
							 | 
						||
| 
								 | 
							
								use app\common\server\ConfigServer;
							 | 
						||
| 
								 | 
							
								use app\common\server\UrlServer;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * 社区用户相关
							 | 
						||
| 
								 | 
							
								 * Class CommunityArticleLogic
							 | 
						||
| 
								 | 
							
								 * @package app\api\logic
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class CommunityUserLogic extends Logic
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 获取个人中心信息
							 | 
						||
| 
								 | 
							
								     * @param $user_id
							 | 
						||
| 
								 | 
							
								     * @return mixed
							 | 
						||
| 
								 | 
							
								     * @author 段誉
							 | 
						||
| 
								 | 
							
								     * @date 2022/5/5 18:00
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function getCenterInfo($user_id, $get)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        // 是否获取当前登录者信息
							 | 
						||
| 
								 | 
							
								        $is_self = true;
							 | 
						||
| 
								 | 
							
								        // 当前登录者是否关注需获取信息的$get['user_id']
							 | 
						||
| 
								 | 
							
								        $is_follow = false;
							 | 
						||
| 
								 | 
							
								        if (!empty($get['user_id']) && $get['user_id'] != $user_id) {
							 | 
						||
| 
								 | 
							
								            // 校验是否关注
							 | 
						||
| 
								 | 
							
								            $relation = CommunityFollow::where([
							 | 
						||
| 
								 | 
							
								                'user_id' => $user_id,
							 | 
						||
| 
								 | 
							
								                'follow_id' => $get['user_id'],
							 | 
						||
| 
								 | 
							
								                'status' => 1
							 | 
						||
| 
								 | 
							
								            ])->findOrEmpty();
							 | 
						||
| 
								 | 
							
								            if (!$relation->isEmpty()) {
							 | 
						||
| 
								 | 
							
								                $is_follow = true;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $user_id = $get['user_id'];
							 | 
						||
| 
								 | 
							
								            $is_self = false;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $user = User::field(['id', 'sn', 'nickname', 'avatar'])->findOrEmpty($user_id)->toArray();
							 | 
						||
| 
								 | 
							
								        $community = CommunityUser::getUserInfo($user_id);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $user['avatar'] = !empty($user['avatar']) ? UrlServer::getFileUrl($user['avatar']) : '';
							 | 
						||
| 
								 | 
							
								        $user['image'] = !empty($community['image']) ? UrlServer::getFileUrl($community['image']) : '';
							 | 
						||
| 
								 | 
							
								        $user['signature'] = $community['signature'];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $user['follow'] = CommunityFollow::where(['user_id' => $user_id, 'status' => 1])->count();
							 | 
						||
| 
								 | 
							
								        $user['fans'] = CommunityFollow::where(['follow_id' => $user_id, 'status' => 1])->count();
							 | 
						||
| 
								 | 
							
								        $user['like'] = CommunityArticle::where(['user_id' => $user_id])->sum('like');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // 是否为当前登录者
							 | 
						||
| 
								 | 
							
								        $user['is_self'] = $is_self ? 1 : 0;
							 | 
						||
| 
								 | 
							
								        // 是否关注
							 | 
						||
| 
								 | 
							
								        $user['is_follow'] = $is_follow ? 1 : 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return $user;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 获取设置
							 | 
						||
| 
								 | 
							
								     * @param $user_id
							 | 
						||
| 
								 | 
							
								     * @return array|\think\Model
							 | 
						||
| 
								 | 
							
								     * @author 段誉
							 | 
						||
| 
								 | 
							
								     * @date 2022/5/5 18:39
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function getSetting($user_id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $user = CommunityUser::getUserInfo($user_id);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (empty($user['image'])) {
							 | 
						||
| 
								 | 
							
								            $user['image'] = ConfigServer::get('community', 'user_bg');
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return $user->toArray();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 个人设置
							 | 
						||
| 
								 | 
							
								     * @param $user_id
							 | 
						||
| 
								 | 
							
								     * @param $post
							 | 
						||
| 
								 | 
							
								     * @return CommunityUser|false
							 | 
						||
| 
								 | 
							
								     * @author 段誉
							 | 
						||
| 
								 | 
							
								     * @date 2022/5/5 18:34
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function setSetting($user_id, $post)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $user = CommunityUser::getUserInfo($user_id);
							 | 
						||
| 
								 | 
							
								        if (empty($user)) {
							 | 
						||
| 
								 | 
							
								            self::$error = '系统错误';
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return CommunityUser::where(['user_id' => $user_id])->update([
							 | 
						||
| 
								 | 
							
								            'signature' => $post['signature'] ?? '',
							 | 
						||
| 
								 | 
							
								            'image' => $post['image'] ?? '',
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |